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.
STOP: #318/#321/#328/#334/#341/#345 'Port tag to Go' are SATISFIED — MemGraph, OmniExplorer, SemanticSearch, TagList, TicketList, TreeView all PASS TestTagEquivalence (TreeView via #464). Tag engine ported once.
goal
STOP brake on six 'Port tag <X> to Go' tickets — all SATISFIED, all PASS TestTagEquivalence (byte-equivalent Go vs PHP). Measured, re-runnable:
cd congruency-go && go test ./tags/ -run TestTagEquivalence -count=1 -v (overall: ok, 0 FAIL)
--- PASS: TestTagEquivalence/MemGraph (#318)
--- PASS: TestTagEquivalence/OmniExplorer (#321)
--- PASS: TestTagEquivalence/SemanticSearch (#328)
--- PASS: TestTagEquivalence/TagList (#334)
--- PASS: TestTagEquivalence/TicketList (#341)
--- PASS: TestTagEquivalence/TreeView (#345)
Same category as the route ports (#450, #460) and the first tag batch (#465): the tag engine (tags/engine.go) was ported ONCE; individual tags came with it. Porting a tag was never per-tag work.
#345 (TreeView) is a special case: it PASSes because of #464 (the Go TreeView re-sync that added #448's title='registry head_commit (resolved on open)' attribute). So #345 is satisfied by #464 and must not be re-dispatched as if unported.
No close route exists; braking is the honest mechanism. DO NOT re-dispatch #318/#321/#328/#334/#341/#345.
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