@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.
Files changed (91) hide show
  1. package/README.md +179 -186
  2. package/dist/cli/commands.d.ts +13 -20
  3. package/dist/cli/commands.js +171 -288
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/config.d.ts +25 -11
  6. package/dist/config.js +49 -13
  7. package/dist/config.js.map +1 -1
  8. package/dist/index.js +122 -215
  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/event-bus.d.ts +11 -0
  14. package/dist/leader/event-bus.js +21 -0
  15. package/dist/leader/event-bus.js.map +1 -0
  16. package/dist/leader/index.d.ts +7 -0
  17. package/dist/leader/index.js +96 -0
  18. package/dist/leader/index.js.map +1 -0
  19. package/dist/leader/monitor.d.ts +14 -0
  20. package/dist/leader/monitor.js +55 -0
  21. package/dist/leader/monitor.js.map +1 -0
  22. package/dist/leader/orchestrator.d.ts +14 -0
  23. package/dist/leader/orchestrator.js +83 -0
  24. package/dist/leader/orchestrator.js.map +1 -0
  25. package/dist/leader/recovery.d.ts +11 -0
  26. package/dist/leader/recovery.js +61 -0
  27. package/dist/leader/recovery.js.map +1 -0
  28. package/dist/leader/state.d.ts +24 -0
  29. package/dist/leader/state.js +122 -0
  30. package/dist/leader/state.js.map +1 -0
  31. package/dist/leader/task-generator.d.ts +34 -0
  32. package/dist/leader/task-generator.js +93 -0
  33. package/dist/leader/task-generator.js.map +1 -0
  34. package/dist/leader/tui.d.ts +5 -0
  35. package/dist/leader/tui.js +136 -0
  36. package/dist/leader/tui.js.map +1 -0
  37. package/dist/leader/watcher.d.ts +18 -0
  38. package/dist/leader/watcher.js +89 -0
  39. package/dist/leader/watcher.js.map +1 -0
  40. package/dist/models/schemas.d.ts +111 -100
  41. package/dist/models/schemas.js +54 -45
  42. package/dist/models/schemas.js.map +1 -1
  43. package/dist/modules/message-router.d.ts +2 -2
  44. package/dist/modules/message-router.js +10 -16
  45. package/dist/modules/message-router.js.map +1 -1
  46. package/dist/modules/registry.js +3 -3
  47. package/dist/modules/registry.js.map +1 -1
  48. package/dist/modules/task-queue.d.ts +4 -1
  49. package/dist/modules/task-queue.js +114 -10
  50. package/dist/modules/task-queue.js.map +1 -1
  51. package/dist/skills/CLAUDE.md +155 -0
  52. package/dist/skills/claude-code-developer/SKILL.md +325 -0
  53. package/dist/skills/claude-orchestrator/SKILL.md +180 -0
  54. package/dist/skills/task-acceptance/SKILL.md +201 -0
  55. package/dist/skills/task-execution/SKILL.md +142 -0
  56. package/dist/skills/task-planning/SKILL.md +188 -0
  57. package/dist/skills/task-review/SKILL.md +220 -0
  58. package/dist/skills/task-traceability/SKILL.md +154 -0
  59. package/dist/skills/task-verification/SKILL.md +194 -0
  60. package/dist/templates/leader-decide.md +59 -0
  61. package/dist/templates/leader-decompose.md +69 -0
  62. package/dist/templates/worker-accept.md +46 -0
  63. package/dist/templates/worker-build.md +45 -0
  64. package/dist/templates/worker-plan.md +43 -0
  65. package/dist/templates/worker-review.md +46 -0
  66. package/dist/templates/worker-verify.md +47 -0
  67. package/dist/utils/exec.d.ts +8 -0
  68. package/dist/utils/exec.js +45 -0
  69. package/dist/utils/exec.js.map +1 -0
  70. package/dist/worker/watcher.d.ts +19 -0
  71. package/dist/worker/watcher.js +152 -0
  72. package/dist/worker/watcher.js.map +1 -0
  73. package/dist/zk/client.d.ts +5 -5
  74. package/dist/zk/client.js +16 -26
  75. package/dist/zk/client.js.map +1 -1
  76. package/dist/zk/paths.d.ts +9 -9
  77. package/dist/zk/paths.js +4 -5
  78. package/dist/zk/paths.js.map +1 -1
  79. package/dist/zk/watcher.d.ts +0 -2
  80. package/dist/zk/watcher.js +0 -3
  81. package/dist/zk/watcher.js.map +1 -1
  82. package/package.json +3 -6
  83. package/dist/modules/context-store.d.ts +0 -10
  84. package/dist/modules/context-store.js +0 -25
  85. package/dist/modules/context-store.js.map +0 -1
  86. package/dist/modules/message-watcher.d.ts +0 -12
  87. package/dist/modules/message-watcher.js +0 -133
  88. package/dist/modules/message-watcher.js.map +0 -1
  89. package/dist/server.d.ts +0 -2
  90. package/dist/server.js +0 -490
  91. package/dist/server.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/modules/message-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/modules/message-router.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ export class InstanceRegistry {
4
4
  constructor(zk) {
5
5
  this.zk = zk;
6
6
  }
7
- async register(name, role = "general", instanceId) {
8
- const validRole = ["architect", "developer", "tester", "general"].includes(role)
7
+ async register(name, role = "builder", instanceId) {
8
+ const validRole = ["planner", "builder", "verifier", "reviewer", "accepter", "leader"].includes(role)
9
9
  ? role
10
- : "general";
10
+ : "builder";
11
11
  if (instanceId) {
12
12
  const existing = await this.zk.getInstance(instanceId);
13
13
  if (existing) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/modules/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/modules/registry.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,11 @@ import { type Task } from "../models/schemas.js";
3
3
  export declare class TaskQueue {
4
4
  private zk;
5
5
  constructor(zk: ZkClient);
6
- push(title: string, description?: string, priority?: number, createdBy?: string, assignedTo?: string): Promise<Task>;
6
+ push(title: string, description?: string, priority?: number, createdBy?: string, assignedTo?: string, createdByName?: string, assignedToName?: string | null, link?: string | null, chainId?: string | null, dependsOn?: string[], blockedBy?: string[]): Promise<Task>;
7
7
  claim(instanceId: string): Promise<Task | null>;
8
8
  complete(instanceId: string, taskId: string, result: string): Promise<Task>;
9
+ block(instanceId: string, taskId: string, reason: string): Promise<Task>;
10
+ fail(instanceId: string, taskId: string, reason: string): Promise<Task>;
11
+ retry(taskId: string): Promise<Task>;
9
12
  listTasks(status?: string): Promise<Task[]>;
10
13
  }
@@ -7,13 +7,19 @@ export class TaskQueue {
7
7
  constructor(zk) {
8
8
  this.zk = zk;
9
9
  }
10
- async push(title, description = "", priority = 1, createdBy = "", assignedTo) {
10
+ async push(title, description = "", priority = 1, createdBy = "", assignedTo, createdByName, assignedToName, link, chainId, dependsOn, blockedBy) {
11
11
  const task = createTask({
12
12
  title,
13
13
  description,
14
14
  priority: [0, 1, 2].includes(priority) ? priority : 1,
15
15
  created_by: createdBy,
16
16
  assigned_to: assignedTo ?? null,
17
+ created_by_name: createdByName,
18
+ assigned_to_name: assignedToName ?? null,
19
+ link,
20
+ chain_id: chainId,
21
+ depends_on: dependsOn ?? [],
22
+ blocked_by: blockedBy ?? [],
17
23
  });
18
24
  const taskId = await this.zk.createPendingTask(task);
19
25
  task.id = taskId;
@@ -21,13 +27,30 @@ export class TaskQueue {
21
27
  }
22
28
  async claim(instanceId) {
23
29
  const pending = await this.zk.listPendingTasks();
24
- // Sort: assigned_to matches instanceId first, then priority (lower = higher), then FIFO
30
+ // Read instance role for weight matching
31
+ let instanceRole = "";
32
+ try {
33
+ const instData = await this.zk.getInstance(instanceId);
34
+ instanceRole = instData?.role ?? "";
35
+ }
36
+ catch {
37
+ // proceed without role-weight sorting
38
+ }
39
+ const roleToLink = {
40
+ planner: "plan",
41
+ builder: "build",
42
+ verifier: "verify",
43
+ reviewer: "review",
44
+ accepter: "accept",
45
+ };
25
46
  const sortKey = (item) => {
26
47
  const [, data] = item;
27
48
  const assigned = data.assigned_to;
28
49
  const prio = data.priority ?? 1;
29
50
  const isAssignedToMe = assigned === instanceId ? 0 : 1;
30
- return [isAssignedToMe, prio, item[0]];
51
+ const taskLink = data.link ?? "";
52
+ const roleMatch = taskLink && roleToLink[instanceRole] === taskLink ? 0 : 1;
53
+ return [isAssignedToMe, roleMatch, prio, item[0]];
31
54
  };
32
55
  pending.sort((a, b) => {
33
56
  const ka = sortKey(a);
@@ -41,6 +64,7 @@ export class TaskQueue {
41
64
  return 0;
42
65
  });
43
66
  for (const [taskId, data] of pending) {
67
+ // Embed full task_data in claimed node for recovery
44
68
  const taskBytes = Buffer.from(JSON.stringify(data), "utf-8");
45
69
  const claimed = await this.zk.claimTask(instanceId, taskId, taskBytes);
46
70
  if (!claimed)
@@ -57,21 +81,99 @@ export class TaskQueue {
57
81
  }
58
82
  async complete(instanceId, taskId, result) {
59
83
  const claimedData = await this.zk.getClaimedTask(instanceId, taskId);
60
- await this.zk.deleteClaimedTask(instanceId, taskId);
84
+ if (!claimedData || Object.keys(claimedData).length === 0) {
85
+ throw new Error(`Task ${taskId} is not claimed by ${instanceId}`);
86
+ }
87
+ const claimedAt = claimedData.claimed_at;
88
+ const durationSeconds = claimedAt
89
+ ? Math.round((Date.now() - new Date(claimedAt).getTime()) / 1000)
90
+ : null;
61
91
  const now = utcNow();
62
92
  const data = {
63
93
  id: taskId,
64
94
  title: claimedData.title ?? "",
65
95
  description: claimedData.description ?? "",
66
96
  priority: claimedData.priority ?? 1,
97
+ status: "completed",
67
98
  created_by: claimedData.created_by ?? "",
99
+ created_at: claimedData.created_at ?? now,
68
100
  assigned_to: claimedData.assigned_to ?? null,
69
- completed_by: instanceId,
101
+ claimed_by: instanceId,
102
+ claimed_at: claimedAt ?? now,
70
103
  completed_at: now,
104
+ completed_by_name: claimedData.claimed_by_name ?? "",
71
105
  result,
106
+ link: claimedData.link ?? null,
107
+ chain_id: claimedData.chain_id ?? null,
108
+ retry_count: claimedData.retry_count ?? 0,
109
+ duration_seconds: durationSeconds,
110
+ created_by_name: claimedData.created_by_name ?? "",
111
+ assigned_to_name: claimedData.assigned_to_name ?? null,
112
+ blocked_reason: null,
113
+ fail_reason: null,
114
+ };
115
+ await this.zk.saveCompletedTask(taskId, data);
116
+ await this.zk.deleteClaimedTask(instanceId, taskId);
117
+ return TaskSchema.parse(data);
118
+ }
119
+ async block(instanceId, taskId, reason) {
120
+ const claimedData = await this.zk.getClaimedTask(instanceId, taskId);
121
+ if (!claimedData || Object.keys(claimedData).length === 0) {
122
+ throw new Error(`Task ${taskId} is not claimed by ${instanceId}`);
123
+ }
124
+ claimedData.status = "blocked";
125
+ claimedData.blocked_reason = reason;
126
+ await this.zk.updateClaimedTask(instanceId, taskId, claimedData);
127
+ return TaskSchema.parse({ ...claimedData, id: taskId });
128
+ }
129
+ async fail(instanceId, taskId, reason) {
130
+ const claimedData = await this.zk.getClaimedTask(instanceId, taskId);
131
+ if (!claimedData || Object.keys(claimedData).length === 0) {
132
+ throw new Error(`Task ${taskId} is not claimed by ${instanceId}`);
133
+ }
134
+ await this.zk.deleteClaimedTask(instanceId, taskId);
135
+ const now = utcNow();
136
+ const data = {
137
+ ...claimedData,
138
+ id: taskId,
139
+ status: "failed",
140
+ completed_at: now,
141
+ fail_reason: reason,
142
+ result: `Failed: ${reason}`,
72
143
  };
73
144
  await this.zk.saveCompletedTask(taskId, data);
74
- return TaskSchema.parse({ ...data, status: "completed" });
145
+ return TaskSchema.parse(data);
146
+ }
147
+ async retry(taskId) {
148
+ const completedData = await this.zk.getCompletedTask(taskId);
149
+ if (!completedData) {
150
+ throw new Error(`Task ${taskId} not found in completed tasks`);
151
+ }
152
+ const retryCount = (completedData.retry_count ?? 0) + 1;
153
+ const taskData = {
154
+ title: completedData.title ?? "",
155
+ description: completedData.description ?? "",
156
+ priority: completedData.priority ?? 1,
157
+ created_by: completedData.created_by ?? "",
158
+ assigned_to: completedData.assigned_to ?? null,
159
+ assigned_to_name: completedData.assigned_to_name ?? null,
160
+ created_by_name: completedData.created_by_name ?? "",
161
+ created_at: utcNow(),
162
+ link: completedData.link ?? null,
163
+ chain_id: completedData.chain_id ?? null,
164
+ retry_count: retryCount,
165
+ status: "pending",
166
+ blocked_reason: null,
167
+ fail_reason: null,
168
+ claimed_at: null,
169
+ claimed_by: null,
170
+ completed_at: null,
171
+ completed_by_name: null,
172
+ duration_seconds: null,
173
+ result: null,
174
+ };
175
+ const newTaskId = await this.zk.createPendingTask(taskData);
176
+ return TaskSchema.parse({ ...taskData, id: newTaskId });
75
177
  }
76
178
  async listTasks(status) {
77
179
  const tasks = [];
@@ -82,18 +184,20 @@ export class TaskQueue {
82
184
  tasks.push(TaskSchema.parse(data));
83
185
  }
84
186
  }
85
- if (!status || status === "claimed") {
187
+ if (!status || status === "claimed" || status === "in_progress" || status === "blocked") {
86
188
  for (const [insId, taskId, data] of await this.zk.listClaimedTasks()) {
87
189
  data.id = taskId;
88
- data.status = "claimed";
89
190
  data.claimed_by = insId;
191
+ if (status && data.status !== status)
192
+ continue;
90
193
  tasks.push(TaskSchema.parse(data));
91
194
  }
92
195
  }
93
- if (!status || status === "completed") {
196
+ if (!status || status === "completed" || status === "failed") {
94
197
  for (const data of await this.zk.listCompletedTasks()) {
95
198
  data.title = data.title ?? "";
96
- data.status = "completed";
199
+ if (status && data.status !== status)
200
+ continue;
97
201
  tasks.push(TaskSchema.parse(data));
98
202
  }
99
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/modules/task-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/modules/task-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ # Skills for Multi-Agent Orchestration
2
+
3
+ Skills 是按责任链角色设计的标准化工作流。每个 skill 对应一个责任链角色,定义明确的输入、步骤、和产出。Skills 之间通过交叉引用形成闭环协作。
4
+
5
+ ---
6
+
7
+ ## 责任链与 Skill 映射
8
+
9
+ ```
10
+ Leader (协调层)
11
+ └── claude-orchestrator: 实例注册、任务分发、消息传递、上下文共享
12
+
13
+ 责任链: Plan → Build → Verify → Review → Accept
14
+ │ │ │ │ │
15
+ ▼ ▼ ▼ ▼ ▼
16
+ task- task- task- task- task-
17
+ planning execution verification review acceptance
18
+
19
+ 基础层 (所有角色):
20
+ task-traceability: 追溯 → 执行 → 映射 → 举证 → 记录 — 责任链可审计、可交接、可签收的基础
21
+ ```
22
+
23
+ | 角色 | Skill | 输入 | 产出 |
24
+ |------|-------|------|------|
25
+ | **Leader** | `claude-orchestrator` | 需求/目标 | 任务在队列中,Worker 在工作 |
26
+ | **Planner** | `task-planning` + `task-traceability` | 需求上下文 | 蓝图文档 + 任务队列 + 可追溯记录 |
27
+ | **Builder** | `task-execution` + `task-traceability` | 蓝图 + 任务 | 代码 commit + 可追溯记录 |
28
+ | **Verifier** | `task-verification` + `task-traceability` | 蓝图 + Builder 产出 | 验证报告 + 可追溯记录 |
29
+ | **Reviewer** | `task-review` + `task-traceability` | 蓝图 + Build 代码 + Verify 报告 | 审查报告 (Pass/Revise) + 可追溯记录 |
30
+ | **Accepter** | `task-acceptance` + `task-traceability` | 全链产出 + 验收标准 | 验收报告 (Go/No-Go) + 可追溯记录 |
31
+
32
+ ---
33
+
34
+ ## 各 Skill 详述
35
+
36
+ ### claude-orchestrator
37
+
38
+ Multi-agent orchestration CLI backed by ZooKeeper。所有角色都使用它来完成基础设施操作:注册实例、认领任务、发送消息、读写共享上下文。
39
+
40
+ - **入口**: `claude-orchestrator <command>`
41
+ - **关键命令**: `register`, `claim-task`, `complete-task`, `push-task`, `send-message`, `set-context`, `get-context`
42
+ - **适用角色**: 所有角色
43
+
44
+ ### task-planning
45
+
46
+ Planner 将需求分析拆解为可执行任务蓝图的标准化工作流。
47
+
48
+ - **触发**: "分析需求"、"拆解任务"、"制定计划"
49
+ - **六步法**: 读取需求 → 定义蓝图 → 拆解任务 → 推入队列 → 建立验收标准 → 通知 Leader
50
+ - **产出**: 蓝图文档 + orchestrator 任务队列中的任务
51
+ - **依赖**: 需求上下文(Leader 提供或文档来源)
52
+
53
+ ### task-execution
54
+
55
+ Builder 认领任务后精准执行的工作流。
56
+
57
+ - **触发**: "执行任务"、"开始构建"、claim build 类型任务后
58
+ - **六步法**: 认领并获取上下文 → 理解范围 → 执行实现 → 自测验证 → 提交代码 → 报告完成
59
+ - **产出**: 代码 commit + 可追溯记录 (commit hash → 任务文档)
60
+ - **协作 skill**: `task-traceability` (提交规范)
61
+ - **依赖**: Planner 的蓝图
62
+
63
+ ### task-verification
64
+
65
+ Verifier 对照蓝图独立验证 Builder 产出的工作流。
66
+
67
+ - **触发**: "验证任务"、"verify"、claim verify 类型任务后
68
+ - **六步法**: 认领并读蓝图 → 收集产出物 → 逐项验证 → 边缘检查 → 判定偏离 → 产出报告
69
+ - **产出**: 验证报告(通过/不通过 + 问题清单)
70
+ - **依赖**: Planner 的蓝图 + Builder 的代码 commit
71
+
72
+ ### task-review
73
+
74
+ Reviewer 从设计意图高度审查全链产出的工作流。
75
+
76
+ - **触发**: "审查"、"review"、"code review"、claim review 类型任务后
77
+ - **六步法**: 收集全链信息 → 审查设计一致性 → 审查验证报告 → 判定问题等级 → 书写报告 → 通知流转
78
+ - **产出**: 审查报告(Pass/Revise + P0-P3 问题清单)
79
+ - **依赖**: Plan 蓝图 + Build 代码 + Verify 报告
80
+
81
+ ### task-acceptance
82
+
83
+ Accepter 从业务需求角度验收最终交付物的工作流。
84
+
85
+ - **触发**: "确认并验收"、"验收一下"、"检查完成情况"
86
+ - **八步法**: 参见 `skills/task-acceptance/SKILL.md`
87
+ - **产出**: 验收报告(Go/No-Go + 问题清单)
88
+ - **依赖**: 全链产出(Plan → Build → Verify → Review)+ 业务验收标准
89
+
90
+ ### task-traceability
91
+
92
+ 基础层工作流:责任链可审计、可交接、可签收的基石。所有角色都依赖它来建立可追溯记录。
93
+
94
+ - **触发**: 任何责任链环节的任务执行
95
+ - **五步法**: 追溯上游要求 → 按追溯到的要求执行 → 将产出映射回上游要求 → 为每个映射提供证据 → 持久化追溯记录
96
+ - **适用**: 所有角色(Plan / Build / Verify / Review / Accept)
97
+ - **为什么是基础层**: 没有追溯,Plan 的蓝图无法被 Build 执行,Build 的产出无法被 Verify 验证,Verify 的报告无法被 Review 采信,Review 的判定无法被 Accept 签收。任何一个环节的追溯断裂,整个责任链就断了。
98
+
99
+ ---
100
+
101
+ ## Skill 间协作关系
102
+
103
+ ```
104
+ ┌─────────────────────────────────────────────────────────────┐
105
+ │ task-traceability (基础层) │
106
+ │ 追溯 → 执行 → 映射 → 举证 → 记录 — 每个环节的通用模式 │
107
+ └─────────────────────────────────────────────────────────────┘
108
+ │ │ │ │ │
109
+ ▼ ▼ ▼ ▼ ▼
110
+ task-planning task-execution task-verification task-review task-acceptance
111
+ (Planner) (Builder) (Verifier) (Reviewer) (Accepter)
112
+ │ │ │ │ │
113
+ │ 蓝图+标准 │ 代码+记录 │ 验证报告+问题 │ 审查报告 │ 验收报告
114
+ ▼ ▼ ▼ ▼ ▼
115
+ 责任链流转: Plan → Build → Verify → Review → Accept
116
+ ```
117
+
118
+ 每个环节发现问题可向前反馈至对应环节。例如:
119
+ - Verifier 发现偏离 → 反馈 Builder
120
+ - Reviewer 发现设计意图未实现 → 反馈 Planner 和 Builder
121
+ - Accepter 发现验收不通过 → 反馈至对应环节的负责人
122
+
123
+ `task-traceability` 确保每个环节的产出都有完整的追溯链:谁做的 → 基于什么要求 → 产出是什么 → 证据在哪里 → 记录存在哪里。没有追溯链,反馈就找不到锚点,交接就不可靠,签收就无法审计。
124
+
125
+ 所有角色通过 `claude-orchestrator` 的消息和共享上下文进行跨角色沟通。
126
+
127
+ ---
128
+
129
+ ## 角色预设权重与 Skill 选择
130
+
131
+ Worker 注册时的 role 是预设权重,认领任务后才确定当前角色和对应的 skill:
132
+
133
+ | 注册 role | 预设匹配的任务 link | 认领后使用的 skill |
134
+ |-----------|-------------------|-------------------|
135
+ | `planner` | `plan` | `task-planning` + `task-traceability` |
136
+ | `builder` | `build` | `task-execution` + `task-traceability` |
137
+ | `verifier` | `verify` | `task-verification` + `task-traceability` |
138
+ | `reviewer` | `review` | `task-review` + `task-traceability` |
139
+ | `accepter` | `accept` | `task-acceptance` + `task-traceability` |
140
+
141
+ 任意 Worker 可认领任意环节的任务。认领后以任务所属环节的角色身份执行,使用对应的 skill。
142
+
143
+ ---
144
+
145
+ ## 快速索引
146
+
147
+ | 我想做... | 使用 skill |
148
+ |-----------|-----------|
149
+ | 分析需求,拆解成任务 | `task-planning` + `task-traceability` |
150
+ | 认领并执行一个开发任务 | `task-execution` + `task-traceability` |
151
+ | 建立可追溯的执行记录 | `task-traceability` |
152
+ | 验证 Builder 的产出是否合格 | `task-verification` + `task-traceability` |
153
+ | 审查代码质量和设计一致性 | `task-review` + `task-traceability` |
154
+ | 验收最终交付物,签 Go/No-Go | `task-acceptance` + `task-traceability` |
155
+ | 注册实例、收发消息、管理任务 | `claude-orchestrator` |