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: congruency-go DECOMPOSER — enumerate every unit (31 tags + 62 routes + handlers/helpers) and file a SMALL per-unit iterative build per unit
goal
METHODOLOGY CORRECTION (operator): dozens of SMALL iterative builds beat a few big tournaments — anything under ~50 units for congruency-go will fail (measured: 31 tags + 62 api_routes + page handlers + DB helpers + auth = ~100 units). So DO NOT port a whole layer in one tournament. This decomposer (reuse the factory pattern #201) enumerates EVERY unit and files ONE SMALL build ticket per unit: e.g. 'Port tag TicketList to Go, byte-equivalent vs the PHP render against the same DB', 'Port route agent.roster to Go, byte-identical JSON vs rest.php'. Each unit ticket is SMALL, ITERATIVE (build -> equivalence-diff vs the PHP original for THAT unit -> iterate until identical), and individually settleable by a pair; competitive/tournament only where a unit genuinely benefits, not by default. Order units by the layer buckets (#224 db routes/helpers first -> #225 server paths -> #226 tags) so dependencies build first; batched + self-repopulating (#196) so ~100 tickets emit over scheduled runs, not one flood. Idempotent (never re-file a unit already ticketed). ACCEPTANCE: run on a subset -> one small equivalence-gated build ticket per enumerated unit, dependency-ordered, no dupes; a re-run files nothing new.
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