Uh oh!
There was an error while loading. Please reload this page.
chore(ci): close out the ESLint rename grace in the required-context ledger - #9569
Merged
Conversation
…ledger The #9325 rename is complete on every scanned instruction surface, so the `ESLint` ledger row's two graces come off: - `renameInFlight: false` — the retired literal no longer satisfies a `mustName` requirement. - the `staleSites` budget for the review checklist is deleted: the fix was expected to keep one deliberate historical mention and dropped the name entirely (measured on main: 0 occurrences), which is the trim branch the gate's notice asked for. The row is now a standing ban on writing the dead name fresh anywhere in the scan set. Both notices that drove this are now silent, which the self-test pins. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
os-steve
marked this pull request as ready for review
August 18, 2026 11:39
github-merge-queueBot
removed this pull request from the merge queue due to failed status checks
Aug 18, 2026
Uh oh!
There was an error while loading. Please reload this page.
Contributor
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32132852163 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#9505
The
#9325rename is complete on every scanned instruction surface, so both graces on theESLintrow ofRETIRED_CONTEXT_NAMEScome off. One file:scripts/check-required-contexts.mjs.The conditional, re-measured at the branch point
The card's step 2 branches on what the landed checklist fix actually did. Measured on this
branch's base (
e7daea169), not recalled:and the gate itself printed both notices before the change, verbatim:
So the trim branch applies, and both steps land together:
renameInFlight: false— the retired literal stops satisfying amustNamerequirement.staleSitesbudget for the review checklist is deleted (not kept at 1, and not setto 0 — the ledger's own hygiene rule says a zero budget is a dropped key). The row is now a
standing ban on writing the dead name fresh anywhere in the scan set.
The row's comment and the design-doc bullet above it are rewritten to record what happened
rather than what was predicted: the budget of 1 existed because the fix was expected to keep
one deliberate historical mention, and it did not.
Both directions pinned, and each green traced to a specific assertion
Self-test: 81 → 83 assertions. Two fixtures pinned exactly the state this PR removes, so
they were triaged rather than re-spelled:
postFix(current names + one budgeted historical mention ⇒ green, plus the flip notice)is gone: with the budget trimmed that state is red by design now, and the flip notice
cannot fire on a row that is no longer in flight.
reworded's trim-notice half moved onto a synthetic in-flight row — the notice logicoutlives this rename and must keep coverage, but the real ledger no longer exercises it.
New pins:
ESLintmention appended to the checklist ⇒ red, namingbudgeted: 0andthe replacement (the standing ban), plus the ablation that isolates it: the identical
text under a row that still budgets 1 is green.
ESLintis redon
'Lint & Repo Gates'— plus a single-variable ablation: flipping onlyrenameInFlightback totrueon the real row (budget left trimmed) clears the naming red,so that red is the flip and nothing else.
the work is done trains the seat reading it to ignore the next one.
Reverse verification, from the committed state
Each half of the change was reverted alone and the self-test re-run; both reds are the
intended assertions, no others:
The card's safety claim, tested rather than inherited
"Flipping early is safe — the flip PR is red while any required-set surface still leans on the
grace." It holds, and the reason is now written down next to the claim: the pin runs in
lint.yml'slintjob (theLint & Repo Gatescontext) with noif:, which the file's ownwiring block asserts, so a naming red there is the required context red. Within the scan set
there is no state where the flip lands while a surface still needs the grace; the merge queue
re-runs the gate on the combined commit, so a concurrent PR that re-introduces reliance is red
on that PR, not on
main. The recorded residual is unchanged: a surface outsideINSTRUCTION_SURFACEScarries nomustNamerequirement, so it cannot lean on the grace in thefirst place.
Two-row ledger: checked for coupling, none found
The
ADR maintainer approvalrow added alongside is untouched. It is inert with respect tothis change:
replacedBy: nullexcludes it from both themustNamegrace and theflip-completion loop, it has no budgets, it collides with no registered context as a substring,
and no scanned surface contains the literal (all five measured). Rows are judged independently
per surface — the only cross-row rule is the duplicate-name check.
Gates
Run after the final commit, at
5c31e45bf, clean tree:node scripts/pm/dispatch-gates.mjs scripts/check-required-contexts.mjsderives exactly onelocal family for this surface —
pnpm check:required-contexts— which is the pair above.Releases nothing (a CI-internal script), so this PR takes the
skip-changesetlabel ratherthan a changeset.
Generated by Claude Code
Generated by Claude Code