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: per-unit test harness — harvest shadow_forge tests, enforce >=10 per element, run the suite on every refactor (PHP + Go)
goal
Implement the standard #std. (1) HARVEST: pull the reusable tests from shadow_forge — parse the 37 tooling/congruencey-tests/*-shadow.py suites + shadow_forge/shadow_index.db, map each test to the functional unit it exercises (tag/route/handler). (2) COVERAGE: for each of the #230 units, count harvested tests; where <10, generate the missing behavior tests (edge/error/injection/recursion-parity). (3) RUN: a single runner executes a unit's tests against a TARGET (php|go) via the request/response contract, so the same tests gate both — the equivalence check IS the tests passing identically on both. (4) GATE: wire into each per-unit build's acceptance and into the mint/refactor flow so it runs on EVERY refactor. ACCEPTANCE: run the harvester -> every unit maps to its shadow-derived tests, gaps are filled to >=10, and the runner shows the suite green against PHP and (per Go unit as it lands) green against Go; a unit with <10 tests or a failing test cannot settle.
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