Contract renewal · autonomous obligation agent

Your vendors are counting on you to forget.
Reaper doesn't.

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 method
Twice-derivedevery deadline — model and machine must agree
One signatureyour only appearance in the pipeline
Weeks asleepdurable state, zero tokens burned
Hash-chainedevery action, tamper-evident
The method

Four acts, one appearance by you

One upload starts a months-long pipeline. Nothing waits on your memory.

I

Read, then verify the reading

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.

gate verdict: MATCH · MISMATCH · AMBIGUOUS
II

Sleep like a ledger, not a chatbot

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.

tokens burned while waiting: 0
III

Notice, under your signature

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.

human approvals required: 1
IV

Trust, then verify, then fight

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.

outcome: VERIFIED · DISPUTED
Why it's different

An agent that refuses to trust itself

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.

EXHIBIT A — Master Subscription Agreement, §3 Renewalterm ends 2026-12-31
“…automatically renew for successive twelve (12) month terms unless either party provides written notice of non-renewal at least sixty (60) days prior to the end of the then-current term…”
Match · Scheduled
The model reads
1 Nov 2026
The engine derives
1 Nov 2026
And when a clause says “sixty (90) days”? The engine declares the conflict and scheduling is blocked for human review — on the record, honestly.

Pauses that survive anything

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.

Evidence that fights back

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.

Outcomes, not alerts

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.

Put the renewals on the ledger.

Open the ledger