Skip to content

docs(agents): ADR 合并禁令写入 AGENTS.md —— PD #14 + 两处动手前的分叉 (#6801) - #6834

Merged
os-project-manager merged 1 commit into
mainfrom
claude/issue-6801-agents-md-adr-prohibition
Aug 9, 2026
Merged

docs(agents): ADR 合并禁令写入 AGENTS.md —— PD #14 + 两处动手前的分叉 (#6801)#6834
os-project-manager merged 1 commit into
mainfrom
claude/issue-6801-agents-md-adr-prohibition

Conversation

@os-project-manager

Copy link
Copy Markdown
Collaborator

Fixes #6801

Fixes 而非 Part of:这张卡的交付面就是「AGENTS.md 里的一条款」,验收项(原文引用、
范围界定、撤回机制及其实测上限、交叉引用 #6785、CLAUDE.md 的取舍表态)全部在本 PR 内落
地,没有一项被范围性排除或推给决策箱。#6741 作为父裁决单仍开着(它还有 #6799 的 SKILL 半
边、#6785 的门禁半边),但那不是这张卡的范围。

落地了什么

#6741 要求 1 是一条 AGENTS.md 条款,此前从未落笔 —— origin/mainAGENTS.md 全文
搜不到任何与该裁决匹配的文字(前提复核见下)。补上三处,一处是权威落点,两处是手真正
会动的位置
:

位置 性质
Prime Directive #14 AGENTS.md:142-150 权威落点(全文)
多 agent 协作纪律 §7 合并队列条 AGENTS.md:292-296 动手前的分叉(指针)
Post-Task Checklist 第 2 条 AGENTS.md:991-993 动手前的分叉(指针)

只有 PD #14 承载完整条款;另外两处是短指针,不复述裁决原文 —— 一句逐字引用在三个文件
里各存一份,迟早会漂。

PD #14 里逐项对着验收写的东西

三个判断,卡里没有替我定的

1. #6170 在 AGENTS.md 里没有家,所以「并排放」这个形状不存在

卡里说「先查 #6170 的发布禁令是否已经在 AGENTS.md 里有家,有的话并排放,那个配对是自然的
形状」。查了:没有AGENTS.md 全文没有任何禁止 AI 座位执行发布动作的条款;该禁令目前
只存在于 .claude/skills/pm-dispatch/SKILL.md:2458-2468,即只有 PM 车道读得到的那一个文件
—— 与本卡描述的传播失败模式一模一样。

所以本条按自己的道理选址,而不是去贴一个不存在的邻居:PD #14 紧接 PD #13(#6741 要求 1
指定的自然位置,也是唯一一条已经管着 ADR 权威的 directive),外加两处分叉。⛔ 我没有顺手把
#6170 的禁令也写进 AGENTS.md —— 那超出本卡范围,已另行立单:#6830(未认领、未打标签,
留给 PM 分诊)。

2. 分叉为什么放在 §7 和 Post-Task 第 2 条

这两处是仓里仅有的两个指示座位去 arm auto-merge 的地方:§7 的
「arm auto-merge on a PR that is already green, accepted and non-draft」,和 Post-Task
第 2 条的「arm auto-merge so the queue lands it」。#6732 的成因不是谁决定要合 ADR,是照章执
行那条一般规则;所以分叉必须落在一般规则本身里,而不是只写在一条 directive 里等人事后
对照。两处都只有三四行、都指回 PD #14

⛔ 考虑过但没有加的位置:Documentation Guardrails 表(AGENTS.md:546-554)。那张表管的是
「这个路径能不能编辑」,而本条恰恰允许编辑 docs/adr/**(起草照旧开放),只禁止落地。往
那张表里加一行会把编辑权和合并权混成一谈,正好糊掉本条最要紧的那条界线。

3. ⛔ 没有内联进 CLAUDE.md —— 判断与理由

CLAUDE.md 的自述判据是:只内联「遗漏会浪费或损坏其他 agent 的工作」的那几条(目前四条:
认领 issue、worktree-first、不许 stash、不许改 content/docs/releases/)。这四条同形:伤害
落在并行 agent 的在飞工作上、静默发生、事后基本不可逆
。ADR 越权合并不是这个形状 —— 伤害落
在治理与维护者的决定权上,而且它有一个别的三条都没有的东西:正在建的机器执行层(#6785,
CODEOWNERS + 必需检查)。

正面理由(诚实记下,因为它不弱):CLAUDE.md 是被自动注入上下文的,AGENTS.md 要主动读 ——
那两个越权座位很可能上下文里有前者、没读过后者。但这恰恰是本卡自己的论点反过来用:已经
被实测证伪的是「把规则写进散文就能传播」;再加第四份散文拷贝不解决传播失败,只是把一句
必须逐字保持的裁决原文再复制一遍(漂移面 +1),同时稀释一张「这四条是会毁掉别人工作的」清单
的信号 —— 那张清单的力量来自它短且同质。真正的传播修复是 #6785:平台层拒绝,与任何座位读没
读过任何文件无关。

所以:AGENTS.md 一处权威 + 两处动手前指针,不进 CLAUDE.md。这是可推翻的判断 —— 维护者
若要它进,那是 CLAUDE.md 里加一段指向 PD #14 的事,几分钟的活。

前提复核(卡说的是线索,不是规格)

验证 —— 这是散文,没有机器读者断言它的内容

说清楚这一点,而不是造出测试形状的证据:本 PR 改的是一份 Markdown 规程文件,仓里没有任何
gate 断言这条款的内容为真
(唯一会读 AGENTS.md 正文的是
scripts/docs-audit/check-audit-scope.mjs,它只锚定 RELEASE-OWNED 那一行,与本 diff 无关)。
下面的门禁绿只证明我没弄坏任何东西,不证明这条款写得对 —— 对不对由维护者判。

卡点名必须保持绿的两条,以及所有可能读到 markdown / 文档面的 gate,逐条真跑:

✓ check-skill-frame-sync self-test: 12 cases pass.
✓ check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files
  binding sentence present in all 4; 4 count mention(s) agree; 42 markdown files scanned for undeclared copies.

✓ check-skill-compatibility-version self-test: 18 cases pass.
✓ check-skill-compatibility-version: 11 SKILL.md file(s) reconciled against 77 workspace packages

✓ check-skill-frame-freshness self-test: 12 cases pass.
  3/3 framework files are byte-identical to the ref (wording differences are not drift).

check-nul-bytes: OK (scanned 6367 tracked text file(s); ... no raw ASCII control bytes).
✓ doc authoring guard: 373 files clean — no bare metadata literals.
✓ docs-accuracy-audit scope is in sync with content/docs/: 178 hand-written doc(s).
✓ release-owned pages are in scope and read-only: 9 page(s) ... review-only.
check-role-word: OK (44 baselined file(s), no new occurrences).
✓ check-quick-reference-counts self-test: 9 cases pass.  ✓ 13 section(s) match.
check-adr-anchors: OK (EXIT=0; 118 decision number(s); 19898 citation(s) across 3255 file(s) resolve).
check-release-notes: OK — every released major has a curated, navigable release page.
✓ release-github-releases --self-test: 49 assertions.

pnpm test / pnpm typecheck 没跑,也不应该跑:diff 是 1 个 Markdown 文件、0 个包、0 行
TS —— 没有「受影响的包」这个东西。ESLint / TypeScript Type Check 两个必需 job 由 CI 在本 PR 上
跑,结论以那里为准(我会等它们收敛)。

字节纪律:node scripts/check-nul-bytes.mjs 绿,另加对改动文件的加宽自扫
(0x00-0x08 / 0x0b / 0x0c / 0x0e-0x1f / 0x7f),干净。

无 changeset —— skip-changeset

只改仓根一份 Markdown 规程文件,packages/没有任何包被触碰,没有版本会动,发布说明也
无话可说。标签由本座位手工打上并读回(读回结果写在报告里),不是在正文里声明一下就算数。

⛔ 明确没做的事


Generated by Claude Code

#6741 要求 1 是 AGENTS.md 里的一条款,此前从未落笔。补上:

- **PD #14**(权威落点,紧邻管 ADR 权威的 PD #13):维护者裁决原文引用、
  未翻译;起草/推分支/开 PR 对所有座位照旧开放,被保留的只有**落地**
  (merge / 入队 / arm auto-merge);「已复核 + 已批准 + 全绿」不构成例外;
  撤回机制(只有转 draft 才真的踢出队列,`disable_pr_auto_merge` 单独调用
  不解除成员资格)及其实测上限(#6732 在 draft 状态下仍被合并);交叉引用
  #6785(机器门禁)。
- **§7 合并队列条**:在「arm auto-merge」那句话之后立刻分叉 —— 手在那里。
- **Post-Task Checklist 第 2 条**:同一分叉,dev 收尾时手在那里。

⛔ 未内联进 CLAUDE.md —— 理由写在 PR 正文里(该文件的自述判据是「遗漏会
毁掉其他 agent 的工作」,本条的受害面不是这个,且它的执行层是 #6785)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F8q5J1MQyocgtNspb15fSn
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 8, 2026 11:38pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[docs] AGENTS.md carries no ADR-merge prohibition — the one file every seat reads is the one place the ruling is missing

2 participants