maestro-flow 0.1.1 → 0.1.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 (92) hide show
  1. package/.codex/skills/manage-codebase-rebuild/SKILL.md +405 -405
  2. package/.codex/skills/manage-codebase-refresh/SKILL.md +82 -82
  3. package/.codex/skills/manage-issue/SKILL.md +65 -65
  4. package/.codex/skills/manage-status/SKILL.md +89 -89
  5. package/.codex/skills/quality-debug/SKILL.md +413 -413
  6. package/.codex/skills/quality-refactor/SKILL.md +191 -191
  7. package/.codex/skills/quality-sync/SKILL.md +89 -89
  8. package/.codex/skills/quality-test/SKILL.md +198 -198
  9. package/.codex/skills/spec-add/SKILL.md +79 -79
  10. package/.codex/skills/spec-load/SKILL.md +75 -75
  11. package/.codex/skills/spec-map/SKILL.md +182 -182
  12. package/.codex/skills/spec-setup/SKILL.md +76 -76
  13. package/.codex/skills/team-coordinate/SKILL.md +7 -7
  14. package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
  15. package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -2
  16. package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +2 -2
  17. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  18. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +2 -2
  19. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +1 -1
  20. package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +2 -2
  21. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  22. package/.codex/skills/team-lifecycle-v4/schemas/tasks-schema.md +1 -1
  23. package/.codex/skills/team-quality-assurance/SKILL.md +2 -2
  24. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +2 -2
  25. package/.codex/skills/team-quality-assurance/roles/executor/role.md +1 -1
  26. package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -2
  27. package/.codex/skills/team-review/SKILL.md +2 -2
  28. package/.codex/skills/team-review/roles/coordinator/role.md +2 -2
  29. package/.codex/skills/team-review/roles/reviewer/role.md +2 -2
  30. package/.codex/skills/team-review/roles/scanner/role.md +1 -1
  31. package/.codex/skills/team-tech-debt/SKILL.md +2 -2
  32. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +1 -1
  33. package/.codex/skills/team-tech-debt/roles/executor/role.md +1 -1
  34. package/.codex/skills/team-tech-debt/roles/scanner/role.md +2 -2
  35. package/.codex/skills/team-tech-debt/roles/validator/role.md +1 -1
  36. package/.codex/skills/team-testing/SKILL.md +2 -2
  37. package/.codex/skills/team-testing/roles/coordinator/role.md +2 -2
  38. package/.codex/skills/team-testing/roles/executor/role.md +2 -2
  39. package/.codex/skills/team-testing/roles/generator/role.md +2 -2
  40. package/README.md +43 -4
  41. package/dist/agents/dashboard-bridge.d.ts +5 -0
  42. package/dist/agents/dashboard-bridge.d.ts.map +1 -1
  43. package/dist/agents/dashboard-bridge.js +13 -0
  44. package/dist/agents/dashboard-bridge.js.map +1 -1
  45. package/dist/agents/parallel-cli-runner.d.ts +42 -0
  46. package/dist/agents/parallel-cli-runner.d.ts.map +1 -0
  47. package/dist/agents/parallel-cli-runner.js +200 -0
  48. package/dist/agents/parallel-cli-runner.js.map +1 -0
  49. package/dist/agents/terminal-adapter.d.ts +94 -0
  50. package/dist/agents/terminal-adapter.d.ts.map +1 -0
  51. package/dist/agents/terminal-adapter.js +132 -0
  52. package/dist/agents/terminal-adapter.js.map +1 -0
  53. package/dist/agents/terminal-backend.d.ts +53 -0
  54. package/dist/agents/terminal-backend.d.ts.map +1 -0
  55. package/dist/agents/terminal-backend.js +286 -0
  56. package/dist/agents/terminal-backend.js.map +1 -0
  57. package/dist/cli.js +4 -0
  58. package/dist/cli.js.map +1 -1
  59. package/dist/commands/coordinate.d.ts.map +1 -1
  60. package/dist/commands/coordinate.js +14 -5
  61. package/dist/commands/coordinate.js.map +1 -1
  62. package/dist/commands/delegate.d.ts +3 -0
  63. package/dist/commands/delegate.d.ts.map +1 -0
  64. package/dist/commands/delegate.js +142 -0
  65. package/dist/commands/delegate.js.map +1 -0
  66. package/dist/commands/msg.d.ts +3 -0
  67. package/dist/commands/msg.d.ts.map +1 -0
  68. package/dist/commands/msg.js +110 -0
  69. package/dist/commands/msg.js.map +1 -0
  70. package/dist/coordinator/graph-types.d.ts +17 -0
  71. package/dist/coordinator/graph-types.d.ts.map +1 -1
  72. package/dist/coordinator/graph-walker.d.ts +3 -1
  73. package/dist/coordinator/graph-walker.d.ts.map +1 -1
  74. package/dist/coordinator/graph-walker.js +147 -8
  75. package/dist/coordinator/graph-walker.js.map +1 -1
  76. package/dist/coordinator/index.d.ts +2 -0
  77. package/dist/coordinator/index.d.ts.map +1 -1
  78. package/dist/coordinator/index.js +1 -0
  79. package/dist/coordinator/index.js.map +1 -1
  80. package/dist/coordinator/parallel-executor.d.ts +24 -0
  81. package/dist/coordinator/parallel-executor.d.ts.map +1 -0
  82. package/dist/coordinator/parallel-executor.js +43 -0
  83. package/dist/coordinator/parallel-executor.js.map +1 -0
  84. package/package.json +3 -1
  85. package/templates/cli/prompts/rules-tech-rules-agent-prompt.txt +89 -89
  86. package/templates/cli/prompts/workflow-codex-feasibility-validation.txt +176 -176
  87. package/templates/cli/prompts/workflow-gemini-solution-design.txt +131 -131
  88. package/templates/cli/prompts/workflow-skill-index.txt +224 -224
  89. package/templates/cli/protocols/analysis-protocol.md +2 -2
  90. package/templates/cli/protocols/write-protocol.md +2 -2
  91. package/workflows/memory.md +2 -2
  92. package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +0 -512
@@ -1,512 +0,0 @@
1
- # Team Lifecycle v4 — Codex 迁移计划
2
-
3
- ## 目标
4
-
5
- 将 Claude Code 版 `.claude/skills/team-lifecycle-v4` 迁移到 Codex 版 `.codex/skills/team-lifecycle-v4`,采用 **通用 worker + role 文档注入** 模式(与 Claude Code 设计对齐),去掉 `spawn_agents_on_csv`,用 `spawn_agent` + `wait_agent` + `send_input` + `close_agent` 实现同构编排。
6
-
7
- ## 设计原则
8
-
9
- 1. **通用 agent,role 文档区分角色** — 只定义 2 个 TOML(worker + supervisor),角色差异由 `roles/<role>/role.md` 决定
10
- 2. **role 文档直接复用** — `.claude/skills/` 中的 roles/specs/templates 原样迁移
11
- 3. **items 结构化传参** — 取代 message 字符串,分段传递角色分配、任务描述、上游上下文
12
- 4. **JSON 取代 CSV** — `tasks.json` 管理状态,`discoveries/{id}.json` 分文件写入
13
- 5. **两版同构** — Codex 调用原语与 Claude Code 形成 1:1 映射
14
-
15
- ## 平台调用映射
16
-
17
- | 编排概念 | Claude Code | Codex |
18
- |---------|------------|-------|
19
- | Worker spawn | `Agent({ subagent_type: "team-worker", prompt })` | `spawn_agent({ agent_type: "tlv4_worker", items })` |
20
- | Supervisor spawn | `Agent({ subagent_type: "team-supervisor", prompt })` | `spawn_agent({ agent_type: "tlv4_supervisor", items })` |
21
- | Supervisor wake | `SendMessage({ recipient: "supervisor", content })` | `send_input({ id: supervisorId, items })` |
22
- | Supervisor shutdown | `SendMessage({ type: "shutdown_request" })` | `close_agent({ target: supervisorId })` |
23
- | 等待完成 | 后台回调 -> monitor.md | `wait_agent({ ids, timeout_ms })` |
24
- | 任务状态 | `TaskCreate` / `TaskUpdate` | `tasks.json` 文件读写 |
25
- | 团队管理 | `TeamCreate` / `TeamDelete` | session folder init / cleanup |
26
- | 消息总线 | `mcp__maestro-tools__team_msg` | `discoveries/{id}.json` + `session-state.json` |
27
- | 用户交互 | `AskUserQuestion` | `request_user_input` |
28
- | 角色加载 | prompt 中 `@roles/<role>/role.md` | items text 中指示 `Read roles/<role>/role.md` |
29
-
30
- ## 目录结构 (迁移后)
31
-
32
- ```
33
- .codex/
34
- ├── agents/
35
- │ ├── tlv4-worker.toml # 通用 worker (NEW)
36
- │ └── tlv4-supervisor.toml # 驻留 supervisor (NEW)
37
- └── skills/
38
- └── team-lifecycle-v4/
39
- ├── SKILL.md # 主编排 (REWRITE)
40
- ├── MIGRATION-PLAN.md # 本文档
41
- ├── roles/ # 从 .claude/ 复制
42
- │ ├── coordinator/
43
- │ │ ├── role.md
44
- │ │ └── commands/
45
- │ │ ├── analyze.md
46
- │ │ ├── dispatch.md
47
- │ │ └── monitor.md
48
- │ ├── analyst/role.md
49
- │ ├── writer/role.md
50
- │ ├── planner/role.md
51
- │ ├── executor/
52
- │ │ ├── role.md
53
- │ │ └── commands/
54
- │ │ ├── implement.md
55
- │ │ └── fix.md
56
- │ ├── tester/role.md
57
- │ ├── reviewer/
58
- │ │ ├── role.md
59
- │ │ └── commands/
60
- │ │ ├── review-code.md
61
- │ │ └── review-spec.md
62
- │ └── supervisor/role.md
63
- ├── specs/ # 从 .claude/ 复制
64
- │ ├── pipelines.md
65
- │ ├── quality-gates.md
66
- │ └── knowledge-transfer.md
67
- ├── templates/ # 从 .claude/ 复制
68
- │ ├── product-brief.md
69
- │ ├── requirements.md
70
- │ ├── architecture.md
71
- │ └── epics.md
72
- └── schemas/
73
- └── tasks-schema.md # REWRITE: CSV -> JSON
74
- ```
75
-
76
- ---
77
-
78
- ## 步骤 1: Agent TOML 定义
79
-
80
- ### `.codex/agents/tlv4-worker.toml`
81
-
82
- ```toml
83
- name = "tlv4_worker"
84
- description = "Generic team-lifecycle-v4 worker. Role-specific behavior loaded from role.md at spawn time."
85
- model = "gpt-5.4"
86
- model_reasoning_effort = "high"
87
- sandbox_mode = "workspace-write"
88
-
89
- developer_instructions = """
90
- You are a team-lifecycle-v4 worker agent.
91
-
92
- ## Boot Protocol
93
- 1. Read role_spec file path from your task assignment (MUST read first)
94
- 2. Read session state from session path
95
- 3. Execute role-specific Phase 2-4 defined in role.md
96
- 4. Write deliverables to session artifacts directory
97
- 5. Write findings to discoveries/{task_id}.json
98
- 6. Report via report_agent_job_result
99
-
100
- ## Output Schema
101
- {
102
- "id": "<task_id>",
103
- "status": "completed | failed",
104
- "findings": "<max 500 chars>",
105
- "quality_score": "<0-100, reviewer only>",
106
- "supervision_verdict": "",
107
- "error": ""
108
- }
109
- """
110
- ```
111
-
112
- ### `.codex/agents/tlv4-supervisor.toml`
113
-
114
- ```toml
115
- name = "tlv4_supervisor"
116
- description = "Resident supervisor for team-lifecycle-v4. Woken via send_input for checkpoint verification."
117
- model = "gpt-5.4"
118
- model_reasoning_effort = "high"
119
- sandbox_mode = "read-only"
120
-
121
- developer_instructions = """
122
- You are a team-lifecycle-v4 supervisor agent (resident pattern).
123
-
124
- ## Boot Protocol
125
- 1. Read role_spec file path from your task assignment (MUST read first)
126
- 2. Load baseline context from session
127
- 3. Report ready, wait for checkpoint requests via send_input
128
-
129
- ## Per Checkpoint
130
- 1. Read artifacts specified in checkpoint request
131
- 2. Verify cross-artifact consistency per role.md definitions
132
- 3. Issue verdict: pass (>= 0.8), warn (0.5-0.79), block (< 0.5)
133
- 4. Write report to artifacts/CHECKPOINT-{id}-report.md
134
- 5. Report findings
135
-
136
- ## Constraints
137
- - Read-only: never modify artifacts
138
- - Never issue pass when critical inconsistencies exist
139
- - Never block for minor style issues
140
- """
141
- ```
142
-
143
- ---
144
-
145
- ## 步骤 2: SKILL.md 改写
146
-
147
- ### 核心变更
148
-
149
- | 区域 | 现状 | 改写后 |
150
- |------|------|--------|
151
- | allowed-tools | `spawn_agents_on_csv, spawn_agent, wait, send_input, close_agent, ...` | `spawn_agent, wait_agent, send_input, close_agent, report_agent_job_result, Read, Write, Edit, Bash, Glob, Grep, request_user_input` |
152
- | 执行模型 | hybrid: CSV wave (primary) + spawn_agent (secondary) | 统一: spawn_agent + wait_agent (all tasks) |
153
- | 状态管理 | tasks.csv (CSV) | tasks.json (JSON) |
154
- | 发现板 | discoveries.ndjson (共享追加) | discoveries/{task_id}.json (分文件) |
155
- | exec_mode 分类 | csv-wave / interactive | 移除 — 所有任务统一用 spawn_agent |
156
- | wave CSV 构建 | 生成 wave-{N}.csv, spawn_agents_on_csv | 循环 spawn_agent + 批量 wait_agent |
157
-
158
- ### Worker Spawn Template
159
-
160
- ```javascript
161
- // 对齐 Claude Code 的 Agent({ subagent_type: "team-worker", prompt }) 模式
162
- spawn_agent({
163
- agent_type: "tlv4_worker",
164
- items: [
165
- // 段 1: 角色分配 (对齐 Claude Code prompt 的 Role Assignment 块)
166
- { type: "text", text: `## Role Assignment
167
- role: ${task.role}
168
- role_spec: ${skillRoot}/roles/${task.role}/role.md
169
- session: ${sessionFolder}
170
- session_id: ${sessionId}
171
- requirement: ${requirement}
172
- inner_loop: ${hasInnerLoop(task.role)}` },
173
-
174
- // 段 2: 读取指示 (核心 — 保持 role 文档引用模式)
175
- { type: "text", text: `Read role_spec file (${skillRoot}/roles/${task.role}/role.md) to load Phase 2-4 domain instructions.
176
- Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).` },
177
-
178
- // 段 3: 任务上下文
179
- { type: "text", text: `## Task Context
180
- task_id: ${task.id}
181
- title: ${task.title}
182
- description: ${task.description}
183
- pipeline_phase: ${task.pipeline_phase}` },
184
-
185
- // 段 4: 上游发现
186
- { type: "text", text: `## Upstream Context\n${task.prev_context}` }
187
- ]
188
- })
189
- ```
190
-
191
- ### Supervisor Spawn Template
192
-
193
- ```javascript
194
- // Spawn — 一次 (Phase 2 init, 对齐 Claude Code Agent({ subagent_type: "team-supervisor" }))
195
- const supervisorId = spawn_agent({
196
- agent_type: "tlv4_supervisor",
197
- items: [
198
- { type: "text", text: `## Role Assignment
199
- role: supervisor
200
- role_spec: ${skillRoot}/roles/supervisor/role.md
201
- session: ${sessionFolder}
202
- session_id: ${sessionId}
203
- requirement: ${requirement}
204
-
205
- Read role_spec file (${skillRoot}/roles/supervisor/role.md) to load checkpoint definitions.
206
- Init: load baseline context, report ready, go idle.
207
- Wake cycle: orchestrator sends checkpoint requests via send_input.` }
208
- ]
209
- })
210
- ```
211
-
212
- ### Supervisor Wake Template
213
-
214
- ```javascript
215
- // 对齐 Claude Code SendMessage({ recipient: "supervisor", content })
216
- send_input({
217
- id: supervisorId,
218
- items: [
219
- { type: "text", text: `## Checkpoint Request
220
- task_id: ${task.id}
221
- scope: [${task.deps}]
222
- pipeline_progress: ${done}/${total} tasks completed` }
223
- ]
224
- })
225
- wait_agent({ targets: [supervisorId], timeout_ms: 300000 })
226
- ```
227
-
228
- ### Supervisor Shutdown
229
-
230
- ```javascript
231
- // 对齐 Claude Code SendMessage({ type: "shutdown_request" })
232
- close_agent({ target: supervisorId })
233
- ```
234
-
235
- ### Wave 执行引擎
236
-
237
- ```javascript
238
- for (let wave = 1; wave <= maxWave; wave++) {
239
- const state = JSON.parse(Read(`${sessionFolder}/tasks.json`))
240
- const waveTasks = Object.values(state.tasks).filter(t => t.wave === wave && t.status === 'pending')
241
-
242
- // 跳过依赖失败的任务
243
- const executableTasks = []
244
- for (const task of waveTasks) {
245
- if (task.deps.some(d => ['failed', 'skipped'].includes(state.tasks[d]?.status))) {
246
- state.tasks[task.id].status = 'skipped'
247
- state.tasks[task.id].error = 'Dependency failed or skipped'
248
- continue
249
- }
250
- executableTasks.push(task)
251
- }
252
-
253
- // 构建 prev_context
254
- for (const task of executableTasks) {
255
- const contextParts = task.context_from
256
- .map(id => {
257
- const prev = state.tasks[id]
258
- if (prev?.status === 'completed' && prev.findings) {
259
- return `[Task ${id}: ${prev.title}] ${prev.findings}`
260
- }
261
- try {
262
- const disc = JSON.parse(Read(`${sessionFolder}/discoveries/${id}.json`))
263
- return `[Task ${id}] ${disc.findings || JSON.stringify(disc.key_findings || '')}`
264
- } catch { return null }
265
- })
266
- .filter(Boolean)
267
- task.prev_context = contextParts.join('\n') || 'No previous context available'
268
- }
269
-
270
- // 分离普通任务和 CHECKPOINT 任务
271
- const regularTasks = executableTasks.filter(t => !t.id.startsWith('CHECKPOINT-'))
272
- const checkpointTasks = executableTasks.filter(t => t.id.startsWith('CHECKPOINT-'))
273
-
274
- // 1) 并发 spawn 普通任务
275
- const agentMap = [] // [{ agentId, taskId }]
276
- for (const task of regularTasks) {
277
- state.tasks[task.id].status = 'in_progress'
278
- const agentId = spawn_agent({
279
- agent_type: "tlv4_worker",
280
- items: [
281
- { type: "text", text: `## Role Assignment
282
- role: ${task.role}
283
- role_spec: ${skillRoot}/roles/${task.role}/role.md
284
- session: ${sessionFolder}
285
- session_id: ${sessionId}
286
- requirement: ${requirement}
287
- inner_loop: ${hasInnerLoop(task.role)}` },
288
- { type: "text", text: `Read role_spec file (${skillRoot}/roles/${task.role}/role.md) to load Phase 2-4 domain instructions.
289
- Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).` },
290
- { type: "text", text: `## Task Context
291
- task_id: ${task.id}
292
- title: ${task.title}
293
- description: ${task.description}
294
- pipeline_phase: ${task.pipeline_phase}` },
295
- { type: "text", text: `## Upstream Context\n${task.prev_context}` }
296
- ]
297
- })
298
- agentMap.push({ agentId, taskId: task.id })
299
- }
300
-
301
- // 2) 批量等待
302
- if (agentMap.length > 0) {
303
- wait_agent({ targets: agentMap.map(a => a.agentId), timeout_ms: 900000 })
304
- }
305
-
306
- // 3) 收集结果,合并到 tasks.json
307
- for (const { agentId, taskId } of agentMap) {
308
- try {
309
- const disc = JSON.parse(Read(`${sessionFolder}/discoveries/${taskId}.json`))
310
- state.tasks[taskId].status = disc.status || 'completed'
311
- state.tasks[taskId].findings = disc.findings || ''
312
- state.tasks[taskId].quality_score = disc.quality_score || null
313
- state.tasks[taskId].error = disc.error || null
314
- } catch {
315
- state.tasks[taskId].status = 'failed'
316
- state.tasks[taskId].error = 'No discovery file produced'
317
- }
318
- close_agent({ target: agentId })
319
- }
320
-
321
- // 4) 执行 CHECKPOINT 任务 (send_input 唤醒 supervisor)
322
- for (const task of checkpointTasks) {
323
- send_input({
324
- id: supervisorId,
325
- items: [
326
- { type: "text", text: `## Checkpoint Request
327
- task_id: ${task.id}
328
- scope: [${task.deps.join(', ')}]
329
- pipeline_progress: ${completedCount}/${totalCount} tasks completed` }
330
- ]
331
- })
332
- wait_agent({ targets: [supervisorId], timeout_ms: 300000 })
333
-
334
- // 读取 checkpoint 报告
335
- try {
336
- const report = Read(`${sessionFolder}/artifacts/${task.id}-report.md`)
337
- const verdict = parseVerdict(report) // pass | warn | block
338
- state.tasks[task.id].status = 'completed'
339
- state.tasks[task.id].findings = `Verdict: ${verdict.decision} (score: ${verdict.score})`
340
- state.tasks[task.id].supervision_verdict = verdict.decision
341
-
342
- if (verdict.decision === 'block') {
343
- const action = request_user_input({
344
- questions: [{
345
- question: `Checkpoint ${task.id} BLOCKED (score: ${verdict.score}). Choose action.`,
346
- header: "Blocked",
347
- id: "blocked_action",
348
- options: [
349
- { label: "Override", description: "Proceed despite block" },
350
- { label: "Revise upstream", description: "Go back and fix issues" },
351
- { label: "Abort", description: "Stop pipeline" }
352
- ]
353
- }]
354
- })
355
- // Handle user choice...
356
- }
357
- } catch {
358
- state.tasks[task.id].status = 'failed'
359
- state.tasks[task.id].error = 'Supervisor report not produced'
360
- }
361
- }
362
-
363
- // 5) 持久化 tasks.json
364
- Write(`${sessionFolder}/tasks.json`, JSON.stringify(state, null, 2))
365
- }
366
- ```
367
-
368
- ---
369
-
370
- ## 步骤 3: 复制 Role 文档
371
-
372
- 从 `.claude/skills/team-lifecycle-v4/` 复制以下目录到 `.codex/skills/team-lifecycle-v4/`:
373
-
374
- | 源 | 目标 | 说明 |
375
- |----|------|------|
376
- | `roles/` (全部) | `roles/` | 原样复制,coordinator 中平台相关调用需适配 |
377
- | `specs/pipelines.md` | `specs/pipelines.md` | 原样复制 |
378
- | `specs/quality-gates.md` | `specs/quality-gates.md` | 原样复制 |
379
- | `specs/knowledge-transfer.md` | `specs/knowledge-transfer.md` | 需适配: team_msg -> discoveries/ 文件 |
380
- | `templates/` (全部) | `templates/` | 原样复制 |
381
-
382
- ### Role 文档适配点
383
-
384
- **`roles/coordinator/role.md`** — 需改写:
385
- - Phase 2: `TeamCreate` -> session folder init
386
- - Phase 3: `TaskCreate` -> tasks.json 写入
387
- - Phase 4: `Agent(team-worker)` -> `spawn_agent(tlv4_worker)`
388
- - monitor.md 中 callback 处理 -> `wait_agent` 结果处理
389
-
390
- **`roles/coordinator/commands/monitor.md`** — 需改写:
391
- - handleCallback -> wait_agent 结果解析
392
- - handleSpawnNext -> spawn_agent 循环
393
- - SendMessage(supervisor) -> send_input(supervisorId)
394
-
395
- **`specs/knowledge-transfer.md`** — 需适配:
396
- - `team_msg(operation="get_state")` -> 读 tasks.json
397
- - `team_msg(type="state_update")` -> 写 discoveries/{id}.json
398
- - 探索缓存协议保持不变
399
-
400
- **其余 role 文档** (analyst, writer, planner, executor, tester, reviewer, supervisor):
401
- - 核心执行逻辑不变
402
- - `ccw cli` 调用保持不变 (CLI 工具两侧通用)
403
- - 发现产出改为写 `discoveries/{task_id}.json` (替代 team_msg)
404
- - `report_agent_job_result` 替代 team_msg state_update
405
-
406
- ---
407
-
408
- ## 步骤 4: Tasks Schema 改写
409
-
410
- ### 现状: tasks.csv
411
-
412
- ```csv
413
- id,title,description,role,pipeline_phase,deps,context_from,exec_mode,wave,status,findings,quality_score,supervision_verdict,error
414
- ```
415
-
416
- ### 改写后: tasks.json
417
-
418
- ```json
419
- {
420
- "session_id": "tlv4-auth-system-20260324",
421
- "pipeline": "full-lifecycle",
422
- "requirement": "Design and implement user authentication system",
423
- "created_at": "2026-03-24T10:00:00+08:00",
424
- "supervision": true,
425
- "completed_waves": [],
426
- "active_agents": {},
427
- "tasks": {
428
- "RESEARCH-001": {
429
- "title": "Domain research",
430
- "description": "Explore domain, extract structured context...",
431
- "role": "analyst",
432
- "pipeline_phase": "research",
433
- "deps": [],
434
- "context_from": [],
435
- "wave": 1,
436
- "status": "pending",
437
- "findings": null,
438
- "quality_score": null,
439
- "supervision_verdict": null,
440
- "error": null
441
- },
442
- "DRAFT-001": {
443
- "title": "Product brief",
444
- "description": "Generate product brief from research context...",
445
- "role": "writer",
446
- "pipeline_phase": "product-brief",
447
- "deps": ["RESEARCH-001"],
448
- "context_from": ["RESEARCH-001"],
449
- "wave": 2,
450
- "status": "pending",
451
- "findings": null,
452
- "quality_score": null,
453
- "supervision_verdict": null,
454
- "error": null
455
- }
456
- }
457
- }
458
- ```
459
-
460
- ### 发现文件: discoveries/{task_id}.json
461
-
462
- ```json
463
- {
464
- "task_id": "RESEARCH-001",
465
- "worker": "RESEARCH-001",
466
- "timestamp": "2026-03-24T10:15:00+08:00",
467
- "type": "research",
468
- "status": "completed",
469
- "findings": "Explored domain: identified OAuth2+RBAC pattern, 5 integration points.",
470
- "quality_score": null,
471
- "supervision_verdict": null,
472
- "error": null,
473
- "data": {
474
- "dimension": "domain",
475
- "findings": ["Auth system needs OAuth2 + RBAC"],
476
- "constraints": ["Must support SSO"],
477
- "integration_points": ["User service API"]
478
- },
479
- "artifacts_produced": ["spec/discovery-context.json"]
480
- }
481
- ```
482
-
483
- ---
484
-
485
- ## 步骤 5: 删除旧文件
486
-
487
- 迁移完成后,删除 Codex 版中不再需要的文件:
488
-
489
- | 文件 | 原因 |
490
- |------|------|
491
- | `agents/agent-instruction.md` | 角色逻辑在 roles/ 中,通用协议在 TOML developer_instructions 中 |
492
- | `agents/requirement-clarifier.md` | 需求澄清逻辑合并到 coordinator/role.md Phase 1 |
493
- | `agents/supervisor.md` | 迁移到 roles/supervisor/role.md |
494
- | `agents/quality-gate.md` | 迁移到 roles/reviewer/role.md (QUALITY-* 任务处理) |
495
- | `schemas/tasks-schema.md` (旧版) | 被 JSON schema 版本替代 |
496
-
497
- ---
498
-
499
- ## 实施顺序
500
-
501
- | 步骤 | 内容 | 依赖 | 复杂度 |
502
- |------|------|------|--------|
503
- | **1** | 创建 2 个 TOML agent 定义 | 无 | 低 |
504
- | **2** | 复制 roles/specs/templates 从 .claude/ | 无 | 低 (纯复制) |
505
- | **3** | 改写 tasks-schema.md (CSV -> JSON) | 无 | 低 |
506
- | **4** | 改写 SKILL.md 主编排 | 1, 2, 3 | 高 (核心工作) |
507
- | **5** | 适配 coordinator role.md + commands/ | 4 | 中 |
508
- | **6** | 适配 knowledge-transfer.md | 3 | 低 |
509
- | **7** | 适配 worker role 文档 (发现产出方式) | 3 | 低 |
510
- | **8** | 删除旧文件,清理 | 全部 | 低 |
511
-
512
- 步骤 1-3 可并行,步骤 4 是关键路径,步骤 5-7 依赖步骤 4 但可并行。