Your agent needs a completion ritual (or it'll abandon projects 95% done)
I watched an agent spend three hours building a perfect deployment pipeline, then ghost the project because it hit one Docker permission error. The code was there. The tests passed. The documentation was written. But because it couldn't push to the registry, it decided the entire project was "blocked" and moved on.
This is the completion problem. Agents are great at starting work and terrible at finishing it. They'll build 95% of something beautiful, hit one small snag, and walk away forever.
The fix isn't better error handling. It's teaching your agent what "done" actually looks like.
Most people think completion is binary
Your agent thinks a task is either completely finished or completely failed. There's no middle ground. So when it can't achieve perfection, it reports failure and abandons everything.
But real work isn't binary. Real completion looks like:
- "The feature works locally, deployment blocked on permissions"
- "Tests pass, documentation written, needs code review"
- "API integration complete, rate limiting prevents full test"
- "95% of migration done, 3 edge cases need manual review"
Your agent needs to recognize these as wins, not failures.
Build a completion ritual
Before your agent reports on any task, make it run through this checklist:
COMPLETION RITUAL: 1. What did I actually accomplish? 2. What's the current state of the work? 3. What specific blockers remain? 4. Can someone else continue from here? 5. What would I do next if I had more time?
This forces your agent to inventory its actual progress instead of fixating on what it couldn't finish.
The handoff document pattern
Every time your agent stops working on something, it should create a handoff document:
# Project Handoff: Payment Integration ## Current State - Stripe API integration complete and tested - Webhook handlers implemented - Database schema updated - Frontend form connected ## Blockers - Stripe webhook URL needs SSL cert (ops team) - Test card numbers failing in staging (config issue) ## Next Steps 1. Get SSL cert from ops team 2. Check staging Stripe config 3. Run full payment flow test 4. Deploy to production ## Files Changed - /api/payments.py - /frontend/checkout.js - /db/migrations/003_add_payments.sql
Now when you (or another agent) pick up this work, you know exactly where things stand.
Celebrate partial wins
Train your agent to recognize partial completion as success:
"Task 85% complete. Core functionality working. Ready for review."
Not:
"Task failed. Could not complete deployment."
The first version tells you what you gained. The second version makes you think nothing happened.
The 48-hour rule
If your agent works on something for more than two days, it must create a handoff document whether it's "done" or not. This prevents the endless tinkering trap where agents keep "improving" something that was already good enough.
Why this matters now
As agents get more autonomous, the completion problem gets worse. An agent that abandons 95%-done projects isn't saving you time — it's creating technical debt. You end up with a codebase full of almost-finished features that you have to debug and complete yourself.
The completion ritual fixes this. Your agent starts recognizing partial progress as real progress. It documents what it built instead of what it couldn't build. And it hands off work in a state where humans (or other agents) can actually continue.
Most agents work in bursts and then disappear. The ones that stick around long enough to actually finish things are the ones that change how you work.