docs(agents): ADR 合并禁令写入 AGENTS.md —— PD #14 + 两处动手前的分叉 (#6801) - #6834
Merged
os-project-manager merged 1 commit intoAug 9, 2026
Merged
Conversation
#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
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-project-manager
marked this pull request as ready for review
August 9, 2026 01:13
os-project-manager
deleted the
claude/issue-6801-agents-md-adr-prohibition
branch
August 9, 2026 01:30
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 #6801
Fixes而非Part of:这张卡的交付面就是「AGENTS.md 里的一条款」,验收项(原文引用、范围界定、撤回机制及其实测上限、交叉引用 #6785、CLAUDE.md 的取舍表态)全部在本 PR 内落
地,没有一项被范围性排除或推给决策箱。#6741 作为父裁决单仍开着(它还有 #6799 的 SKILL 半
边、#6785 的门禁半边),但那不是这张卡的范围。
落地了什么
#6741 要求 1 是一条 AGENTS.md 条款,此前从未落笔 ——
origin/main上AGENTS.md全文搜不到任何与该裁决匹配的文字(前提复核见下)。补上三处,一处是权威落点,两处是手真正
会动的位置:
AGENTS.md:142-150AGENTS.md:292-296AGENTS.md:991-993只有 PD #14 承载完整条款;另外两处是短指针,不复述裁决原文 —— 一句逐字引用在三个文件
里各存一份,迟早会漂。
PD #14 里逐项对着验收写的东西
AGENTS.md:144),与 ⛔ Discipline: ADRs are confirmed and merged by the maintainer only — no AI seat may merge, queue, or auto-merge adocs/adr/**PR #6741 同形,单独成 blockquote:「adr 只能由维护者自己确认,人工合并,ai 不得擅自合并。」
AGENTS.md:146):起草 ADR、推分支、开 PR、评审中修订 —— 对每个座位照旧开放,本条一个字都不碰;被保留的只有落地:合并 / 加入合并队列 / 调
enable_pr_auto_merge。判据取 PR 的文件面(不是它的自述),混合 diff 不按比例判 ——一条路径命中就够,要落别的就把 ADR 拆成单独 PR。「已复核 + 已批准 + 全绿」明确不构成
例外:按 PD [WIP] Add Chinese version of the documentation #13,accepted ADR 就是那个决定,合并它等于采纳一个治理立场 —— 正好是
「CI 绿」零信息量的那一类。worked example 用 docs(adr): ADR-0123 — layered master data, template/override linkage and the resolution organization (#4585) #6668。
AGENTS.md:148):已挂上/已入队时,只有转回 draft 才真的把它从合并队列里拿掉;
disable_pr_auto_merge单独调用只解除 arming、不解除队列成员资格。两件都做,再以远程读数确认它既不在队里也不在
origin/main上。AGENTS.md:150):draft 不是屏障。docs(adr),chore(devx): reconstruct ADR-0079 + make every cited ADR number resolve #6732 的远程读数是
draft: true且merged: true,merged_at=2026-08-08T14:38:56Z,merged_by=os-project-manager—— 正是在那次 disable + 转 draft 的反转之后被合并的。draft 是减速带,屏障是 [governance] Enforce the ADR merge prohibition on the GitHub side — prose did not propagate; two seats merged
docs/adr/**PRs within an hour of the ruling #6785。docs/adr/**PRs within an hour of the ruling #6785(同段),并把它存在的理由写成本条自己的失效记录:裁决落地后一小时内,两个不同的 AI 座位合了 ADR PR —— docs(adr): ADR-0048 addendum — publish-time / marketplace namespace exclusivity contract #6671
14:23:32Z/os-zhuang,docs(adr),chore(devx): reconstruct ADR-0079 + make every cited ADR number resolve #673214:38:56Z/os-project-manager;维护者确认两次都不是他本人,事后追认、仅限这两次、明示不设先例。末句写死:读到这里的座位并不因此获得判例外的资格 —— 本条没有例外可判。
的范围外发现)。
三个判断,卡里没有替我定的
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 的事,几分钟的活。前提复核(卡说的是线索,不是规格)
origin/main@e120a5a1d:AGENTS.md里grep -i adr的 16 处命中全部是 ADR 编号引用或PD [WIP] Add Chinese version of the documentation #13 的「accepted ADR 有约束力」,没有一处涉及合并/入队/auto-merge 的禁令。前提成立。
AGENTS.md,与它的.claude/skills/pm-dispatch/SKILL.md不相交,无序列化冲突。PD feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14 的措辞是自足的,不依赖 docs(pm-dispatch): ADR merge prohibition in Guardrails + ACCEPT path fork; probe-and-revive as the standing backstop; replay-wake identity check (#6741, #6747) #6799 落不落地。
merged_by、draft 状态都是从 GitHub 现读的(不是转抄卡里的表格),特别是 docs(adr),chore(devx): reconstruct ADR-0079 + make every cited ADR number resolve #6732 的
draft: true+merged: true—— 那条实测上限就靠它。验证 —— 这是散文,没有机器读者断言它的内容
说清楚这一点,而不是造出测试形状的证据:本 PR 改的是一份 Markdown 规程文件,仓里没有任何
gate 断言这条款的内容为真(唯一会读
AGENTS.md正文的是scripts/docs-audit/check-audit-scope.mjs,它只锚定 RELEASE-OWNED 那一行,与本 diff 无关)。下面的门禁绿只证明我没弄坏任何东西,不证明这条款写得对 —— 对不对由维护者判。
卡点名必须保持绿的两条,以及所有可能读到 markdown / 文档面的 gate,逐条真跑:
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/下没有任何包被触碰,没有版本会动,发布说明也无话可说。标签由本座位手工打上并读回(读回结果写在报告里),不是在正文里声明一下就算数。
⛔ 明确没做的事
docs/adr/**一个字没动(卡的硬范围)。docs/adr/**PRs within an hour of the ruling #6785)、PM skill(docs(pm-dispatch): ADR merge prohibition in Guardrails + ACCEPT path fork; probe-and-revive as the standing backstop; replay-wake identity check (#6741, #6747) #6799)都没碰 —— 各自有卡。CLAUDE.md(判断见上)。Generated by Claude Code