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.
Test: resolver reaches the same source by every identifier; dedup clusters all copies with no false-merge
goal
Prove: (1) a known duplicated function is returned by name, file-name, sha256, git hash, similarity, and ticket ref — identical match set each way; (2) the dedup engine clusters ALL copies of a seeded module across repos into one group, picks a defensible canonical, and does NOT false-merge two genuinely-different functions that merely share a name. Adversary: two same-named but semantically different functions MUST stay in separate clusters.
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