Who decides?
Does not decide next hop
handoffd
swarm_handoff (only validates to:)
ready_for_next / done_with_current
Does decide next hop
roles/<role>.prompt · ## Handoff
- Constitution · chain forward / terminal broadcast
- The LLM following those texts
Pack chains
two-pack
Fast backend loop · no Gherkin/QA split
coder
→
cleaner
→
coder
…
Intermediate always forwards. Return to coder is merge-only for that
hop (terminal of that leg). Loop continues when coder has more work.
four-pack
Spec + compact quality gates
user
→
specifier
→
coder
→
refactorer
→
architect
→
specifier
Specifier starts only after user approval. Architect return →
specifier merges only, then asks user for next feature.
six-pack
Full quality split
user
→
specifier
→
coder
→
cleaner
→
architect
→
hardender
→
QA
QA broadcast
→
specifier
coder
cleaner
architect
hardender
merge only
Interactive: should I send?
Three “finished” meanings
Task done (queue)
done_with_current
- May or may not have sent outbound
Idle (NO_TASK)
- Empty inbox
- Not project complete
Feature/job complete
- End-of-chain broadcast (e.g. QA)
- Specifier asks user what’s next
Swarm teardown
- Human closes cleanup window
- Not decided by role handoffs