chore(settings): allowlist the merge gate, six suites, shellcheck and gh reads - #607
chore(settings): allowlist the merge gate, six suites, shellcheck and gh reads#607BaseInfinity wants to merge 2 commits into
Conversation
… gh reads The auto-mode classifier refused `scripts/merge-pr.sh` outright, so a merge cleared by two reviewers could not be executed from the session that earned the clearance. Its own denial message names a Bash permission rule as the remedy; this is that rule. The script still enforces every clearance check — the entry authorises invoking the gate, not bypassing it. The rest come from a frequency scan of the 50 most recent session transcripts: six test suites that were being run without an entry, shellcheck, and the gh read subcommands (issue/pr/run/repo) that are not auto-allowed. Deliberately NOT added: python3, bash and codex exec (arbitrary code execution); anything mutating; and the read-only commands Claude Code already auto-allows, where an entry buys nothing.
|
Refreshed this, then falsified my own premise and dropped it. Recording why, because the finding is more useful than the PR was. The premise does not reproduceThis PR exists because the auto-mode classifier refused That no longer reproduces. Today I ran So the one entry I was calling PROVEN NEEDED is not currently needed, and every other entry in the refresh was already labelled precautionary. That leaves 27 entries with zero demonstrated need, which is config churn, not a change. How I caught it, and why late
I had written a review prompt asking a reviewer to falsify whether What the refresh did find, worth keepingIndependent of the premise, #607 as written had defects:
One genuinely reusable check fell outAllowlist entries name real paths, so they can go stale when a suite is renamed or deleted — a second source of truth to reconcile against, which is exactly the case DispositionClosing is the maintainer's call. My recommendation: close it. If the classifier refuses |
Why
The auto-mode classifier refused
scripts/merge-pr.shoutright, so a merge cleared by two reviewers could not be executed from the session that earned the clearance. The classifier's own denial message names a Bash permission rule as the remedy; this is that rule.The entry authorises invoking the gate, not bypassing it.
merge-pr.shstill enforces every check it always did — CI green, no test deletions, no version bump, a CERTIFIED clearance artifact at round >= 2 bound to the head SHA, and a byte-match of itself againstorigin/main.The rest
From a frequency scan of the 50 most recent session transcripts: six test suites that were being run without an entry,
shellcheck, and theghread subcommands (issue/pr/run/repo) that are not auto-allowed.Deliberately NOT added
python3(345 uses),bash,codex exec— a wildcard on any of these is arbitrary code executiongit add/push/commit/checkout/stash,cp,chmod,mkdir,curlgrep,sed,cat,ls,git status/diff/log,gh apiGET — where an entry buys nothingNothing removed, nothing reordered.
denyandaskuntouched.Scope note
Repo-local only.
scripts/merge-pr.shdeliberately does not ship, so no consumer inherits either the script or this entry. A proposal to document the allowlist requirement inAI_SETUP_LANES.mdwas dropped on both reviewers' ruling: it would describe a script consumers never receive, and a classifier that can change under us.