fix(C0-4): perf_gate.sh — an Arm A that measured nothing on a c=1-only receipt says so (REPORT ArmA scaling: c=1 only, no scaling measured) and the gate never turns an arm's silence into VERDICT PASS; selftest rows both polarities (PMAT-978, #2893, #2830) - #3007
Conversation
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
|
Rebased onto Re-verified at HEAD (
|
|
Auto-merge armed (already was). Currently |
PP-066 DAG row C0-4 (issue #2893; defect #2830; epic #2873; ticket PMAT-978; owner perf-gate; receipt
docs/audits/impl-PMAT-978-receipt.md,status: partialuntil merged).The defect (#2830, observed on lambda): on a receipt whose only band is c=1, Arm A (
arm_a_self_regression, PP-31) walks every print and fires none — c=1 is the denominator — and the gate reads the silence as "nothing failed":VERDICT PASSover a measurement that never happened.What lands: every Arm A line goes through one
say()that records the arm spoke; when it measured nothing it printsREPORT ArmA scaling: c=1 only, no scaling measured, and an arm's silence is never turned into PASS. Multi-band output unchanged.--selftestrowsarm_a_c1_only_not_pass(RED polarity, RED first at 7e4b9ee) andarm_a_multi_band_ok. Contract: an invariant undera_ratchet_compares_quantitiesandFALSIFY-PP-LLAMA-001-PERF-GATE-012incontracts/pp-llama-001-perf-gate-v1.yaml(existing contract; README counts unchanged).Acceptance, re-run by the orchestrator on c330894
bash scripts/perf_gate.sh --selftest— carriesarm_a_c1_only_not_pass(expect=fail ok) andarm_a_multi_band_ok(expect=pass ok)bashrs lint scripts/perf_gate.sh(0 errors) ·pv validate·pv lint·check_contract_test_binding.sh·check_contract_enforcement.sh·check_no_claim_literals.sh·check_roadmap_diff_additive.sh·check_readme_claims.shMutation — RED, then restored GREEN: the REPORT print site replaced by a no-op →
arm_a_c1_only_not_passBROKE ("fail but never said REPORT ArmA scaling: c=1 only, no scaling measured"); the silent-arm rule also demotedself_regress_failandphase_guard_a_merge— an arm that says nothing cannot PASS anything. Restored → every row green.Recorded: the card names
arm_a_scaling, PP-31 renamed itarm_a_self_regression— same silence, current name. Receipt for this PR itself: advisory, not produced (driver A1).