Skip to content

PMAT-1098: the release's bashrs gate runs on every PR — it stopped the 0.67.0 train three times on findings no PR check saw (#3196) - #3199

Merged
noahgift merged 3 commits into
mainfrom
PMAT-1098-bashrs-pr-gate
Sep 13, 2026
Merged

noahgift merged 3 commits into
mainfrom
PMAT-1098-bashrs-pr-gate

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

Draft until #3198 merges: main currently carries the two findings #3198 fixes, so this gate is RED on main by construction (that is the proof it discriminates), and a queue build before #3198 would fail on them.

The pre-publish dogfood's bashrs row stopped the 0.67.0 train three times in one day, each time on findings a PR had merged and nothing checked:

time findings introduced by fixed by
17:33Z 9 #3115, #3127 #3188
20:58Z 2 #3187 #3194
22:48Z 2 #3068 #3198

scripts/check_bashrs_gate.sh is the same gate, on the PR: same git ls-files surface with the Linted N+1 receipt asserted, same DET002 positive control (silent tool = exit 2, never a pass), same SEC/DET/IDEM code filter with the bashrs#226 SC10xx class suppressed. Wired as one step of guard-cargo, which gate already requires. 3 s over 294 files.

Proofs

dogfood.sh is untouched here; consolidating its inline row onto this script is the follow-up in #3196.

Refs #3196, #3198, PMAT-1098.

🤖 Generated with Claude Code

…e 0.67.0 train three times on findings no PR check saw (#3196)

dogfood.sh's bashrs row is the only place the SEC/DET/IDEM filter ran, so a PR could add a finding freely and the train paid for it at the pre-publish gate: 17:33Z (#3115, #3127 -> fixed by #3188), 20:58Z (#3187 -> #3194), 22:48Z (#3068 -> #3198). Three fixes round the merge queue while the tag waited.

scripts/check_bashrs_gate.sh is that gate lifted out where the finding is cheap: same surface enumeration (git ls-files, N+1 receipt asserted), same positive control (a DET002 sentinel that must fire or the run is ENV/2), same code filter. Its --self-test carries a drift gate that greps dogfood.sh for the identical rule tuples, a classifier case table, a must-RED fixture repo built from the incident's exact construct (a --repo argument parsed into a variable and used in a subshell cd; cd "$1" alone is not flagged, measured), its must-GREEN twin carrying #3198's validation, and a vacuity case (gitignored script -> exit 2, named).

Measured on real trees: main @ 0b6f94c -> exit 1, names cuda_rust_fleet_check.sh:129 DET002 and :201 SEC010; #3198's tree -> exit 0. 3 s over 294 files. Wired as a step of guard-cargo, which gate already requires. dogfood.sh is untouched in this change; consolidating its inline row onto this script is the follow-up named in #3196.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

Proofs repeated on the fleet's pinned bashrs 7.0.1 (tools.toml; the runner log says pinned 7.0.1 found 7.0.1), built into a scratch root — everything above had run on 7.3.0:

proof 7.0.1
--self-test 11/11 OK, SELF-TEST PASS
main @ 0b6f94c exit 1: cuda_rust_fleet_check.sh:129 DET002, :201 SEC010
#3198's tree exit 0, 294 files, receipt matched
the script under its own filter 0 errors
check_shell_lint_ratchet.sh with the new file present PASS (ratcheted)

Still draft until #3198 merges; the gate is RED on main by construction until then.

@github-actions

github-actions Bot commented Sep 13, 2026

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3199 head=d064a45c6706e407db9e99737b1bd695f7919d71 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.

@noahgift
noahgift marked this pull request as ready for review September 13, 2026 07:09
@noahgift
noahgift enabled auto-merge September 13, 2026 07:09
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 added this pull request to the merge queue Sep 13, 2026
Merged via the queue into main with commit 17f180e Sep 13, 2026
18 of 19 checks passed
@noahgift
noahgift deleted the PMAT-1098-bashrs-pr-gate branch September 13, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant