agents(os-dev): measured PR-body footer reading and the dev-draft half of the maintainer brief - #15923
Conversation
…f of the maintainer brief The dev contract carried the falsified edit reading of the attribution footer (a PATCH downgrades the session-URL form to bare). It now says what AGENTS.md measures: on an edit the session-URL footer survives verbatim and the platform appends a bare block under whatever is sent, so an edited body goes out with no footer of its own and is read back; the bare form is for comments. The two-form spelling block stays as the reference. The PR-body rules gain the dev's half of the maintainer brief: a PR on a governed surface carries a `## 维护者速读(草稿)` section (five fixed parts, Chinese, business angle, 席位意见 left empty) which the seat finalizes as a comment. Line-neutral at the 403-line ceiling: paid by folding two pairs of neighbouring rules (body/commit-message parsing; the net-increase budget). Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox Co-authored-by: Claude <noreply@anthropic.com>
|
ACCEPT — lands #15857 as ruled. Governed ( What the seat verified, at head
Open question answered: A. The governed-surface list stays a pointer to Implemented-by: os-dev executor, flight #15857, branch Generated by Claude Code |
维护者速读改了什么:开发 agent 的行为契约( 为什么改:前者是两份约束文件对同一事实说法相反,agent 会照错的那份做,编辑正文时重贴页脚留下双页脚。后者是你今天指示的 dev 一半:PM 手册的一半在 PR #15908,这条让 dev 从开 PR 起就把业务角度的草稿写好,席位只做校正,不从零写。本 PR 与 #15908 的正文已按此规则各带一份草稿。 风险与代价(含回滚):纯文字规则,不碰代码、发布物或数据。代价是为腾两行,把相邻两对规则各并成一句,席位逐句核过内容未丢(commit 与正文分开解析、卡片关系只声明一次、commit 不带 trailer;预算装不下就报 席位意见:建议批准。四轴:业务——两处都对应实测事实,不是推测;长远——受管面清单单源在 AGENTS.md,此处只指向(dev 提的 A/B,席位答 A);防 AI 错——契约与实测一致,agent 不再制造双页脚,草稿由最懂改动的 dev 起笔、席位兜底;创业阶段——不加一行、不扩公开面。 你要做的:批准并入队,或人工直合。一字:是/否。 Generated by Claude Code |
Fixes #15857
One file,
.claude/agents/os-dev.md(governed,.claude/**): two alignments in the dev contract, line-neutral at the 403-line ceiling.What
AGENTS.mdmeasures onmainsince PR docs(agents): AGENTS.md + CLAUDE.md rules only — narratives, dates and quotations out; issue ownership written by role #15856: on an edit the session-URL footer survives verbatim and the platform appends a bare footer block under whatever is sent, so an edited body goes out with no footer of its own and is read back; the bare form is for comments. The two-form spelling block stays as the reference; its bare-form annotation loses thePR 正文编辑后的落形half. The durable-attribution line (耐久归属写进正文散文或评论,⛔ 不循环重贴页脚;完整读数住 AGENTS.md 同条) was already right and is kept verbatim.## 维护者速读(草稿)section, five fixed parts in Chinese from the business angle (改了什么/为什么改/风险与代价(含回滚)/席位意见/你要做的), 席位意见 left empty, which the seat finalizes as a comment at ACCEPT. The seat's half is PR pm-dispatch: a governed PR at ACCEPT getsneeds-user-decision+ a Chinese 「维护者速读」 brief (dev draft, seat final) #15908; the heading spelling matches it byte for byte (ASCII parens). The governed-surface list is pointed atAGENTS.mdrather than copied, because this file is not acheck-governed-proseregion and an unpinned copy is the stale duplicate that gate exists to catch.Paid for by folding two neighbouring pairs, content kept: the body/commit-message parsing pair (two facts about one source split, now one sentence; the squash line that carries the why stays) and the net-increase budget pair (the
blockedgap report and 预算归 PM,抬它归维护者 in one line).Readings
✓ check-skill-line-ratchet: .claude/agents/os-dev.md is 403 lines (ceiling 403; headroom 0).LC_ALL=C awk), every line written: 278 → 114 · 281 → 115 · 282 → 118 · 287 → 118 · 397 → 86 · 401 → 119. Widest written line: 119 bytes (line 401); the file's maximum stays 120.check-skill-id-lintclean); control-byte scan (grep -naP) 0 hits.node scripts/pm/check-governed-merges.mjs --test .claude/agents/os-dev.mdexit 3 (.claude/** ×1).Gates
Run on
6e753860acafter the final commit; every exit code captured with redirect-first (cmd > log 2>&1; EXIT=$?), never through a pipe. Derived from the real changeset:node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(16 families); reconciled:✓ dispatch-gates --ran: 16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED.node scripts/check-closing-keyword-parity.mjsnode scripts/check-closing-keyword-parity.mjs --self-testnode scripts/check-comment-mask-corpus.mjsnode scripts/pm/check-governed-queue-guard.mjs --self-testpnpm --filter @objectstack/lint run check:doc-formula-expressionspnpm check:agent-model-declaredpnpm check:agent-test-spelling--token(s) · 1484 launcher-rootedpnpm check:doc-authoringpnpm check:driver-memory-censuspnpm check:nul-bytespnpm check:pm-governed-mergespnpm check:pm-skill-id-lintpnpm check:pm-skill-ratchetpnpm check:refd-timer-probepnpm check:skill-frame-syncpnpm check:watch-hint-literalNamed by the dispatch beyond the derivation:
node scripts/pm/check-governed-prose.mjsexit 0 (✓ 2 instruction surfaces name all 5 registered governed surfaces); all five.claude/hooks/*.selftest.shexit 0 (50 · 121 · 116 · 51 · 36 passed, 0 failed); whole-repopnpm lintthroughbash scripts/pm/os-verify-lock.shslotissue-15857:VERDICT command-exit 0 · held the lock 82s(shared-box seconds, not idle-box).维护者速读(草稿)
改了什么:开发 agent 的行为契约文件(
os-dev.md)改两处,总行数不变(403/403)。一是 PR 正文署名页脚在「编辑正文」时的行为说明,从一个已被实测推翻的说法改成 AGENTS.md 已落地的实测结论;二是新增一条规则:开发 agent 给受管面(ADR、agent 指令、技能包、AGENTS.md/CLAUDE.md)开 PR 时,正文自带一节中文「维护者速读(草稿)」,固定五段,席位意见留空,由复审席位定稿后贴成评论。为什么改:前者是两份约束文件对同一事实说法相反,agent 会照错的那份做(编辑正文时重贴页脚,留下双页脚);后者落实你 2026-09-05 的指示——需要你审核的 PR,先由契约复审用中文从业务角度写好分析,你只需快速确认。草稿由最了解改动的 dev 起笔,席位对照 diff 校正后定稿,你只读评论。
风险与代价(含回滚):纯文字规则,无代码、无发布物、无数据迁移。代价是为腾出两行,把相邻的两对规则各并成一句(内容保留,措辞收紧)。回滚 = revert 这一个 commit,无残留。风险:折并后的两句若被后来的 agent 读偏,补一行即可;本卡不改任何门禁。
席位意见:(留空,席位定稿)
你要做的:确认后由你手合(受管面,AI 席位不合并、不入队);不同意折并措辞的话,指出哪一句,下一轮改。
Out of scope
Nothing filed from this run; the report on #15857 carries the empty list.
Generated by Claude Code