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: the universal resolver — auto-detect identifier type, fan out to every backing index, return one normalized match collection
goal
Implement the resolver (CLI + MCP tool) per the spec: detect the identifier kind, dispatch to the right index (omni-git occ/blob, git object db across bare repos, uuid/string index, #190 similarity, ticket_works/memgraph), MERGE results into one normalized collection {repo, path, line-range, identifier-kind, associated tickets, score}, de-overlapped. Reuse omni-git (49MB) + the #189 vector index; do NOT rebuild. ACCEPTANCE: the SAME piece of duplicated source is reachable by its name, its file-name, its content sha256, its git blob hash, and by similarity — all resolve to the same match set.
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