You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
verify-satisfied: PR-minus-base — check 4 (introduced alerts) + inherited vs new red checks #117
squabble verify-satisfied (stacked on #114) evaluates D1 checks 1–3 and 5–7. Two judgements it makes are still not PR-minus-base, and both need the same second read (the base ref's head), so they belong together.
1. Check 4 — code-scanning alerts the PR introduces
Today it is a note: "code-scanning alerts introduced by this PR are NOT yet evaluated". Requiring every alert on the PR ref would recreate the deadlock recorded at standards/.github/workflows/hypatia-scan-reusable.yml:211-214 (147 open PRs across 91 repos held by 1,777 alerts, none introduced by the PR they blocked). Only the set difference may block.
2. A red non-required check: inherited or new?
Today a red non-required check is agent work until the PR body names it with an issue link (the 2026-09-15 ruling in machine-readable form). A red that is equally red on the base is inherited; it should be a note, not agent work, without the author having to write a line. (The body acknowledgement still covers a new red the author chooses to defer.)
Acceptance criteria
One base-ref read shared by both judgements. No second implementation.
Positive control first: launch-scaffolder#46 must see its hypatia/content_patterns/hardcoded_tmp alert. Pin empirically which ref carries PR alerts (refs/pull/N/merge vs /head, or the alerts API pr= parameter). A gate reading the wrong ref reads an empty set and passes vacuously.
Negative control: a PR introducing no alerts, in a repo with open alerts on main, passes check 4.
An alert new on the PR is cleared by dismissal-with-reason or a linked issue. Inherited alerts never block.
A red non-required check also red on the base's latest completed run is a note. The cicd-squabbler#114 rust-ci case (red on main b12657f) is the fixture.
Each rule has a killed mutant.
Also accept the acknowledgement in a PR comment, not only the body (a body is easy to overwrite; comments are append-only history).
Activity
feat: squabble verify-satisfied — the definition of done for a PR (ex…
fix(verify): report unverified commits under required_signatures (#129)