Skip to content

pm-dispatch's review-checklist still tells the review seat to verify a check named ESLint, which stops existing when #9325's rename lands #9420

Description

@os-zhuang

Filed unassigned by the dev seat implementing #9325 (PR renaming the ESLint required context to Lint & Repo Gates). ⛔ Not fixed there — reason below is a hard tiering constraint, not a scope preference.

Blocked-by: #9325 — this only becomes wrong at the moment that PR merges. Before then the text is correct and must not be changed.

The defect

.claude/skills/pm-dispatch/references/review-checklist.md:37 instructs the review seat, before flipping a PR to ready / arming auto-merge / enqueuing it:

/ 入队前亲核 ESLint 与 TypeScript Type Check 两个 job 的 `conclusion` 已为
`success`(门禁族跑在其内)

#9325 renames that job's check-run name from ESLint to Lint & Repo Gates. Once the maintainer completes the Settings swap, no check run named ESLint is published by this repository ever again — so this instruction directs the seat to confirm the conclusion of a check that does not exist.

The failure mode is the bad one for an instruction file: a seat that looks for ESLint, finds nothing, and reads "no such check" as anything other than "the name moved" will either stall or arm on an unverified gate family. It is precisely the gate carrying the whole check:* family, which is what #5617 measured the cost of riding through.

AGENTS.md's corresponding sentence (the merge-queue required-set rule) is updated inside #9325's PR; this file was left because of the constraint below, so the two halves of the same instruction are briefly inconsistent.

Why it was not fixed in #9325's PR

node scripts/pm/dispatch-gates.mjs .claude/skills/pm-dispatch/references/review-checklist.md reports a model-tier mandate, verbatim:

Model tier — MANDATORY: claude-fable-5 (derived from the file surface, not recalled).
- .claude/skills/pm-dispatch/references/review-checklist.md ⇢ '.claude/skills/pm-dispatch/**' — clause ① of the
model-tiering ruling: a card editing the PM dispatch skill is fable-mandatory, references included — the skill is
the lane's own operating protocol and a wrong edit propagates to every later dispatch

The seat that implemented #9325 is not that tier, so including the edit there would have violated the tiering ruling. It also drags five further gate families (check:pm-skill-ratchet, check:pm-skill-id-lint, check:doc-authoring, check:skill-frame-sync, check:doc-formula-expressions) onto a two-file CI-plumbing diff.

Scope

One line in one file: name the new context, keeping the old spelling as a parenthetical for one release cycle so a seat reading a stale PR's checks list can still reconcile. Mirror the phrasing already landed in AGENTS.md by #9325:

**Lint & Repo Gates** (called `ESLint` until the #9325 rename)

⚠️ Timing is the whole risk here. Landing it before#9325's PR merges makes the checklist wrong in the other direction for however long the maintainer sitting is away. It should land in the same sitting, or immediately after the Settings swap is confirmed.

Re-check commands

grep -n "ESLint" .claude/skills/pm-dispatch/references/review-checklist.md
grep -n "Lint & Repo Gates" AGENTS.md
node scripts/pm/dispatch-gates.mjs --tier .claude/skills/pm-dispatch/references/review-checklist.md

Refs: #9325 (the rename this depends on), #5617 (what riding this gate family costs), #6865 (why the name is contract).


Generated by Claude Code

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions