Purpose
Parent tracking issue for a family of spec-precision gaps in the provenance/attestation chain surfaced by implementation-drift review: what a frame's stable identity means (#186), what bytes a provenance digest actually covers (#183), and what an attestation's signature actually authenticates (#185). All three sit on the same load-bearing path — a frame's (provider id, frame id, content_digest) triple, the range grammar F5 digests, and the attestation preimage built on top of both — and each is a case where the reference implementation has silently picked an answer the spec never wrote down. Grouped together because a maintainer decision on any one interacts with the others: the attestation preimage in #185 already names the identity choice from #186, and the range grammar in #183 feeds the digest that #185's commitment covers.
Sub-issues
Acceptance checklist
Risks + mitigations
Each sub-issue needs a maintainer decision before a fix can land — a normative SPEC.md addition, and in one case (#185) a possible new major family (contextgraph/2). The risk is scope creep: land the documented decision plus minimal enforcement per issue, not a broader redesign. No urgent production breakage is currently known to depend on these; treat as pre-1.0-freeze hardening.
Rollback
N/A — this epic tracks work, it does not itself change code.
Purpose
Parent tracking issue for a family of spec-precision gaps in the provenance/attestation chain surfaced by implementation-drift review: what a frame's stable identity means (#186), what bytes a provenance digest actually covers (#183), and what an attestation's signature actually authenticates (#185). All three sit on the same load-bearing path — a frame's
(provider id, frame id, content_digest)triple, therangegrammar F5 digests, and the attestation preimage built on top of both — and each is a case where the reference implementation has silently picked an answer the spec never wrote down. Grouped together because a maintainer decision on any one interacts with the others: the attestation preimage in #185 already names the identity choice from #186, and therangegrammar in #183 feeds the digest that #185's commitment covers.Sub-issues
provider idis ambiguous across three surfacesissued_at/attester_idare outside the signed preimage, undocumentedrangethe spec never defines a grammar forAcceptance checklist
Risks + mitigations
Each sub-issue needs a maintainer decision before a fix can land — a normative SPEC.md addition, and in one case (#185) a possible new major family (
contextgraph/2). The risk is scope creep: land the documented decision plus minimal enforcement per issue, not a broader redesign. No urgent production breakage is currently known to depend on these; treat as pre-1.0-freeze hardening.Rollback
N/A — this epic tracks work, it does not itself change code.