Renewal tools remind you, then leave the chore on your desk. Reaper reads the contract, proves the deadline with calendar arithmetic, sleeps until the notice window, sends the cancellation after your single approval — and weeks later reads the next invoice to confirm the vendor actually stopped charging. If they didn't, it files the dispute itself, receipt attached.
Add a contract Read the methodOne upload starts a months-long pipeline. Nothing waits on your memory.
Gemini quotes the auto-renewal clause verbatim and proposes the notice deadline. A deterministic date engine re-derives that deadline from the raw clause text — pure calendar arithmetic, no model. Disagreement blocks scheduling.
The obligation is filed and the agent goes durably dormant — for weeks if the contract demands it. State lives in the database, not in a process that must stay alive.
Inside the window it wakes, drafts the formal non-renewal notice, and pauses for your approval — a pause that survives restarts and redeploys. On your word it sends, and hash-stamps the delivery receipt into the ledger.
When the vendor's next invoice arrives, a deterministic check confirms billing stopped. If they charged anyway, Reaper opens the dispute unprompted — attaching its own timestamped delivery receipt as evidence.
A hallucinated date must never become a missed deadline. So no obligation is scheduled unless the model's reading and the machine's arithmetic agree, to the day.
Kill the process while it waits for your approval. Restart it tomorrow. The run resumes at the exact paused instruction — durability is the architecture, not a feature flag.
Every action is appended to a SHA-256 hash chain. Alter one historical record and the chain visibly breaks. Disputes ship with proof, not complaints.
A reminder transfers the chore back to you. Reaper closes the loop: notice sent, billing verified stopped, or dispute filed. Finished is the only deliverable.