Found by the S1 post-hoc quorum of #3669 (sonnet lane, verified by apr-features).
scripts/parity_receipt_denominator.sh has three modes: verify (no args), --print, and --self-test. On main, CI runs only --self-test (.github/workflows/ci.yml:1234 and :1258). The verify mode is not run by any workflow, Makefile target, or script (git grep on origin/main). Verify mode is the one that recomputes the receipt count from the tree and compares it with evidence/parity/EXPECTED_RECEIPTS.
So the defect #3577 exists to catch goes unchecked. A receipt added or removed without bumping EXPECTED_RECEIPTS passes CI, because the self-test only runs synthetic fixtures.
Today the verify mode passes on a git archive origin/main snapshot: 7 receipts, and EXPECTED_RECEIPTS says 7. Nothing is broken right now; the guard just never runs.
Fix: add a bash scripts/parity_receipt_denominator.sh (verify) line next to the --self-test line. This is a workflow edit, so it needs a cop check-in and a 3/3 quorum. Also plant a mutation (EXPECTED_RECEIPTS 7 -> 8) to prove the job goes red.
Found by the S1 post-hoc quorum of #3669 (sonnet lane, verified by apr-features).
scripts/parity_receipt_denominator.shhas three modes: verify (no args),--print, and--self-test. Onmain, CI runs only--self-test(.github/workflows/ci.yml:1234and:1258). The verify mode is not run by any workflow, Makefile target, or script (git grepon origin/main). Verify mode is the one that recomputes the receipt count from the tree and compares it withevidence/parity/EXPECTED_RECEIPTS.So the defect #3577 exists to catch goes unchecked. A receipt added or removed without bumping
EXPECTED_RECEIPTSpasses CI, because the self-test only runs synthetic fixtures.Today the verify mode passes on a
git archive origin/mainsnapshot: 7 receipts, and EXPECTED_RECEIPTS says 7. Nothing is broken right now; the guard just never runs.Fix: add a
bash scripts/parity_receipt_denominator.sh(verify) line next to the--self-testline. This is a workflow edit, so it needs a cop check-in and a 3/3 quorum. Also plant a mutation (EXPECTED_RECEIPTS 7 -> 8) to prove the job goes red.