Skip to content

Commit ae816c4

Browse files
docs(os-dev): a reading order may build and run when it asks for a runtime measurement (#31413)
<!-- claude-projects-attribution: {"github_login":"zhuangjianguo"} --> _Requested by **Steedos** · [project thread](https://claude.ai/code/project/chan_018ETKaNwMZCNRYD7D8Q9Ubb?thread=cmsg_018ETKaNwMZCNRYD7D8Q9UbbCMBZirNC9MwHbg63MxNh5Q)_ Fixes #31372 Clause-②: no Metadata-protocol: none ## 维护者速读 - 改了什么:`.claude/agents/os-dev.md` 里只读读数那一行改写为「只读读数 ⇒ 不 commit、不开 PR,报 `status: "reading"` 贴决策卡;派发词要实测才建闭包跑测。」 - 为什么改:旧句把「不建闭包、不跑测试」也写成铁律,派发词要运行时实测(复现、计数)时两条规则直接冲突;现在「不 commit、不开 PR」是不变量,建与跑只是默认关闭。 - 风险与回滚:只改一行规则文本,不动任何代码与发布面;回滚即 revert 本 PR 的那一个 commit。 - 先看:`.claude/agents/os-dev.md` 第 355 行(〈何时停手不写码〉一节)。 - 两分钟验证:`git show origin/main:.claude/agents/os-dev.md | sed -n 355p` 与本分支同一行对比,应见「派发词要实测才建闭包跑测」取代「不建闭包、不跑测试」。 - 需要你做的:无,席位落地(Tier S,落地前欠一份契约复审档记录)。 ## What changes One line of `.claude/agents/os-dev.md` (the reading-order line in the stop-and-do-not-code section, L355 on `origin/main`): - Before: 「派发词标只读读数 ⇒ 不建闭包、不跑测试、不开 PR;报 `status: "reading"`,读数贴决策卡。」 - After: 「只读读数 ⇒ 不 commit、不开 PR,报 `status: "reading"` 贴决策卡;派发词要实测才建闭包跑测。」 The invariant of a reading order is now no commit and no PR, reporting `status: "reading"` with the reading on the decision card. Building the closure and running tests stay off by default and are allowed only when the dispatch order asks for a runtime measurement. ## Why A reading whose question only a run can answer (a repro, a measured count) needs a build and a run, and the old line forbade both outright. The triage audit on the card asked for 「不开 PR、零写」 as the invariant with a purely static reading as the default. ## Tests No code or test file changes; nothing to ablate (rules text only). ## Acceptance notes - Grep of `.claude/**`, `AGENTS.md`, `CLAUDE.md` and `docs/agents/**` for any other text forbidding a reading order from building or running: one further hit, `.claude/skills/pm-dispatch/references/dispatch-runbook.md:239` (测量先行卡 ⇒ 只派只读读数 dev 或不派等裁). It names the order kind and forbids neither a build nor a run, so it does not conflict and is left untouched. - The file sits at its line ceiling (405 of 405) and every line is capped at 120 bytes, so the rewrite stays one line (118 bytes). That budget is why the line spells the invariant as 「不 commit、不开 PR」 rather than also spelling 「零写」 and 「不 push」: no commit leaves nothing to push, and the reading still lands on the decision card. - A throwaway measurement file is not named on the line; it cannot land because nothing is committed, and the AGENTS.md post-task checklist already says to delete temporary artefacts. ## Verification <details><summary>dispatch-gates at head 35cbbb9 (after merging origin/main)</summary> `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack`: 20 commands, all exit 0 (`check:doc-formula-expressions` first exited 3 on a missing formula/lint build, rebuilt under the verify lock, then 0). `--ran` reconciliation: 20 derived, 20 run, 0 NOT-MEASURED, 0 UNRUN. After the main merge `check:pm-skill-ratchet`, `check:commit-card-trailers` and `check:nul-bytes` were re-run at 35cbbb9, all exit 0. </details> ## Human Minimum - [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic. (not touched) - [x] 2. Every name I added uses the casing for its kind. (no names added) - [x] 3. No formatter ran; `pnpm lint` passes. (CI-owned run) - [x] 4. One issue, one branch off an up-to-date `main`, one pull request. - [x] 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset. (publishes nothing: `skip-changeset`) - [x] 6. `packages/spec` touched: its generated artifacts are regenerated and committed. (not touched) - [x] 7. No hand edits to `content/docs/references/`, `packages/*/CHANGELOG.md` or `content/docs/releases/`. - [x] 8. Title, body and comments are in English. (the 维护者速读 section is Chinese by rule) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- _Generated by [Claude Code](https://claude.ai/code/session_01QsR2jSWYPy7QgUAcfc8g6V)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 8941669 commit ae816c4

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎.claude/agents/os-dev.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ model: opus
352352
- 同 PR 改,正文点名裁决 id,落地欠契约复审档记录;⛔ 永不自行翻转裁决,与之相左仍停手。
353353
- 两种读法通向两种架构时同此;⛔ 不写投机代码。
354354
- 返回 `status: "needs_decision"`,每个问题带选项、真实代价与工作量、推荐,写进 `open_questions`。
355-
- 派发词标只读读数 ⇒ 不建闭包、不跑测试、不开 PR;报 `status: "reading"`,读数贴决策卡。
355+
- 派发词标只读读数 ⇒ 不 commit、不开 PR,`status: "reading"` 贴决策卡;要实测才建闭包跑测。
356356
- 框架唯一副本在 pm-dispatch SKILL.md 〈升级与决策〉;派发词逐字粘贴,dev ⛔ 不留副本。
357357
- 每个方案逐轴分析,推荐也按那些轴给理由;派发词没带,停下向 PM 索取,⛔ 不自拟一套轴。
358358
- `main` 碎了、依赖未合并、CI 基础设施故障 ⇒ 报 `blocked` 附证据,重试到排除你的改动。

0 commit comments

Comments
 (0)