tackle-harness 0.0.2

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 (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +259 -0
  3. package/README.md +261 -0
  4. package/bin/tackle.js +150 -0
  5. package/package.json +29 -0
  6. package/plugins/contracts/plugin-interface.js +244 -0
  7. package/plugins/core/hook-skill-gate/index.js +437 -0
  8. package/plugins/core/hook-skill-gate/plugin.json +12 -0
  9. package/plugins/core/provider-memory-store/index.js +403 -0
  10. package/plugins/core/provider-memory-store/plugin.json +9 -0
  11. package/plugins/core/provider-role-registry/index.js +477 -0
  12. package/plugins/core/provider-role-registry/plugin.json +9 -0
  13. package/plugins/core/provider-state-store/index.js +244 -0
  14. package/plugins/core/provider-state-store/plugin.json +9 -0
  15. package/plugins/core/skill-agent-dispatcher/plugin.json +13 -0
  16. package/plugins/core/skill-agent-dispatcher/skill.md +912 -0
  17. package/plugins/core/skill-batch-task-creator/plugin.json +13 -0
  18. package/plugins/core/skill-batch-task-creator/skill.md +616 -0
  19. package/plugins/core/skill-checklist/plugin.json +10 -0
  20. package/plugins/core/skill-checklist/skill.md +115 -0
  21. package/plugins/core/skill-completion-report/plugin.json +10 -0
  22. package/plugins/core/skill-completion-report/skill.md +331 -0
  23. package/plugins/core/skill-experience-logger/plugin.json +10 -0
  24. package/plugins/core/skill-experience-logger/skill.md +235 -0
  25. package/plugins/core/skill-human-checkpoint/plugin.json +10 -0
  26. package/plugins/core/skill-human-checkpoint/skill.md +194 -0
  27. package/plugins/core/skill-progress-tracker/plugin.json +10 -0
  28. package/plugins/core/skill-progress-tracker/skill.md +204 -0
  29. package/plugins/core/skill-role-manager/plugin.json +10 -0
  30. package/plugins/core/skill-role-manager/skill.md +252 -0
  31. package/plugins/core/skill-split-work-package/plugin.json +13 -0
  32. package/plugins/core/skill-split-work-package/skill.md +446 -0
  33. package/plugins/core/skill-task-creator/plugin.json +13 -0
  34. package/plugins/core/skill-task-creator/skill.md +744 -0
  35. package/plugins/core/skill-team-cleanup/plugin.json +10 -0
  36. package/plugins/core/skill-team-cleanup/skill.md +266 -0
  37. package/plugins/core/skill-workflow-orchestrator/plugin.json +13 -0
  38. package/plugins/core/skill-workflow-orchestrator/skill.md +274 -0
  39. package/plugins/core/validator-doc-sync/index.js +248 -0
  40. package/plugins/core/validator-doc-sync/plugin.json +9 -0
  41. package/plugins/core/validator-work-package/index.js +300 -0
  42. package/plugins/core/validator-work-package/plugin.json +9 -0
  43. package/plugins/plugin-registry.json +118 -0
  44. package/plugins/runtime/config-manager.js +306 -0
  45. package/plugins/runtime/event-bus.js +187 -0
  46. package/plugins/runtime/harness-build.js +1019 -0
  47. package/plugins/runtime/logger.js +174 -0
  48. package/plugins/runtime/plugin-loader.js +339 -0
  49. package/plugins/runtime/state-store.js +277 -0
@@ -0,0 +1,744 @@
1
+ ---
2
+ name: task-creator
3
+ description: Use when user says "创建任务", "新建任务", "添加任务", or needs to create a new task/work package. This skill creates task definitions ONLY - it does NOT implement them.
4
+ plan_mode_required: true
5
+ ---
6
+
7
+ <STOP>
8
+ ╔══════════════════════════════════════════════════════════════════════════════╗
9
+ ║ 🛑 MANDATORY STOP POINT - 文档优先模式 ║
10
+ ║ ║
11
+ ║ Plan 确认后,自动执行以下步骤: ║
12
+ ║ Step 7: 写入 docs/wp/WP-XXX.md ║
13
+ ║ Step 8: 更新 task.md(追加概览表行) ║
14
+ ║ Step 9: 输出简洁报告 → 🛑 停止 ║
15
+ ║ ║
16
+ ║ ⚠️ 这是自动流程,不需要用户再次确认 ║
17
+ ║ ⚠️ bypassPermission 不影响此流程 ║
18
+ ╚══════════════════════════════════════════════════════════════════════════════╝
19
+ </STOP>
20
+
21
+ <HARD-GATE>
22
+ ╔══════════════════════════════════════════════════════════════════════════════╗
23
+ ║ 📝 文档优先模式 - Plan 确认后自动执行 ║
24
+ ║ ║
25
+ ║ Plan 确认后,你必须**立即**执行以下步骤: ║
26
+ ║ ║
27
+ ║ Step 7: 写入 docs/wp/WP-XXX.md(完整工作包文档) ║
28
+ ║ Step 8: 更新 task.md(追加概览表行) ║
29
+ ║ Step 9: 输出简洁报告 → 🛑 停止 ║
30
+ ║ ║
31
+ ║ ⚠️ 这是自动流程,不需要用户再次确认 ║
32
+ ║ ⚠️ bypassPermission 不影响此流程 ║
33
+ ║ ║
34
+ ║ DO NOT: ║
35
+ ║ ❌ Write any code files (.gd, .js, etc.) ║
36
+ ║ ❌ Modify any scene files (.tscn) except documentation ║
37
+ ║ ❌ Call human-checkpoint(Plan 确认已是人介入点) ║
38
+ ╚══════════════════════════════════════════════════════════════════════════════╝
39
+ </HARD-GATE>
40
+
41
+ # Task Creator (任务创建器)
42
+
43
+ 创建工作包定义 - **仅创建定义,不实现代码**。
44
+
45
+ ## 核心原则
46
+
47
+ ```
48
+ ┌─────────────────────────────────────────────────────────────────┐
49
+ │ "创建任务" ≠ "执行任务" │
50
+ │ │
51
+ │ 用户说 "创建任务" = 只写文档,不写代码 │
52
+ │ 用户说 "执行任务" = 开始写代码实现 │
53
+ │ │
54
+ │ 这是两个完全独立的阶段,中间必须有人工确认! │
55
+ └─────────────────────────────────────────────────────────────────┘
56
+ ```
57
+
58
+ ### 简单任务处理规则
59
+
60
+ | 情况 | 正确行为 |
61
+ |------|----------|
62
+ | "创建任务:修复一个 typo" | ✅ 创建 WP-XXX,然后停止 |
63
+ | "创建任务:改一行代码" | ✅ 创建 WP-XXX,然后停止 |
64
+ | "创建任务:加一个日志" | ✅ 创建 WP-XXX,然后停止 |
65
+ | "创建任务:重命名变量" | ✅ 创建 WP-XXX,然后停止 |
66
+
67
+ **核心规则**:只要识别到"创建任务"意图,无论任务多简单,都必须:
68
+ 1. 进入 Plan 模式
69
+ 2. 创建工作包文档
70
+ 3. 🛑 停止,等待用户确认
71
+
72
+ ## When to Use
73
+
74
+ - 用户说 "创建任务" / "新建任务"
75
+ - 用户说 "添加任务" / "增加任务"
76
+
77
+ ---
78
+
79
+ ## 🎯 快速模式 vs 深度模式
80
+
81
+ 根据用户提示词自动选择模式:
82
+
83
+ | 用户提示词特征 | 模式 | Plan 阶段行为 |
84
+ |----------------|------|---------------|
85
+ | 包含"只写文档"、"不要执行"、"不具体执行" | **快速模式** | 只定义任务,不分析代码 |
86
+ | 无上述关键词 | **深度模式** | 可自由分析代码、评估复杂度 |
87
+
88
+ ### 快速模式(用户明确说"不要执行"时)
89
+
90
+ 在 Plan 模式中,你只能:
91
+ - ✅ 确定工作包编号
92
+ - ✅ 写任务标题和目标(1-2句话)
93
+ - ✅ 写子任务列表(可选)
94
+ - ✅ 写验收标准(可选)
95
+
96
+ 在 Plan 模式中,你**禁止**:
97
+ - ❌ 读取代码文件分析实现
98
+ - ❌ 检查代码是否存在
99
+ - ❌ 运行任何代码审计
100
+ - ❌ 做任何"执行阶段"才该做的工作
101
+
102
+ **规则**: 快速模式下,Plan 阶段只定义"做什么",不分析"怎么做"或"是否已做"
103
+
104
+ ### 深度模式(默认)
105
+
106
+ Plan 阶段可以自由进行:
107
+ - ✅ 读取代码分析依赖
108
+ - ✅ 评估任务复杂度
109
+ - ✅ 检查现有实现
110
+ - ✅ 设计拆分方案
111
+
112
+ ---
113
+
114
+ ## 🆕 智能拆分系统
115
+
116
+ ### 任务复杂度评估矩阵
117
+
118
+ | 维度 | 简单 (1分) | 中等 (2分) | 复杂 (3分) |
119
+ |------|-----------|-----------|-----------|
120
+ | 文件数 | ≤2 | 3-5 | >5 |
121
+ | 模块数 | 1 | 2-3 | >3 |
122
+ | 接口变更 | 无 | 有 | 新增接口 |
123
+ | 测试用例 | ≤5 | 6-15 | >15 |
124
+ | 预估AI时间 | ≤5min | 5-30min | >30min |
125
+
126
+ ### 拆分规则
127
+
128
+ | 总分 | 拆分模式 | 说明 |
129
+ |------|----------|------|
130
+ | ≤6 | simple | 不拆分,单工作包 |
131
+ | 7-12 | standard | 标准拆分 (impl + test + verify + review) |
132
+ | >12 | fine-grained | 细粒度拆分 (多模块并行) |
133
+
134
+ ### 工作包类型定义
135
+
136
+ | 类型后缀 | 职责 | 执行角色 | 验收标准 |
137
+ |----------|------|----------|----------|
138
+ | `-impl` | 代码实现 | 领域专家 (UI/战斗/效果) | 功能完成,可编译 |
139
+ | `-test` | 单元测试编写 | test-reviewer | 测试用例编写完成 |
140
+ | `-verify` | 测试验证(运行测试) | test-reviewer | **全部测试通过** |
141
+ | `-review` | 代码审查 | code-reviewer | **基础审查通过** |
142
+
143
+ ### 拆分模式详解
144
+
145
+ #### 模式 A: simple (不拆分)
146
+ ```
147
+ WP-XXX: [原任务]
148
+ ├── 实现 + 自测
149
+ └── 角色: 领域专家
150
+ ```
151
+
152
+ #### 模式 B: standard (标准拆分)
153
+ ```
154
+ WP-XXX: [原任务] (父工作包)
155
+ ├── WP-XXX-1-impl: 代码实现
156
+ │ └── 依赖: 无
157
+ ├── WP-XXX-2-test: 单元测试编写
158
+ │ └── 依赖: WP-XXX-1-impl
159
+ ├── WP-XXX-3-verify: 测试验证
160
+ │ └── 依赖: WP-XXX-2-test
161
+ └── WP-XXX-4-review: 代码审查
162
+ └── 依赖: WP-XXX-3-verify
163
+ ```
164
+
165
+ #### 模式 C: fine-grained (细粒度拆分)
166
+ ```
167
+ WP-XXX: [原任务] (父工作包)
168
+ ├── WP-XXX-1-impl-a: 实现模块A
169
+ ├── WP-XXX-1-impl-b: 实现模块B
170
+ │ └── 依赖: WP-XXX-1-impl-a (如有依赖)
171
+ ├── WP-XXX-2-test-a: 测试模块A
172
+ │ └── 依赖: WP-XXX-1-impl-a
173
+ ├── WP-XXX-2-test-b: 测试模块B
174
+ │ └── 依赖: WP-XXX-1-impl-b
175
+ ├── WP-XXX-3-verify: 测试验证
176
+ │ └── 依赖: WP-XXX-2-test-a, WP-XXX-2-test-b
177
+ └── WP-XXX-4-review: 代码审查
178
+ └── 依赖: WP-XXX-3-verify
179
+ ```
180
+
181
+ ### 依赖关系图
182
+
183
+ ```
184
+ ┌──────────────────────────────────────────────────────────────┐
185
+ │ 依赖链模板 │
186
+ │ │
187
+ │ [impl] ──► [test] ──► [verify] ──► [review] ──► 完成 │
188
+ │ │
189
+ │ 并行实现时: │
190
+ │ [impl-a] ──► [test-a] ──┐ │
191
+ │ ├──► [verify] ──► [review] │
192
+ │ [impl-b] ──► [test-b] ──┘ │
193
+ │ │
194
+ └──────────────────────────────────────────────────────────────┘
195
+ ```
196
+
197
+ ## Forbidden Thoughts
198
+
199
+ | Thought | Reality |
200
+ |---------|---------|
201
+ | "用户让我创建任务,所以我可以开始实现" | ❌ 创建≠执行,必须等待 |
202
+ | "Plan 确认后可以继续执行" | ❌ Plan 确认只允许文档更新,然后必须停止 |
203
+ | "这个任务很简单,不用等" | ❌ 任何任务都要等待 |
204
+ | "用户应该想让我立即执行" | ❌ 不要假设,必须确认 |
205
+ | "用户选择了 bypassPermission" | ❌ bypassPermission 不影响停止点 |
206
+ | "用户清除了上下文" | ❌ 清除上下文 ≠ 授权执行代码 |
207
+ | "Plan 已经确认了,可以开始写代码" | ❌ Plan 确认后只写文档,然后停止,不执行代码 |
208
+ | "调用 ExitPlanMode 工具" | ❌ 不要调用 ExitPlanMode,让用户在 Plan 界面确认即可 |
209
+ | "用户选了 bypass,可以跳过文档更新" | ❌ bypass 只跳过权限确认,不跳过文档更新步骤 |
210
+ | "这个任务只有一行代码" | ❌ 一行代码也要创建工作包 |
211
+ | "这不需要工作包,直接改就行" | ❌ 任何任务都要创建工作包 |
212
+ | "用户应该想让我直接做" | ❌ 必须等待用户明确说"执行" |
213
+ | "任务太简单,不值得创建工作包" | ❌ 简单任务也要创建工作包 |
214
+
215
+ ---
216
+
217
+ ## 上下文窗口管理
218
+
219
+ 仅在深度模式下生效。快速模式不读取文件,无需分块。
220
+
221
+ ### 预读估算协议
222
+
223
+ 1. 查看文件顶部的 `<!-- CONTEXT-CONFIG -->` 获取限制参数
224
+ 2. 先用 Glob 发现文件,用 Bash `wc -l` 估算行数
225
+ 3. 估算公式: 每行代码 ≈ 10 tokens,每行文本 ≈ 5 tokens
226
+ 4. 可用预算 = max_tokens - safety_margin
227
+
228
+ ### 读取策略决策树
229
+
230
+ | 文件估算行数 | 策略 |
231
+ |-------------|------|
232
+ | ≤ thresholds.small (200行) | 直接用 Read 工具读取整个文件 |
233
+ | thresholds.small ~ thresholds.medium (200-800行) | 分块读取: Read(offset, limit=chunk_lines) |
234
+ | > thresholds.medium (800行) | Grep 扫描关键模式 → 定位行范围 → Read 目标段 |
235
+ | 多文件合计超预算 | 排序优先级 → 读高优 → 低优用 Grep |
236
+
237
+ ### 分块读取协议
238
+
239
+ 1. **首块**(1 ~ chunk_lines): 建立"结构地图"(类/函数/节标题位置)
240
+ 2. **后续块**: 根据结构地图判断是否包含相关内容
241
+ 3. **提前终止**: 已获得足够信息时停止读取,不读完整文件
242
+ 4. **跨块引用**: 记录依赖但不回读
243
+
244
+ ### 语义边界规则(优先级从高到低)
245
+
246
+ 1. 函数/方法边界 - 不在函数体中间断开
247
+ 2. 类边界 - 不在类定义中间断开
248
+ 3. Markdown 节标题 - 在 `##`/`###` 处断开
249
+ 4. 代码块边界 - 在 `{ }` 之间断开
250
+ 5. 行边界 - 最后手段
251
+
252
+ ### 部分分析的合并
253
+
254
+ 置信度标注:
255
+ - **[HIGH]** 基于完整直接读取
256
+ - **[MEDIUM]** 基于部分读取 + 结构推断
257
+ - **[LOW]** 仅基于 Grep 结果
258
+
259
+ 在 Plan 中包含"上下文缺口"子节:
260
+ ```
261
+ ## 上下文缺口
262
+ | 文件 | 未读部分 | 影响 | 建议 |
263
+ |------|----------|------|------|
264
+ ```
265
+
266
+ ### 任务创建专属规则
267
+
268
+ 1. 用 Glob 找到所有相关文件后再开始读取
269
+ 2. 估算所有文件总大小
270
+ 3. 超预算时: 只读任务描述直接提到的文件,其余用 Grep
271
+ 4. 复杂度评估基于结构分析 + 部分读取
272
+ 5. 在 Plan 输出中标注哪些文件仅部分分析
273
+
274
+ ---
275
+
276
+ ## 核心流程
277
+
278
+ **触发**: 用户说 "创建任务"
279
+
280
+ **允许的操作**:
281
+ - ✅ 读取项目文件(分析依赖)
282
+ - ✅ 写入 `docs/wp/WP-XXX.md`
283
+ - ✅ 更新 `task.md`(追加概览表行)
284
+
285
+ **禁止的操作**:
286
+ - ❌ 创建/修改任何 `.gd` 文件
287
+ - ❌ 创建/修改任何 `.tscn` 场景文件
288
+ - ❌ 创建/修改任何资源文件 `.tres`
289
+ - ❌ 执行任何代码实现
290
+ - ❌ 调用 human-checkpoint(Plan 确认已是人介入点)
291
+
292
+ **结束标志**: 输出完成报告 → 🛑 停止
293
+
294
+ ---
295
+
296
+ ## Flow Diagram
297
+
298
+ ```dot
299
+ digraph task_creator_v5 {
300
+ rankdir=TB;
301
+ node [shape=box];
302
+
303
+ "用户说'创建任务'" [shape=ellipse, style=filled, fillcolor=lightblue];
304
+ "进入 Plan 模式" [shape=box, style=filled, fillcolor=yellow];
305
+ "分析任务需求" [shape=box];
306
+ "评估复杂度" [shape=box];
307
+ "决定拆分模式" [shape=box];
308
+ "生成工作包计划" [shape=box];
309
+ "写入 WP-XXX.md" [shape=box];
310
+ "更新 task.md" [shape=box];
311
+ "用户审核 Plan" [shape=diamond, style=filled, fillcolor=lightyellow];
312
+
313
+ subgraph cluster_phase1 {
314
+ label="文档优先模式:Plan 确认后自动执行";
315
+ style=dashed;
316
+ color=blue;
317
+ "输出完成报告" [shape=box];
318
+ "🛑 停止" [shape=box, style=filled, fillcolor=red];
319
+ }
320
+
321
+ "用户说'创建任务'" -> "进入 Plan 模式";
322
+ "进入 Plan 模式" -> "分析任务需求";
323
+ "分析任务需求" -> "评估复杂度";
324
+ "评估复杂度" -> "决定拆分模式";
325
+ "决定拆分模式" -> "生成工作包计划";
326
+ "生成工作包计划" -> "写入 plan.md";
327
+ "写入 WP-XXX.md" [shape=box];
328
+ "更新 task.md" [shape=box];
329
+ "写入 WP-XXX.md" -> "更新 task.md";
330
+ "更新 task.md" -> "输出完成报告";
331
+ "输出完成报告" -> "🛑 停止";
332
+ }
333
+ ```
334
+
335
+ ---
336
+
337
+ ## Execution Steps
338
+
339
+ ### Step 0: 进入 Plan 模式(必须首先执行)
340
+
341
+ **⚠️ 立即调用 `EnterPlanMode` 工具进入 Plan 模式!**
342
+
343
+ 不要跳过这一步。不要直接开始分析。必须先进入 Plan 模式。
344
+
345
+ ### Step 1-6: Plan Mode 阶段
346
+
347
+ 在 Plan 模式中完成以下工作:
348
+
349
+ 1. **分析任务需求** - 理解用户描述的任务内容
350
+ 2. **获取当前工作包编号** - 读取 `task.md` 找到最大 WP 编号
351
+ 3. **🆕 评估任务复杂度** - 使用复杂度评估矩阵计算总分
352
+ 4. **🆕 决定拆分模式** - 根据总分选择 simple/standard/fine-grained
353
+ 5. **拆分子任务** - 按照选定的拆分模式生成子工作包
354
+ 6. **生成工作包计划** - 包含任务列表、验收标准、测试用例、依赖关系
355
+
356
+ ### Step 6.5: 请求用户确认 Plan
357
+
358
+ **⚠️ 必须使用 `AskUserQuestion` 工具请求用户确认!**
359
+
360
+ 提供以下选项:
361
+ - **确认创建** - 批准计划,开始写入文档
362
+ - **需要修改** - 计划需要调整(请在备注中说明)
363
+ - **自由输入** - 提供额外的反馈或要求
364
+
365
+ ❌ 不要调用 ExitPlanMode 工具(这会触发简化界面,不提供选项)
366
+ ✅ 用户确认后,继续执行 Step 7-9 文档写入
367
+
368
+ ### Step 1.5: 评估任务复杂度(详细)
369
+
370
+ **评估维度**:
371
+ ```
372
+ 复杂度评分表:
373
+ ┌────────────────────┬───────────────────────────────────────┐
374
+ │ 维度 │ 评分标准 │
375
+ ├────────────────────┼───────────────────────────────────────┤
376
+ │ 文件影响范围 │ ≤2文件=1分, 3-5文件=2分, >5文件=3分 │
377
+ │ 模块数量 │ 1模块=1分, 2-3模块=2分, >3模块=3分 │
378
+ │ 接口变更程度 │ 无变更=1分, 修改=2分, 新增=3分 │
379
+ │ 预估测试用例数 │ ≤5个=1分, 6-15个=2分, >15个=3分 │
380
+ │ 预估AI时间 │ ≤5min=1分, 5-30min=2分, >30min=3分 │
381
+ └────────────────────┴───────────────────────────────────────┘
382
+ ```
383
+
384
+ **决策规则**:
385
+ - 总分 ≤6: 使用模式 A(simple,不拆分)
386
+ - 总分 7-12: 使用模式 B(standard,标准拆分)
387
+ - 总分 >12: 使用模式 C(fine-grained,细粒度拆分)
388
+
389
+ ### Step 2.5: 生成子工作包(如需拆分)
390
+
391
+ 如果需要拆分,按以下顺序生成:
392
+
393
+ 1. **实现工作包** (`WP-XXX-1-impl`)
394
+ - 包含主要代码实现
395
+ - 角色匹配: 根据任务关键词匹配领域专家
396
+
397
+ 2. **测试工作包** (`WP-XXX-2-test`)
398
+ - 依赖: 实现工作包
399
+ - 角色匹配: test-reviewer
400
+
401
+ 3. **验证工作包** (`WP-XXX-3-verify`)
402
+ - 依赖: 测试工作包
403
+ - 角色: test-reviewer
404
+ - 职责: 运行测试,确保全部通过
405
+
406
+ 4. **审查工作包** (`WP-XXX-4-review`)
407
+ - 依赖: 验证工作包
408
+ - 角色: code-reviewer
409
+ - 职责: 审查代码质量、架构合规
410
+
411
+ ### Step 7-9: 文档输出阶段(Plan 确认后,自动执行)
412
+
413
+ <POST-PLAN-MANDATORY>
414
+ ╔══════════════════════════════════════════════════════════════════════════════╗
415
+ ║ 📝 文档优先模式 - Plan 确认后自动执行 ║
416
+ ║ ║
417
+ ║ Plan 确认后,你必须**立即**执行以下步骤: ║
418
+ ║ ║
419
+ ║ Step 7: 写入 docs/wp/WP-XXX.md(**完整同步 Plan 内容**) ║
420
+ ║ Step 8: 更新 task.md(追加概览表行) ║
421
+ ║ Step 9: 输出简洁报告 → 🛑 停止 ║
422
+ ║ ║
423
+ ║ ⚠️ 这是自动流程,不需要用户再次确认 ║
424
+ ║ ⚠️ bypassPermission 不影响此流程 ║
425
+ ╚══════════════════════════════════════════════════════════════════════════════╝
426
+ </POST-PLAN-MANDATORY>
427
+
428
+ **⚠️ 此阶段只允许更新文档文件,禁止任何代码修改!**
429
+
430
+ 7. **写入工作包文档** - 创建 `docs/wp/WP-XXX.md`
431
+ - ⚠️ **关键**: 必须将 Plan 文档的**完整内容**同步到工作包文档
432
+ - 包括:Context、问题分析、实施计划 Step 1-N、关键文件、验收标准
433
+ - 确保 Subagent 无需访问 Plan 文档即可获取完整上下文
434
+
435
+ 8. **更新任务清单** - 在 `task.md` 概览表添加新行
436
+ 9. **输出简洁报告** - 使用下方格式,然后 **🛑 停止**
437
+
438
+ ---
439
+
440
+ ## Completion Report Format
441
+
442
+ 文档更新完成后,输出以下格式的简洁报告:
443
+
444
+ ### 简单任务报告(无拆分)
445
+
446
+ ```markdown
447
+ ✅ 任务创建完成
448
+
449
+ 📦 **工作包**: WP-XXX - 工作包名称
450
+ 📊 **优先级**: P0/P1/P2
451
+ ⏱️ **预估AI时间**: Xmin
452
+ 📋 **子任务数**: X 个
453
+ 🧪 **测试用例**: X 个
454
+ 📊 **复杂度**: X分 (simple模式)
455
+
456
+ 📁 **已更新文档**:
457
+ - docs/wp/WP-XXX.md
458
+ - task.md
459
+
460
+ 🛑 **任务创建完成,等待您的下一步指示**
461
+ ```
462
+
463
+ ### 拆分任务报告(standard/fine-grained模式)
464
+
465
+ ```markdown
466
+ ✅ 任务创建完成(已拆分)
467
+
468
+ 📦 **父工作包**: WP-XXX - 工作包名称
469
+ 📊 **优先级**: P0/P1/P2
470
+ ⏱️ **预估总AI时间**: Xmin
471
+ 📊 **复杂度**: X分 (standard/fine-grained模式)
472
+
473
+ 📋 **子工作包列表**:
474
+ | ID | 类型 | 职责 | 依赖 | 角色 |
475
+ |----|------|------|------|------|
476
+ | WP-XXX-1-impl | 实现 | 核心代码 | - | 领域专家 |
477
+ | WP-XXX-2-test | 测试 | 单元测试 | WP-XXX-1-impl | test-reviewer |
478
+ | WP-XXX-3-verify | 验证 | 测试验证 | WP-XXX-2-test | test-reviewer |
479
+ | WP-XXX-4-review | 审查 | 代码审查 | WP-XXX-3-verify | code-reviewer |
480
+
481
+ 📁 **已更新文档**:
482
+ - docs/wp/WP-XXX.md (父工作包)
483
+ - docs/wp/WP-XXX-1-impl.md
484
+ - docs/wp/WP-XXX-2-test.md
485
+ - docs/wp/WP-XXX-3-verify.md
486
+ - docs/wp/WP-XXX-4-review.md
487
+ - task.md
488
+
489
+ 🛑 **任务创建完成,等待您的下一步指示**
490
+ ```
491
+
492
+ **输出报告后,直接 🛑 停止**
493
+
494
+ ---
495
+
496
+ ## 🛑 MANDATORY STOP BEHAVIOR
497
+
498
+ **文档优先模式:Plan 确认后自动写文档,然后停止。**
499
+
500
+ ```
501
+ ╔══════════════════════════════════════════════════════════════════╗
502
+ ║ 📝 文档优先模式 ║
503
+ ║ ║
504
+ ║ Plan 确认后: ║
505
+ ║ ✅ 自动写入 docs/wp/WP-XXX.md ║
506
+ ║ ✅ 自动更新 task.md ║
507
+ ║ ✅ 输出简洁报告 ║
508
+ ║ ✅ 🛑 停止等待用户下一步指示 ║
509
+ ║ ║
510
+ ║ DO NOT (绝对禁止): ║
511
+ ║ ❌ 调用 human-checkpoint(Plan 确认已是人介入点) ║
512
+ ║ ❌ 自动开始代码实现 ║
513
+ ║ ❌ 开始写任何代码文件 ║
514
+ ╚══════════════════════════════════════════════════════════════════╝
515
+ ```
516
+
517
+ ---
518
+
519
+ ## 文件路径约定
520
+
521
+ | 文件类型 | 允许在本 Skill 中修改 |
522
+ |----------|----------------------|
523
+ | `docs/wp/WP-XXX.md` | ✅ 允许 |
524
+ | `task.md` | ✅ 允许 |
525
+ | `.claude/plan.md` | ✅ 允许 |
526
+ | `scripts/**/*.gd` | ❌ 禁止 |
527
+ | `scenes/**/*.tscn` | ❌ 禁止 |
528
+ | `resources/**/*.tres` | ❌ 禁止 |
529
+ | 其他任何代码文件 | ❌ 禁止 |
530
+
531
+ ---
532
+
533
+ ## 示例
534
+
535
+ ### 输入
536
+ ```
537
+ 创建任务 - 实现成就系统
538
+ ```
539
+
540
+ ### 正确执行流程(文档优先模式)
541
+
542
+ **Plan 确认后自动执行**:
543
+ ```
544
+ AI: [写入 docs/wp/WP-014.md]
545
+ [更新 task.md]
546
+ [输出完成报告]
547
+ 🛑 停止
548
+
549
+ ✅ 任务创建完成
550
+ 📦 WP-014 成就系统
551
+ ...
552
+
553
+ 🛑 任务创建完成,等待您的下一步指示
554
+ ```
555
+
556
+ ### 错误执行流程 ❌
557
+
558
+ ```
559
+ AI: [Plan 确认后]
560
+ [更新文档]
561
+ [自动开始写代码] ← ❌ 错误!必须等待用户说"执行"
562
+ ```
563
+
564
+ ---
565
+
566
+ ## 相关文档
567
+
568
+ - 工作包文档: `docs/wp/WP-XXX.md`
569
+ - 任务清单: `task.md` (主索引)
570
+ - 归档: `docs/archive/` (历史工作包和活动日志)
571
+
572
+ > ⚠️ `PROGRESS.md` 已于 2026-03-18 废弃,新记录请使用 `task.md`
573
+ > ⚠️ `docs/core/12_工作包清单.md` 已于 2026-03-17 废弃
574
+
575
+ ---
576
+
577
+ ## 同步机制
578
+
579
+ ### 创建工作包时
580
+ 1. 读取 `task.md` 获取最新 WP 编号
581
+ 2. 写入 `docs/wp/WP-XXX.md`
582
+ 3. 追加到 `task.md` 概览表
583
+ 4. 验证: 读取 task.md 确认新条目存在
584
+
585
+ ### 完成工作包时(completion-report)
586
+ 1. 更新 `task.md` 最近完成区域
587
+ 2. 更新 `task.md` 快速概览统计
588
+ 3. 验证: 确认状态从 📋 → ✅
589
+
590
+ ---
591
+
592
+ ## 文档同步验证
593
+
594
+ 创建/更新工作包后,必须验证:
595
+
596
+ ```bash
597
+ # 验证 task.md 包含新工作包
598
+ grep "WP-XXX" task.md
599
+
600
+ # 验证 docs/wp/ 目录存在对应文档
601
+ ls docs/wp/WP-XXX.md
602
+ ```
603
+
604
+ **验证失败时**: 必须立即修复,不可继续执行
605
+
606
+ ---
607
+
608
+ ## 工作包文档模板
609
+
610
+ ### 父工作包模板(拆分模式)
611
+
612
+ ```markdown
613
+ # WP-XXX: [任务名称]
614
+
615
+ ## 🤖 Subagent 读取指令
616
+
617
+ > **重要**: 此文档包含完整的任务上下文。执行前请阅读以下内容:
618
+ > - **问题分析**: 理解任务的背景和问题点
619
+ > - **实施计划**: 按 Step 顺序执行
620
+ > - **关键文件**: 需要修改的文件列表
621
+ > - **验收标准**: 任务完成的检查清单
622
+
623
+ ## 基本信息
624
+
625
+ | 属性 | 值 |
626
+ |------|-----|
627
+ | **优先级** | P0/P1/P2 |
628
+ | **预估AI时间** | Xmin |
629
+ | **拆分模式** | simple/standard/fine-grained |
630
+ | **状态** | 📋 待执行 / 🔄 进行中 / ✅ 已完成 |
631
+
632
+ ## 复杂度评估
633
+
634
+ | 维度 | 评分 | 说明 |
635
+ |------|------|------|
636
+ | 文件影响范围 | 1-3 | 具体说明 |
637
+ | 模块数量 | 1-3 | 具体说明 |
638
+ | 接口变更程度 | 1-3 | 具体说明 |
639
+ | 测试用例预估 | 1-3 | 具体说明 |
640
+ | 预估AI时间 | 1-3 | 具体说明 |
641
+ | **总分** | X | 模式: standard |
642
+
643
+ ## 子工作包列表
644
+
645
+ | ID | 类型 | 职责 | 依赖 | 执行角色 | 状态 |
646
+ |----|------|------|------|----------|------|
647
+ | WP-XXX-1-impl | 实现 | 核心代码 | - | 领域专家 | 📋 |
648
+ | WP-XXX-2-test | 测试 | 单元测试 | WP-XXX-1-impl | test-reviewer | 📋 |
649
+ | WP-XXX-3-verify | 验证 | 测试验证 | WP-XXX-2-test | test-reviewer | 📋 |
650
+ | WP-XXX-4-review | 审查 | 代码审查 | WP-XXX-3-verify | code-reviewer | 📋 |
651
+
652
+ ## 依赖关系图
653
+
654
+ ```mermaid
655
+ graph LR
656
+ A[WP-XXX-1-impl] --> B[WP-XXX-2-test]
657
+ B --> C[WP-XXX-3-verify]
658
+ C --> D[WP-XXX-4-review]
659
+ ```
660
+
661
+ ## 目标
662
+
663
+ [任务的整体目标描述]
664
+
665
+ ## 验收标准
666
+
667
+ - [ ] 所有子工作包完成
668
+ - [ ] 全部测试通过
669
+ - [ ] 代码审查通过
670
+ ```
671
+
672
+ ### 子工作包模板
673
+
674
+ ```markdown
675
+ # WP-XXX-N-{type}: [子任务名称]
676
+
677
+ ## 🤖 Subagent 读取指令
678
+
679
+ > **重要**: 执行此任务前,请先阅读父工作包文档获取完整上下文:
680
+ > - 父工作包: `docs/wp/WP-XXX.md`
681
+ > - 包含: 问题分析、实施计划、关键文件、验收标准
682
+
683
+ ## 基本信息
684
+
685
+ | 属性 | 值 |
686
+ |------|-----|
687
+ | **类型** | impl/test/verify/review |
688
+ | **父工作包** | WP-XXX |
689
+ | **依赖** | WP-XXX-(N-1)-{type} (如有) |
690
+ | **执行角色** | 领域专家/test-reviewer/code-reviewer |
691
+ | **状态** | 📋 待执行 / 🔄 进行中 / ✅ 已完成 |
692
+
693
+ ## 职责
694
+
695
+ [具体职责描述]
696
+
697
+ ## 任务清单
698
+
699
+ - [ ] 任务项 1
700
+ - [ ] 任务项 2
701
+ - [ ] 任务项 3
702
+
703
+ ## 验收标准
704
+
705
+ - [ ] 验收标准 1
706
+ - [ ] 验收标准 2
707
+
708
+ ## 关键文件
709
+
710
+ - `path/to/file1.gd`
711
+ - `path/to/file2.gd`
712
+ ```
713
+
714
+ ---
715
+
716
+ ## 角色匹配规则
717
+
718
+ ### 核心角色匹配
719
+
720
+ | 任务关键词 | 匹配角色 |
721
+ |------------|----------|
722
+ | 架构、设计、结构、模块、接口 | architect |
723
+ | 实现、编码、开发、修复、重构 | implementer |
724
+ | 测试、验证、检查、单元测试 | tester |
725
+ | 文档、说明、注释、README | documenter |
726
+ | 调度、协调、监控、分配 | coordinator |
727
+
728
+ ### 领域角色匹配(由项目模板扩展)
729
+
730
+ | 任务关键词 | 匹配角色 |
731
+ |------------|----------|
732
+ | 前端、UI、组件、样式、页面 | frontend-dev |
733
+ | 后端、API、服务、数据库、接口 | backend-dev |
734
+ | 部署、CI/CD、Docker、容器 | devops |
735
+ | 场景、节点、tscn、UI(Godot) | godot-scene-expert |
736
+ | 脚本、调试、错误、Error(Godot) | godot-script-expert |
737
+
738
+ ### 固定角色
739
+
740
+ | 工作包类型 | 执行角色 |
741
+ |------------|----------|
742
+ | -test | tester |
743
+ | -verify | tester |
744
+ | -review | architect 或 reviewer |