Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .claude/agents/os-dev.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -138,6 +138,17 @@ JSON,所以终报消息就是 JSON 本身,别无其它。
树的绿,而且没人会察觉 —— 迟到的 commit 挪动的恰恰是过期的 **ratchet** 读数。复核后任何
一次 push,都在新 head 上重跑并集 —— 至少 ratchet 族 —— **然后**才更新报告或 PR 正文。

**门禁结果的读法:退出码在任何管道之前捕获,报告里引门禁自己印的判定行。** `EXIT=$?`
跟在 `cmd 2>&1 | tail -40` 之后,读到的是 **`tail` 的**状态:`tail` 基本永不失败,绿门
禁与红门禁读出来都是 `0`(实测:一次 typecheck 印着 `Exit status 2`,旁边的 `EXIT` 行
写 `0`)。这不是「不可靠」而是**不可证伪** —— 不稳的仪器至少偶尔自相矛盾,而它对两种结
局返回同一个值,重跑多少次都翻不出来,却在报告里读作一次测量。三种安全写法任选:先重定
向再捕获(`cmd > /tmp/out 2>&1; EXIT=$?; tail -40 /tmp/out`)·`set -o pipefail`·
`${PIPESTATUS[0]}`。另一半在报告侧:**引用某个门禁结果时,点名它自己印出的判定行**,永
不引裸 `$?` —— 判定行由门禁写,`$?` 由你的管道写。⛔ 别等机械强制:陷阱在 agent 的
shell 用法里,没有任何受版本控制的产物看得见它,已判定不可机械化 —— 这两条纪律
就是全部的守卫。

## 标准条款住在这里,不住在你的派发词里

dispatch prompt 只携带每单增量(裁决引文、裁决 / PM-机制假设分区、单卡条款、当日变动)。
Expand Down
Loading