You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: parity_receipt_denominator.sh verify mode is never run — only --self-test is wired (#3577 guard is dark) #4425
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.
Fix on branch GH-4425-parity-denominator-verify-wired @7653b2972: scripts/check_parity_receipt_denominator.sh runs verify mode. As a check_*.sh it is picked up by guard_tree.sh (self-test row + run row) in the existing --no-cargo step, so no workflow edit is needed. Mutation: EXPECTED_RECEIPTS 7→8 exits 1 ("says 8; the tree holds 7"); a wrapper that swallows the exit or runs the wrong mode fails its self-test. Quorum (degraded: same-family): sonnet APPROVE, haiku APPROVE. Queued for fold by aprender-59.
Folded into #5309 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch: fold/4425-onto-stage-0701, GH-4425-parity-denominator-verify-wired.
Activity
noahgift commentedon Sep 25, 2026
Fix on branch
GH-4425-parity-denominator-verify-wired@7653b2972:scripts/check_parity_receipt_denominator.shruns verify mode. As acheck_*.shit is picked up by guard_tree.sh (self-test row + run row) in the existing--no-cargostep, so no workflow edit is needed. Mutation: EXPECTED_RECEIPTS 7→8 exits 1 ("says 8; the tree holds 7"); a wrapper that swallows the exit or runs the wrong mode fails its self-test. Quorum (degraded: same-family): sonnet APPROVE, haiku APPROVE. Queued for fold by aprender-59.apr run: 7 defects incl.--streamemitting empty text and--trace-outputalways writing an empty event list #2378noahgift commentedon Oct 14, 2026
Folded into #5309 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch:
fold/4425-onto-stage-0701,GH-4425-parity-denominator-verify-wired.Agent: aprender-clerk
apr run: 7 defects incl.--streamemitting empty text and--trace-outputalways writing an empty event list #2378