@@ -298,13 +298,18 @@ localStorage / auth gotchas.
298298 governed surface, ⛔ never merge it, ⛔ never add it to the merge queue, ⛔ never call ` enable_pr_auto_merge ` ,
299299 ⛔ never flip it out of draft to make any of those possible. Judge it on the PR's ** file list** , not on its
300300 description, and a ** mixed diff is not a proportion question** — one path hit is enough; if the rest needs to
301- land, split the governed files into their own PR. ** Reviewed + approved + fully green does not override this.**
302- Under #13 an accepted ADR * is* the decision, so merging one is the act of adopting a governance position — the one
303- class of change about which "CI is green" carries no information at all (a thorough, fully-green ADR draft has been
304- closed by the maintainer on demand grounds no gate could evaluate). The other surfaces are reserved for a reason of
305- the same shape: the agent instruction tree and these two root files are the operating protocol every * later*
306- dispatch reads, and the published catalog lands in codebases this repo cannot see, so a bad merge propagates into
307- work nobody has started yet — and green says nothing about whether it should propagate.
301+ land, split the governed files into their own PR. ** Those four lift only for an authorized approval pinned to the
302+ current head** (2026-08-27; guard 2026-08-28): APPROVED, by an account in ` GOVERNED_APPROVERS `
303+ (` scripts/pm/check-governed-queue-guard.mjs ` ), ` commit_id ` = that sha — then the queue lands it, re-validating as
304+ it merges, and any later push expires it. Even a ** pure-regeneration** PR requests its pinned approval proactively,
305+ before queueing — the queue-time leg installs no dependencies and never evaluates the byte-equality lift
306+ (2026-08-29). Unpinned, the maintainer's bypass direct merge (人工直合) is the only landing. ⛔ ** No agent seat
307+ submits an approving review on a governed-surface PR, under any account** — an authorized account is
308+ agent-operated too. Nothing else substitutes: under #13 an accepted ADR * is* the decision, so merging one is the act
309+ of adopting a governance position — the one class of change about which "CI is green" carries no information at
310+ all (a thorough, fully-green ADR draft has been closed by the maintainer on demand grounds no gate could evaluate).
311+ The other surfaces are reserved for a reason of the same shape, spelled out in the audit header below; the published
312+ catalog also lands in codebases this repo cannot see.
308313
309314 ** Already armed or queued when you read this?** ⚠️ Converting the PR back to ** draft** is the only action that
310315 reliably removes it from the merge queue; ` disable_pr_auto_merge ` alone drops the arming but ** not** queue
@@ -313,17 +318,16 @@ localStorage / auth gotchas.
313318 drafted ADR PR has nevertheless been merged, twice, by two different AI seats within one hour of the first ruling
314319 above (both ratified retroactively, explicitly setting no precedent), and a skill PR whose own body said it was
315320 awaiting a human merge was flipped ready by an unidentified seat and landed by the merge queue with zero reviews of
316- any kind. ** The barrier is this directive, and it is the only pre-merge barrier there is.** The per-PR approval
317- check that used to sit beside it retired under the maintainer's 2026-08-18 ruling that a human merge IS the review
318- record for a governed surface — 「人工合并即人工审核」 — because it was red on every governed PR by
319- design, sat outside the required-context set, and so never blocked anything. ⛔ Do not read that retirement as a
320- relaxation: it removed a check that was not holding, and left the discipline carrying the whole load. Behind the
321- directive sits ** detection, not prevention** : ` docs/adr/ ` in CODEOWNERS routes review requests — and it is the
322- * only* governed surface routed there, so on the other four nothing summons the maintainer automatically — while
323- the report-only post-merge audit (` scripts/pm/check-governed-merges.mjs ` , whose header carries this rule's incident
324- history) lists every governed-surface merge for the PM round report. Every entry on that list should be a merge the
325- maintainer performed or ordered in person; one he does not recognise is a seat violation, filed and rolled back. A
326- seat that has read this far is not thereby licensed to judge an exception; the rule has no exception to judge.
321+ any kind. ** The barrier is this directive.** The per-PR approval check beside it retired under 2026-08-18's ruling
322+ that a human merge IS the review record — 「人工合并即人工审核」; why, and why its successor is the
323+ queue guard rather than a per-PR gate, is in that guard's header. ⛔ Not a relaxation. Behind the directive sit
324+ prevention and detection: that guard refuses an unpinned governed diff in the queue, ` docs/adr/ ` in CODEOWNERS
325+ routes review requests — and it is the * only* governed surface routed there, so on the other four nothing summons
326+ the maintainer automatically — while the report-only post-merge audit (` scripts/pm/check-governed-merges.mjs ` ,
327+ whose header carries this rule's incident history) lists every governed-surface merge for the PM round report. Every
328+ entry should be a merge the maintainer performed or ordered in person, and the audit reads the approver as well as
329+ the merger; one he does not recognise, or any agent approval, is a seat violation, filed and rolled back. A seat
330+ that has read this far is not thereby licensed to judge an exception; the rule has no exception to judge.
327331
32833215 . ** ⛔ A version release is performed by the maintainer, by hand — no AI seat publishes, tags, cuts a Release, or
329333 triggers a release workflow, and none merges the Version Packages PR.** Maintainer ruling, 2026-08-07, verbatim and
@@ -832,8 +836,8 @@ such lists drifted stale as skills landed):
832836- ` .claude/skills/ ` — repo-internal agent playbooks; every entry must carry
833837 ` metadata.internal: true ` .
834838
835- ⛔ ** Both roots are governed surfaces** — human-merge only, never queued, armed or flipped
836- out of draft, and no per-PR check holds it: ** Prime Directive # 14 ** is the whole barrier .
839+ ⛔ ** Both roots are governed surfaces** — human-merge only, or queued under ** Prime Directive # 14 ** 's pinned-approval
840+ path; no per-PR check holds it: the queue guard refuses an unpinned governed diff at queue time .
837841
838842---
839843
0 commit comments