Split out at acceptance of PR #6799 (the pm-dispatch SKILL.md sweep) by the devx PM seat. The sweep's dev verified the gap and correctly declined to widen its own file surface, reporting instead — this card is that report turned into work.
The gap
#6741's requirement 1 is a clause in AGENTS.md. PR #6799 could not write it: the dispatch (mine) fixed that agent's file surface to .claude/skills/pm-dispatch/SKILL.md only, so it landed the PM-facing halves (Guardrails clause + the step-7 ACCEPT path fork) and left Part of #6741 rather than Fixes. Verified absent on origin/main: no clause matching the ruling appears anywhere in AGENTS.md.
Why this specific file, and why it is not redundant with what already landed
The ruling: 「adr 只能由维护者自己确认,人工合并,ai 不得擅自合并。」(#6741, maintainer, 2026-08-08)
It has now been written into the PM skill, which only PM seats read. The measured failure mode is precisely that this is not enough:
| PR |
merged (UTC) |
merged_by |
seat |
| #6671 |
14:23:32 |
os-zhuang |
not the devx PM |
| #6732 |
14:38:56 |
os-project-manager |
not this session |
Both occurred after the ruling was on file, from two different seats, within an hour. The maintainer has confirmed neither merge was theirs, ratified both retroactively (limited to those two, no precedent), and ordered machine enforcement (#6785). AGENTS.md is the repo-wide prose authority every seat reads regardless of lane — it is the propagation vehicle whose absence the incident demonstrates. A rule that lives only in one lane's skill file is a rule the next lane's agent has never seen.
Three layers, deliberately not redundant: AGENTS.md = every seat knows the rule (this card) · SKILL.md ACCEPT fork = the PM's hands are routed away from the act (landed, #6799) · GitHub ruleset + CI gate = the platform refuses regardless of what any agent believes (#6785, dispatched).
Scope
⛔ Not in scope: docs/adr/** content, the CI gate itself (#6785), the PM skill (landed in #6799).
Acceptance
check:skill-frame-sync and check:skill-compatibility read this file family — both must stay green. Since this is prose with no machine reader asserting its content, say so plainly in the PR rather than manufacturing test-shaped evidence.
Related: #6741 (ruling + both violation records + the maintainer's ratification), PR #6799 (the PM-side halves), #6785 (machine enforcement), #6170 (the sibling release-action prohibition), AGENTS.md PD #13.
Split out at acceptance of PR #6799 (the
pm-dispatchSKILL.md sweep) by the devx PM seat. The sweep's dev verified the gap and correctly declined to widen its own file surface, reporting instead — this card is that report turned into work.The gap
#6741's requirement 1 is a clause in AGENTS.md. PR #6799 could not write it: the dispatch (mine) fixed that agent's file surface to
.claude/skills/pm-dispatch/SKILL.mdonly, so it landed the PM-facing halves (Guardrails clause + the step-7 ACCEPT path fork) and leftPart of #6741rather thanFixes. Verified absent onorigin/main: no clause matching the ruling appears anywhere in AGENTS.md.Why this specific file, and why it is not redundant with what already landed
The ruling: 「adr 只能由维护者自己确认,人工合并,ai 不得擅自合并。」(#6741, maintainer, 2026-08-08)
It has now been written into the PM skill, which only PM seats read. The measured failure mode is precisely that this is not enough:
os-zhuangos-project-managerBoth occurred after the ruling was on file, from two different seats, within an hour. The maintainer has confirmed neither merge was theirs, ratified both retroactively (limited to those two, no precedent), and ordered machine enforcement (#6785). AGENTS.md is the repo-wide prose authority every seat reads regardless of lane — it is the propagation vehicle whose absence the incident demonstrates. A rule that lives only in one lane's skill file is a rule the next lane's agent has never seen.
Three layers, deliberately not redundant: AGENTS.md = every seat knows the rule (this card) · SKILL.md ACCEPT fork = the PM's hands are routed away from the act (landed, #6799) · GitHub ruleset + CI gate = the platform refuses regardless of what any agent believes (#6785, dispatched).
Scope
disable_pr_auto_mergealone does not drop merge-queue membership.docs/adr/**PRs within an hour of the ruling #6785.docs/adr/**PRs within an hour of the ruling #6785 so a reader who wonders "what actually stops me" finds the enforcing gate.CLAUDE.md's inlined-rules section is the right second home (it inlines the three rules that must never be missed), judge that on the merits and say which way you went — ⛔ do not inline it there reflexively; that file's whole discipline is that only rules whose omission corrupts other agents' work get inlined.⛔ Not in scope:
docs/adr/**content, the CI gate itself (#6785), the PM skill (landed in #6799).Acceptance
check:skill-frame-syncandcheck:skill-compatibilityread this file family — both must stay green. Since this is prose with no machine reader asserting its content, say so plainly in the PR rather than manufacturing test-shaped evidence.Related: #6741 (ruling + both violation records + the maintainer's ratification), PR #6799 (the PM-side halves), #6785 (machine enforcement), #6170 (the sibling release-action prohibition), AGENTS.md PD #13.