Parent: #888
Sibling: #896 (the corpus itself)
Modality: implement-staff
Why this is a separate sub-issue
docs/spec/wire-profile.md §12.2 requires the positive corpus be generated by two encoders that "do not share a CBOR, DER, COSE, or canonicalization implementation and do not read each other's output."
Choosing two different libraries satisfies the wording. It does not satisfy the purpose. The mechanism exists to catch misreadings of the catalog, and a single author cannot provide that: one person reads §5.4's DER rules once, forms one interpretation, and both encoders inherit it. Where the catalog is ambiguous, both sides agree, the bytes match, and the corpus certifies a shared misreading as correct.
That is this repository's recurring defect — a check that passes while inspecting nothing — in a new costume. Two authors who never see each other's code is the real version of the guarantee.
Terms, which are the entire value of this arrangement
- Work only from
docs/spec/wire-profile.md at origin/v2.
- Do not read
v2/testbed/src/vectors/. Do not read impl-896's branch or PR. Do not communicate with impl-896.
- Choose CBOR, DER, and COSE implementations without knowing what the other side chose.
- Emit the §12.2 positive vectors as lowercase hex, one record per structure, in a machine-comparable form.
Where this lands
Its own branch, its own directory. Do not add to v2/testbed/src/vectors/ — that is impl-896's tree, and a shared path would both break blindness and create a merge conflict. This is a verification instrument first and an artifact second; whether it folds into the corpus later is a decision after the comparison, not before.
What happens next
The orchestrator holds both outputs and compares bytes. Byte equality is the evidence §12.2 demands. Any disagreement is a candidate catalog defect, not a bug in either encoder — the chapter is explicit: "A constant absent from the catalog is a catalog defect, never an implementation choice." Disagreements route to architect-892, which holds the reasoning behind every assignment.
Note
The catalog was corrected at ad6c10e5 (PR #901) after two contradictions against frozen chapters were found by cold reading. Work from origin/v2, never from a cached or older copy.
Status
planning
Parent: #888
Sibling: #896 (the corpus itself)
Modality: implement-staff
Why this is a separate sub-issue
docs/spec/wire-profile.md§12.2 requires the positive corpus be generated by two encoders that "do not share a CBOR, DER, COSE, or canonicalization implementation and do not read each other's output."Choosing two different libraries satisfies the wording. It does not satisfy the purpose. The mechanism exists to catch misreadings of the catalog, and a single author cannot provide that: one person reads §5.4's DER rules once, forms one interpretation, and both encoders inherit it. Where the catalog is ambiguous, both sides agree, the bytes match, and the corpus certifies a shared misreading as correct.
That is this repository's recurring defect — a check that passes while inspecting nothing — in a new costume. Two authors who never see each other's code is the real version of the guarantee.
Terms, which are the entire value of this arrangement
docs/spec/wire-profile.mdatorigin/v2.v2/testbed/src/vectors/. Do not readimpl-896's branch or PR. Do not communicate withimpl-896.Where this lands
Its own branch, its own directory. Do not add to
v2/testbed/src/vectors/— that isimpl-896's tree, and a shared path would both break blindness and create a merge conflict. This is a verification instrument first and an artifact second; whether it folds into the corpus later is a decision after the comparison, not before.What happens next
The orchestrator holds both outputs and compares bytes. Byte equality is the evidence §12.2 demands. Any disagreement is a candidate catalog defect, not a bug in either encoder — the chapter is explicit: "A constant absent from the catalog is a catalog defect, never an implementation choice." Disagreements route to
architect-892, which holds the reasoning behind every assignment.Note
The catalog was corrected at
ad6c10e5(PR #901) after two contradictions against frozen chapters were found by cold reading. Work fromorigin/v2, never from a cached or older copy.Status
planning