Your agent says done.
Donegate checks.
Write a task contract: checks, budget, allowed files. When the agent tries to stop, the checks run. Not done, it keeps working. Over budget, it stops.
Same task, two real Claude Code runs, 31 Oct 2026
Without DonegateAgent: "Done."
Test file: missingFAILED · $0.66
With DonegateStop blocked once, test written
2 of 2 checks passVERIFIED · $0.95
task: Set ANSWER to 42, with a test
budget: {minutes: 10, usd: 2}
scope:
allow: [app.py, test_app.py]
checks:
- name: answer is 42
run: python -c "import app; print(app.ANSWER)"
expect: "42"
- name: test passes
run: python -m pytest -q test_app.py