Skip to content

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

Merged
noahgift merged 5 commits into
mainfrom
agent/C0-4
Sep 13, 2026

Conversation

@noahgift

@noahgift noahgift commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

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: partial until 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 PASS over 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 prints REPORT ArmA scaling: c=1 only, no scaling measured, and an arm's silence is never turned into PASS. Multi-band output unchanged. --selftest rows arm_a_c1_only_not_pass (RED polarity, RED first at 7e4b9ee) and arm_a_multi_band_ok. Contract: an invariant under a_ratchet_compares_quantities and FALSIFY-PP-LLAMA-001-PERF-GATE-012 in contracts/pp-llama-001-perf-gate-v1.yaml (existing contract; README counts unchanged).

Acceptance, re-run by the orchestrator on c330894

A_i rc
bash scripts/perf_gate.sh --selftest — carries arm_a_c1_only_not_pass (expect=fail ok) and arm_a_multi_band_ok (expect=pass ok) 0
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.sh 0 each

Mutation — RED, then restored GREEN: the REPORT print site replaced by a no-op → arm_a_c1_only_not_pass BROKE ("fail but never said REPORT ArmA scaling: c=1 only, no scaling measured"); the silent-arm rule also demoted self_regress_fail and phase_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 it arm_a_self_regression — same silence, current name. Receipt for this PR itself: advisory, not produced (driver A1).

@noahgift
noahgift enabled auto-merge September 6, 2026 06:45
@github-actions

github-actions Bot commented Sep 6, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3007 head=8392df7278384c89d6a6bf0bc1edd37d7a9a1abd verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

…nly receipt and the gate still says VERDICT PASS (#2830)

Pmat-Ticket: PMAT-978
…y 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)

Pmat-Ticket: PMAT-978
…ing says so and is never read as PASS (invariant + FALSIFY-PP-LLAMA-001-PERF-GATE-012) (PMAT-978, #2893)

Pmat-Ticket: PMAT-978
@noahgift

noahgift commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto origin/main @ 3792afa3d (after G-11 #3020 landed). Dropped commit 9fe4bee2a (chore(roadmap): PMAT-978 kind:code label) — it wrote docs/roadmaps/roadmap.yaml, which G-11a now forbids in a row PR (DAG status is derived from receipts, not written by row PRs). The other four commits (RED test 7e4b9ee→989ad169d, fix c330894→a8426b269, contract 32bc134→fb59e06ac, receipt f14e19f→a7c8c0cd0) cherry-picked cleanly onto the new base with no conflicts.

Re-verified at HEAD (a7c8c0cd0):

  • bash scripts/perf_gate.sh --selftest → rc 0, 109/109 rows including arm_a_c1_only_not_pass (expect=fail ok) and arm_a_multi_band_ok (expect=pass ok)
  • bashrs lint scripts/perf_gate.sh → 0 errors
  • pv validate contracts/pp-llama-001-perf-gate-v1.yaml → 0 errors, 0 warnings
  • bash scripts/check_contract_test_binding.sh → rc 0, baseline unchanged
  • bash scripts/check_row_pr_write_set.sh --base origin/main --head HEAD --branch agent/C0-4 → PASS, 4 changed paths, no shared file touched

@noahgift

noahgift commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Auto-merge armed (already was). Currently BLOCKED in the queue on two unrelated fleet issues: #3028/PR #3030 (roadmap.yaml duplicate ids redding ci / security on every PR) and a fleet-wide gap in scripts/pmat_bin.sh's pinned analyser on some runner hosts (paiml/infra#468). Not this PR's diff — will merge once both clear.

@noahgift
noahgift disabled auto-merge September 7, 2026 11:53
@noahgift noahgift added this to the 0.68.0 milestone Sep 10, 2026
@noahgift noahgift added the needs-rebase mergeStateStatus DIRTY: conflicts with main; rebase before it can enter the queue label Sep 11, 2026
check_roadmap_diff_additive.sh reported base id(s) missing at head: this branch forked before they landed on main, and a plain update takes one side of the file whole. Resolved as main's roadmap plus this branch's own new entries, each at its sorted slot among same-prefix peers. The other three roadmap guards pass on the result.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift
noahgift enabled auto-merge September 13, 2026 06:24
@noahgift
noahgift added this pull request to the merge queue Sep 13, 2026
Merged via the queue into main with commit 6157d19 Sep 13, 2026
18 of 19 checks passed
@noahgift
noahgift deleted the agent/C0-4 branch September 13, 2026 08:11
@noahgift noahgift mentioned this pull request Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-rebase mergeStateStatus DIRTY: conflicts with main; rebase before it can enter the queue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant