docs(agents): record the never-approve seat rule beside the governed never-list - #7630
Merged
Merged
Conversation
…never-list `scripts/check-governed-queue-guard.mjs` states a normative seat rule in its file header and prints it from the `cleared` branch of its verdict text, but `AGENTS.md` § 受管面 never carried it. The adjacent never-list taught a seat not to *merge* and not to *wait* for an approval that does not exist; it never told one not to *leave* one. The sentence is copied byte-for-byte from the guard header rather than paraphrased, so the two places cannot drift, and the retired sha pin is named as the reason it now carries more weight: one authorized approval clears every later push on the same pull request, so the normative prohibition is the only thing standing between an agent-operated approver account and a governed landing it cleared for itself. The existing four prohibitions are untouched; this sits beside them as a fifth. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
os-zhuang
approved these changes
Sep 4, 2026
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 free
to 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 #7618
scripts/check-governed-queue-guard.mjsstates a normative seat rule in its file header (L93-96 at11edab8, this branch's base) and prints the same rule from theclearedbranch of its verdict text (L624).AGENTS.md§ 受管面 did not carry it. The never-list there (the line beginning 「⛔ 绝不gh pr ready(不退出 draft)」, L488 at11edab8) teaches a seat not to merge and not to wait for an approval that does not exist — it never told one not to leave one.This adds it as a fifth prohibition beside those four. The four are untouched; the diff is +6 lines in one file and nothing else.
What was copied, and from where
The English sentence is copied byte-for-byte from the guard header —
scripts/check-governed-queue-guard.mjsL93-96, comment prefix stripped and the four wrapped lines joined:Proof it is a copy and not a paraphrase: md5 of that header span and md5 of the quoted line as it now stands in
AGENTS.md(>stripped) are the same value,ba830bd6b431b3bfc97f4bde99d80d49. If either side is reworded later, the two md5s stop matching — that is the anti-drift property the card asked for.One deliberate deviation from the card's own quote, recorded rather than left to be discovered. The card (and the dispatch) quoted a shorter span, ending
…only as good as that normative rule.with a terminal period. Atorigin/mainthe sentence does not end there: it continues— the same class as the seat-side no-merge rule, and the reason the DRAFT remedy is listed first.Copying the shorter span would have meant inventing a sentence boundary the source does not have, i.e. exactly the paraphrase the card was filed to prevent. Theorigin/maintext is what landed. The trailing clause also earns its keep in this position: the DRAFT remedy it points at is precisely what the never-list beside it prescribes.A short Chinese lead-in and one closing Chinese clause frame the quote in the section's voice. The closing clause carries the reason the retired sha pin made the rule weightier — maintainer ruling 2026-09-04, executed as #7606, written into the paragraph below this one by #7616: one authorized APPROVED review now clears every later push on the same pull request, so the normative prohibition is the only thing standing between an agent-operated approver account and a governed landing it cleared for itself.
Governed surface — this stays a draft
node scripts/check-governed-queue-guard.mjs --test AGENTS.mdanswers⛔ GOVERNED — 1 of 1 path(s), exit 3. Not flipped ready, not enqueued, no auto-merge armed, no reviewers requested, and no approving review submitted by this seat. The seat requests the two authorized approvers separately; a human merges.Gates
All run in the task worktree on a clean tree, so every verdict below measured exactly
646ce08. Exit codes captured by redirect before any pipe.pnpm lint(whole repo, heap-capped,--concurrency=2)Tasks: 47 successful, 47 total—0 errors(the 2883 warnings are pre-existingno-explicit-anyin TS sources this diff does not touch)pnpm check:control-bytes✅ check-control-bytes: OK (scanned 6239 tracked text file(s); skipped 85 binary).pnpm check:governed-queue-guard(self-test of the file whose header is copied)OK check-governed-queue-guard self-test: 132 cases passpnpm check:doc-fences✅ check:doc-fences — every TypeScript block in 227 document(s) is fenced ts/tsx/typescript…pnpm check:shell-escape-residue✅ check-shell-escape-residue: OK (5/5 root(s) resolved -- AGENTS.md: 1 file(s), 15 fence(s)…)node scripts/check-doc-links.mjsLinks are valid across 17 scan roots.node scripts/check-changeset-presence.mjs✅ No source or published contract of a released package changed in this range, so no changeset is owed.node scripts/check-governed-queue-guard.mjs --test AGENTS.md⛔ GOVERNED — 1 of 1 path(s) are on a governed surface— expected; the reason this PR stays a draftpnpm exec vitest runover the 12 suites that readAGENTS.mdTest Files 12 passed (12)/Tests 345 passed (345),RUN v4.1.10 /home/user/objectui-issue-7618(root is the repo root, so neither of AGENTS.md §「怎么跑测试」's two false-green traps applies)No changeset, per the gate's own verdict: a docs-only diff publishes nothing.
Also checked, since the card asked: no gate in this repo pins
AGENTS.md's shape.grepoverscripts/*.mjsand.github/workflows/finds no line count, byte ceiling or row-width constraint on it — the only matches are prose comments using "one line added to AGENTS.md" as a historical example of check-count drift, andcheck-governed-queue-guard's path classification (agents-md), which asserts membership, not shape. This confirms the #7605 dev's search on a fresh base.🤖 Generated with Claude Code
Generated by Claude Code
Generated by Claude Code