---
"@remnic/core": patch
---

Stop superseded AI Review Gate runs from permanently blocking ruleset merges (issue #2147). Branch rulesets evaluate a required status-check name against the check suites on the head SHA, so a suite whose latest `ai-reviewers` run concluded `cancelled` pins the required context red forever - dead suites never re-evaluate. The gate's self-supersession path now posts an explicit `neutral` check-run for the required context on the SHA it was triggered for (via `checks: write`), best-effort so a fork PR's read-only token cannot fail the job. A dedicated `AI Review Gate Neutralizer` workflow (`workflow_run`) covers runs cancelled by concurrency before they ever start, where the in-job path cannot reach: when a gate run COMPLETES with a positive verdict, it posts a `neutral` `ai-reviewers` check-run from the base-repo context (writable token, so fork PRs work) to clear the OLDER `cancelled` suites on that same head+PR that the fresh verdict superseded. Anchoring on a completed positive verdict means a manual or infrastructure cancellation never becomes a free pass and the neutral can never mask a `failure`. `check-unsticker` reruns at most one cancelled gate suite per sweep (the gate's per-PR concurrency group admits only one queued rerun) as a backstop, while preserving the in-flight `gateActive` guard and the review-thread guard's missing concurrency group. Evaluator logic in `scripts/ai-review-gate.mjs` is unchanged (imported at base SHA as a security invariant).
