@adamancyzhang/claude-orchestrator 0.3.0 → 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.
Files changed (76) hide show
  1. package/README.md +179 -186
  2. package/dist/cli/commands.d.ts +6 -17
  3. package/dist/cli/commands.js +106 -172
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/config.d.ts +22 -14
  6. package/dist/config.js +47 -20
  7. package/dist/config.js.map +1 -1
  8. package/dist/index.js +110 -246
  9. package/dist/index.js.map +1 -1
  10. package/dist/leader/decision-engine.d.ts +35 -0
  11. package/dist/leader/decision-engine.js +102 -0
  12. package/dist/leader/decision-engine.js.map +1 -0
  13. package/dist/leader/index.js +12 -2
  14. package/dist/leader/index.js.map +1 -1
  15. package/dist/leader/recovery.d.ts +2 -0
  16. package/dist/leader/recovery.js +37 -22
  17. package/dist/leader/recovery.js.map +1 -1
  18. package/dist/leader/state.d.ts +2 -1
  19. package/dist/leader/state.js +39 -2
  20. package/dist/leader/state.js.map +1 -1
  21. package/dist/leader/task-generator.d.ts +34 -0
  22. package/dist/leader/task-generator.js +93 -0
  23. package/dist/leader/task-generator.js.map +1 -0
  24. package/dist/leader/tui.js +8 -5
  25. package/dist/leader/tui.js.map +1 -1
  26. package/dist/leader/watcher.d.ts +3 -1
  27. package/dist/leader/watcher.js +14 -2
  28. package/dist/leader/watcher.js.map +1 -1
  29. package/dist/models/schemas.d.ts +60 -96
  30. package/dist/models/schemas.js +27 -44
  31. package/dist/models/schemas.js.map +1 -1
  32. package/dist/modules/message-router.d.ts +1 -3
  33. package/dist/modules/message-router.js +3 -26
  34. package/dist/modules/message-router.js.map +1 -1
  35. package/dist/modules/registry.js +3 -3
  36. package/dist/modules/registry.js.map +1 -1
  37. package/dist/modules/task-queue.d.ts +1 -1
  38. package/dist/modules/task-queue.js +28 -2
  39. package/dist/modules/task-queue.js.map +1 -1
  40. package/dist/skills/CLAUDE.md +155 -0
  41. package/dist/skills/claude-code-developer/SKILL.md +325 -0
  42. package/dist/skills/claude-orchestrator/SKILL.md +180 -0
  43. package/dist/skills/task-acceptance/SKILL.md +201 -0
  44. package/dist/skills/task-execution/SKILL.md +142 -0
  45. package/dist/skills/task-planning/SKILL.md +188 -0
  46. package/dist/skills/task-review/SKILL.md +220 -0
  47. package/dist/skills/task-traceability/SKILL.md +154 -0
  48. package/dist/skills/task-verification/SKILL.md +194 -0
  49. package/dist/templates/leader-decide.md +59 -0
  50. package/dist/templates/leader-decompose.md +69 -0
  51. package/dist/templates/worker-accept.md +46 -0
  52. package/dist/templates/worker-build.md +45 -0
  53. package/dist/templates/worker-plan.md +43 -0
  54. package/dist/templates/worker-review.md +46 -0
  55. package/dist/templates/worker-verify.md +47 -0
  56. package/dist/utils/exec.d.ts +5 -0
  57. package/dist/utils/exec.js +25 -0
  58. package/dist/utils/exec.js.map +1 -1
  59. package/dist/worker/watcher.d.ts +3 -0
  60. package/dist/worker/watcher.js +72 -2
  61. package/dist/worker/watcher.js.map +1 -1
  62. package/dist/zk/client.d.ts +0 -5
  63. package/dist/zk/client.js +0 -27
  64. package/dist/zk/client.js.map +1 -1
  65. package/dist/zk/paths.d.ts +8 -10
  66. package/dist/zk/paths.js +1 -6
  67. package/dist/zk/paths.js.map +1 -1
  68. package/dist/zk/watcher.d.ts +0 -2
  69. package/dist/zk/watcher.js +0 -3
  70. package/dist/zk/watcher.js.map +1 -1
  71. package/package.json +2 -2
  72. package/dist/modules/context-store.d.ts +0 -10
  73. package/dist/modules/context-store.js +0 -25
  74. package/dist/modules/context-store.js.map +0 -1
  75. package/dist/templates/leader.md +0 -10
  76. package/dist/templates/worker.md +0 -8
@@ -0,0 +1,180 @@
1
+ ---
2
+ name: claude-orchestrator
3
+ description: Multi-agent orchestration CLI backed by ZooKeeper for service discovery. Register instances, distribute tasks, send messages, and share context across Claude Code instances. Use when the user wants to register, join a team, claim tasks, send messages, check status, or any orchestrator operation.
4
+ ---
5
+
6
+ # Claude Orchestrator
7
+
8
+ A CLI that provides multi-agent orchestration directly on top of ZooKeeper. Every Claude Code instance becomes a discoverable agent — register, claim tasks, communicate, and share context without a middleman server.
9
+
10
+ ## Architecture
11
+
12
+ ```
13
+ Claude Code ──CLI──> ZooKeeper
14
+ (instance A) (service discovery, task queue, messages, context)
15
+
16
+ Claude Code ──CLI──> ZooKeeper
17
+ (instance B)
18
+ ```
19
+
20
+ Every CLI command talks directly to ZooKeeper. Instance discovery is via ephemeral znodes. Tasks use sequential znodes for FIFO ordering. Messages use watch-based push.
21
+
22
+ ## Setup
23
+
24
+ ```bash
25
+ pip install -e .
26
+ docker-compose up -d # start ZooKeeper
27
+ ```
28
+
29
+ Verify:
30
+
31
+ ```bash
32
+ claude-orchestrator status
33
+ # {"status": "healthy", "zookeeper": "connected", "instances_online": 0}
34
+ ```
35
+
36
+ ## Global Options
37
+
38
+ | Option | Env var | Default | Description |
39
+ |--------|---------|---------|-------------|
40
+ | `--zk-hosts` | `ZK_HOSTS` | `127.0.0.1:2181` | ZooKeeper connection string |
41
+ | `--instance-id` | — | auto (from config) | Override stored instance ID |
42
+
43
+ ## Commands
44
+
45
+ ### Registration
46
+
47
+ **Register** this instance:
48
+
49
+ ```bash
50
+ claude-orchestrator register --name Jerry-Dev --role developer
51
+ # {"id": "a1b2c3d4...", "name": "Jerry-Dev", "role": "developer", "status": "idle", ...}
52
+ ```
53
+
54
+ The returned `id` is saved to `~/.claude-orchestrator/config.json`. Pass `--instance-id` on re-registration to reuse the same identity.
55
+
56
+ **Heartbeat** — keep registration alive, optionally declare current task:
57
+
58
+ ```bash
59
+ claude-orchestrator heartbeat
60
+ claude-orchestrator heartbeat --current-task "fix-login-bug"
61
+ ```
62
+
63
+ ZK session timeout is 30s. Call heartbeat regularly (every 30-60s) while working.
64
+
65
+ **List instances:**
66
+
67
+ ```bash
68
+ claude-orchestrator list-instances
69
+ # [{"id": "...", "name": "Jerry-Dev", "role": "developer", "status": "busy", ...}, ...]
70
+ ```
71
+
72
+ ### Tasks
73
+
74
+ **Push a task** to the queue:
75
+
76
+ ```bash
77
+ claude-orchestrator push-task --title "Fix login bug" --description "..." --priority 0
78
+ claude-orchestrator push-task --title "Review PR #42" --assignee <instance-id>
79
+ ```
80
+
81
+ Priority: `0` = HIGH, `1` = MEDIUM (default), `2` = LOW.
82
+
83
+ **Claim a task** — FIFO, higher priority first, assigned-to-you tasks jump the queue:
84
+
85
+ ```bash
86
+ claude-orchestrator claim-task
87
+ # {"id": "task-0000000001", "title": "Fix login bug", ...} ← claimed
88
+ # {"status": "no_tasks", "message": "No pending tasks available."} ← empty queue
89
+ ```
90
+
91
+ **Complete a task:**
92
+
93
+ ```bash
94
+ claude-orchestrator complete-task --task-id task-0000000001 --result "Fixed auth middleware, added tests"
95
+ ```
96
+
97
+ **List tasks:**
98
+
99
+ ```bash
100
+ claude-orchestrator list-tasks
101
+ claude-orchestrator list-tasks --status pending
102
+ claude-orchestrator list-tasks --status claimed
103
+ claude-orchestrator list-tasks --status completed
104
+ ```
105
+
106
+ ### Messages
107
+
108
+ **Send a direct message:**
109
+
110
+ ```bash
111
+ claude-orchestrator send-message --to <instance-id> --content "Can you review my PR?"
112
+ ```
113
+
114
+ **Broadcast to all:**
115
+
116
+ ```bash
117
+ claude-orchestrator send-message --broadcast --content "CI is down, don't push"
118
+ ```
119
+
120
+ **Poll messages:**
121
+
122
+ ```bash
123
+ claude-orchestrator poll-messages
124
+ # [{"id": "msg-...", "type": "direct", "from_name": "Lucy-Test", "content": "...", "read": true}]
125
+ ```
126
+
127
+ **Request help** (broadcasts to all):
128
+
129
+ ```bash
130
+ claude-orchestrator request-help --question "How do I test the auth flow?" --context "stack trace..."
131
+ ```
132
+
133
+ ### Shared Context
134
+
135
+ **Set:**
136
+
137
+ ```bash
138
+ claude-orchestrator set-context --key ci_status --value "failing: auth tests"
139
+ ```
140
+
141
+ **Get:**
142
+
143
+ ```bash
144
+ claude-orchestrator get-context --key ci_status
145
+ # {"key": "ci_status", "value": "failing: auth tests"}
146
+ ```
147
+
148
+ ### Status
149
+
150
+ ```bash
151
+ claude-orchestrator status
152
+ # {"status": "healthy", "zookeeper": "connected", "instances_online": 3}
153
+ ```
154
+
155
+ ## Workflow
156
+
157
+ A typical agent session:
158
+
159
+ ```bash
160
+ # 1. Join the team
161
+ claude-orchestrator register --name Jerry-Dev --role developer
162
+
163
+ # 2. Check who's online
164
+ claude-orchestrator list-instances
165
+
166
+ # 3. Work loop
167
+ while true; do
168
+ claude-orchestrator poll-messages # check for messages
169
+ task=$(claude-orchestrator claim-task) # grab work
170
+ if [ "$task" = "no_tasks" ]; then break; fi
171
+ # ... execute the task ...
172
+ claude-orchestrator complete-task --task-id <id> --result "Done: ..."
173
+ done
174
+ ```
175
+
176
+ ## Error recovery
177
+
178
+ - **ZooKeeper not connected**: check `docker-compose ps`, retry. ZK client auto-reconnects.
179
+ - **"No instance_id found"**: register first, or pass `--instance-id`
180
+ - **Registration expired**: ephemeral nodes cleaned up on disconnect. Re-register with same `--instance-id` to restore identity.
@@ -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 记录了但签名用的是别人。追溯链断了——谁做的不可知。