You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Surfaced while reviewing #10211 / PR #10273 (epic #10206). Measured, not suspected.
The collision
scripts/docs-audit/check-audit-scope.mjs keeps ALL_HANDWRITTEN — the docs-accuracy-audit's scope list — inline inside .claude/workflows/docs-accuracy-audit.js, and it has to: a workflow script runs in a node:vm with codeGeneration disabled and no filesystem, so it cannot enumerate content/docs/** itself and cannot read a JSON artifact either (the file's own docblock says so, citing #4851). The scope is exactly content/docs/**/*.mdx minus references/**, and the gate fails in both directions the moment the list and the tree disagree.
check:docs-audit-scope is on the gate list for any content/docs card. So:
adding a hand-written docs page ⇒ regenerating a .claude/ file ⇒ the PR's path surface hits the governed surface ⇒ human-merge-only.
The two acts cannot be split into separate PRs: split them and the docs half is red.
Blast radius, counted
PR #10273 is the first instance. Seven more are already queued or in flight under #10206 — #10210, #10213, #10215, #10216, #10218, #10222, #10237 — every one of which adds at least one page. #10209 escaped only because it adds a nav line and no .mdx. Beyond this epic it applies to every future docs page the project ever adds.
The governed-merge discipline exists so an agent cannot quietly rewrite its own instructions. What is actually landing in these diffs is a machine-regenerated sorted list of doc paths inside a block that is itself labelled // GENERATED — do not hand-edit. That is not the risk the rule was written for — but the rule is deliberately non-proportional ("一条命中就分叉, ⛔ 不按比例判"), and I am not going to reinterpret it myself.
本分析看不见什么:我没有量过维护者实际的合并延迟——如果你本来就每天扫一遍 Review-requested 队列,A 的代价可能比我估计的小得多,那 C 就只是省事而不是必要。我也没有验证 --write 的输出在所有情况下都是确定性的(排序稳定、无时间戳);C 的闸门依赖这一点,落地前必须先测。
Routing
domain:skills — the governed-surface definition lives in .claude/skills/pm-dispatch/ and AGENTS.md, and any change to it is skills-class. Filed by a maintainer-directed PM session under the standing direct-dispatch channel; not auto-adjudicated: it sits on the human floor twice over (governed-surface definition = ADR/skills class, and any gate-weakening reading is a 门禁削弱 decision).
Meanwhile PR #10273 is parked correctly — draft, review requested from os-zhuang, not queued. No work is lost either way you rule.
Surfaced while reviewing #10211 / PR #10273 (epic #10206). Measured, not suspected.
The collision
scripts/docs-audit/check-audit-scope.mjskeepsALL_HANDWRITTEN— the docs-accuracy-audit's scope list — inline inside.claude/workflows/docs-accuracy-audit.js, and it has to: a workflow script runs in anode:vmwithcodeGenerationdisabled and no filesystem, so it cannot enumeratecontent/docs/**itself and cannot read a JSON artifact either (the file's own docblock says so, citing #4851). The scope is exactlycontent/docs/**/*.mdxminusreferences/**, and the gate fails in both directions the moment the list and the tree disagree.check:docs-audit-scopeis on the gate list for anycontent/docscard. So:The two acts cannot be split into separate PRs: split them and the docs half is red.
Blast radius, counted
PR #10273 is the first instance. Seven more are already queued or in flight under #10206 — #10210, #10213, #10215, #10216, #10218, #10222, #10237 — every one of which adds at least one page. #10209 escaped only because it adds a nav line and no
.mdx. Beyond this epic it applies to every future docs page the project ever adds.The governed-merge discipline exists so an agent cannot quietly rewrite its own instructions. What is actually landing in these diffs is a machine-regenerated sorted list of doc paths inside a block that is itself labelled
// GENERATED — do not hand-edit. That is not the risk the rule was written for — but the rule is deliberately non-proportional ("一条命中就分叉, ⛔ 不按比例判"), and I am not going to reinterpret it myself.GENERATED块内、且与--write的输出逐字节一致,任何真正改 workflow 行为的编辑照旧落进人工合并。现状是「一律人工」,靠人眼在 439 行 diff 里认出那 2 行是不是生成的——这恰恰是响亮拒绝优于人工容忍的场景。推荐:C。 把 governed 判据从「文件
.claude/workflows/docs-accuracy-audit.js被碰到」收窄为「该文件被碰到,且 diff 不完全等于node scripts/docs-audit/check-audit-scope.mjs --write的输出」。纯重算放行进队列,任何其它编辑照旧人工合并。这是机械可判的,不依赖任何人的判断。选项
.claude/。 但 workflow 读不了文件系统,所以得改由args注入或 CI 预注入 —— 动的是 workflow 的取值通道,工作量和风险都远大于问题本身。check:docs-audit-scope在新增方向只告警、由定期任务批量补齐。⛔ 我不建议:这正是 docs-accuracy-audit.js 的 ALL_HANDWRITTEN 清单 11 条全部指向改名前的 protocol/objectos/* —— 内部文档审计静默漏审整个 protocol/kernel 目录 #4851 关掉的那个洞(清单双向静默漂移),而且削弱门禁属于人工地板,无论如何都得你拍板。本分析看不见什么:我没有量过维护者实际的合并延迟——如果你本来就每天扫一遍 Review-requested 队列,A 的代价可能比我估计的小得多,那 C 就只是省事而不是必要。我也没有验证
--write的输出在所有情况下都是确定性的(排序稳定、无时间戳);C 的闸门依赖这一点,落地前必须先测。Routing
domain:skills— the governed-surface definition lives in.claude/skills/pm-dispatch/andAGENTS.md, and any change to it is skills-class. Filed by a maintainer-directed PM session under the standing direct-dispatch channel; not auto-adjudicated: it sits on the human floor twice over (governed-surface definition = ADR/skills class, and any gate-weakening reading is a 门禁削弱 decision).Meanwhile PR #10273 is parked correctly — draft, review requested from
os-zhuang, not queued. No work is lost either way you rule.