@adamancyzhang/claude-orchestrator 0.3.0 → 0.3.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.
- package/README.md +203 -201
- package/dist/cli/commands.d.ts +6 -17
- package/dist/cli/commands.js +133 -172
- package/dist/cli/commands.js.map +1 -1
- package/dist/config.d.ts +28 -14
- package/dist/config.js +51 -20
- package/dist/config.js.map +1 -1
- package/dist/executor/runner.d.ts +19 -0
- package/dist/executor/runner.js +59 -0
- package/dist/executor/runner.js.map +1 -0
- package/dist/executor/template.d.ts +12 -0
- package/dist/executor/template.js +42 -0
- package/dist/executor/template.js.map +1 -0
- package/dist/hooks/engine.d.ts +22 -0
- package/dist/hooks/engine.js +50 -0
- package/dist/hooks/engine.js.map +1 -0
- package/dist/index.js +115 -250
- package/dist/index.js.map +1 -1
- package/dist/leader/chain-router.d.ts +22 -0
- package/dist/leader/chain-router.js +163 -0
- package/dist/leader/chain-router.js.map +1 -0
- package/dist/leader/event-bus.d.ts +1 -1
- package/dist/leader/event-bus.js +1 -1
- package/dist/leader/event-bus.js.map +1 -1
- package/dist/leader/index.d.ts +1 -2
- package/dist/leader/index.js +35 -13
- package/dist/leader/index.js.map +1 -1
- package/dist/leader/recovery.d.ts +2 -0
- package/dist/leader/recovery.js +37 -22
- package/dist/leader/recovery.js.map +1 -1
- package/dist/leader/state.d.ts +2 -1
- package/dist/leader/state.js +48 -2
- package/dist/leader/state.js.map +1 -1
- package/dist/leader/tui.d.ts +8 -0
- package/dist/leader/tui.js +74 -9
- package/dist/leader/tui.js.map +1 -1
- package/dist/leader/watcher.d.ts +4 -3
- package/dist/leader/watcher.js +8 -13
- package/dist/leader/watcher.js.map +1 -1
- package/dist/models/schemas.d.ts +307 -87
- package/dist/models/schemas.js +51 -43
- package/dist/models/schemas.js.map +1 -1
- package/dist/modules/message-router.d.ts +1 -3
- package/dist/modules/message-router.js +3 -26
- package/dist/modules/message-router.js.map +1 -1
- package/dist/modules/registry.js +3 -3
- package/dist/modules/registry.js.map +1 -1
- package/dist/modules/task-queue.d.ts +1 -1
- package/dist/modules/task-queue.js +28 -2
- package/dist/modules/task-queue.js.map +1 -1
- package/dist/skills/CLAUDE.md +155 -0
- package/dist/skills/claude-code-developer/SKILL.md +325 -0
- package/dist/skills/claude-orchestrator/SKILL.md +244 -0
- package/dist/skills/task-acceptance/SKILL.md +201 -0
- package/dist/skills/task-execution/SKILL.md +142 -0
- package/dist/skills/task-planning/SKILL.md +188 -0
- package/dist/skills/task-review/SKILL.md +220 -0
- package/dist/skills/task-traceability/SKILL.md +154 -0
- package/dist/skills/task-verification/SKILL.md +194 -0
- package/dist/templates/worker-accept.md +46 -0
- package/dist/templates/worker-build.md +45 -0
- package/dist/templates/worker-decompose.md +67 -0
- package/dist/templates/worker-evaluate.md +41 -0
- package/dist/templates/worker-plan.md +43 -0
- package/dist/templates/worker-review.md +46 -0
- package/dist/templates/worker-verify.md +47 -0
- package/dist/utils/exec.d.ts +5 -0
- package/dist/utils/exec.js +27 -0
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.js +22 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/worker/evaluator.d.ts +13 -0
- package/dist/worker/evaluator.js +112 -0
- package/dist/worker/evaluator.js.map +1 -0
- package/dist/worker/watcher.d.ts +13 -4
- package/dist/worker/watcher.js +108 -24
- package/dist/worker/watcher.js.map +1 -1
- package/dist/zk/client.d.ts +0 -5
- package/dist/zk/client.js +0 -27
- package/dist/zk/client.js.map +1 -1
- package/dist/zk/paths.d.ts +8 -10
- package/dist/zk/paths.js +1 -6
- package/dist/zk/paths.js.map +1 -1
- package/dist/zk/watcher.d.ts +0 -2
- package/dist/zk/watcher.js +0 -3
- package/dist/zk/watcher.js.map +1 -1
- package/package.json +2 -2
- package/dist/modules/context-store.d.ts +0 -10
- package/dist/modules/context-store.js +0 -25
- package/dist/modules/context-store.js.map +0 -1
- package/dist/templates/leader.md +0 -10
- package/dist/templates/worker.md +0 -8
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-acceptance
|
|
3
|
+
description: PM task-level acceptance verification with full traceability. Use when the PM needs to verify completed work from team members, run acceptance on daily work assignments, or confirm deliverables before signing off — every acceptance decision must be traceable to specific criteria and verified deliverables. Triggers on keywords like "确认并验收", "验收一下", "verify and accept", "检查完成情况", "task acceptance", "任务验收". Covers per-task-assignment verification workflow with cross-worktree git checks, commit signature validation, and report data cross-validation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Acceptance
|
|
7
|
+
|
|
8
|
+
> 验收不是读报告,是逐项验证代码、测试、git commit 的真实存在。本技能与 [[task-traceability]] 协作,确保每次验收不走形式、不漏步骤、可追溯——每个 Go/No-Go 决策都可追溯到具体的验收标准和经过验证的交付物。
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 何时触发
|
|
13
|
+
|
|
14
|
+
- 用户说"确认并验收"、"验收一下"、"检查一下完成情况"
|
|
15
|
+
- 团队成员报告任务完成,PM 需要核实
|
|
16
|
+
- daily work assignment 文档中所有任务标记为已完成
|
|
17
|
+
- PM 准备签阶段验收报告
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 验收八步法
|
|
22
|
+
|
|
23
|
+
按顺序执行,每一步通过才进入下一步。任一步不通过 → 记录问题,最终 No-Go。
|
|
24
|
+
|
|
25
|
+
### 1. 读取工作分配文档
|
|
26
|
+
|
|
27
|
+
找到对应的任务分配文档(如 `docs/pm/YYYY-MM-DD/daily-work-assignment.md`),提取:
|
|
28
|
+
- 每个成员的任务清单和验收标准
|
|
29
|
+
- 预期的产出物路径
|
|
30
|
+
- 依赖链(谁依赖谁先完成)
|
|
31
|
+
|
|
32
|
+
### 2. 检查产出物是否存在
|
|
33
|
+
|
|
34
|
+
对每个成员,检查指定的产出目录下是否有对应的产出文件。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
ls -la docs/{member}/YYYY-MM-DD/
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
如果报告引用了产出物但文件不存在 → P1 问题。
|
|
41
|
+
|
|
42
|
+
### 3. 验证代码变更真实存在
|
|
43
|
+
|
|
44
|
+
**不要轻信报告中的描述。** 对每项声称的代码修改,直接 grep 验证:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 示例:验证某组件是否真的引入了某个依赖
|
|
48
|
+
grep -n "<key-symbol>" <source-file-path>
|
|
49
|
+
|
|
50
|
+
# 示例:验证是否替换了特定常量
|
|
51
|
+
grep -n "<new-value>" <spec-file-path>
|
|
52
|
+
|
|
53
|
+
# 验证旧引用已清除
|
|
54
|
+
grep "<old-value>" <spec-file-path> # 应无结果
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
如果代码变更不存在但报告声称已完成 → P0 问题(虚假报告)。
|
|
58
|
+
|
|
59
|
+
### 4. 运行测试验证数字
|
|
60
|
+
|
|
61
|
+
报告中的测试数字必须可复现:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# 运行单元测试
|
|
65
|
+
<project-test-command> 2>&1 | tail -20
|
|
66
|
+
|
|
67
|
+
# 统计测试文件中的实际测试数量
|
|
68
|
+
for f in <test-glob-pattern>; do
|
|
69
|
+
count=$(grep -c "test(" "$f")
|
|
70
|
+
echo "$f: $count tests"
|
|
71
|
+
done
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
将实际测试数与报告中的数字对比。不一致 → P2 问题(报告错误)。
|
|
75
|
+
|
|
76
|
+
### 5. 验证 git commit 真实存在
|
|
77
|
+
|
|
78
|
+
**关键**:如项目使用多个独立 git worktree 或子模块,必须在对应目录下检查 commit。
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# 检查各仓库的 git log
|
|
82
|
+
cd <subdir> && git log --oneline -10
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
对报告中引用的每个 commit hash:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
cd <subdir> && git log --all --oneline | grep "^<commit-hash>"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
如果 commit hash 不存在 → P0 问题(commits 未生成或引用了虚构 hash)。
|
|
92
|
+
|
|
93
|
+
同时检查**工作区是否干净**(`git status`)—— 如果有未提交的变更,成果可能未真正落盘。
|
|
94
|
+
|
|
95
|
+
### 6. 验证 commit message 格式
|
|
96
|
+
|
|
97
|
+
根据项目 CLAUDE.md 中的 Git Commit Rules 检查 commit message 格式:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# 检查每个相关 commit 的完整 message
|
|
101
|
+
cd <subdir> && git log --format="%B" <commit-hash> -1
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
格式不符合项目规范 → P1 问题(规范违规)。
|
|
105
|
+
|
|
106
|
+
> **amend 边界**:如果 commit 未 push 到 remote,可 amend 修复;已 push 则必须新建 commit。
|
|
107
|
+
|
|
108
|
+
### 7. 交叉验证报告数据
|
|
109
|
+
|
|
110
|
+
报告中的数字必须自洽:
|
|
111
|
+
|
|
112
|
+
- 分项测试数相加是否等于合计?
|
|
113
|
+
- 表格是否有重复行?
|
|
114
|
+
- 截图数量是否与声称一致?
|
|
115
|
+
- 引用文件路径是否真实存在?
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# 检查截图文件是否存在
|
|
119
|
+
ls -la docs/{member}/YYYY-MM-DD/*.png
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
不一致 → P2 问题。
|
|
123
|
+
|
|
124
|
+
### 8. 产出验收报告
|
|
125
|
+
|
|
126
|
+
写入 PM 的验收报告文件(如 `docs/pm/YYYY-MM-DD/acceptance-report.md`),使用以下模板:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
# 验收报告
|
|
130
|
+
|
|
131
|
+
> PM | YYYY-MM-DD | 验收范围:成员 A / 成员 B / ... 交付物
|
|
132
|
+
|
|
133
|
+
## 验收结论:Go / No-Go
|
|
134
|
+
|
|
135
|
+
(一句话结论 + 原因)
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 逐项验收
|
|
140
|
+
|
|
141
|
+
### 成员 A — 任务名称
|
|
142
|
+
|
|
143
|
+
| 检查项 | 预期 | 实际 | 结果 |
|
|
144
|
+
|--------|------|------|------|
|
|
145
|
+
| ... | ... | ... | ✅/❌/⚠️ |
|
|
146
|
+
|
|
147
|
+
### 成员 B — 任务名称
|
|
148
|
+
|
|
149
|
+
...
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 问题清单
|
|
154
|
+
|
|
155
|
+
| # | 严重度 | 问题 | 责任人 | 修复方案 |
|
|
156
|
+
|---|--------|------|--------|---------|
|
|
157
|
+
| 1 | P0/P1/P2 | 描述 | @name | 具体操作 |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 验收完成标准重检
|
|
162
|
+
|
|
163
|
+
- [ ] 标准 1 ✅/❌
|
|
164
|
+
- [ ] 标准 2 ✅/❌
|
|
165
|
+
...
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
*PM — YYYY-MM-DD*
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 问题严重度分级
|
|
175
|
+
|
|
176
|
+
| 级别 | 定义 | 示例 |
|
|
177
|
+
|------|------|------|
|
|
178
|
+
| P0 | 虚假报告、代码变更不存在、commit 不存在 | 引用不存在的 commit hash |
|
|
179
|
+
| P1 | 规范违规、产出物缺失、签名格式错误 | commit 格式不符合项目要求 |
|
|
180
|
+
| P2 | 报告数据错误、表格笔误 | 测试数分项与合计不对应 |
|
|
181
|
+
|
|
182
|
+
验收标准:**零问题才能签 Go**。不做"条件通过"。
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 与其他技能的协作
|
|
187
|
+
|
|
188
|
+
- **[[task-traceability]]**:基础层。Accepter 严格遵循追溯 → 执行 → 映射 → 举证 → 记录的五步法。追溯全链产出和验收标准(Trace),逐项核实验收标准(Execute),映射交付物到验收标准(Map),提供代码检查、测试运行、git log 等证据(Evidence),签署验收报告并记录 Go/No-Go(Record)。零问题才能签 Go——不做条件通过。
|
|
189
|
+
- **[[task-planning]]**:Accepter 以 Planner 蓝图中的验收标准为核实基准。
|
|
190
|
+
- **[[task-execution]]**:Accepter 核验 Builder 的代码变更和 commit hash 是否真实存在。
|
|
191
|
+
- **[[task-verification]]**:Accepter 引用 Verifier 的报告,但不替代自己的独立核实。
|
|
192
|
+
- **[[task-review]]**:Accepter 依赖 Reviewer 的 Pass 结论。Review 不通过无须进入 Accept。
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 特别注意
|
|
197
|
+
|
|
198
|
+
- **外部阻塞不是缺陷**:如外部依赖未就绪导致某些验收项无法执行,在报告中标注为外部阻塞,不计入问题清单,但须明确放行条件。
|
|
199
|
+
- **worktree / 多仓库**:如项目使用多个独立 git worktree 或子模块,git 操作必须 `cd` 到对应子目录执行。根目录的 `git log` 看不到子目录的 commit。
|
|
200
|
+
- **报告 ≠ 真相**:报告中的 claim 必须可独立验证。如果某项验收标准无法复现(如需要外部系统产出),标记为 ⏸ Blocked,不打 ☑。
|
|
201
|
+
- **commit 后验收**:团队成员应在验收前完成 commit。如果发现未 commit,退回要求先 commit 再验收。
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-execution
|
|
3
|
+
description: Guided task execution for the Builder role. Use when the Builder claims a task from the orchestrator queue and needs to execute it — reading the blueprint, making code changes, running verification, and reporting results with full traceability from every code change back to the Plan. Triggers on keywords like "执行任务", "开始构建", "claim task", "build", "implement", "开发", "写代码", or when a Builder has claimed a task and is ready to work. Complements task-traceability as the foundational traceability layer.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Execution
|
|
7
|
+
|
|
8
|
+
> 执行不是凭感觉写代码,是理解蓝图 → 精准实现 → 自证正确 → 记录可追溯的完整闭环。本技能与 [[task-traceability]] 协作,确保 Builder 的每次执行产出可被 Verifier 独立验证,每个代码变更都可追溯到具体的 Plan 要求。
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 何时触发
|
|
13
|
+
|
|
14
|
+
- Worker 通过 `claude-orchestrator claim-task` 认领了 build 类型的任务
|
|
15
|
+
- 用户说"开始执行"、"开始构建"、"implement this task"
|
|
16
|
+
- Leader 直接分配了 build 任务给 Builder
|
|
17
|
+
- 任务蓝图中标记为 build 的项需要开工
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 执行六步法
|
|
22
|
+
|
|
23
|
+
按顺序执行,每一步通过才进入下一步。
|
|
24
|
+
|
|
25
|
+
### 1. 认领任务并获取上下文
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# 认领任务
|
|
29
|
+
claude-orchestrator claim-task
|
|
30
|
+
|
|
31
|
+
# 获取蓝图
|
|
32
|
+
claude-orchestrator get-context --key plan-<目标slug>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
从任务和蓝图中提取:
|
|
36
|
+
- 本任务的验收标准(具体到命令和文件路径)
|
|
37
|
+
- 前序依赖任务的产出物(Plan 的输出、上游 Build 的产出)
|
|
38
|
+
- 本任务的预期产出物
|
|
39
|
+
|
|
40
|
+
如果蓝图不在共享上下文中,通过消息向 Planner 索要。
|
|
41
|
+
|
|
42
|
+
### 2. 理解执行范围
|
|
43
|
+
|
|
44
|
+
通读蓝图中的相关部分,确认理解无误:
|
|
45
|
+
|
|
46
|
+
- 明确"做什么"和"不做什么"——不要在实现中越界
|
|
47
|
+
- 识别与上游产出物的接口(API 契约、文件协议等)
|
|
48
|
+
- 确认验收标准的可复现性——如果你无法按验收标准自测,验收标准本身有缺陷,反馈给 Planner
|
|
49
|
+
|
|
50
|
+
如果蓝图有歧义或不清晰 → 通过消息联系 Planner 澄清,不要猜测。
|
|
51
|
+
|
|
52
|
+
### 3. 执行实现
|
|
53
|
+
|
|
54
|
+
按照蓝图执行代码变更:
|
|
55
|
+
|
|
56
|
+
- 只做任务范围内的事,不顺手重构无关代码
|
|
57
|
+
- 遵循项目现有的代码规范和架构模式
|
|
58
|
+
- 编写必要的测试(如果验收标准要求)
|
|
59
|
+
- 产出物(测试报告、截图等)放入约定的输出路径
|
|
60
|
+
|
|
61
|
+
**与 [[task-traceability]] 协作**:每次代码提交遵循可追溯工作流——自己的名字签名、commit hash 记录回任务文档。
|
|
62
|
+
|
|
63
|
+
### 4. 自测验证
|
|
64
|
+
|
|
65
|
+
在报告完成之前,自行运行验收标准中的验证命令:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# 示例:运行测试
|
|
69
|
+
npm test -- <test-pattern> 2>&1
|
|
70
|
+
|
|
71
|
+
# 示例:检查产出物
|
|
72
|
+
ls -la <expected-output-path>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
如果验收标准中定义了多个检查点,逐项执行并记录结果。所有检查点通过后才进入下一步。
|
|
76
|
+
|
|
77
|
+
如果某项检查失败但属于外部原因(非本任务引入的问题),在报告中标注为已知问题,不阻塞完成。
|
|
78
|
+
|
|
79
|
+
### 5. 提交代码
|
|
80
|
+
|
|
81
|
+
按照 [[task-traceability]] Step 3-5 完成提交链:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Step 3: 提交代码(用自己的名字签名)
|
|
85
|
+
git add <changed-files>
|
|
86
|
+
git commit -m "feat(<scope>): <description>
|
|
87
|
+
|
|
88
|
+
<details>
|
|
89
|
+
|
|
90
|
+
<Your Name>"
|
|
91
|
+
|
|
92
|
+
# Step 4: 记录 commit hash 到任务文档
|
|
93
|
+
# Step 5: 提交文档更新
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
关键规则:
|
|
97
|
+
- 一个逻辑单元一个 commit,不批量提交不相关的变更
|
|
98
|
+
- commit message 末尾签自己的名字
|
|
99
|
+
- 记录 commit hash 回任务文档
|
|
100
|
+
|
|
101
|
+
### 6. 报告完成
|
|
102
|
+
|
|
103
|
+
标记任务完成并通知:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
claude-orchestrator complete-task \
|
|
107
|
+
--task-id <task-id> \
|
|
108
|
+
--result "完成了 XXX,commit: a1b2c3d。测试全部通过。产出物: <path>"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 执行完成检查清单
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
□ 已认领任务并从蓝图获取上下文
|
|
117
|
+
□ 已理解执行范围和验收标准
|
|
118
|
+
□ 代码变更只在任务范围内,无越界修改
|
|
119
|
+
□ 验收标准中的命令自测全部通过
|
|
120
|
+
□ 代码已提交,签名为自己的名字 (task-traceability Step 3)
|
|
121
|
+
□ commit hash 已记录回任务文档 (task-traceability Step 4)
|
|
122
|
+
□ 任务文档更新已提交 (task-traceability Step 5)
|
|
123
|
+
□ 已通过 orchestrator complete-task 报告完成
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 与其他技能的协作
|
|
129
|
+
|
|
130
|
+
- **[[task-traceability]]**:基础层。Builder 严格遵循追溯 → 执行 → 映射 → 举证 → 记录的五步法。每个代码变更必须追溯至 Plan 的具体要求,映射到实现,附带测试证据,并通过 commit hash 记录回任务文档。
|
|
131
|
+
- **[[task-planning]]**:Builder 依赖 Planner 的蓝图和追溯链来理解执行范围。如果蓝图有歧义,反馈给 Planner 澄清。
|
|
132
|
+
- **[[task-verification]]**:Verifier 将独立验证 Builder 的产出。Builder 的自测和可追溯记录降低了 Verifier 发现基础问题的概率。
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 常见错误
|
|
137
|
+
|
|
138
|
+
- **不读蓝图直接写代码**:跳过 Step 1-2,凭任务标题猜测需求。结果往往偏离 Planner 的设计意图。
|
|
139
|
+
- **越界修改**:顺手"优化"了无关代码。增加了 Reviewer 的审查负担和 Verifier 的验证范围,可能引入新 bug。
|
|
140
|
+
- **不跑验收命令就报完成**:验收标准写明了 `npm test -- foo`,但 Builder 没跑就说完成了。Verifier 一跑就挂。
|
|
141
|
+
- **跳过自测结果记录**:只完成了代码,但验收标准要求产出截图/测试报告,Builder 没产出。Verifier 无法验证。
|
|
142
|
+
- **commit 没签自己的名**:commit hash 记录了但签名用的是别人。追溯链断了——谁做的不可知。
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-planning
|
|
3
|
+
description: Requirement analysis and task breakdown for the Planner role. Use when the Planner needs to analyze requirements, define task blueprints, break down work into executable tasks with acceptance criteria, establish responsibility chain ordering, and push tasks to the orchestrator queue — all with full traceability from requirements to tasks. Triggers on keywords like "分析需求", "拆解任务", "制定计划", "task planning", "blueprint", "break down", "define tasks", "规划", or when starting a new work cycle that needs tasks created.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Planning
|
|
7
|
+
|
|
8
|
+
> 规划不是猜测,是分析需求 → 定义蓝图 → 拆解可执行任务 → 建立可验证的验收标准。本技能与 [[task-traceability]] 协作,确保每次规划产出清晰、可执行、可追溯——每个任务都可追溯到具体需求。
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 何时触发
|
|
13
|
+
|
|
14
|
+
- Leader 分配新的需求/目标给 Planner
|
|
15
|
+
- 用户说"分析一下这个需求"、"拆解任务"、"制定执行计划"
|
|
16
|
+
- 新的工作周期开始,需要产出任务列表
|
|
17
|
+
- 现有蓝图需要修订或补充
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 规划六步法
|
|
22
|
+
|
|
23
|
+
按顺序执行,每一步通过才进入下一步。任一步产出不清晰 → 回退澄清。
|
|
24
|
+
|
|
25
|
+
### 1. 读取需求上下文
|
|
26
|
+
|
|
27
|
+
定位并理解需求来源:
|
|
28
|
+
|
|
29
|
+
- 如果是 Leader 通过 orchestrator 分配的需求,通过 `claude-orchestrator get-context --key <需求key>` 获取
|
|
30
|
+
- 如果是本地文档(如 `docs/pm/YYYY-MM-DD/`),读取完整内容
|
|
31
|
+
- 如果是代码库需求(如 Issue、PR 描述),读取相关文档和代码
|
|
32
|
+
|
|
33
|
+
提取关键信息:
|
|
34
|
+
- 业务目标和背景
|
|
35
|
+
- 约束条件和边界
|
|
36
|
+
- 期望的交付标准和截止时间
|
|
37
|
+
|
|
38
|
+
### 2. 定义任务蓝图
|
|
39
|
+
|
|
40
|
+
输出蓝图文档,包含以下要素:
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
# 任务蓝图:[目标名称]
|
|
44
|
+
|
|
45
|
+
> Planner | YYYY-MM-DD | 版本 v1
|
|
46
|
+
|
|
47
|
+
## 目标
|
|
48
|
+
|
|
49
|
+
(一句话描述要达成什么)
|
|
50
|
+
|
|
51
|
+
## 背景
|
|
52
|
+
|
|
53
|
+
(为什么需要做这个,解决什么问题)
|
|
54
|
+
|
|
55
|
+
## 范围与非范围
|
|
56
|
+
|
|
57
|
+
**范围内:**
|
|
58
|
+
- 具体要做的事项 1
|
|
59
|
+
- 具体要做的事项 2
|
|
60
|
+
|
|
61
|
+
**不在范围内:**
|
|
62
|
+
- 明确不做的事项 1
|
|
63
|
+
|
|
64
|
+
## 约束条件
|
|
65
|
+
|
|
66
|
+
- 技术约束(如必须兼容 Node.js 18+)
|
|
67
|
+
- 时间约束
|
|
68
|
+
- 依赖约束(如依赖外部服务 X 先就绪)
|
|
69
|
+
|
|
70
|
+
## 成功定义
|
|
71
|
+
|
|
72
|
+
(可验证的成功标准,不是抽象描述)
|
|
73
|
+
- 标准 1:所有单元测试通过,覆盖率 ≥ X%
|
|
74
|
+
- 标准 2:UI 交互流程可在浏览器中完成
|
|
75
|
+
- ...
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3. 拆解可执行任务
|
|
79
|
+
|
|
80
|
+
将蓝图拆解为独立的任务项。每个任务必须满足:
|
|
81
|
+
|
|
82
|
+
- **可独立执行**:Builder 无需频繁跨任务上下文切换
|
|
83
|
+
- **可验证**:有明确的验收标准(测试命令、UI 检查点、文件路径等)
|
|
84
|
+
- **有产出物**:代码变更、测试报告、截图、文档等
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
## 任务清单
|
|
88
|
+
|
|
89
|
+
| # | 任务 | 类型 | 验收标准 | 预估 | 依赖 |
|
|
90
|
+
|---|------|------|---------|------|------|
|
|
91
|
+
| 1 | 实现 XXX 模块 | build | `npm test -- XXX` 全部通过 | 2h | - |
|
|
92
|
+
| 2 | 编写 YYY 集成测试 | build | `npm test -- YYY` 覆盖 3 个场景 | 1h | #1 |
|
|
93
|
+
| 3 | 验证 ZZZ 边界情况 | verify | 运行边界测试套件,0 失败 | 0.5h | #2 |
|
|
94
|
+
| 4 | 审查整体方案一致性 | review | 审查报告无 P0/P1 问题 | 0.5h | #2, #3 |
|
|
95
|
+
| 5 | 验收最终交付物 | accept | 对照验收标准逐项通过 | 0.5h | #4 |
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
任务类型对应责任链环节:`plan` / `build` / `verify` / `review` / `accept`。
|
|
99
|
+
|
|
100
|
+
依赖字段确保责任链顺序:P → B → V → R → A。
|
|
101
|
+
|
|
102
|
+
### 4. 推入任务队列
|
|
103
|
+
|
|
104
|
+
通过 orchestrator 将任务推入队列,指定每个任务的责任链环节:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Build 任务
|
|
108
|
+
claude-orchestrator push-task \
|
|
109
|
+
--title "实现 XXX 模块" \
|
|
110
|
+
--link build \
|
|
111
|
+
--priority 0
|
|
112
|
+
|
|
113
|
+
# Verify 任务
|
|
114
|
+
claude-orchestrator push-task \
|
|
115
|
+
--title "验证 ZZZ 边界情况" \
|
|
116
|
+
--link verify \
|
|
117
|
+
--priority 1
|
|
118
|
+
|
|
119
|
+
# Review 任务
|
|
120
|
+
claude-orchestrator push-task \
|
|
121
|
+
--title "审查整体方案一致性" \
|
|
122
|
+
--link review \
|
|
123
|
+
--priority 1
|
|
124
|
+
|
|
125
|
+
# Accept 任务
|
|
126
|
+
claude-orchestrator push-task \
|
|
127
|
+
--title "验收最终交付物" \
|
|
128
|
+
--link accept \
|
|
129
|
+
--priority 1
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
优先级建议:`plan` 和下游瓶颈任务用 `0`(HIGH),其余用 `1`(MEDIUM)。
|
|
133
|
+
|
|
134
|
+
### 5. 建立验收标准可追溯
|
|
135
|
+
|
|
136
|
+
每个任务的验收标准必须具体到可独立复现。拒绝模糊描述:
|
|
137
|
+
|
|
138
|
+
| 模糊(拒绝) | 具体(通过) |
|
|
139
|
+
|-------------|------------|
|
|
140
|
+
| "功能正常" | `npm test -- auth` 全部通过,覆盖登录/登出/超时 3 个场景 |
|
|
141
|
+
| "UI 没问题" | 截图 `screenshots/login-flow.png` 展示登录→首页完整流程 |
|
|
142
|
+
| "性能合格" | `ab -n 1000 -c 10 /api/users` p95 < 200ms |
|
|
143
|
+
| "代码质量好" | `npx eslint src/auth/` 0 errors, 0 warnings |
|
|
144
|
+
|
|
145
|
+
### 6. 记录蓝图并通知 Leader
|
|
146
|
+
|
|
147
|
+
将蓝图文档存入共享上下文,通知 Leader 蓝图就绪:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# 存为共享上下文
|
|
151
|
+
claude-orchestrator set-context --key plan-<目标slug> --value "$(cat docs/plans/<目标slug>.md)"
|
|
152
|
+
|
|
153
|
+
# 通知 Leader
|
|
154
|
+
claude-orchestrator send-message --broadcast --content "蓝图 <目标slug> 已就绪,任务已推入队列,共 N 个任务。"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 蓝图完整性检查清单
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
□ 目标描述一句话清晰
|
|
163
|
+
□ 范围和边界明确(不做的比要做的更重要)
|
|
164
|
+
□ 每项任务可独立执行
|
|
165
|
+
□ 每项任务有具体验收标准(不是模糊描述)
|
|
166
|
+
□ 依赖链完整(P→B→V→R→A 无断点)
|
|
167
|
+
□ 所有任务已推入 orchestrator 队列
|
|
168
|
+
□ 蓝图文档已存入共享上下文
|
|
169
|
+
□ Leader 已收到蓝图就绪通知
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 与其他技能的协作
|
|
175
|
+
|
|
176
|
+
- **[[task-traceability]]**:基础层。Planner 的每一步都需要可追溯:需求 → 蓝图 → 任务清单 → 验收标准。Plan 是责任链的起点,如果 Plan 的追溯链断裂,Builder 不知道做什么,Verifier 不知道验什么,Reviewer 不知道审什么。
|
|
177
|
+
- **[[task-execution]]**:Builder 依赖 Planner 的蓝图和追溯链来理解执行范围。
|
|
178
|
+
- **[[task-verification]]**:Verifier 以 Planner 蓝图的验收标准为验证基准。
|
|
179
|
+
- **[[task-review]]**:Reviewer 以 Planner 蓝图为审查标准。
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 常见错误
|
|
184
|
+
|
|
185
|
+
- **任务拆得太粗**:一个任务包含多个独立模块,Builder 无法一次完成。拆到一个人能在 2-4 小时内完成为宜。
|
|
186
|
+
- **验收标准是废话**:写"功能正常"等于没写。必须写具体的测试命令、文件路径、预期输出。
|
|
187
|
+
- **跳过依赖声明**:没有依赖链,责任链流转就断了。每个非 Plan 任务必须声明它依赖什么产出物。
|
|
188
|
+
- **蓝图没有存共享上下文**:其他 Worker 看不到蓝图就无法理解自己在做什么。蓝图必须是团队可见的。
|