@zmice/zc 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +98 -11
  2. package/dist/cli/__tests__/platform.test.js +215 -2
  3. package/dist/cli/__tests__/platform.test.js.map +1 -1
  4. package/dist/cli/__tests__/surface.test.js +52 -0
  5. package/dist/cli/__tests__/surface.test.js.map +1 -1
  6. package/dist/cli/__tests__/team.test.d.ts +2 -0
  7. package/dist/cli/__tests__/team.test.d.ts.map +1 -0
  8. package/dist/cli/__tests__/team.test.js +29 -0
  9. package/dist/cli/__tests__/team.test.js.map +1 -0
  10. package/dist/cli/__tests__/upstream.test.js +4 -0
  11. package/dist/cli/__tests__/upstream.test.js.map +1 -1
  12. package/dist/cli/platform.d.ts +11 -3
  13. package/dist/cli/platform.d.ts.map +1 -1
  14. package/dist/cli/platform.js +216 -54
  15. package/dist/cli/platform.js.map +1 -1
  16. package/dist/cli/team.d.ts.map +1 -1
  17. package/dist/cli/team.js +114 -4
  18. package/dist/cli/team.js.map +1 -1
  19. package/dist/cli/upstream.d.ts +1 -0
  20. package/dist/cli/upstream.d.ts.map +1 -1
  21. package/dist/cli/upstream.js +84 -5
  22. package/dist/cli/upstream.js.map +1 -1
  23. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts +37 -3
  24. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -1
  25. package/dist/node_modules/@zmice/platform-core/dist/index.js +68 -0
  26. package/dist/node_modules/@zmice/platform-core/dist/index.js.map +1 -1
  27. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +44 -1
  28. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  29. package/dist/runtime/__tests__/worktree-manager.test.js +63 -1
  30. package/dist/runtime/__tests__/worktree-manager.test.js.map +1 -1
  31. package/dist/runtime/worktree-manager.d.ts +26 -1
  32. package/dist/runtime/worktree-manager.d.ts.map +1 -1
  33. package/dist/runtime/worktree-manager.js +126 -12
  34. package/dist/runtime/worktree-manager.js.map +1 -1
  35. package/dist/team/__tests__/orchestrator.test.js +40 -0
  36. package/dist/team/__tests__/orchestrator.test.js.map +1 -1
  37. package/dist/team/__tests__/planner.test.d.ts +2 -0
  38. package/dist/team/__tests__/planner.test.d.ts.map +1 -0
  39. package/dist/team/__tests__/planner.test.js +43 -0
  40. package/dist/team/__tests__/planner.test.js.map +1 -0
  41. package/dist/team/__tests__/task-queue.test.js +18 -0
  42. package/dist/team/__tests__/task-queue.test.js.map +1 -1
  43. package/dist/team/orchestrator.d.ts +2 -1
  44. package/dist/team/orchestrator.d.ts.map +1 -1
  45. package/dist/team/orchestrator.js +29 -10
  46. package/dist/team/orchestrator.js.map +1 -1
  47. package/dist/team/planner.d.ts +27 -0
  48. package/dist/team/planner.d.ts.map +1 -0
  49. package/dist/team/planner.js +120 -0
  50. package/dist/team/planner.js.map +1 -0
  51. package/dist/team/task-queue.d.ts +3 -0
  52. package/dist/team/task-queue.d.ts.map +1 -1
  53. package/dist/team/task-queue.js +11 -2
  54. package/dist/team/task-queue.js.map +1 -1
  55. package/package.json +2 -2
  56. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts +37 -3
  57. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -1
  58. package/vendor/node_modules/@zmice/platform-core/dist/index.js +68 -0
  59. package/vendor/node_modules/@zmice/platform-core/dist/index.js.map +1 -1
  60. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +44 -1
  61. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -1
  62. package/vendor/packages/platform-claude/dist/index.d.ts.map +1 -1
  63. package/vendor/packages/platform-claude/dist/index.js +12 -70
  64. package/vendor/packages/platform-claude/dist/index.js.map +1 -1
  65. package/vendor/packages/platform-codex/dist/generate.d.ts +1 -1
  66. package/vendor/packages/platform-codex/dist/generate.d.ts.map +1 -1
  67. package/vendor/packages/platform-codex/dist/generate.js +1 -1
  68. package/vendor/packages/platform-codex/dist/generate.js.map +1 -1
  69. package/vendor/packages/platform-codex/dist/index.d.ts +15 -1
  70. package/vendor/packages/platform-codex/dist/index.d.ts.map +1 -1
  71. package/vendor/packages/platform-codex/dist/index.js +320 -47
  72. package/vendor/packages/platform-codex/dist/index.js.map +1 -1
  73. package/vendor/packages/platform-codex/dist/index.test.js +113 -5
  74. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -1
  75. package/vendor/packages/platform-opencode/dist/index.d.ts.map +1 -1
  76. package/vendor/packages/platform-opencode/dist/index.js +15 -81
  77. package/vendor/packages/platform-opencode/dist/index.js.map +1 -1
  78. package/vendor/packages/platform-qwen/dist/index.d.ts.map +1 -1
  79. package/vendor/packages/platform-qwen/dist/index.js +28 -84
  80. package/vendor/packages/platform-qwen/dist/index.js.map +1 -1
  81. package/vendor/packages/toolkit/src/content/agents/architect/body.md +8 -0
  82. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +10 -0
  83. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +8 -0
  84. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +3 -1
  85. package/vendor/packages/toolkit/src/content/commands/start/body.md +51 -2
  86. package/vendor/packages/toolkit/src/content/commands/start/meta.yaml +2 -2
  87. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +17 -0
  88. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +77 -520
  89. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +56 -387
  90. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +10 -0
  91. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +55 -301
  92. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +10 -0
  93. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +66 -331
  94. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +30 -1
  95. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +79 -317
  96. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +60 -330
  97. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +35 -0
  98. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +66 -342
  99. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +66 -303
  100. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +81 -327
  101. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +50 -346
  102. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +26 -2
  103. package/vendor/references/upstreams.yaml +5 -0
@@ -1,351 +1,113 @@
1
1
  # Parallel Agent Dispatch
2
2
 
3
- ## Overview
3
+ ## 角色定位
4
4
 
5
- 当实现计划中有多个独立任务时,通过并行子代理同时执行,大幅加速开发。每个子代理在隔离的上下文中工作,完成后汇总结果并检测冲突。
5
+ 在用户明确允许多 agent / 并行 / team 模式时,把彼此独立的任务做上下文级 fan-out,并在结束时做 fan-in、冲突检测和集成验证。
6
6
 
7
- **三种并行模式:**
8
- - **Context Fan-Out**(默认)— 单上下文内并行分派子代理
9
- - **Worktree Parallel** — Git worktree 文件系统级隔离
10
- - **Cascade** — 分层批次执行(层内并行,层间串行)
7
+ 这个 skill 不是默认加速器。能并行不等于应该并行;并行会增加 token、延迟、集成和验证成本。
11
8
 
12
- ## When to Use
9
+ ## 快速路径
13
10
 
14
- ```
15
- 有多个待执行任务? ─── 否 ──→ 不需要此技能
16
-
17
-
18
-
19
- 任务之间独立? ─── ──→ subagent-driven-development(串行)
20
-
21
-
22
-
23
- 任务 >2 个? ─── 否 ──→ 串行可能更简单
24
-
25
-
26
-
27
- parallel-agent-dispatch ✓
28
-
29
-
30
- 任务修改同一文件? ─── 是 ──→ Worktree 并行模式(文件系统隔离)
31
-
32
-
33
-
34
- 任务有层次依赖? ── 是 ──→ Cascade 模式(分层批次)
35
-
36
-
37
-
38
- Context Fan-Out(默认模式)
39
- ```
40
-
41
- 适用场景:
42
- - 多个独立模块可以同时实现
43
- - 多个独立测试文件可以同时编写
44
- - 多个不相关的 Bug 可以同时修复
45
- - 代码审查的不同维度可以并行进行
46
-
47
- 不适用场景:
48
- - 任务之间有依赖关系(Task B 需要 Task A 的输出)
49
- - 任务修改同一个文件
50
- - 任务需要共享状态
51
-
52
- ## 执行流程
53
-
54
- ### 阶段 1:分析与分组(Analysis)
55
-
56
- ```
57
- 读取计划中的所有任务
58
-
59
-
60
- 构建依赖图
61
-
62
-
63
- 识别可并行的任务组
64
-
65
-
66
- 检查文件冲突(两个任务是否修改同一文件?)
67
-
68
-
69
- 确定并行批次
70
- ```
71
-
72
- **关键检查:**
73
- - 同一文件不能被两个并行任务修改
74
- - 有依赖关系的任务必须串行
75
- - 共享测试 fixtures 的任务要注意隔离
76
-
77
- ### 阶段 2:扇出(Fan-Out)
78
-
79
- 为每个并行任务分派子代理:
80
-
81
- ```
82
- 控制器
83
- ├─→ 子代理 A:Task 1(文件集 A)
84
- ├─→ 子代理 B:Task 2(文件集 B)
85
- └─→ 子代理 C:Task 3(文件集 C)
86
- ```
87
-
88
- **每个子代理接收:**
89
- - 完整的任务描述
90
- - 允许修改的文件列表(严格限定)
91
- - 项目约定和模式示例
92
- - 测试策略
93
- - **明确说明不要触碰其他子代理的文件**
94
-
95
- ### 阶段 3:并行执行
96
-
97
- 每个子代理独立工作:
98
- 1. 遵循 TDD 循环(红 → 绿 → 重构)
99
- 2. 只修改分配给自己的文件
100
- 3. 运行自己范围内的测试
101
- 4. 报告状态(DONE / BLOCKED / NEEDS_CONTEXT)
102
-
103
- ### 阶段 4:扇入(Fan-In)
104
-
105
- 收集所有子代理的结果:
106
-
107
- ```
108
- 子代理 A 完成 ──┐
109
- 子代理 B 完成 ──┼──→ 结果汇总 → 冲突检测 → 集成测试
110
- 子代理 C 完成 ──┘
111
- ```
112
-
113
- **汇总检查清单:**
114
- - [ ] 所有子代理报告完成
115
- - [ ] 无文件冲突(检查 VCS diff)
116
- - [ ] 运行完整测试套件(不仅是各自的测试)
117
- - [ ] 检查跨模块的接口一致性
118
- - [ ] 合并所有变更
119
-
120
- ### 扇入后的分支收尾
121
-
122
- fan-in 结束不代表并行任务真正闭环。无论采用上下文并行还是 worktree 并行,都要继续处理每个任务分支的结束状态:
123
-
124
- - 成功且已合入的分支:验证目标分支状态后删除
125
- - 成功但等待 PR 的分支:保留到审查完成,并明确负责人
126
- - 失败或被放弃的分支:记录结论后清理现场,不继续占用 worktree
127
- - 暂时保留的分支:写明为什么保留、保留多久、由谁接手
128
-
129
- 并行批次里最常见的脏状态不是“代码冲突”,而是 fan-in 后残留一堆无人负责的 branch / worktree。具体判定与清理策略见 `branch-finish-and-cleanup`。
130
-
131
- ## 冲突检测
132
-
133
- 即使预先分配了文件集,仍需检测以下冲突:
134
-
135
- | 冲突类型 | 检测方法 | 解决方式 |
136
- |---------|---------|---------|
137
- | 文件冲突 | 两个子代理修改了同一文件 | 手动合并或串行重做 |
138
- | 接口冲突 | 模块 A 的输出与模块 B 的输入不匹配 | 修复接口层 |
139
- | 命名冲突 | 不同子代理对同一概念使用不同命名 | 统一命名后批量替换 |
140
- | 依赖冲突 | 子代理引入了冲突的依赖版本 | 协调统一版本 |
141
-
142
- ## 失败处理
143
-
144
- **单任务失败不阻塞其他任务。**
145
-
146
- ```
147
- 子代理 A:✅ DONE
148
- 子代理 B:❌ BLOCKED
149
- 子代理 C:✅ DONE
150
-
151
-
152
- 先合并 A 和 C 的结果
153
- 然后单独处理 B(串行重试或重新分析)
154
- ```
155
-
156
- 处理优先级:
157
- 1. 收集所有成功结果
158
- 2. 运行集成测试(仅成功部分)
159
- 3. 分析失败原因
160
- 4. 对失败任务:提供更多上下文 / 用更强模型 / 拆分为更小任务
161
-
162
- ## Worktree 并行模式
163
-
164
- 当任务需要真正的文件系统隔离时(例如多个任务可能触及相邻文件、或需要完整的构建环境),使用 git worktree 为每个并行代理提供独立的工作目录。
165
-
166
- ### 流程
167
-
168
- ```
169
- 分析任务 → 为每个任务创建 worktree + 分支
170
-
171
-
172
- 并行执行(每个代理在自己的 worktree 中工作)
173
-
174
-
175
- 汇入主分支 → 解决冲突 → 集成测试 → 清理 worktree
176
- ```
177
-
178
- ### 具体步骤
179
-
180
- **1. 创建 Worktree:**
181
- ```bash
182
- # 主仓库在 main 分支
183
- git worktree add ../project-task-a feature/task-a
184
- git worktree add ../project-task-b feature/task-b
185
- git worktree add ../project-task-c feature/task-c
186
-
187
- # 每个 worktree 是独立目录,独立分支
188
- ls ../
189
- project/ ← main 分支
190
- project-task-a/ ← feature/task-a
191
- project-task-b/ ← feature/task-b
192
- project-task-c/ ← feature/task-c
193
- ```
11
+ 1. 读取计划,列出所有任务、依赖和预计触达文件。
12
+ 2. 判断任务是否彼此独立,是否有清晰文件所有权。
13
+ 3. 给出并行推荐,但在用户明确确认前不启动子代理。
14
+ 4. 为每个 worker 分配唯一责任范围、允许修改文件和验证命令。
15
+ 5. fan-out 执行,期间不让多个 worker 修改同一文件。
16
+ 6. fan-in 汇总,检查 diff、冲突、接口一致性和测试结果。
17
+ 7. 记录验收 transcript:谁做了什么、证据是什么、还有什么风险。
194
18
 
195
- **2. 分派子代理:**
196
- 每个子代理的工作目录指向其 worktree,完全隔离。
19
+ ## 使用条件
197
20
 
198
- **3. 合并策略:**
199
- ```bash
200
- # 完成后合并各分支
201
- git checkout main
202
- git merge feature/task-a --no-edit
203
- git merge feature/task-b --no-edit
204
- git merge feature/task-c --no-edit
21
+ 适用:
205
22
 
206
- # 清理
207
- git worktree remove ../project-task-a
208
- git worktree remove ../project-task-b
209
- git worktree remove ../project-task-c
210
- git branch -d feature/task-a feature/task-b feature/task-c
211
- ```
212
-
213
- **4. 冲突解决:**
214
- - 合并时发现冲突 → 手动解决或分派子代理处理
215
- - 实验失败 → 直接删除 worktree,无需复杂回滚
23
+ - 多个任务互不依赖。
24
+ - 每个任务能在独立上下文中完成。
25
+ - 文件所有权可以提前划清。
26
+ - fan-in 后有集成测试或人工审查门禁。
216
27
 
217
- **5. 收尾清理:**
218
- - 分支合入后删除功能分支
219
- - 不再需要的 worktree 立即移除
220
- - 保留中的实验分支要登记负责人与后续动作
28
+ 不适用:
221
29
 
222
- ### 何时选择 Worktree 模式
30
+ - 任务依赖同一个未完成设计。
31
+ - 多个任务必须改同一文件。
32
+ - 缺少测试或集成验证方式。
33
+ - 用户没有明确授权并行。
223
34
 
224
- | 场景 | Worktree 优势 |
225
- |------|----------|
226
- | 任务需要完整构建环境 | 每个 worktree 可独立 `npm install` 和构建 |
227
- | 任务可能触及相邻文件 | 文件系统级隔离,无写入冲突 |
228
- | 探索性实验 | 失败时直接删除 worktree,零成本 |
229
- | 多人/多 Agent 协作 | 每人一个 worktree,自然隔离 |
35
+ ## 模式选择
230
36
 
231
- ## Cascade(级联)执行模式
37
+ | 模式 | 适用场景 | 代价 |
38
+ |---|---|---|
39
+ | Context Fan-Out | 只需要多个子代理分别分析或修改互不重叠文件 | 共享同一 worktree,fan-in 需谨慎检查 |
40
+ | Worktree Parallel | 任务可能触及相邻区域,或需要独立构建环境 | 需要分支和 worktree 清理 |
41
+ | Cascade | 任务有层级依赖,但每层内可并行 | 每层都要验证后再进下一层 |
42
+ | Team Orchestration | 需要 tmux + git worktree + 多 CLI worker | 运行时成本最高,需 `zc team` 收尾 |
232
43
 
233
- 当任务有层次依赖关系时,使用级联模式:每层内并行,层间串行,每层完成后验证再进入下一层。
44
+ 如果需要文件系统级隔离,切到 `team-orchestration`;不要在本 skill 内展开完整 `zc team` 教程。
234
45
 
235
- ### 流程
236
-
237
- ```
238
- 依赖分析 → 构建层次图 → 分层执行
46
+ ## 授权提示
239
47
 
240
- 层 0(基础):无依赖的任务
241
- │ Task 1, Task 2, Task 3 ── 并行 ──→ 验证
242
-
243
- 层 1:依赖层 0 的任务
244
- │ Task 4, Task 5 ── 并行 ──→ 验证
245
-
246
- 层 2:依赖层 1 的任务
247
- │ Task 6 ── 串行 ──→ 最终验证
248
-
249
- 完成
250
- ```
48
+ 启动前必须给用户看到这段信息的等价内容:
251
49
 
252
- ### 层次图构建
50
+ ```text
51
+ Recommendation: 开启 <模式> because <并行收益> outweighs <集成代价>。
52
+ - worker 数:
53
+ - 文件所有权:
54
+ - 不并行的替代方案:
55
+ - fan-in 验证:
253
56
 
254
- ```
255
- 1. 读取计划中的所有任务及其依赖关系
256
- 2. 将无依赖的任务放入层 0
257
- 3. 将仅依赖层 0 的任务放入层 1
258
- 4. 以此类推,直到所有任务分层
259
- 5. 每层内的任务互相独立,可并行执行
57
+ 确认后我再启动;不确认则按串行推进。
260
58
  ```
261
59
 
262
- ### 层间门控
60
+ ## Worker 合约
263
61
 
264
- 每层完成后必须通过验证才能进入下一层:
265
-
266
- ```
267
- 层 N 完成
268
-
269
-
270
- ✅ 所有任务成功 → 运行集成测试 → 进入层 N+1
271
- ❌ 部分失败 → 先合并成功结果 → 单独处理失败任务
272
- ❌ 集成测试失败 → 停止,修复后重新运行本层
273
- ```
62
+ 每个子代理都必须收到:
274
63
 
275
- ### Cascade vs 简单批次
64
+ - 任务目标和验收标准
65
+ - 允许读取的关键上下文
66
+ - 允许修改的文件或模块边界
67
+ - 不得触碰其他 worker 文件的说明
68
+ - 任务内验证命令
69
+ - 返回格式:`DONE / BLOCKED / NEEDS_CONTEXT`
276
70
 
277
- Cascade 是批次策略的精确版——基于依赖图自动计算批次,而非手动划分:
71
+ 返回时必须列出:
278
72
 
279
- | 特征 | 简单批次 | Cascade |
280
- |------|---------|--------|
281
- | 批次划分 | 手动 | 依赖图自动计算 |
282
- | 层间关系 | 隔离 | 明确的依赖传递 |
283
- | 失败影响 | 本层失败才停 | 层失败阵止下游 |
284
- | 适用场景 | 简单独立任务 | 有层次依赖的复杂计划 |
73
+ - 修改文件
74
+ - 已运行验证
75
+ - 未覆盖风险
76
+ - 需要主线程 fan-in 的事项
285
77
 
286
- ## 并行模式选择指南
78
+ ## Fan-In 门禁
287
79
 
288
- | 场景特征 | 推荐模式 | 原因 |
289
- |---------|---------|------|
290
- | 任务完全独立,不触及同一文件 | **Context Fan-Out** | 最简单高效,无额外开销 |
291
- | 任务可能触及相邻文件或需要独立构建 | **Worktree Parallel** | 文件系统级隔离,安全无冲突 |
292
- | 任务有层次依赖关系 | **Cascade** | 层内并行 + 层间门控,最大化并行度 |
293
- | 任务紧耦合,有严格串行依赖 | **不使用并行** | 用 subagent-driven-development 串行执行 |
294
- | 探索性实验,不确定哪个方案最优 | **Worktree Parallel** | 失败时直接删除 worktree,零成本 |
295
- | 大型计划(10+ 任务) | **Cascade** | 自动优化执行顺序,可控资源使用 |
80
+ 并行完成不等于任务完成。fan-in 必须检查:
296
81
 
297
- ## 批次策略
82
+ - 所有子代理结果是否到齐。
83
+ - 是否出现同文件修改、命名冲突或接口冲突。
84
+ - 局部验证是否可信。
85
+ - 主线程是否运行集成测试或目标平台验证。
86
+ - 是否需要清理分支、worktree、临时文件或保留待审查分支。
298
87
 
299
- 大型计划不必一次全部并行:
88
+ 推荐记录格式:
300
89
 
90
+ ```text
91
+ Parallel acceptance transcript:
92
+ - Plan:
93
+ - Workers:
94
+ - Files:
95
+ - Results:
96
+ - Verification:
97
+ - Conflicts:
98
+ - Follow-up:
301
99
  ```
302
- 批次 1:Task 1, 2, 3(并行)→ 汇总 → 集成测试
303
-
304
-
305
- 批次 2:Task 4, 5(并行,依赖批次1的输出)→ 汇总 → 集成测试
306
-
307
-
308
- 批次 3:Task 6(串行,依赖批次2)→ 最终测试
309
- ```
310
-
311
- **批次划分原则:**
312
- - 同一批次内的任务互相独立
313
- - 下一批次可以依赖上一批次的输出
314
- - 每批次后运行集成测试
315
- - 批次大小根据可用资源调整
316
-
317
- ## 批次结束协议
318
100
 
319
- 每个批次完成后按同一顺序收口:
320
-
321
- 1. 汇总成功结果并运行批次级验证
322
- 2. 标记失败任务是重试、拆分还是放弃
323
- 3. 为成功任务明确 branch 去向:合入、开 PR 或暂时保留
324
- 4. 清理本批次已经无用的 worktree 和临时分支
325
- 5. 再进入下一批次
326
-
327
- 不要把 branch cleanup 推迟到所有批次都结束后再统一处理。批次越大,残留越难追。
328
-
329
- ## 与其他技能的衔接
101
+ ## 失败处理
330
102
 
331
- - **subagent-driven-development** 姊妹技能:串行版本,适合有依赖的任务链
332
- - **planning-and-task-breakdown** — 上游:生成带依赖关系标注的任务计划,Cascade 模式依赖其输出的依赖图
333
- - **git-workflow-and-versioning** — Worktree 模式依赖 git worktree 管理,参见该技能的 worktree 章节
334
- - **branch-finish-and-cleanup** — fan-in 后的 branch / worktree 去向判定与清理由该技能负责
335
- - **verification-before-completion** — 扇入阶段和 Cascade 层间门控的集成测试遵循验证铁律
336
- - **code-review-and-quality** — 所有并行结果合并后进行统一审查
337
- - **continuous-learning** — 并行执行中的模式(常见冲突、有效批次大小)自动记录为 instinct
103
+ - 单个 worker 失败时,不要自动丢弃其他成功结果。
104
+ - 先收集成功结果,再判断是否可以部分合入。
105
+ - 失败任务优先缩小范围、补上下文或改为串行处理。
106
+ - 如果失败暴露计划不成立,回到 `planning-and-task-breakdown`。
338
107
 
339
- ## Red Flags
108
+ ## 与相关技能的边界
340
109
 
341
- - 并行执行有依赖关系的任务
342
- - 两个子代理修改同一文件(非 Worktree 模式下)
343
- - 跳过扇入阶段的集成测试
344
- - 不检查跨模块接口一致性
345
- - 子代理间共享上下文(违背隔离原则)
346
- - 单个子代理失败就放弃所有结果
347
- - 不运行完整测试套件就声明并行执行完成
348
- - Cascade 模式中跳过层间门控直接进入下一层
349
- - Worktree 完成后不清理(浪费磁盘空间)
350
- - 不根据任务特征选择并行模式,一律使用默认 Fan-Out
351
- - fan-in 后不明确各分支的最终去向,留下悬空 branch / worktree
110
+ - `subagent-driven-development`:串行委派,不做并行 fan-out。
111
+ - `team-orchestration`:进程级 + 文件系统级隔离。
112
+ - `branch-finish-and-cleanup`:fan-in 后处理分支、worktree 和残留状态。
113
+ - `verification-before-completion`:声明完成前读取验证输出。