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.
User: the dispatch agent should be a Gemma model (NOT Claude), text interface, able ONLY to (1) spawn claude worker instances and (2) view tickets — nothing else. Claude relegated to tool-using workers (code-wrapper). Research: (a) run Gemma locally (ollama is installed) with tool-calling; (b) a hardened tool surface exposing ONLY ticket.queue/ticket.* reads + a spawn-worker tool, enforced OUT of the model (allowlist), so a jailbroken model still can't exceed it; (c) map onto the existing pair_loop/dispatch. DELIVERABLE: design + a spec for the restricted dispatcher.
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