@adamancyzhang/claude-orchestrator 0.2.8 → 0.3.1
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 +179 -186
- package/dist/cli/commands.d.ts +13 -20
- package/dist/cli/commands.js +171 -288
- package/dist/cli/commands.js.map +1 -1
- package/dist/config.d.ts +25 -11
- package/dist/config.js +49 -13
- package/dist/config.js.map +1 -1
- package/dist/index.js +122 -215
- package/dist/index.js.map +1 -1
- package/dist/leader/decision-engine.d.ts +35 -0
- package/dist/leader/decision-engine.js +102 -0
- package/dist/leader/decision-engine.js.map +1 -0
- package/dist/leader/event-bus.d.ts +11 -0
- package/dist/leader/event-bus.js +21 -0
- package/dist/leader/event-bus.js.map +1 -0
- package/dist/leader/index.d.ts +7 -0
- package/dist/leader/index.js +96 -0
- package/dist/leader/index.js.map +1 -0
- package/dist/leader/monitor.d.ts +14 -0
- package/dist/leader/monitor.js +55 -0
- package/dist/leader/monitor.js.map +1 -0
- package/dist/leader/orchestrator.d.ts +14 -0
- package/dist/leader/orchestrator.js +83 -0
- package/dist/leader/orchestrator.js.map +1 -0
- package/dist/leader/recovery.d.ts +11 -0
- package/dist/leader/recovery.js +61 -0
- package/dist/leader/recovery.js.map +1 -0
- package/dist/leader/state.d.ts +24 -0
- package/dist/leader/state.js +122 -0
- package/dist/leader/state.js.map +1 -0
- package/dist/leader/task-generator.d.ts +34 -0
- package/dist/leader/task-generator.js +93 -0
- package/dist/leader/task-generator.js.map +1 -0
- package/dist/leader/tui.d.ts +5 -0
- package/dist/leader/tui.js +136 -0
- package/dist/leader/tui.js.map +1 -0
- package/dist/leader/watcher.d.ts +18 -0
- package/dist/leader/watcher.js +89 -0
- package/dist/leader/watcher.js.map +1 -0
- package/dist/models/schemas.d.ts +111 -100
- package/dist/models/schemas.js +54 -45
- package/dist/models/schemas.js.map +1 -1
- package/dist/modules/message-router.d.ts +2 -2
- package/dist/modules/message-router.js +10 -16
- 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 +4 -1
- package/dist/modules/task-queue.js +114 -10
- 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 +180 -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/leader-decide.md +59 -0
- package/dist/templates/leader-decompose.md +69 -0
- package/dist/templates/worker-accept.md +46 -0
- package/dist/templates/worker-build.md +45 -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 +8 -0
- package/dist/utils/exec.js +45 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/worker/watcher.d.ts +19 -0
- package/dist/worker/watcher.js +152 -0
- package/dist/worker/watcher.js.map +1 -0
- package/dist/zk/client.d.ts +5 -5
- package/dist/zk/client.js +16 -26
- package/dist/zk/client.js.map +1 -1
- package/dist/zk/paths.d.ts +9 -9
- package/dist/zk/paths.js +4 -5
- 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 +3 -6
- 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/modules/message-watcher.d.ts +0 -12
- package/dist/modules/message-watcher.js +0 -133
- package/dist/modules/message-watcher.js.map +0 -1
- package/dist/server.d.ts +0 -2
- package/dist/server.js +0 -490
- package/dist/server.js.map +0 -1
|
@@ -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 看不到蓝图就无法理解自己在做什么。蓝图必须是团队可见的。
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-review
|
|
3
|
+
description: Quality review of the full Plan→Build→Verify chain for the Reviewer role. Use when the Reviewer needs to assess whether the implementation matches the Planner's design intent — checking code quality, architecture compliance, verification completeness, and producing a review report with a pass/revise decision, with full traceability from every judgment back through the chain. Triggers on keywords like "审查", "review", "code review", "检查代码", "审批", "复核", or when verification is complete and the task enters the Review stage of the responsibility chain.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Review
|
|
7
|
+
|
|
8
|
+
> 审查不是挑刺,是从设计意图的高度判断实现是否"做对了"——不是"代码写得怎么样",而是"该不该通过"。本技能与 [[task-traceability]] 协作,确保每次审查有依据、有深度、有结论、可追溯——每个判定都可追溯到具体的 Plan 意图、Build 产出和 Verify 发现。
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 何时触发
|
|
13
|
+
|
|
14
|
+
- Verifier 完成验证,责任链流转到 Review 阶段
|
|
15
|
+
- Worker 通过 `claude-orchestrator claim-task` 认领了 review 类型的任务
|
|
16
|
+
- 用户说"审查一下这个 PR"、"review 一下代码"
|
|
17
|
+
- 蓝图中有 review 类型的任务需要开工
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 审查六步法
|
|
22
|
+
|
|
23
|
+
按顺序执行,每一步通过才进入下一步。
|
|
24
|
+
|
|
25
|
+
### 1. 认领 Review 任务并收集全链信息
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# 认领审查任务
|
|
29
|
+
claude-orchestrator claim-task
|
|
30
|
+
|
|
31
|
+
# 获取蓝图
|
|
32
|
+
claude-orchestrator get-context --key plan-<目标slug>
|
|
33
|
+
|
|
34
|
+
# 获取验证报告
|
|
35
|
+
claude-orchestrator get-context --key verify-<目标slug>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
收集审查所需的完整上下文:
|
|
39
|
+
- Planner 的蓝图(设计意图、验收标准、范围边界)
|
|
40
|
+
- Builder 的代码变更(commit diff)
|
|
41
|
+
- Verifier 的验证报告(问题清单、回归结果)
|
|
42
|
+
- Builder 的 task-traceability 记录(commit hash 链)
|
|
43
|
+
|
|
44
|
+
如果缺少任何一环的产出 → 退回要求补齐。Reviewer 不做信息不完整的审查。
|
|
45
|
+
|
|
46
|
+
### 2. 审查设计一致性
|
|
47
|
+
|
|
48
|
+
对照蓝图检查实际实现,回答三个核心问题:
|
|
49
|
+
|
|
50
|
+
**做对了吗?**(功能正确性)
|
|
51
|
+
- 代码变更是否实现了蓝图定义的全部功能?
|
|
52
|
+
- 是否有蓝图定义但未实现的部分?
|
|
53
|
+
- 是否有蓝图未定义但被实现了的部分(越界)?
|
|
54
|
+
|
|
55
|
+
**做合适吗?**(架构合规性)
|
|
56
|
+
- 代码结构是否符合项目现有的架构模式?
|
|
57
|
+
- 是否引入了新的依赖或模式变更?(如有,是否必要且有充分理由?)
|
|
58
|
+
- 命名、目录组织、接口设计与项目现有风格是否一致?
|
|
59
|
+
|
|
60
|
+
**技术债务可控吗?**
|
|
61
|
+
- 是否有明显的性能问题、安全问题、可维护性问题?
|
|
62
|
+
- 是否引入了难以测试的逻辑?
|
|
63
|
+
- 错误处理是否合理?
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 查看完整 diff
|
|
67
|
+
git show <commit-hash> --patch
|
|
68
|
+
|
|
69
|
+
# 查看变更的文件列表
|
|
70
|
+
git show <commit-hash> --stat
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. 审查验证报告的完整性
|
|
74
|
+
|
|
75
|
+
审查 Verifier 的工作质量:
|
|
76
|
+
|
|
77
|
+
- 验证报告是否覆盖了蓝图中所有验收标准?
|
|
78
|
+
- 验证方法是否独立可复现?(不是转述 Builder 的结果)
|
|
79
|
+
- 回归测试是否被执行且通过?
|
|
80
|
+
- Verifier 发现的问题是否被充分描述和分类?
|
|
81
|
+
|
|
82
|
+
如果验证报告有缺陷(漏检、方法不当)→ 标记为 Review 前置条件不满足,退回 Verifier 补充。
|
|
83
|
+
|
|
84
|
+
### 4. 判定问题等级
|
|
85
|
+
|
|
86
|
+
对发现的问题按严重度分级:
|
|
87
|
+
|
|
88
|
+
| 级别 | 定义 | 示例 | 处理 |
|
|
89
|
+
|------|------|------|------|
|
|
90
|
+
| **P0** | 阻断:设计意图未实现,核心功能缺失或不正确 | 蓝图要求的功能完全没做、引入安全漏洞 | 退回 Builder 重做 |
|
|
91
|
+
| **P1** | 严重:实现偏离设计意图,但不影响核心功能 | 错误处理不完整、UI 与设计不一致、性能明显下降 | 退回 Builder 修改 |
|
|
92
|
+
| **P2** | 一般:代码质量、风格、可维护性问题 | 命名不清晰、缺少注释、测试覆盖面不足 | 建议修改,不阻断通过 |
|
|
93
|
+
| **P3** | 建议:优化建议,不影响通过 | 更好的实现方式、可选的性能优化 | 记录,Builder 自行决定 |
|
|
94
|
+
|
|
95
|
+
### 5. 书写审查报告
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
# 审查报告
|
|
99
|
+
|
|
100
|
+
> Reviewer | YYYY-MM-DD | 审查范围:<目标名称> (P→B→V 全链)
|
|
101
|
+
|
|
102
|
+
## 审查结论:Pass / Revise
|
|
103
|
+
|
|
104
|
+
(一句话结论)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 审查范围
|
|
109
|
+
|
|
110
|
+
| 环节 | 负责人 | 产出 | Commit / 文档 |
|
|
111
|
+
|------|--------|------|--------------|
|
|
112
|
+
| Plan | <Planner> | 蓝图 | plan-<slug> |
|
|
113
|
+
| Build | <Builder> | 代码 | `a1b2c3d` |
|
|
114
|
+
| Verify | <Verifier> | 验证报告 | verify-<slug> |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 设计一致性审查
|
|
119
|
+
|
|
120
|
+
| 蓝图要求 | 实现情况 | 判定 |
|
|
121
|
+
|---------|---------|------|
|
|
122
|
+
| 功能 A:XXX | 已实现,见 `src/a.ts:42` | ✅ |
|
|
123
|
+
| 功能 B:YYY | 部分实现,缺少边界处理 | ⚠️ |
|
|
124
|
+
| 功能 C:ZZZ | 未实现 | ❌ |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 代码质量审查
|
|
129
|
+
|
|
130
|
+
| 检查项 | 结果 |
|
|
131
|
+
|--------|------|
|
|
132
|
+
| 架构合规 | ✅ / ⚠️ / ❌ |
|
|
133
|
+
| 命名规范 | ✅ / ⚠️ / ❌ |
|
|
134
|
+
| 错误处理 | ✅ / ⚠️ / ❌ |
|
|
135
|
+
| 性能影响 | ✅ / ⚠️ / ❌ |
|
|
136
|
+
| 安全问题 | ✅ / ⚠️ / ❌ |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 验证报告审查
|
|
141
|
+
|
|
142
|
+
| 检查项 | 结果 |
|
|
143
|
+
|--------|------|
|
|
144
|
+
| 验收标准覆盖 | 3/3 ✅ |
|
|
145
|
+
| 验证方法独立 | ✅ |
|
|
146
|
+
| 回归测试通过 | ✅ (42/42) |
|
|
147
|
+
| Verifier 问题充分描述 | ✅ |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 问题清单
|
|
152
|
+
|
|
153
|
+
| # | 级别 | 描述 | 位置 | 责任人 |
|
|
154
|
+
|---|------|------|------|--------|
|
|
155
|
+
| 1 | P1 | 缺少错误重试逻辑 | `src/auth.ts:L42` | @Builder |
|
|
156
|
+
| 2 | P2 | 变量名 `tmp` 不够清晰 | `src/utils.ts:L18` | @Builder |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 审查建议
|
|
161
|
+
|
|
162
|
+
(对 Builder/Planner/Verifier 的非强制性建议)
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
*Reviewer — YYYY-MM-DD*
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 6. 通知结果并流转
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# 存入共享上下文
|
|
173
|
+
claude-orchestrator set-context \
|
|
174
|
+
--key review-<目标slug> \
|
|
175
|
+
--value "$(cat docs/review/<目标slug>-YYYY-MM-DD.md)"
|
|
176
|
+
|
|
177
|
+
# Revise → 通知 Builder 和 Planner
|
|
178
|
+
claude-orchestrator send-message \
|
|
179
|
+
--to <builder-id> \
|
|
180
|
+
--content "审查结论 Revise。P1: 缺少错误重试逻辑。详见 review-<slug>"
|
|
181
|
+
|
|
182
|
+
# Pass → 通知 Leader 和 Accepter,流转到 Accept 阶段
|
|
183
|
+
claude-orchestrator send-message \
|
|
184
|
+
--broadcast \
|
|
185
|
+
--content "审查结论 Pass。<目标> 通过 Review,流转至 Accept 阶段。"
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 审查完成检查清单
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
□ 已收集完整的 P→B→V 链产出
|
|
194
|
+
□ 蓝图验收标准全部检查
|
|
195
|
+
□ 代码 diff 完整审阅
|
|
196
|
+
□ 验证报告质量和完整性已评估
|
|
197
|
+
□ 问题已按 P0/P1/P2/P3 分级
|
|
198
|
+
□ 审查报告已产出并存入共享上下文
|
|
199
|
+
□ 结论(Pass/Revise)已通知相关角色
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 与其他技能的协作
|
|
205
|
+
|
|
206
|
+
- **[[task-traceability]]**:基础层。Reviewer 严格遵循追溯 → 执行 → 映射 → 举证 → 记录的五步法。追溯整条链(Plan 意图 → Build 实现 → Verify 发现),逐项判定(Execute),构建审查判定映射表(Map),为每个判定附理据(Evidence),产出审查报告并签发 Pass/Revise(Record)。如果任何一个上游环节的追溯链断裂,标记为 P1 问题——没有追溯链,审查就没有锚点。
|
|
207
|
+
- **[[task-planning]]**:Reviewer 以 Planner 的蓝图为审查标准。设计意图是唯一的判断基准。
|
|
208
|
+
- **[[task-execution]]**:Reviewer 审查 Builder 的代码实现质量和设计一致性。
|
|
209
|
+
- **[[task-verification]]**:Reviewer 审查 Verifier 的验证报告质量和完整性。验证报告有缺陷的,退回 Verifier。
|
|
210
|
+
- **[[task-acceptance]]**:Accepter 依赖 Reviewer 的 Pass 结论和可追溯判定链来决定是否进入最终验收。
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 常见错误
|
|
215
|
+
|
|
216
|
+
- **只审代码不审设计一致性**:陷入代码风格审查,忘记了 Reviewer 的核心职责是判断"是否实现了设计意图"。代码写得再好,与蓝图不一致也是不合格。
|
|
217
|
+
- **跳过对 Verifier 的审查**:假设 Verifier 的报告总是完整正确的。Verifier 也可能遗漏或误判。
|
|
218
|
+
- **不分级的问题清单**:把所有问题列出但不定级,Builder 不知道哪些必须修改、哪些可以忽略。
|
|
219
|
+
- **审查报告不写位置**:问题只描述不定位(缺少文件路径和行号)。Builder 不知道在哪里改。
|
|
220
|
+
- **Pass 但有问题未解决**:P0/P1 问题未解决就签 Pass。零 P0/P1 是 Pass 的前提。
|