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.
Spec: EVERY functional element of congruency needs >=10 tests, run on every refactor; maximally reuse shadow_forge
goal
TEST-DENSITY MANDATE. Every functional element of congruency — each of the ~100 units enumerated by the decomposer #230 (each tag, each api_route, each page handler, each DB helper, auth) — MUST have a MINIMUM of 10 tests. The tests are BEHAVIOR-level (input->output / request->response), so they run UNCHANGED against BOTH the PHP original and the Go port (#223) — they are the equivalence gate (#227) turned into a standing regression suite that runs on EVERY refactor. REUSE: as many tests as can be drawn from SHADOW_FORGE must be used — the 37 existing *-shadow.py suites (tooling/congruencey-tests/, named in install.json) and the shadow_forge/shadow_index.db corpus are the seed; harvest and adapt them per-unit rather than writing from scratch. Where a unit has <10 after harvest, GENERATE the remainder (edge cases, error paths, injection/recursion parity) to reach >=10. AMENDS #230 (each per-unit build ticket now requires >=10 passing tests as acceptance) and #227 (the equivalence harness runs this suite). ACCEPTANCE: no unit is 'done' with <10 tests; the full suite runs green on the PHP version today and is the pass-gate for each Go unit; shadow_forge tests are demonstrably reused, not duplicated.
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