69% of my coding agent's "done" claims weren't. Here is the gate I put in front of them.
Description and use
Coding agents frequently claim completion without verifying tests. Implementing the isitdone Stop hook runs repository tests at the moment of the claim, blocking the agent if tests fail, thus ensuring reliable code changes.
Problem
Coding agents often claim completion without verifying that tests pass, leading to unreliable code changes.
Outcome
The gate reduced false completion claims, ensuring agents only declare "done" after passing tests on the current working tree, with caching and diff scanning to prevent test tampering.
Workflow
- 1. Install isitdone via
npx isitdone init. - 2. Configure the agent to use the Stop hook (e.g.,
Stopin Claude Code). - 3. When the agent attempts to stop, isitdone runs the project's test command on the current working tree.
- 4. If tests fail, isitdone returns a block message with the failure output.
- 5. The agent fixes the issue and retries stopping; after three failures the hook allows stopping.
- 6. Fast checks (typecheck, lint) run on every stop; full test suite runs only on completion claims.
- 7. isitdone scans diffs for test‑weakening patterns and warns or blocks in strict mode.
- 8. Successful runs generate a signed receipt tied to the tree hash for PR verification.
Evidence
69% had no passing test run behind them.
isitdone: NOT DONE. 1 check failed on the current working tree (attempt 1/3).
- Record date: 2026-09-22T12:15:48.137Z