What
AGENTS.md P1 states the rule without qualification:
Fixtures must be captured from a real instance, never authored by hand. A hand-written fixture encodes an assumption and then defends it.
A provenance check written against the four byte-integrity-covered fixture directories reports 82 of 125 fixtures carry no provenance record. This is not a single-PR problem; it is the repo-wide state.
How it was measured
scripts/check-fixture-provenance.mjs (added alongside the new deterministic CI gates) scans the fixture directories already covered by check-fixture-byte-integrity.mjs and requires each fixture to carry or be named in a provenance record. It currently runs as REPORTING, not blocking, precisely because it fails today.
Note the check is a documented, bounded heuristic — it looks for a provenance mention, not a proof of capture. A fixture with a provenance line claiming a live capture that never happened would still pass. Treat 82 as a floor on the problem, not an exact count of hand-authored fixtures.
Why it matters
This is the highest-severity defect class in the review corpus: across 880 findings, "hand-authored fixture standing in for a captured one" was 86% P1 — the highest P1 share of any class except privacy. AGENTS.md P1 exists because the read pipeline reached ~15,500 lines and 445 passing tests against a simulator this repo wrote for itself: "it verified that Bridge agreed with Bridge."
Known constraint
Some of these cannot be captured today. #45, #213 and #293 are each blocked on unavailable live-Tally environments. So closing this fully is gated on lab access, not only on effort — which is an argument for recording provenance honestly (including authored test input) rather than for leaving the field absent.
Acceptance
- Every fixture in the covered directories carries a provenance record stating how it was produced, using honest values — a mixed record such as
{catalogue: captured, source_xml: authored test input, binding_dto: derived by the production parser and binder} is a valid and useful answer.
- Fixtures that are authored and cannot yet be captured are listed explicitly with the blocker.
check-fixture-provenance.mjs is promoted from REPORTING to BLOCKING once the backlog is cleared.
Origin
Raised while dispositioning the P1 review thread on #331 (scripts/fixtures/source-draft-capture-bindings.json). That specific fixture predates #331 and #331 in fact adds a provenance block to it; the finding was accepted as follow-up against this issue rather than blocking the wrong-ledger binding fix in #329.
What
AGENTS.mdP1 states the rule without qualification:A provenance check written against the four byte-integrity-covered fixture directories reports 82 of 125 fixtures carry no provenance record. This is not a single-PR problem; it is the repo-wide state.
How it was measured
scripts/check-fixture-provenance.mjs(added alongside the new deterministic CI gates) scans the fixture directories already covered bycheck-fixture-byte-integrity.mjsand requires each fixture to carry or be named in a provenance record. It currently runs as REPORTING, not blocking, precisely because it fails today.Note the check is a documented, bounded heuristic — it looks for a provenance mention, not a proof of capture. A fixture with a provenance line claiming a live capture that never happened would still pass. Treat 82 as a floor on the problem, not an exact count of hand-authored fixtures.
Why it matters
This is the highest-severity defect class in the review corpus: across 880 findings, "hand-authored fixture standing in for a captured one" was 86% P1 — the highest P1 share of any class except privacy.
AGENTS.mdP1 exists because the read pipeline reached ~15,500 lines and 445 passing tests against a simulator this repo wrote for itself: "it verified that Bridge agreed with Bridge."Known constraint
Some of these cannot be captured today. #45, #213 and #293 are each blocked on unavailable live-Tally environments. So closing this fully is gated on lab access, not only on effort — which is an argument for recording provenance honestly (including
authored test input) rather than for leaving the field absent.Acceptance
{catalogue: captured, source_xml: authored test input, binding_dto: derived by the production parser and binder}is a valid and useful answer.check-fixture-provenance.mjsis promoted from REPORTING to BLOCKING once the backlog is cleared.Origin
Raised while dispositioning the P1 review thread on #331 (
scripts/fixtures/source-draft-capture-bindings.json). That specific fixture predates #331 and #331 in fact adds a provenance block to it; the finding was accepted as follow-up against this issue rather than blocking the wrong-ledger binding fix in #329.