观察类,记录覆盖边界,未指派。发现于 2026-08-05 spec 车道同批并行派发(#5483 dev 的报告 follow_ups 原文上报,spec 车道 PM session_018fxLGQdatPbBUvCgiVxg6D 代为立单)。
实测
同一 PM 会话并行派发的多个 os-dev subagent 共享同一个 /tmp/claude-0/.../scratchpad 目录。#5483 的 dev 在 scratchpad 写了 pr-body.md 草稿,被同批在跑的 #5176 dev 的同名文件静默覆写——无报错、无提示,直到回读才发现内容换了主。该 dev 当场改用带唯一后缀的文件名规避,PR #5609 未受影响。
为什么值得记
- 失败形状是静默的:覆写方与被覆写方都拿到成功回执,受害面是「拿旧名字读到别人的内容」——PR 正文、报告草稿、中间测量结果都可能被换包,且事后极难归因(形状同 worktree-first 规则防的那类共享态破坏,只是低一级)。
- 批次越大(当前 batch:5)碰撞概率越高;文件名越「自然」(
pr-body.md、notes.md、diff.txt)越危险。
建议(择一固化,不在本单裁定)
- 约定式:AGENTS.md /
.claude/agents/os-dev.md 记一条「scratchpad 文件一律带 issue 号前缀」(如 5483-pr-body.md)——零成本,靠纪律。
- 结构式:os-dev 开工时在 scratchpad 下建
issue-<n>/ 子目录并只在其中写——机械可查,dispatch 词可加一行。
倾向 2(结构优于纪律,与 worktree-per-task 同构)。落点是 agent 定义/AGENTS.md,属 devx 面。
观察类,记录覆盖边界,未指派。发现于 2026-08-05 spec 车道同批并行派发(#5483 dev 的报告 follow_ups 原文上报,spec 车道 PM
session_018fxLGQdatPbBUvCgiVxg6D代为立单)。实测
同一 PM 会话并行派发的多个 os-dev subagent 共享同一个
/tmp/claude-0/.../scratchpad目录。#5483 的 dev 在 scratchpad 写了pr-body.md草稿,被同批在跑的 #5176 dev 的同名文件静默覆写——无报错、无提示,直到回读才发现内容换了主。该 dev 当场改用带唯一后缀的文件名规避,PR #5609 未受影响。为什么值得记
pr-body.md、notes.md、diff.txt)越危险。建议(择一固化,不在本单裁定)
.claude/agents/os-dev.md记一条「scratchpad 文件一律带 issue 号前缀」(如5483-pr-body.md)——零成本,靠纪律。issue-<n>/子目录并只在其中写——机械可查,dispatch 词可加一行。倾向 2(结构优于纪律,与 worktree-per-task 同构)。落点是 agent 定义/AGENTS.md,属 devx 面。