Dispatch Tree
The May 2 session put 78 dispatches on the bus. Counted from the conversation table:
| Agent role | Count | Parent role |
|---|---|---|
| joke-book-lead | 1 | (top of tree, child of human chat) |
| writing-lead | 8 | joke-book-lead |
| editorial-lead | 10 | joke-book-lead |
| proxy | 6 | joke-book-lead (escalation threads) |
| markdown-writer | 13 | writing-lead (1–3 per parent) |
| voice-editor | 23 | editorial-lead (across 3 voice passes) |
| fact-checker | 8 | editorial-lead (one parallel fact-check pass) |
| copy-editor | 8 | editorial-lead (across copy passes) |
| style-reviewer | 2 | editorial-lead |
Three levels deep, every child gets its own dispatch:<id> thread, its own git worktree, its own claude session.
Below: three UML sequence diagrams. The first compresses the whole session into the major message-passing patterns. The next two zoom into specific windows where the per-parent cap of 3 concurrent children (§13) is observable in the timing data.
Diagram 1 — Macro session flow
The whole-session flow with one representative child per role. Reads top-to-bottom in time.
sequenceDiagram
autonumber
participant H as Human
participant L as joke-book-lead
participant P as proxy
participant W as writing-lead
participant M as markdown-writer
participant E as editorial-lead
participant S as specialists
H ->> L: chat (prompt)
Note over L,P: INTENT phase — 4 escalations
L ->>+ P: AskQuestion (INTENT review)
P -->>- L: RESPONSE NOT APPROVED (autonomous, 0 human turns)
L ->>+ P: AskQuestion (revised INTENT)
P ->> H: dialog
H -->> P: reply
P -->>- L: RESPONSE NOT APPROVED (2 changes required)
L ->>+ P: AskQuestion (re-revised)
P ->> H: dialog
H -->> P: reply
P -->>- L: RESPONSE NOT APPROVED (2 targeted revisions)
L ->>+ P: AskQuestion (ratify)
P ->> H: dialog
H -->> P: reply
P -->>- L: RESPONSE APPROVED
Note over L,P: PLAN phase
L ->>+ P: AskQuestion (PLAN review)
P ->> H: dialog
H -->> P: reply
P -->>- L: RESPONSE APPROVE with redirect
Note over L,S: EXECUTE phase — writing (8 writing-leads, 13 markdown-writers)
L ->>+ W: Delegate (Ch1 anchor)
W ->>+ M: Send (markdown)
M -->>- W: Reply
W -->>- L: Reply
L ->>+ W: Delegate (Ch2..7 in batches of 3)
W ->>+ M: Send (markdown)
M -->>- W: Reply
W -->>- L: Reply
Note over L,S: EXECUTE phase — editorial (10 editorial-leads)
L ->>+ E: Delegate (structural / fact / flow / voice / copy pass)
E ->>+ S: Send (specialists, in batches of 3)
S -->>- E: Reply
E -->>- L: Reply
Note over L,P: WORK ratification
L ->>+ P: AskQuestion (WORK ratify)
P ->> H: dialog
H -->> P: reply
P -->>- L: RESPONSE Ratified
L -->> H: DONE
The shaded blocks group the CfA phases. AskQuestion calls flow to the proxy; some terminate autonomously (the first one), the rest go through human dialog before the proxy's RESPONSE returns to the caller. Delegate calls open dispatch threads to workgroup-leads; Send calls fan out from the workgroup-leads to specialists. Reply edges go back up the same channel — the thread is bidirectional.
Diagram 2 — Writing-phase concurrency, joke-book-lead's view
Eight writing-leads dispatched, never more than three concurrent. Times below are seconds from session start (t=0 = 05:53:34 UTC).
sequenceDiagram
autonumber
participant L as joke-book-lead
participant W1 as writing-lead<br/>:7a51 (Ch1 anchor)
participant W2 as writing-lead<br/>:130e
participant W3 as writing-lead<br/>:1d7d
participant W4 as writing-lead<br/>:908a
participant W5 as writing-lead<br/>:283d
participant W6 as writing-lead<br/>:07d3
participant W7 as writing-lead<br/>:d5c7
participant W8 as writing-lead<br/>:e2b8
Note over L: t=0 — Ch1 anchor first<br/>(serialized, voice probe)
L ->>+ W1: Delegate (Ch1)
W1 -->>- L: Reply (t=2623)
Note over L,W4: t=2805–5136 — first fan-out batch (max 3 concurrent)
L ->>+ W2: Delegate (t=2805)
L ->>+ W3: Delegate (t=2859)
L ->>+ W4: Delegate (t=2920)
Note over L,W4: 3 active children
W3 -->>- L: Reply (t=4803)
W2 -->>- L: Reply (t=4868)
W4 -->>- L: Reply (t=5136)
Note over L,W7: t=5243–7023 — second fan-out batch (max 3 concurrent)
L ->>+ W5: Delegate (t=5243)
L ->>+ W6: Delegate (t=5421)
L ->>+ W7: Delegate (t=5497)
Note over L,W7: 3 active children — cap hit, no 4th opens
W5 -->>- L: Reply (t=6928)
W7 -->>- L: Reply (t=7023)
W6 -->>- L: Reply (t=8369)
Note over L,W8: t=25160 — late drafting pass after editorials
L ->>+ W8: Delegate (t=25160)
W8 -->>- L: Reply (t=26282)
Reading: the lead opened the Ch1 anchor first (sequential — Ch1 is the voice probe per the plan), then opened the next three Delegate threads in a 115-second burst (W2 → W3 → W4), waited for them all to settle, opened the next three (W5 → W6 → W7), waited again, then a single late W8. At no point did the joke-book-lead have more than three writing-lead children active simultaneously. The cap from §13 is observable in the activation pattern.
Diagram 3 — Voice-pass fan-out, editorial-lead's view
The same cap holds at the editorial-lead level. This editorial-lead (dispatch:44aba47d9149, voice pass) dispatched 8 voice-editors. They ran in three batches: 3, 3, 2.
sequenceDiagram
autonumber
participant E as editorial-lead<br/>:44ab (voice pass)
participant V1 as voice-editor<br/>:25ef
participant V2 as voice-editor<br/>:bc67
participant V3 as voice-editor<br/>:b005
participant V4 as voice-editor<br/>:e778
participant V5 as voice-editor<br/>:9b4d
participant V6 as voice-editor<br/>:f0cc
participant V7 as voice-editor<br/>:1866
participant V8 as voice-editor<br/>:8099
Note over E,V3: Batch 1 — t=16880–17416 (3 active)
E ->>+ V1: Send (chapter)
E ->>+ V2: Send (chapter)
E ->>+ V3: Send (chapter)
V3 -->>- E: Reply (t=17214)
V2 -->>- E: Reply (t=17344)
V1 -->>- E: Reply (t=17416)
Note over E,V6: Batch 2 — t=17462–17964 (3 active)
E ->>+ V4: Send
E ->>+ V5: Send
E ->>+ V6: Send
V6 -->>- E: Reply (t=17719)
V4 -->>- E: Reply (t=17876)
V5 -->>- E: Reply (t=17964)
Note over E,V8: Batch 3 — t=18027–18413 (2 active)
E ->>+ V7: Send
E ->>+ V8: Send
V7 -->>- E: Reply (t=18387)
V8 -->>- E: Reply (t=18413)
The pattern repeats across all three voice passes (3+3+2, 3+3+1, 3+3+2 = 23 voice-editors total). The fact-check pass at dispatch:2404788a7008 showed the same shape — 8 fact-checkers in 3+3+2 batches.
The per-parent cap of 3 from §13 is enforced everywhere — at the project-lead level (writing-leads, editorial-leads) and at the workgroup-lead level (voice-editors, fact-checkers). A fan-out target of 8 reduces to three batches of (3, 3, 2); the concurrent count never exceeds 3. This is the close-before-spark-more discipline from §13.
Closure is the lead's discretion
Two writing-leads (283d258761f4, d5c742adab3d) remained active on the bus when the session reached DONE. That's not a defect: closing a dispatch conversation is optional in CfA — the lead can close (which merges immediately) or leave the conversation open and rely on end-of-phase merge. Both writing-leads' work landed in the parent's worktree the same way through end-of-phase. 70 of 72 dispatches were explicitly closed; the other 2 were merged-without-close at phase boundary.