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.
Sweep of the #60 null-return class. tools/tostring_check.py flags __toString methods that can return non-string (no return, or a bare return of a NULL-initialized var). PREDICTION: flags exactly 3 (ClassLoader, CommandRegistry, AbstractDAO); literal ones (CommandTemplate/Redirect/DestroySession) + fixed Content pass. After init NULL->"" / add return "", checker=0, php -l clean, tagcheck 24/24, crawl broken<=1. [RESULT] count REFUTED (7, not 3 — checker beat manual): +CategoryList/ProductList/PriceList/PriceDAO. All 7 fixed (NULL-init->"", empty stubs->return ""); checker=0, php -l clean, gates green. The reusable tools/tostring_check.py is now a gate.
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