Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
16 changes: 14 additions & 2 deletions scripts/check-required-contexts.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -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`
Expand Down
Loading