- π€ Human β answers interviews, accepts ADRs, archives, pushes
- π’ Agent Β· interview β Socratic; human answers, agent writes (steps 1β4, 13)
- π£ Agent Β· autonomous β loop roles, emit a machine-readable line (6β9, 11β12)
- β Script β dispatch-loop.sh: state, git, ticking, routing (step 10); never judges
- Diagnose: β€2 files β hotfix path Β· else structural β /new
- Review (4-way): approveβcommit Β· blockerβfix Β· structural_blocker / needs_adjudication β hard stop
- Fix cap: 3 rounds, then Escalate the spec β hard stop
- Verify: PASSβarchive Β· FAILβescalate (spec) or diagnose (bug)
- Spec frozen before any code; loop agents can't write openspec/
- ADRs immutable & human-accepted; adr/ + push are human-only
- Agent never ticks its own acceptance β the script does, on the verdict
- Backlog cap 50 passes; hard stops exit 125 for a human