Skip to content

Commit f2f686f

Browse files
docs(charter): code_scanning ruleset-tool-mismatch = flagship v0.1 squabbler move (#10)
Adds the CodeQL-vs-Hypatia/Scorecard `code_scanning` ruleset deadlock to the v0.1 fight playbook as the **flagship** move. ## Why A branch ruleset's `code_scanning` rule lists a tool in `code_scanning_tools` that never uploads a per-PR SARIF analysis (Hypatia = gated via a status-check context, not a code-scanning upload; Scorecard = uploads 0 analyses estate-wide). The rule then waits forever, so every PR sticks on "Waiting for code scanning results from <tool> …". A permanent deadlock, not a transient failure. ## Why it's the flagship - **Confirmed + recurring in production** the week of 2026-06-30 — deadlocked PRs on `rsr-template-repo`, `standards`, `odds-and-sods-package-manager`, and others. - **Fully mechanical fix** with a verifiable satisfaction condition: trim `code_scanning_tools` to only tools that upload SARIF per PR (`CodeQL`); gate the rest via `required_status_checks` contexts. - Already diagnosed/remediated on hypatia itself — see hypatia #470 and #473. Canonical provisioner `git-scripts/scripts/branch-protection-apply.sh` is now CodeQL-only, but stale live `Base` rulesets persist. Docs-only change to `docs/CHARTER.adoc`. No code/scaffold changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 86d2ec5 commit f2f686f

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

docs/CHARTER.adoc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,24 @@ run). All moves *satisfy* the gate, never bypass it.
9090
. *Reusable-workflow pin drift* → re-pin stale/broken SHA to current.
9191
. *Modify/delete & rebase conflicts* → resolve, re-run.
9292
. *Check-name ground-truthing* → shared substrate for moves 1 and 2.
93+
. *Unsatisfiable `code_scanning` ruleset rule* (**flagship v0.1 move**) → a branch
94+
ruleset's `code_scanning` rule lists a tool in `code_scanning_tools` that never
95+
uploads a per-PR-merge-commit SARIF analysis for the repo — e.g. `Hypatia`
96+
(gated via a status-check context, not a code-scanning upload) or `Scorecard`
97+
(uploads 0 analyses estate-wide). The rule then waits forever on an analysis
98+
result that never arrives, so every PR sticks on "Waiting for code scanning
99+
results from <tool> for the commit …". Fully mechanical fix: trim
100+
`code_scanning_tools` down to only tools that genuinely upload SARIF per PR
101+
(`CodeQL`), and gate the others via `required_status_checks` contexts instead.
102+
+
103+
NOTE: This is a *confirmed, recurring, production* class — it deadlocked PRs on
104+
multiple estate repos the week of 2026-06-30 (`rsr-template-repo`, `standards`,
105+
`odds-and-sods-package-manager`, …). Already diagnosed and remediated on hypatia
106+
itself (see hypatia issues #470 and #473); the canonical provisioner
107+
`git-scripts/scripts/branch-protection-apply.sh` is now CodeQL-only, but stale
108+
live `Base` rulesets persist. Because the fix is purely list-trimming with a
109+
verifiable satisfaction condition, it is the ideal *first* squabbler move once
110+
the tool exists.
93111

94112
== Outcome contract
95113

0 commit comments

Comments
 (0)