Builder vs. reviewer, proving each test
A builder and an adversarial reviewer pass a git baton between worktrees, proving every new test can catch its fix.
Use this when
Use autonomy-loop when a repository has deterministic test, build, and lint gates plus a task suited to repeated builder-reviewer handoffs.
How it runs
- Initialize autonomy-loop, configure deterministic gates and protected paths, and create separate builder and reviewer worktrees.
- Have the builder read LOOP-STATE.md, implement one bounded change, add a red-before, green-after test, and hand off.
- Have the reviewer rerun every gate and use revert-or-mutate proof to show the test catches the change.
- Accept only on both passes; otherwise return findings or park the wave for a human when a circuit breaker fires.
Done when
✓ Every accepted wave passes autonomy-loop's proof-of-test gate. The new test fails without the change, passes with it, every configured gate passes, and protected production changes remain human-gated.
Why it works
Separate worktrees and a git-backed LOOP-STATE.md baton keep the roles independent and resumable. The revert-or-mutate check catches tests that execute code without proving the fix.
Implementation note
The source implementation uses autonomy-loop commands, separate worktrees, and a git-backed baton. Treat local hooks as tripwires, not a security boundary, and keep protected changes behind enforced approval.
Source: Forward Future ↗graded C · 65/100 — how grades work →
More testing loops
Build a REST API with tests
Run autonomous iterations to ship a complete REST API with full test coverage until completion is promised.
Test all endpoints
Run tests against every API endpoint until coverage is complete or you hit 30 iterations.
Hit acceptance criteria
Drive a feature to done against explicit acceptance criteria: a working paginated endpoint, passing tests, clean lint, and a hard turn cap.