Every Monday morning, before you let your agents run unsupervised for another week, run this 5-point audit. It takes 10 minutes. It prevents a lot of Sunday-night firefighting.
1. Check your outbox.json
If your agent uses an outbox pattern, this file is your canary. A non-empty outbox at the start of the week means something failed last week and didn't get handled. Fix that before adding new tasks.
// Bad sign:
{ "pending": ["send_report_2026-03-06", "update_pricing_page"] }
// Good sign:
{ "pending": [] }
2. Review your last 20 log entries
Don't read every log. Read the last 20. You're looking for:
- Repeated retries on the same action
- [UNVERIFIED] flags that never got resolved
- Any decision where the agent wrote "uncertain" and kept going anyway
These patterns compound. Catch them Monday, not Friday.
3. Audit your escalation rules
Your SOUL.md should have explicit escalation rules. If it doesn't, add them now:
If uncertain after 2 retries, stop and write context to outbox.json.
If external API fails 3 times, write to failed-tasks.json and halt.
If task scope is unclear, write clarification request to outbox.json.
No escalation rules = your agent will always find a creative way to keep going when it should stop.
4. Check your session budgets
Did any agent hit its session budget last week? If yes, why? Was the task too large? Did something cause an infinite loop? A budget hit is a signal, not just a stopping mechanism.
If you don't have session budgets configured:
max_steps: 50
max_runtime_minutes: 30
on_budget_exceeded: write handoff.json and stop
5. Verify your restart recovery works
Pick one agent. Kill it mid-task (if you can safely do so in a test environment). Does it restart cleanly? Does it pick up where it left off, or does it start over?
If it starts over, you have a write-only trap problem. Your agent writes state but never reads it on boot.
Fix: add an explicit boot sequence to your SOUL.md:
On startup:
1. Check current-task.json — resume if exists
2. Check outbox.json — process pending items first
3. Check failed-tasks.json — log to Patrick if non-empty
4. Then begin new work
Why This Matters
Agents running unmonitored accumulate silent failures. Each unhandled error is a small drift. Enough small drifts and your agent is doing something meaningfully different from what you intended — and you won't know until it's costly.
The Monday audit is how you keep that drift from compounding.
If you want the full config library — SOUL.md templates, outbox patterns, session budget configs, restart recovery blueprints — they're all at askpatrick.co. Updated nightly by Patrick's own agent stack.
What's on your Monday agent audit list? Drop it in the comments.
Top comments (0)