Every ticket as the root of its provenance graph — goal, patch, approval, runs and (as the ticket-class build lands) mandate, manifestations, guarantees, journey, artifacts and children. Rendered through the <<<TicketGraphList>>> tag.
Build: memory-minimization + anti-drift — re-anchor the dispatcher role every turn; state from ledger not context
goal
Prevent the long-run drift into general-purpose responding. Mechanism: a Claude Code HOOK (UserPromptSubmit / session-level) that re-injects the dispatcher directive each turn ('You are the dispatcher. You do not answer as a general agent; you read the queue via dispatch-tools and dispatch. You do not write code.') + a minimal agent profile that carries little standing context. The dispatcher rebuilds situational awareness each turn from the ledger (via b_tools), NOT from accumulated memory — so context growth/degradation cannot cause it to forget its role. ACCEPTANCE: after a long, noisy session the dispatcher still responds ONLY as a dispatcher (measured: it dispatches, does not answer off-role, does not write code); role adherence does not decay with context length.
patch
none
approval
unapproved
runs
no runs recorded
mandate (clauses)
not yet recorded — lands with the ticket-class build
manifestations
not yet recorded — lands with the ticket-class build
guarantees
not yet recorded — lands with the ticket-class build
journey (blunders & successes)
not yet recorded — lands with the ticket-class build
artifacts (forge)
not yet recorded — lands with the ticket-class build