diff --git a/AGENTS.md b/AGENTS.md index 3e9bbebd3b..058ee5a201 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -349,15 +349,15 @@ Even inside your own worktree, operate defensively: **Green means the gate-carrying jobs' `conclusion` is `success`** — not "no failure yet"; `in_progress` is not a pass. Arming a red PR does not queue it, it hides it: - every poll then misreads "not on `main` yet" as "queued". Always read *two* things - when checking a landing: the queue branch **and** `origin/main`. And **the queue - enforces only the required set** — **Lint & Repo Gates** (the whole `check:*` gate - family, formerly published under a name that described only one of its steps) and - **TypeScript Type Check** block by maintainer decision (2026-08-07); everything else - is advisory and rides through, and an advisory red that lands rides `main`'s merge ref - into every following PR until stanched. A required context is matched by check-run - name, so a job rename detaches its gate silently — treat those names as contract. - That is why "arm only on green" is a rule, not a formality. + every poll then misreads "not on `main` yet" as "queued". Always read *two* things: + the queue branch **and** `origin/main`. And **the queue enforces only the required + set** — six contexts block by maintainer decision (2026-08-07, extended 2026-08-09): + `Lint & Repo Gates` (all `check:*` gates), `TypeScript Type Check`, `Test Core`, + `Dogfood Regression Gate`, `Build Core` and `Temporal Conformance (live PG + MySQL)`. + A check outside those six is advisory and rides through, and an advisory red that + lands rides `main`'s merge ref into every later PR until stanched. A required context + is matched by check-run name, so a rename detaches its gate silently — treat those + six names as contract. That is why "arm only on green" is a rule, not a formality. **Re-arm awareness** — none of these is a reason to avoid the queue; all are reasons to confirm a PR is still *in* it: a red queue build **ejects** your entry and drops diff --git a/scripts/check-required-contexts.mjs b/scripts/check-required-contexts.mjs index cc3e83a060..789caa888d 100644 --- a/scripts/check-required-contexts.mjs +++ b/scripts/check-required-contexts.mjs @@ -427,9 +427,21 @@ export const REQUIRED_CONTEXTS = [ export const INSTRUCTION_SURFACES = [ { // The merge-queue rule ("the queue enforces only the required set"), - // naming both blocking contexts. States the required set ⇒ mustName. + // naming every blocking context. States the required set ⇒ mustName. + // Widened to all six by the #9677 ruling (2026-08-18): the sentence had + // named two and called the other four advisory-and-rides-through, which + // is the misclassification that puts a PR into the queue to be ejected. + // The full set is pinned here so the corrected sentence cannot rot back + // — a rename in ANY of the six now reddens this gate instead. file: 'AGENTS.md', - mustName: ['Lint & Repo Gates', 'TypeScript Type Check'], + mustName: [ + 'Lint & Repo Gates', + 'TypeScript Type Check', + 'Test Core', + 'Dogfood Regression Gate', + 'Build Core', + 'Temporal Conformance (live PG + MySQL)', + ], }, { // The review seat's gate-clearance step: confirm both jobs' `conclusion`