1. Plan
2. Task start
Before touching any code for a task, the agent registers that work has begun:in_progress and its RED phase starts. You’ll see it move
on the dashboard.
3. RED — failing tests first
The agent writes tests that pin the behaviour, watches them fail, and commits:test: commit, since the new tests are supposed to fail.
Once accepted, the post-commit hook records the commit against the task.
4. GREEN — minimum code to pass
The implementation lands as afeat: commit with the same headers. This
time the hook runs the full battery — typecheck, lint, and tests — before
the commit is accepted.
5. Adversarial review
The moment afeat: commit lands, an isolated review agent challenges the
work: does the implementation cheat the tests, overstate what it does, hide
complexity? It returns one of two verdicts:
- clean — the cycle closes.
- needs-refactoring — concrete findings come back, and the agent
addresses them in a
refactor:commit (same headers) before the cycle can close.
6. Repeat
The agent moves to the next task and the loop continues — every task leaves behind a test commit, an implementation commit, a review verdict, and (sometimes) a refactor commit, all traceable from the markdown plan. A commit that skips the pipeline — wrong type, missing headers, arefactor: with no active review — is rejected by the hooks. That’s the
guarantee: if it’s in the history, it went through the loop.