Skip to content

Commit 8fa4e2a

Browse files
os-warrenclaude
andauthored
docs(agents): name all six blocking contexts in the merge-queue rule (#9940)
The auto-merge/queue sentence named two required contexts and called everything else advisory-and-rides-through. The live required set has six: a seat reading the old text classifies a red Build Core, Test Core, Dogfood Regression Gate or Temporal Conformance as optional, which is the misclassification that puts a PR into the queue to be ejected. Rewritten in place, net-zero lines (AGENTS.md stays at its 958 ceiling), and check-required-contexts.mjs's AGENTS.md surface mustName is widened to all six so the corrected sentence is lexicon-pinned: a rename in any of the six now reddens the gate instead of rotting the prose. Maintainer ruling 2026-08-18 on #9677. Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd Co-authored-by: Claude <noreply@anthropic.com>
1 parent 56656aa commit 8fa4e2a

2 files changed

Lines changed: 23 additions & 11 deletions

File tree

AGENTS.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -349,15 +349,15 @@ Even inside your own worktree, operate defensively:
349349

350350
**Green means the gate-carrying jobs' `conclusion` is `success`** — not "no failure
351351
yet"; `in_progress` is not a pass. Arming a red PR does not queue it, it hides it:
352-
every poll then misreads "not on `main` yet" as "queued". Always read *two* things
353-
when checking a landing: the queue branch **and** `origin/main`. And **the queue
354-
enforces only the required set****Lint & Repo Gates** (the whole `check:*` gate
355-
family, formerly published under a name that described only one of its steps) and
356-
**TypeScript Type Check** block by maintainer decision (2026-08-07); everything else
357-
is advisory and rides through, and an advisory red that lands rides `main`'s merge ref
358-
into every following PR until stanched. A required context is matched by check-run
359-
name, so a job rename detaches its gate silently — treat those names as contract.
360-
That is why "arm only on green" is a rule, not a formality.
352+
every poll then misreads "not on `main` yet" as "queued". Always read *two* things:
353+
the queue branch **and** `origin/main`. And **the queue enforces only the required
354+
set**six contexts block by maintainer decision (2026-08-07, extended 2026-08-09):
355+
`Lint & Repo Gates` (all `check:*` gates), `TypeScript Type Check`, `Test Core`,
356+
`Dogfood Regression Gate`, `Build Core` and `Temporal Conformance (live PG + MySQL)`.
357+
A check outside those six is advisory and rides through, and an advisory red that
358+
lands rides `main`'s merge ref into every later PR until stanched. A required context
359+
is matched by check-run name, so a rename detaches its gate silently — treat those
360+
six names as contract. That is why "arm only on green" is a rule, not a formality.
361361

362362
**Re-arm awareness** — none of these is a reason to avoid the queue; all are reasons
363363
to confirm a PR is still *in* it: a red queue build **ejects** your entry and drops

scripts/check-required-contexts.mjs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,9 +427,21 @@ export const REQUIRED_CONTEXTS = [
427427
export const INSTRUCTION_SURFACES = [
428428
{
429429
// The merge-queue rule ("the queue enforces only the required set"),
430-
// naming both blocking contexts. States the required set ⇒ mustName.
430+
// naming every blocking context. States the required set ⇒ mustName.
431+
// Widened to all six by the #9677 ruling (2026-08-18): the sentence had
432+
// named two and called the other four advisory-and-rides-through, which
433+
// is the misclassification that puts a PR into the queue to be ejected.
434+
// The full set is pinned here so the corrected sentence cannot rot back
435+
// — a rename in ANY of the six now reddens this gate instead.
431436
file: 'AGENTS.md',
432-
mustName: ['Lint & Repo Gates', 'TypeScript Type Check'],
437+
mustName: [
438+
'Lint & Repo Gates',
439+
'TypeScript Type Check',
440+
'Test Core',
441+
'Dogfood Regression Gate',
442+
'Build Core',
443+
'Temporal Conformance (live PG + MySQL)',
444+
],
433445
},
434446
{
435447
// The review seat's gate-clearance step: confirm both jobs' `conclusion`

0 commit comments

Comments
 (0)