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.
Test: branch-per-ticket over a series of iterations — naming, isolation, merge, hygiene
goal
Prove the pattern over successive iterations: (1) every code-editing ticket dispatched creates a branch named exactly for it (ticket/<id>[-slug]); (2) work is committed ON THE BRANCH, never directly on base; (3) on DONE the branch merges cleanly and the ticket journal records create+merge; (4) two+ pairs run in PARALLEL worktrees with ZERO cross-ticket conflict; (5) after merge the worktree is reaped and the base tree is clean (#213/#216); (6) a conflicting merge keeps the ticket open and loses nothing. Adversary: force two tickets that touch the SAME file on different branches -> the second merge must surface the conflict, not silently clobber. Run across several dispatch iterations to confirm stability. Gated on the refactor.
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