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 omni export-git / import-git — reversible git round-trip of the store (spec: docs/export-git-spec.md)
goal
Implement the two inverse commands per docs/export-git-spec.md (committed in omni-git). export-git writes the whole store (objects+manifests verbatim, omni-sha256 in the tree path, OMNI-STORE.json metadata) into a real git repo as a commit on branch omni-store; import-git rebuilds/merges a store from that git, VERIFYING every object on import (put_blob re-hash), additive+idempotent. Reuse get_blob_to_path/put_file (streamed, OMNI_CHUNK_BYTES-capped), manifest_shas/blobs_referenced_by, fsck as the post-import gate. Ship the 5 acceptance pins with RED negative controls (round-trip fidelity, verify-on-import, idempotency, bounded memory, git-guard interplay). Homes: GitHub dudezilla/omni-git + GitLab omni-git-entry-claude (kept consistent). Resolve open questions Q1-Q4 in the spec. Related #497 (streaming, which this reuses).
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