Skip to content

Commit 269167f

Browse files
Elon Muskclaude
andauthored
docs(agents): PD 14 approve-gated landing path — pinned-approval queue lift, agent-never-approves, pure-regen proactive approval; Skills closing rule reconditioned; AGENTS.md ratchet ceiling 1158 -> 1162 per the 2026-08-29 batch ruling (#13059)
Claude-Session: https://claude.ai/code/session_016SG9S6V15MqeAgkehDcTwk Co-authored-by: Claude <noreply@anthropic.com>
1 parent ff86025 commit 269167f

2 files changed

Lines changed: 39 additions & 21 deletions

File tree

AGENTS.md

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

328332
15. **⛔ 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

scripts/pm/check-skill-line-ratchet.mjs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,21 @@ export const CEILINGS = new Map([
364364
// Maintainer ruling 2026-08-25 (option C1), verbatim and untranslated:
365365
// 「我看到了,你分析过了,接受你的建议」 — recorded on PR #11908. Headroom is 0
366366
// again by construction.
367-
['AGENTS.md', 1158],
367+
//
368+
// 1158 → 1162 (#12756, folding #12896 + the #12874-A line): PD #14's editable
369+
// prose amended to the 2026-08-27 approve-gated queue ruling — the superseded
370+
// "Reviewed + approved + fully green does not override this" replaced by the
371+
// GOVERNED_APPROVERS pinned-approval landing path, the agent-never-approves
372+
// prohibition, and the pure-regeneration proactive-approval line (the queue
373+
// leg installs no dependencies, so the byte-equality lift never evaluates at
374+
// queue time); § Skills' twin sentence reconditioned in place at net 0. All
375+
// three PD #14 paragraphs measure 0 lossless-rewrap headroom under wrapLine
376+
// and the card's seven-cut ledger was exhausted first: held draft +2, the
377+
// proactive-approval rider +2 (a 161-byte minimal variant still wraps to +2;
378+
// anything smaller drops ruled content), fold 0. Maintainer batch ruling
379+
// 2026-08-29, verbatim and untranslated: 「执行,批 #1 其他卡同意」 — recorded
380+
// on #12756 and quoted in the PR. Headroom is 0 again by construction.
381+
['AGENTS.md', 1162],
368382
// #9965: root CLAUDE.md is the other repo-root instruction file — same read
369383
// path (every seat session), same governance (Prime Directive #14). It is
370384
// structurally growth-prone in the way the ratchet is built for: it exists to

0 commit comments

Comments
 (0)