Start with one job and grow from there.
Free to start · No credit card required
.singulacomp/memory/payment-recovery-ledger.md. For every subscription
already tracked, note its current rung, the timestamp of its last action, and
its next-eligible-escalation time. Anything not yet on the ledger is a
candidate for Step 2.now >= next-eligible time; if
not, leave it alone this run.| Rung | Name | Action | Minimum wait before this rung |
|---|---|---|---|
| 1 | Smart retry | Retry the failed charge against the existing payment method via Stripe (off-session), no email sent yet | Immediately on first failure |
| 2 | Payment reminder | Friendly email: the charge didn't go through, here's the amount and a pay link | 24h after rung 1 if still failing |
| 3 | Update-your-card notice | Firmer email naming the likely cause (expired/declined card) with a direct link to update the payment method | 48h after rung 2 if still failing |
| 4 | Final notice | Clear, professional email stating this is the last automated reminder before the account needs manual attention | 72h after rung 3 if still failing |
awaiting-human on the ledger and
surface it in the Slack summary every run until a person acts or it pays.
Never cancel the subscription, issue a credit, or process a refund — that
decision, and the action, belongs to a human.recovered on the ledger with the rung it
was on when it cleared, stop sending it anything, and report it as a recovery
in the summary.awaiting-human, and
subscriptions that recovered since the last run. Omit subscriptions with no
change..singulacomp/memory/payment-recovery-ledger.md
(see <ledger-format>) before ending the turn.