Skip to content
Merged
Show file tree
Hide file tree
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
18 changes: 10 additions & 8 deletions .claude/agents/os-dev.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,14 +43,16 @@ JSON,所以终报消息就是 JSON 本身,别无其它。
「纠正」**:共享身份让所有人的写入都像你写的;被改写的 body 只是关于 body 的证据,不证
明别的;回退他人的操作——尤其是 ready 翻转——永远轮不到你(把 ready PR 翻回 draft 会
一步无声毁掉 auto-merge 与合并队列成员资格)。把意外写进 `summary`,交给 PM 裁决。
3. **范围 = 这张 issue,别无其它。** 顺路撞见的无关缺陷立成新的**无 assignee** issue,列
进 `out_of_scope_findings` —— 永不在本 PR 里修。立单纪律:**先搜再立**(关键词 + 文件
路径扫 open issues;并行 dev 看不见彼此同一小时立的卡,这一搜只能靠你);**归挂,不散
落**(落在某张已排队 issue 完成范围之内的发现,立成它的 sub-issue;只是*依赖*它的,独
立立单带一行 `Blocked-by:` —— 已排队父单的 sub-issue 自动进派发池);**立在修复落地的
仓**,带回链。观察类发现(死代码、未演练漂移、外观抛光)打 `finding` 标签且不打
`pm:queue`;具体缺陷不打标签,留给 PM 分诊。永不因为「看着小」把发现揣着不报 —— 立单
时点判的严重度两个方向都不可靠;平实立单,分诊轮定级。
3. **范围 = 这张 issue,别无其它。** 顺路撞见的无关缺陷立成新的**无 assignee** issue,列进
`out_of_scope_findings` —— 永不在本 PR 里修。立单纪律:**先搜再立**(关键词 + 文件路径扫 open
issues;并行 dev 看不见彼此同一小时立的卡,这一搜只能靠你)—— 这一搜与列卡读走 **REST 列
表端点 + 本地 grep**,⛔ 不用 MCP `list_issues`/`search_issues`(GraphQL 池是舰队最紧的桶;通道对照
`.claude/skills/pm-dispatch/references/rest-channel.md`),且**PM 的去重读数随派发词下发 ⇒ 当既有事实
用,只复核其后的增量,⛔ 不重跑**;**归挂,不散落**(落在某张已排队 issue 完成范围之内的发
现,立成它的 sub-issue;只是*依赖*它的,独立立单带一行 `Blocked-by:` —— 已排队父单的 sub-issue
自动进派发池);**立在修复落地的仓**,带回链。观察类发现(死代码、未演练漂移、外观抛光)
打 `finding` 标签且不打 `pm:queue`;具体缺陷不打标签,留给 PM 分诊。永不因为「看着小」把发
现揣着不报 —— 立单时点判的严重度两个方向都不可靠;平实立单,分诊轮定级。
**有界就地修豁免** —— 仅当**四条全部成立**才就地修:① 与本卡同一缺陷类;② 机械修,正
确形态已被既有证据钉死(权威源、兄弟声明、已落地裁决);③ 该文件无其他认领持有;④ 同
一批门禁族,不新增验证面。它欠下默认路径所保护的两样:认领申报的文件面**同轮增补**
Expand Down
14 changes: 7 additions & 7 deletions .claude/skills/pm-dispatch/references/dispatch-runbook.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -212,13 +212,13 @@ os-dev 定义。
校验通过、加载成功而**渲染为零**的元数据 —— 绿收据背书的假修复比诚实的缺陷更贵,代价是一次文件读对一整轮 agent 运行。
- **停条件写法:要证据,不要判决**。派发令里的前提/停条件检查必须要 dev 回报**证据面**(搜了什么、找到什么),分叉
归 PM 判 —— 写成「发现消费者就停下」把判决权交回被停的一方。
- **清单取数补遗**(条款主文在主文件):门禁清单单班之内就会过期,所以派发那一刻现取;全 farm 归 CI 跑一次,⛔ 不让
dev 枚举全 farm;点名单当天现取仍会漏(实测漏点名的门恰被改动打红过)—— dev 对实际改动路径重取补跑,条款住
os-dev 定义。**pnpm 10.31 起 `install --workspace-concurrency` 被拒**(只对跑脚本的命令合法),装依赖命令别带
它。
- **文件面两句原文**:「预期落点是 X;若实测表明真正的生产者在别包,报备后按生产者侧修(落点与理由写进报告和 PR 正
文),⛔ 不在消费者侧打补丁」—— 只写一个路径名,是要求 dev 在守约与修对之间二选一;跨包常等于跨车道,PM 事后补跨
座位声明
- **派发那刻现取、随派发词下发的两份读数**(条款主文在主文件;判据同一:PM 已有的读数下发一次,⛔ 不让 N 个 dev 各重跑同样贵
的 GraphQL 读):① **门禁清单**单班之内即过期;全 farm 归 CI 跑一次,⛔ 不让 dev 枚举全 farm;点名单当天现取仍会漏(实测漏的门恰被
改动打红过)—— dev 对实际改动路径重取补跑。② **去重/看板读数**:取一次(查询式 + 时间戳)整批共用,派发令写「当既有事实
用,只复核其后的增量,⛔ 不重跑」。dev 侧对价住 os-dev 定义。**pnpm 10.31 起 `install --workspace-concurrency` 被拒**(只对跑脚本的命令合
法),装依赖命令别带它。
- **文件面两句原文**:「预期落点是 X;若实测表明真正的生产者在别包,报备后按生产者侧修(落点与理由写进报告和 PR 正文),⛔ 不
在消费者侧打补丁」—— 只写一个路径名,是要求 dev 在守约与修对之间二选一;跨包常等于跨车道,PM 事后补跨座位声明
- **Same-day churn 行与在飞重叠**:派发时 `git log origin/main --oneline -20 -- <paths>` 见当天合并 ⇒ 加一行「
基于合并后的代码工作,issue 引用的片段可能已变,先核对当前 main」(dev 的 worktree 切出后不会自己更新)。在飞重
叠每轮拦截(churn 行只覆盖派发瞬间):main 新落 PR 与在飞申报文件面求交,相交即警告四句 —— 合 main 重跑测试矩
Expand Down
Loading