← ClaudeAtlas

parallel-dolisted

当下一步工作能拆成 2 个以上互相独立、无共享状态的子任务(并行调研多个方案、给多个互不相关的文件/模块分别改动、多路并行探索代码),且并行推进比一条线串行更省时时使用。用户说"并行/parallel/同时做/分头做/一起推进"时也适用。
7bata/claude-workflow-kit · ★ 2 · Data & Documents · score 75
Install: claude install-skill 7bata/claude-workflow-kit
# parallel-do — 拆分任务并用 Codex subagents 并行执行 把一个工作步骤拆分成可并行的子任务,分波并行 spawn subagent 并发执行,最后汇总结果。目标是**真正提速**,不是为了并行而并行。用户调用��� skill 即构成对并行 spawn subagent 的明确授权,无需再询问。 ## 流程 ### 1. 确定目标任务 按优先级取任务: 1. 用户消息里给出的工作描述 2. 当前对话上下文中明确的"下一步工作" 3. **上下文里没有详细任务时 → 从项目 plan 接着干**(对接同插件 scaffold skill 铺的 docs 布局): - 读 `docs/Progress.md`(最新在上)→ 确认已经做完到哪了 - 读 `docs/PLAN.md` → 找**第一个没打 `✅` 的 Phase**;再看底部「Spec 索引」区(旧项目可能是「计划索引」)指向的详细文档 - 钻进「Spec 索引」指向的最新一条 `docs/specs/<日期>-<主题>-design.md` → 按 spec 里的验收条款拆出**第一个尚未实现的独立单元**作为目标任务;旧项目走「计划索引」指向的存量计划 `docs/plans/<日期>-<主题>.md` → 取里面**第一个尚未完成的步骤**(`- [ ]`) - 拿 Progress 已记录的"做完"交叉核对,跳过已完成项,只取下一个真正待办 - 这些文档都不存在(项目没铺脚手架)→ 退回看 README / 顶层 TODO / 任意 PLAN 文件里标注的下一个待办 4. 以上都拿不到 → 问用户要做什么 ### 2. 拆分与依赖分析 把任务拆成子任务,对每个子任务标注: - **类型**:「只读」(探索/调研/读代码/分析/设计) 还是「写入」(改代码/建文件/改配置) - **依赖**:它依赖哪些其他子任务的产出 只有**互相独立**(无依赖、无共享可变状态)的子任务才能进同一波并行。有依赖关系的排成波次:第一波结果出来后,作为输入喂给第二波。 ### 3. 价值门槛(防过度并行) 满足以下任一条就**不并行,直接做**,并向用户一句话说明原因: - 拆不出 ≥2 个真正独立的子任务 - 任务本身几分钟就能直接做完(每个 subagent 都是全新 context、要重新读文件,启动有开销) - 子任务之间是纯串行链(A→B→C),并行没有收益 ### 4. 写入冲突分流 - **只读子任务** → 直接并行 - **写入子任务** → 先列出每个子任务**预计要改的文件清单**: - 文件集**不重叠** → 可以并行 - 文件集**重叠** → 合并成一个子任务交给单个 subagent,或排进下一波串行执行(合并更稳) - 拿不准会不会重叠 → 按重叠处理(保守优先) - **共享接缝先落地**:拆分时若多个同波子任务都依赖尚不存在的地基文件(模块定义如 go.mod/package.json、共享类型与接口定义、目录骨架、公共配置),由**主对话在开波之前**先把这层接缝写死并单独原子 commit,再把「接缝已固定、你只写自己的目录」写进每个子代理的 prompt;不要指望子任务各自创建——那等于让两个看不见对方的子代理同时写同一个文件。判断口诀:一波里凡是「两个子任务都会想去创建」的文件,都属于接缝,先落地 ### 5. 分波 spawn subagents 执行