ccg-workflow 2.1.16 → 3.0.0
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 +120 -270
- package/README.zh-CN.md +119 -269
- package/dist/cli.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/shared/{ccg-workflow.CewMlBCj.mjs → ccg-workflow.81OoN8XX.mjs} +160 -34
- package/package.json +6 -30
- package/templates/commands/go.md +199 -0
- package/templates/commands-legacy/team.md +475 -0
- package/templates/engine/model-router.md +117 -0
- package/templates/engine/phase-guide.md +95 -0
- package/templates/engine/strategies/debug-investigate.md +156 -0
- package/templates/engine/strategies/deep-research.md +141 -0
- package/templates/engine/strategies/direct-fix.md +108 -0
- package/templates/engine/strategies/full-collaborate.md +291 -0
- package/templates/engine/strategies/git-action.md +43 -0
- package/templates/engine/strategies/guided-develop.md +208 -0
- package/templates/engine/strategies/optimize-measure.md +103 -0
- package/templates/engine/strategies/quick-implement.md +96 -0
- package/templates/engine/strategies/refactor-safely.md +157 -0
- package/templates/engine/strategies/review-audit.md +116 -0
- package/templates/hooks/session-start.js +100 -0
- package/templates/hooks/skill-router.js +144 -0
- package/templates/hooks/subagent-context.js +118 -0
- package/templates/hooks/task-utils.js +113 -0
- package/templates/hooks/workflow-state.js +39 -0
- package/templates/spec/backend/index.md +31 -0
- package/templates/spec/frontend/index.md +31 -0
- package/templates/spec/guides/index.md +30 -0
- /package/templates/{commands → commands-legacy}/analyze.md +0 -0
- /package/templates/{commands → commands-legacy}/backend.md +0 -0
- /package/templates/{commands → commands-legacy}/codex-exec.md +0 -0
- /package/templates/{commands → commands-legacy}/debug.md +0 -0
- /package/templates/{commands → commands-legacy}/enhance.md +0 -0
- /package/templates/{commands → commands-legacy}/execute.md +0 -0
- /package/templates/{commands → commands-legacy}/feat.md +0 -0
- /package/templates/{commands → commands-legacy}/frontend.md +0 -0
- /package/templates/{commands → commands-legacy}/optimize.md +0 -0
- /package/templates/{commands → commands-legacy}/plan.md +0 -0
- /package/templates/{commands → commands-legacy}/review.md +0 -0
- /package/templates/{commands → commands-legacy}/team-exec.md +0 -0
- /package/templates/{commands → commands-legacy}/team-plan.md +0 -0
- /package/templates/{commands → commands-legacy}/team-research.md +0 -0
- /package/templates/{commands → commands-legacy}/team-review.md +0 -0
- /package/templates/{commands → commands-legacy}/test.md +0 -0
- /package/templates/{commands → commands-legacy}/workflow.md +0 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Agent Teams 8 阶段企业级工作流 - 7 角色全流程统一编排(需求→架构→规划→开发→测试→审查→修复→集成)'
|
|
3
|
+
---
|
|
4
|
+
<!-- CCG:TEAM:UNIFIED:START -->
|
|
5
|
+
|
|
6
|
+
⛔⛔⛔ **CRITICAL HARD RULE — AGENT TEAMS ONLY** ⛔⛔⛔
|
|
7
|
+
|
|
8
|
+
**禁止使用普通 Agent 子代理。本命令的所有角色必须通过 Agent Teams 创建:**
|
|
9
|
+
|
|
10
|
+
1. **第一步永远是 TeamCreate** — 创建一个 team,获得 team_name
|
|
11
|
+
2. **所有角色通过 Agent(team_name=..., name=...) spawn** — 这样它们才是真正的 teammates
|
|
12
|
+
3. **通过 TaskCreate/TaskUpdate 分配任务** — 共享任务板
|
|
13
|
+
4. **通过 SendMessage 通信** — teammates 之间直接通信
|
|
14
|
+
5. **禁止使用不带 team_name 的 Agent() 调用** — 那是普通子代理,不是 Agent Teams
|
|
15
|
+
|
|
16
|
+
**正确示范(必须这样做)**:
|
|
17
|
+
```
|
|
18
|
+
TeamCreate({ team_name: "todo-crud-team", description: "..." })
|
|
19
|
+
|
|
20
|
+
TaskCreate({ subject: "架构蓝图设计", description: "..." })
|
|
21
|
+
|
|
22
|
+
Agent({ team_name: "todo-crud-team", name: "architect", prompt: "...", model: "sonnet" })
|
|
23
|
+
|
|
24
|
+
TaskUpdate({ taskId: "1", owner: "architect" })
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**错误示范(绝对禁止)**:
|
|
28
|
+
```
|
|
29
|
+
❌ Agent({ prompt: "...", subagent_type: "Plan" }) ← 这是普通子代理!
|
|
30
|
+
❌ Agent({ description: "...", prompt: "..." }) ← 没有 team_name!
|
|
31
|
+
❌ Agent({ name: "architect", prompt: "..." }) ← 没有 team_name!
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
违反此规则 = 整个工作流无效,必须重来。
|
|
35
|
+
|
|
36
|
+
⛔⛔⛔ **END HARD RULE** ⛔⛔⛔
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
**Core Philosophy**
|
|
41
|
+
- 单命令完成从需求到交付的完整流程,对标大厂工程团队编制。
|
|
42
|
+
- Lead(你自己)是技术总监/PM,只做编排和决策,绝不写产品代码。
|
|
43
|
+
- 所有专业角色(Architect、Dev、QA、Reviewer)均为 **Agent Teams 真实 teammates**。
|
|
44
|
+
- 必须通过 TeamCreate 创建 team,再通过 Agent(team_name=...) spawn teammates。
|
|
45
|
+
- 通过 SendMessage 通信,通过 TaskList/TaskCreate/TaskUpdate 协调。
|
|
46
|
+
- 后端/前端模型 多模型分析只在 Architecture 和 Review 阶段作为"外援参考"注入。
|
|
47
|
+
|
|
48
|
+
**角色编制(7 角色)**
|
|
49
|
+
|
|
50
|
+
| 角色 | 身份 | spawn 方式 | 模型 | 职责 |
|
|
51
|
+
|------|------|-----------|------|------|
|
|
52
|
+
| 🏛 Lead | 你自己(主对话) | N/A(不需要 spawn) | Opus | 编排、决策、用户沟通 |
|
|
53
|
+
| 🏗 Architect | Agent Teams teammate | `Agent(team_name=T, name="architect")` | Opus | 代码库扫描、架构蓝图、文件分配 |
|
|
54
|
+
| 📜 Dev × N | Agent Teams teammates | `Agent(team_name=T, name="dev-1")` | Sonnet | 并行编码,文件隔离 |
|
|
55
|
+
| 🧪 QA | Agent Teams teammate | `Agent(team_name=T, name="qa")` | Sonnet | 写测试、跑测试、lint、typecheck |
|
|
56
|
+
| 🔬 Reviewer | Agent Teams teammate | `Agent(team_name=T, name="reviewer")` | Sonnet | 综合审查,分级判决 |
|
|
57
|
+
| 🔥 {{BACKEND_PRIMARY}} | 外部模型(非 teammate) | Bash + codeagent-wrapper | {{BACKEND_PRIMARY}} | 后端分析/审查(Phase 2, 6) |
|
|
58
|
+
| 🔮 {{FRONTEND_PRIMARY}} | 外部模型(非 teammate) | Bash + codeagent-wrapper | {{FRONTEND_PRIMARY}} | 前端分析/审查(Phase 2, 6) |
|
|
59
|
+
|
|
60
|
+
**8 阶段流水线**
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Phase 0: PRE-FLIGHT → 环境检测
|
|
64
|
+
Phase 1: REQUIREMENT → Lead 需求增强 → mini-PRD
|
|
65
|
+
Phase 2: ARCHITECTURE → {{BACKEND_PRIMARY}}∥{{FRONTEND_PRIMARY}} 分析 + Architect teammate 出蓝图
|
|
66
|
+
Phase 3: PLANNING → Lead 拆任务 → 零决策并行计划
|
|
67
|
+
Phase 4: DEVELOPMENT → Dev×N teammates 并行编码
|
|
68
|
+
Phase 5: TESTING → QA teammate 写测试+跑测试
|
|
69
|
+
Phase 6: REVIEW → {{BACKEND_PRIMARY}}∥{{FRONTEND_PRIMARY}} 审查 + Reviewer teammate 综合判决
|
|
70
|
+
Phase 7: FIX → Dev teammate(s) 修复 Critical(最多 2 轮)
|
|
71
|
+
Phase 8: INTEGRATION → Lead 全量验证 + 报告 + 清理
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Guardrails**
|
|
75
|
+
- **Agent Teams 必须启用**:需要 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`。
|
|
76
|
+
- Lead 绝不直接修改产品代码。
|
|
77
|
+
- 每个 Dev 只能修改分配给它的文件。
|
|
78
|
+
- QA 只写测试文件,不改产品代码。
|
|
79
|
+
- Reviewer 只读不写。
|
|
80
|
+
- Architect 只读不写。
|
|
81
|
+
- Phase 7 最多 2 轮修复循环。
|
|
82
|
+
|
|
83
|
+
**Steps**
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Phase 0: PRE-FLIGHT + 创建 Team
|
|
88
|
+
|
|
89
|
+
1. **获取工作目录**
|
|
90
|
+
- 通过 Bash 执行 `pwd` 获取当前工作目录的绝对路径,保存为 WORKDIR。
|
|
91
|
+
|
|
92
|
+
2. **解析 $ARGUMENTS**
|
|
93
|
+
- 如果参数为空,用 AskUserQuestion 请求任务描述。
|
|
94
|
+
- 从任务描述中提取一个英文短横线命名的任务名(如 `todo-crud`),用于文件命名和 team 命名。
|
|
95
|
+
|
|
96
|
+
3. **⛔ 立即创建 Team — 这是你的第一个工具调用动作**
|
|
97
|
+
- 你必须现在就调用 TeamCreate 工具。不是稍后,不是在 Phase 2,而是**现在**。
|
|
98
|
+
- 调用 TeamCreate,参数:team_name 设为 `<任务名>-team`,description 设为任务描述。
|
|
99
|
+
- 这一步创建了共享任务板和通信通道。后续所有 Agent 调用都必须带上这个 team_name。
|
|
100
|
+
- 如果 TeamCreate 失败(Agent Teams 未启用),输出启用指引后终止。
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Phase 1: REQUIREMENT
|
|
105
|
+
|
|
106
|
+
**执行者**:Lead(你自己)
|
|
107
|
+
|
|
108
|
+
1. **需求增强**
|
|
109
|
+
- 分析 $ARGUMENTS 的意图、缺失信息、隐含假设。
|
|
110
|
+
- 补全为结构化需求:明确目标、技术约束、范围边界、验收标准。
|
|
111
|
+
|
|
112
|
+
2. **生成 mini-PRD**
|
|
113
|
+
- 用 Glob/Grep/Read 快速扫描项目结构,了解技术栈。
|
|
114
|
+
- 写入 `.claude/team-plan/<任务名>-prd.md`:
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
# PRD: <任务名>
|
|
118
|
+
## 目标
|
|
119
|
+
<一句话描述>
|
|
120
|
+
## 功能范围
|
|
121
|
+
- 包含:[列表]
|
|
122
|
+
- 不包含:[列表]
|
|
123
|
+
## 技术上下文
|
|
124
|
+
- 技术栈:[自动检测]
|
|
125
|
+
- 项目结构:[关键目录]
|
|
126
|
+
## 验收标准
|
|
127
|
+
- [AC-1] <可验证条件>
|
|
128
|
+
- [AC-2] ...
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
3. **用户确认**
|
|
132
|
+
- 用 `AskUserQuestion` 展示 PRD 摘要,请求确认或补充。
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Phase 2: ARCHITECTURE
|
|
137
|
+
|
|
138
|
+
**执行者**:Lead 调用后端/前端模型 → Architect teammate 综合
|
|
139
|
+
|
|
140
|
+
1. **Team 已在 Phase 0 创建**,直接使用已有的 team_name。
|
|
141
|
+
|
|
142
|
+
2. **{{BACKEND_PRIMARY}} + {{FRONTEND_PRIMARY}} 并行分析(PARALLEL)**
|
|
143
|
+
- **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用,`run_in_background: true`。
|
|
144
|
+
|
|
145
|
+
**FIRST Bash call ({{BACKEND_PRIMARY}})**:
|
|
146
|
+
```
|
|
147
|
+
Bash({
|
|
148
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md\n<TASK>\n需求:<PRD 内容>\n请分析后端架构:模块边界、API 设计、数据模型、依赖关系、实施建议。\n</TASK>\nEOF",
|
|
149
|
+
run_in_background: true,
|
|
150
|
+
timeout: 3600000,
|
|
151
|
+
description: "{{BACKEND_PRIMARY}} 后端架构分析"
|
|
152
|
+
})
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**SECOND Bash call ({{FRONTEND_PRIMARY}}) - IN THE SAME MESSAGE**:
|
|
156
|
+
```
|
|
157
|
+
Bash({
|
|
158
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{FRONTEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/architect.md\n<TASK>\n需求:<PRD 内容>\n请分析前端架构:组件拆分、状态管理、路由设计、UI/UX 要点、实施建议。\n</TASK>\nEOF",
|
|
159
|
+
run_in_background: true,
|
|
160
|
+
timeout: 3600000,
|
|
161
|
+
description: "{{FRONTEND_PRIMARY}} 前端架构分析"
|
|
162
|
+
})
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**等待结果**:
|
|
166
|
+
```
|
|
167
|
+
TaskOutput({ task_id: "<codex_task_id>", block: true, timeout: 600000 })
|
|
168
|
+
TaskOutput({ task_id: "<gemini_task_id>", block: true, timeout: 600000 })
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
⛔ **前端模型失败必须重试**:若前端模型调用失败,最多重试 2 次(间隔 5 秒)。3 次全败才跳过。
|
|
172
|
+
⛔ **后端模型结果必须等待**:后端模型执行 5-15 分钟属正常,超时后继续轮询,禁止跳过。
|
|
173
|
+
|
|
174
|
+
3. **Spawn Architect teammate**
|
|
175
|
+
- 先调用 TaskCreate 工具,subject 为 "架构蓝图设计"。
|
|
176
|
+
- 然后调用 Agent 工具 spawn Architect。**你必须在 Agent 工具调用中设置以下参数**:
|
|
177
|
+
* **team_name**: 设为 Phase 0 创建的 team name(如 `todo-crud-team`)
|
|
178
|
+
* **name**: 设为 `"architect"`
|
|
179
|
+
* **model**: 设为 `"opus"`
|
|
180
|
+
* **prompt**: 包含 PRD 内容、后端/前端模型 分析摘要(如有)、WORKDIR、以及指令(扫描代码库→设计蓝图→输出文件分配矩阵→写入 .claude/team-plan/→标记 completed)
|
|
181
|
+
- 调用 TaskUpdate 将任务 owner 设为 `"architect"`。
|
|
182
|
+
- 等待 Architect 完成(它会自动发消息通知你)。
|
|
183
|
+
|
|
184
|
+
4. **读取蓝图**
|
|
185
|
+
- Read `.claude/team-plan/<任务名>-blueprint.md`
|
|
186
|
+
- 验证文件分配矩阵完整性(每个文件只在一个 Dev 集合中)。
|
|
187
|
+
|
|
188
|
+
5. **Shutdown Architect**
|
|
189
|
+
- `SendMessage({ to: "architect", message: { type: "shutdown_request" } })`
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### Phase 3: PLANNING
|
|
194
|
+
|
|
195
|
+
**执行者**:Lead(你自己)
|
|
196
|
+
|
|
197
|
+
1. **基于蓝图拆分子任务**
|
|
198
|
+
- 读取蓝图中的文件分配矩阵。
|
|
199
|
+
- 为每个 Dev 文件集合创建一个子任务。
|
|
200
|
+
- 每个子任务必须包含:
|
|
201
|
+
* 精确的文件范围(从蓝图的文件分配矩阵)
|
|
202
|
+
* 具体的实施步骤(从蓝图的设计方案)
|
|
203
|
+
* 验收标准(从蓝图和 PRD)
|
|
204
|
+
|
|
205
|
+
2. **确保文件隔离**
|
|
206
|
+
- 校验:任何文件不出现在两个子任务中。
|
|
207
|
+
- 若发现重叠 → 将重叠文件放入同一子任务,或设置依赖关系。
|
|
208
|
+
|
|
209
|
+
3. **并行分层**
|
|
210
|
+
- Layer 1:无依赖的子任务(可并行)。
|
|
211
|
+
- Layer 2:依赖 Layer 1 的子任务。
|
|
212
|
+
|
|
213
|
+
4. **写入计划文件**
|
|
214
|
+
- 路径:`.claude/team-plan/<任务名>-plan.md`
|
|
215
|
+
- 格式同现有 team-plan 输出格式(见 `/ccg:team-plan`)。
|
|
216
|
+
|
|
217
|
+
5. **用户确认**
|
|
218
|
+
- 用 `AskUserQuestion` 展示计划摘要:
|
|
219
|
+
```
|
|
220
|
+
📋 即将并行实施:
|
|
221
|
+
- 子任务:N 个
|
|
222
|
+
- 并行分组:Layer 1 (X 个并行) → Layer 2 (Y 个)
|
|
223
|
+
- Dev 数量:N 个
|
|
224
|
+
确认开始?
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### Phase 4: DEVELOPMENT
|
|
230
|
+
|
|
231
|
+
**执行者**:Dev × N teammates(⛔ 必须并行)
|
|
232
|
+
|
|
233
|
+
⛔ **核心规则:所有同 Layer 的 Dev 必须在同一条消息中同时 spawn,让它们并行跑。禁止串行(spawn dev-1 → 等完成 → spawn dev-2)。**
|
|
234
|
+
|
|
235
|
+
1. **一次性创建所有 Task + 设置依赖**
|
|
236
|
+
- 为蓝图中的每个子任务调用 TaskCreate(在同一轮完成所有 TaskCreate)。
|
|
237
|
+
- 如有 Layer 依赖:用 TaskUpdate 的 addBlockedBy 设置。
|
|
238
|
+
|
|
239
|
+
2. **⛔ 在同一条消息中并行 spawn 所有同 Layer 的 Dev**
|
|
240
|
+
- 你必须在**一条消息中发起多个 Agent 工具调用**,每个 Dev 一个 Agent 调用。
|
|
241
|
+
- 例如 3 个并行 Dev,你的这条消息应包含 3 个 Agent 工具调用,它们会同时启动。
|
|
242
|
+
- 每个 Agent 调用必须设置:
|
|
243
|
+
* **team_name**: Phase 0 创建的 team name
|
|
244
|
+
* **name**: `"dev-1"`, `"dev-2"`, `"dev-3"` 等
|
|
245
|
+
* **model**: `"sonnet"`
|
|
246
|
+
* **prompt**: 包含该 Dev 的子任务内容、WORKDIR、文件范围约束、实施步骤、验收标准
|
|
247
|
+
- spawn 后立即对每个 Task 调用 TaskUpdate 设 owner。
|
|
248
|
+
|
|
249
|
+
示意(3 个 Dev 并行):
|
|
250
|
+
你的一条消息中同时包含:
|
|
251
|
+
- Agent(team_name=T, name="dev-1", prompt="...任务1...")
|
|
252
|
+
- Agent(team_name=T, name="dev-2", prompt="...任务2...")
|
|
253
|
+
- Agent(team_name=T, name="dev-3", prompt="...任务3...")
|
|
254
|
+
三个 Dev 同时启动,并行工作。
|
|
255
|
+
|
|
256
|
+
3. **等待所有 Dev 完成**
|
|
257
|
+
- teammates 完成后会自动发消息通知,无需轮询。
|
|
258
|
+
- 如果某个 Dev 遇到问题并发消息求助:通过 SendMessage 回复指导。
|
|
259
|
+
- 如果某个 Dev 失败:记录失败原因,不影响其他 Dev 继续。
|
|
260
|
+
|
|
261
|
+
4. **Layer 2(如有)**
|
|
262
|
+
- Layer 1 所有 Dev 完成后,同样在一条消息中并行 spawn Layer 2 的所有 Dev。
|
|
263
|
+
|
|
264
|
+
5. **所有 Dev 完成后,Shutdown 所有 Dev**
|
|
265
|
+
- 逐一发送 shutdown_request。
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
### Phase 5: TESTING
|
|
270
|
+
|
|
271
|
+
**执行者**:QA teammate
|
|
272
|
+
|
|
273
|
+
1. **收集变更清单**
|
|
274
|
+
- 运行 `git diff --name-only` 获取所有变更文件列表。
|
|
275
|
+
|
|
276
|
+
2. **Spawn QA teammate**
|
|
277
|
+
- 调用 TaskCreate,subject 为 "QA: 全量测试验证"。
|
|
278
|
+
- 调用 Agent 工具,**必须设置以下参数**:
|
|
279
|
+
* **team_name**: Phase 0 创建的 team name
|
|
280
|
+
* **name**: `"qa"`
|
|
281
|
+
* **model**: `"sonnet"`
|
|
282
|
+
* **prompt**: 包含变更文件列表、验收标准、WORKDIR、以及指令(检测测试框架→写测试→跑全量→输出报告→标记 completed)
|
|
283
|
+
- 调用 TaskUpdate 设 owner 为 `"qa"`。
|
|
284
|
+
- 等待 QA 完成(它会自动发消息通知你)。
|
|
285
|
+
|
|
286
|
+
3. **读取 QA 报告**
|
|
287
|
+
- 从 QA 的消息或任务 metadata 中获取质量报告。
|
|
288
|
+
- 如果测试全部通过 → 继续 Phase 6。
|
|
289
|
+
- 如果测试失败 → 记录失败项,继续 Phase 6(Review 可能发现根因)。
|
|
290
|
+
|
|
291
|
+
4. **Shutdown QA**
|
|
292
|
+
- `SendMessage({ to: "qa", message: { type: "shutdown_request" } })`
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
### Phase 6: REVIEW
|
|
297
|
+
|
|
298
|
+
**执行者**:Lead 调用后端/前端模型 → Reviewer teammate 综合
|
|
299
|
+
|
|
300
|
+
1. **运行 git diff 获取变更**
|
|
301
|
+
- `Bash: git diff` 获取完整变更内容。
|
|
302
|
+
|
|
303
|
+
2. **{{BACKEND_PRIMARY}} + {{FRONTEND_PRIMARY}} 并行审查(PARALLEL)**
|
|
304
|
+
- 模式与 Phase 2 相同,使用 reviewer prompt:
|
|
305
|
+
|
|
306
|
+
**FIRST Bash call ({{BACKEND_PRIMARY}})**:
|
|
307
|
+
```
|
|
308
|
+
Bash({
|
|
309
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md\n<TASK>\n审查以下变更:\n<git diff 输出或变更文件列表>\n</TASK>\nOUTPUT (JSON):\n{\n \"findings\": [{\"severity\": \"Critical|Warning|Info\", \"dimension\": \"logic|security|performance|error_handling\", \"file\": \"path\", \"line\": N, \"description\": \"描述\", \"fix_suggestion\": \"修复建议\"}],\n \"passed_checks\": [\"检查项\"],\n \"summary\": \"总体评估\"\n}\nEOF",
|
|
310
|
+
run_in_background: true,
|
|
311
|
+
timeout: 3600000,
|
|
312
|
+
description: "{{BACKEND_PRIMARY}} 后端审查"
|
|
313
|
+
})
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**SECOND Bash call ({{FRONTEND_PRIMARY}}) - IN THE SAME MESSAGE**:
|
|
317
|
+
```
|
|
318
|
+
Bash({
|
|
319
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{FRONTEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md\n<TASK>\n审查以下变更:\n<git diff 输出或变更文件列表>\n</TASK>\nOUTPUT (JSON):\n{\n \"findings\": [{\"severity\": \"Critical|Warning|Info\", \"dimension\": \"patterns|maintainability|accessibility|ux|frontend_security\", \"file\": \"path\", \"line\": N, \"description\": \"描述\", \"fix_suggestion\": \"修复建议\"}],\n \"passed_checks\": [\"检查项\"],\n \"summary\": \"总体评估\"\n}\nEOF",
|
|
320
|
+
run_in_background: true,
|
|
321
|
+
timeout: 3600000,
|
|
322
|
+
description: "{{FRONTEND_PRIMARY}} 前端审查"
|
|
323
|
+
})
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
⛔ **前端模型失败必须重试**:若失败,最多重试 2 次(间隔 5 秒)。3 次全败才跳过。
|
|
327
|
+
⛔ **后端模型结果必须等待**:超时后继续轮询,禁止跳过。
|
|
328
|
+
|
|
329
|
+
3. **Spawn Reviewer teammate**
|
|
330
|
+
- 调用 TaskCreate,subject 为 "Review: 综合代码审查"。
|
|
331
|
+
- 调用 Agent 工具,**必须设置以下参数**:
|
|
332
|
+
* **team_name**: Phase 0 创建的 team name
|
|
333
|
+
* **name**: `"reviewer"`
|
|
334
|
+
* **model**: `"sonnet"`
|
|
335
|
+
* **prompt**: 包含 git diff、后端/前端模型 审查 JSON(如有)、QA 报告、WORKDIR、以及指令(独立审查→综合意见→分级→输出报告→标记 completed)
|
|
336
|
+
- 调用 TaskUpdate 设 owner 为 `"reviewer"`。
|
|
337
|
+
- 等待 Reviewer 完成(它会自动发消息通知你)。
|
|
338
|
+
|
|
339
|
+
4. **读取审查报告**
|
|
340
|
+
- 从 Reviewer 消息中提取 Critical / Warning / Info 列表。
|
|
341
|
+
- 向用户展示审查摘要。
|
|
342
|
+
|
|
343
|
+
5. **Shutdown Reviewer**
|
|
344
|
+
- `SendMessage({ to: "reviewer", message: { type: "shutdown_request" } })`
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
### Phase 7: FIX (Evaluator-Optimizer Loop)
|
|
349
|
+
|
|
350
|
+
**执行者**:Dev teammate(s),最多 2 轮
|
|
351
|
+
|
|
352
|
+
**FIX_ROUND = 0**
|
|
353
|
+
|
|
354
|
+
1. **判断是否需要修复**
|
|
355
|
+
- 如果 Critical == 0 → 跳过 Phase 7,直接进入 Phase 8。
|
|
356
|
+
- 如果 Critical > 0 → 进入修复循环。
|
|
357
|
+
|
|
358
|
+
2. **修复循环(最多 2 轮)**
|
|
359
|
+
|
|
360
|
+
**WHILE Critical > 0 AND FIX_ROUND < 2:**
|
|
361
|
+
|
|
362
|
+
a. **FIX_ROUND += 1**
|
|
363
|
+
|
|
364
|
+
b. **创建修复任务**
|
|
365
|
+
- 为每个 Critical finding 创建修复任务。
|
|
366
|
+
- 根据 finding 的文件归属,分配给对应的 Dev。
|
|
367
|
+
- 如果多个 finding 涉及同一文件 → 合并为一个修复任务。
|
|
368
|
+
|
|
369
|
+
c. **Spawn Fix Dev teammate(s)**
|
|
370
|
+
- 调用 Agent 工具,**必须设置以下参数**:
|
|
371
|
+
* **team_name**: Phase 0 创建的 team name
|
|
372
|
+
* **name**: `"fix-dev-1"`, `"fix-dev-2"`, ... 依次命名
|
|
373
|
+
* **model**: `"sonnet"`
|
|
374
|
+
* **prompt**: 包含 Critical findings(文件、行号、描述、修复建议)、文件范围约束、WORKDIR
|
|
375
|
+
|
|
376
|
+
d. **等待修复完成**
|
|
377
|
+
|
|
378
|
+
e. **Shutdown Fix Dev(s)**
|
|
379
|
+
|
|
380
|
+
f. **轻量验证**
|
|
381
|
+
- Lead 通过 Bash 运行测试命令验证修复:
|
|
382
|
+
```
|
|
383
|
+
Bash: cd {{WORKDIR}} && <测试命令>
|
|
384
|
+
```
|
|
385
|
+
- 快速检查修复的 Critical 是否解决(Read 修复的文件验证)。
|
|
386
|
+
|
|
387
|
+
g. **更新 Critical 计数**
|
|
388
|
+
- 如果 Critical 仍 > 0 且 FIX_ROUND < 2 → 继续循环。
|
|
389
|
+
- 如果 FIX_ROUND >= 2 且 Critical 仍 > 0 → 退出循环,报告用户。
|
|
390
|
+
|
|
391
|
+
3. **修复循环结束**
|
|
392
|
+
- 如果所有 Critical 已修复 → 继续 Phase 8。
|
|
393
|
+
- 如果仍有 Critical → 用 `AskUserQuestion` 报告:
|
|
394
|
+
```
|
|
395
|
+
经过 2 轮自动修复,仍有 N 个 Critical 问题未解决:
|
|
396
|
+
- [C-X] 描述...
|
|
397
|
+
选择:继续手动修复 / 跳过并提交
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
### Phase 8: INTEGRATION
|
|
403
|
+
|
|
404
|
+
**执行者**:Lead(你自己)
|
|
405
|
+
|
|
406
|
+
1. **全量验证**
|
|
407
|
+
- 运行完整测试套件:`Bash: cd {{WORKDIR}} && <测试命令>`
|
|
408
|
+
- 运行 lint(如有)。
|
|
409
|
+
- 运行 typecheck(如有)。
|
|
410
|
+
|
|
411
|
+
2. **知识沉淀**
|
|
412
|
+
- 写入最终报告到 `.claude/team-plan/<任务名>-report.md`:
|
|
413
|
+
|
|
414
|
+
```markdown
|
|
415
|
+
# Team Report: <任务名>
|
|
416
|
+
|
|
417
|
+
## 概述
|
|
418
|
+
<一句话描述完成的工作>
|
|
419
|
+
|
|
420
|
+
## 团队编制
|
|
421
|
+
- Architect: 1
|
|
422
|
+
- Dev: N
|
|
423
|
+
- QA: 1
|
|
424
|
+
- Reviewer: 1
|
|
425
|
+
- 外援: {{BACKEND_PRIMARY}} + {{FRONTEND_PRIMARY}}
|
|
426
|
+
|
|
427
|
+
## 阶段执行摘要
|
|
428
|
+
| 阶段 | 状态 | 关键产出 |
|
|
429
|
+
|------|------|----------|
|
|
430
|
+
| Requirement | ✅ | PRD |
|
|
431
|
+
| Architecture | ✅ | 蓝图 + 文件分配 |
|
|
432
|
+
| Planning | ✅ | N 个子任务 |
|
|
433
|
+
| Development | ✅/⚠️ | 变更文件列表 |
|
|
434
|
+
| Testing | ✅/❌ | 测试报告 |
|
|
435
|
+
| Review | ✅/⚠️ | 审查报告 |
|
|
436
|
+
| Fix | ✅/⚠️/N/A | 修复 N 轮 |
|
|
437
|
+
|
|
438
|
+
## 变更摘要
|
|
439
|
+
| Dev | 子任务 | 状态 | 修改文件 |
|
|
440
|
+
|-----|--------|------|----------|
|
|
441
|
+
| dev-1 | <名称> | ✅/❌ | file1, file2 |
|
|
442
|
+
| dev-2 | <名称> | ✅/❌ | file3 |
|
|
443
|
+
|
|
444
|
+
## 审查结论
|
|
445
|
+
- Critical: 0 ✅
|
|
446
|
+
- Warning: N
|
|
447
|
+
- Info: N
|
|
448
|
+
|
|
449
|
+
## 测试结论
|
|
450
|
+
- 通过: N / 总计: N
|
|
451
|
+
- Lint: ✅/❌
|
|
452
|
+
- Typecheck: ✅/❌
|
|
453
|
+
|
|
454
|
+
## 后续建议
|
|
455
|
+
1. [建议项]
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
3. **输出最终摘要**
|
|
459
|
+
- 向用户展示简洁的完成报告。
|
|
460
|
+
|
|
461
|
+
4. **清理 Team**
|
|
462
|
+
- 确保所有 teammates 已 shutdown。
|
|
463
|
+
- 如果仍有活跃的 teammates → 逐一发送 shutdown_request。
|
|
464
|
+
- `TeamDelete()` 清理 team。
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
**Exit Criteria**
|
|
469
|
+
- [ ] 所有 8 个阶段已执行(或明确跳过并记录原因)
|
|
470
|
+
- [ ] PRD、蓝图、计划、报告 4 个产物文件已写入 `.claude/team-plan/`
|
|
471
|
+
- [ ] 所有 Critical 审查问题已修复(或用户确认跳过)
|
|
472
|
+
- [ ] 测试通过(或用户确认接受失败项)
|
|
473
|
+
- [ ] Team 已清理(所有 teammates shutdown + TeamDelete)
|
|
474
|
+
- [ ] 最终报告已输出给用户
|
|
475
|
+
<!-- CCG:TEAM:UNIFIED:END -->
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# CCG 模型路由器 — 运行时模型选择框架
|
|
2
|
+
|
|
3
|
+
> 本文件由策略文件通过 Read 加载,提供动态模型选择和 codeagent-wrapper 调用模板。
|
|
4
|
+
|
|
5
|
+
## 1. 获取模型配置
|
|
6
|
+
|
|
7
|
+
读取用户配置确定可用模型:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Read ~/.claude/.ccg/config.toml
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
从 `[routing]` 区块提取:
|
|
14
|
+
- `frontend.primary` — 前端模型(默认 `gemini`)
|
|
15
|
+
- `backend.primary` — 后端模型(默认 `codex`)
|
|
16
|
+
- `geminiModel` — Gemini 型号(默认 `gemini-3.1-pro-preview`)
|
|
17
|
+
|
|
18
|
+
如果配置文件不存在或不可读,使用默认值直接继续。
|
|
19
|
+
|
|
20
|
+
## 2. 按阶段选择模型
|
|
21
|
+
|
|
22
|
+
### 分析/研究阶段
|
|
23
|
+
| 任务领域 | 推荐模型 | 角色提示词 |
|
|
24
|
+
|---------|---------|-----------|
|
|
25
|
+
| 后端/架构 | backend 模型 | `$BACKEND/analyzer.md` |
|
|
26
|
+
| 前端/UI | frontend 模型 | `$FRONTEND/analyzer.md` |
|
|
27
|
+
| 全栈 | 双模型并行 | 各用对应 analyzer |
|
|
28
|
+
| 安全 | backend 模型 | `$BACKEND/analyzer.md` |
|
|
29
|
+
|
|
30
|
+
### 规划阶段
|
|
31
|
+
| 任务领域 | 推荐模型 | 角色提示词 |
|
|
32
|
+
|---------|---------|-----------|
|
|
33
|
+
| 架构设计 | backend 模型 | `$BACKEND/architect.md` |
|
|
34
|
+
| UI/UX 设计 | frontend 模型 | `$FRONTEND/architect.md` |
|
|
35
|
+
| 全栈 | 双模型并行 | 各用对应 architect |
|
|
36
|
+
|
|
37
|
+
### 审查阶段(始终双模型交叉验证)
|
|
38
|
+
- backend 模型 + `$BACKEND/reviewer.md`
|
|
39
|
+
- frontend 模型 + `$FRONTEND/reviewer.md`
|
|
40
|
+
|
|
41
|
+
### 调试阶段
|
|
42
|
+
| 任务领域 | 推荐模型 | 角色提示词 |
|
|
43
|
+
|---------|---------|-----------|
|
|
44
|
+
| 后端问题 | backend 模型优先 | `$BACKEND/debugger.md` |
|
|
45
|
+
| 前端问题 | frontend 模型优先 | `$FRONTEND/debugger.md` |
|
|
46
|
+
| 不确定 | 双模型并行 | 各用对应 debugger |
|
|
47
|
+
|
|
48
|
+
### 实施阶段
|
|
49
|
+
- 外部模型**仅提供建议**,Claude 执行所有文件修改
|
|
50
|
+
- 外部模型有**零文件写入权限**
|
|
51
|
+
|
|
52
|
+
## 3. 调用模板
|
|
53
|
+
|
|
54
|
+
### 获取工作目录
|
|
55
|
+
|
|
56
|
+
先确定当前工作目录(不可从 $HOME 推断):
|
|
57
|
+
```
|
|
58
|
+
WORKDIR=$(pwd)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 新会话调用
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Bash({
|
|
65
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend $MODEL {{GEMINI_MODEL_FLAG}}- \"$WORKDIR\" <<'CODEAGENT_EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/$MODEL/$ROLE.md\n<TASK>\n$TASK_CONTENT\n</TASK>\nOUTPUT: $OUTPUT_FORMAT\nCODEAGENT_EOF",
|
|
66
|
+
run_in_background: true,
|
|
67
|
+
timeout: 3600000,
|
|
68
|
+
description: "$SHORT_DESCRIPTION"
|
|
69
|
+
})
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
变量说明:
|
|
73
|
+
- `$MODEL` — 选定的模型名(`codex` / `gemini` / `claude`)
|
|
74
|
+
- `$ROLE` — 角色文件名(`analyzer` / `architect` / `reviewer` / `debugger` / `optimizer` / `tester`)
|
|
75
|
+
- `$TASK_CONTENT` — 任务内容(需求 + 上下文)
|
|
76
|
+
- `$OUTPUT_FORMAT` — 期望输出格式
|
|
77
|
+
- `$SHORT_DESCRIPTION` — 简短描述(用于进度显示)
|
|
78
|
+
|
|
79
|
+
### 复用会话调用
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Bash({
|
|
83
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend $MODEL {{GEMINI_MODEL_FLAG}}resume $SESSION_ID - \"$WORKDIR\" <<'CODEAGENT_EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/$MODEL/$ROLE.md\n<TASK>\n$TASK_CONTENT\n</TASK>\nOUTPUT: $OUTPUT_FORMAT\nCODEAGENT_EOF",
|
|
84
|
+
run_in_background: true,
|
|
85
|
+
timeout: 3600000,
|
|
86
|
+
description: "$SHORT_DESCRIPTION"
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 并行双模型调用模式
|
|
91
|
+
|
|
92
|
+
同时启动两个模型,各自独立分析:
|
|
93
|
+
|
|
94
|
+
1. 启动 backend 模型(`run_in_background: true`)
|
|
95
|
+
2. 启动 frontend 模型(`run_in_background: true`)
|
|
96
|
+
3. 等待两者完成:
|
|
97
|
+
```
|
|
98
|
+
TaskOutput({ task_id: "$BACKEND_TASK_ID", block: true, timeout: 600000 })
|
|
99
|
+
TaskOutput({ task_id: "$FRONTEND_TASK_ID", block: true, timeout: 600000 })
|
|
100
|
+
```
|
|
101
|
+
4. 综合双方结果
|
|
102
|
+
|
|
103
|
+
## 4. 等待与重试规则
|
|
104
|
+
|
|
105
|
+
| 场景 | 策略 |
|
|
106
|
+
|------|------|
|
|
107
|
+
| frontend 模型失败 | 重试最多 2 次,间隔 5s |
|
|
108
|
+
| backend 模型运行中 | 可能需要 5-15 分钟,保持轮询,永不终止 |
|
|
109
|
+
| 3 次全败 | 降级为单模型模式,告知用户 |
|
|
110
|
+
| 超时 | 600s 等待上限,超时后报告并询问用户 |
|
|
111
|
+
|
|
112
|
+
## 5. SESSION_ID 管理
|
|
113
|
+
|
|
114
|
+
- 每次 codeagent-wrapper 调用返回 `Session-ID: xxx`
|
|
115
|
+
- 捕获并保存:`BACKEND_SESSION`、`FRONTEND_SESSION`
|
|
116
|
+
- 后续阶段通过 `resume $SESSION_ID` 复用上下文
|
|
117
|
+
- 复用会话可减少重复分析,提升效率
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# CCG 通用阶段指导
|
|
2
|
+
|
|
3
|
+
> 本文件定义所有策略共享的阶段执行规范。策略文件可通过 Read 引用。
|
|
4
|
+
|
|
5
|
+
## 1. 阶段状态自检
|
|
6
|
+
|
|
7
|
+
每完成一个阶段,回顾对应的 `[phase-state:N]` 块:
|
|
8
|
+
1. 确认该阶段的 Gate 条件已满足
|
|
9
|
+
2. 输出 `📍 Next: [具体动作]` 告知用户下一步
|
|
10
|
+
3. 如有 `[required]` 标记的阶段未完成,不可跳过
|
|
11
|
+
|
|
12
|
+
## 2. Gate Check 执行规范
|
|
13
|
+
|
|
14
|
+
Gate 是阶段间的硬性检查点。执行方式:
|
|
15
|
+
|
|
16
|
+
- **数据 Gate**:检查前序阶段是否产出了必要数据(分析结果?计划文件?)
|
|
17
|
+
- **确认 Gate(HARD STOP)**:必须等待用户明确确认才能继续
|
|
18
|
+
- **质量 Gate**:检查产出物是否达到最低质量标准
|
|
19
|
+
|
|
20
|
+
Gate 失败时:说明缺失什么,给出补救建议,不可绕过。
|
|
21
|
+
|
|
22
|
+
## 3. Next-Action 格式
|
|
23
|
+
|
|
24
|
+
每个阶段完成后输出:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
📍 Next: [一句话描述下一步具体动作]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
示例:
|
|
31
|
+
- `📍 Next: 加载模型路由器,启动双模型并行分析`
|
|
32
|
+
- `📍 Next: 请确认以上修复方案是否正确`
|
|
33
|
+
- `📍 Next: 运行测试验证修复效果`
|
|
34
|
+
|
|
35
|
+
## 4. 策略升级规则
|
|
36
|
+
|
|
37
|
+
执行中发现复杂度超出当前策略能力时:
|
|
38
|
+
|
|
39
|
+
1. 明确告知用户:`当前策略为 [名称],但发现 [原因],建议升级到 [目标策略]`
|
|
40
|
+
2. 等待用户确认
|
|
41
|
+
3. 确认后:`Read ~/.claude/.ccg/engine/strategies/[target].md`
|
|
42
|
+
4. 从新策略的 Phase 1 开始(已完成的分析工作可复用)
|
|
43
|
+
|
|
44
|
+
**只能升级,不能降级**(除非用户明确要求)。
|
|
45
|
+
|
|
46
|
+
## 5. 错误恢复
|
|
47
|
+
|
|
48
|
+
| 场景 | 处理方式 |
|
|
49
|
+
|------|---------|
|
|
50
|
+
| 外部模型调用失败 | 按模型路由器重试规则处理 |
|
|
51
|
+
| 测试失败 | 分析失败原因,修复后重新运行 |
|
|
52
|
+
| 用户要求中止 | 立即停止,报告已完成的工作 |
|
|
53
|
+
| 意外文件冲突 | 报告冲突,等待用户决策 |
|
|
54
|
+
|
|
55
|
+
## 6. Team Dispatch 协议
|
|
56
|
+
|
|
57
|
+
当策略需要并行实施时,使用 Agent Teams:
|
|
58
|
+
|
|
59
|
+
### 前置条件
|
|
60
|
+
- 任务已拆分为文件级子任务(互不重叠)
|
|
61
|
+
- plan.md 已审批
|
|
62
|
+
|
|
63
|
+
### 标准流程
|
|
64
|
+
```
|
|
65
|
+
1. TeamCreate({ team_name: "{task-id}-team" })
|
|
66
|
+
2. 同一消息内并行 spawn 所有 Layer 1 Builder
|
|
67
|
+
3. 等待完成 → spawn Layer 2(如有)
|
|
68
|
+
4. spawn Reviewer 快检
|
|
69
|
+
5. Critical → spawn fix-dev(最多 2 轮)
|
|
70
|
+
6. shutdown 所有 teammates
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Builder Prompt 必含项
|
|
74
|
+
- `## 工作目录` — 绝对路径
|
|
75
|
+
- `## 文件范围约束(⛔ 硬性规则)` — 只能改的文件列表
|
|
76
|
+
- `## 实施步骤` — 具体操作
|
|
77
|
+
- `## 验收标准` — 怎样算完成
|
|
78
|
+
|
|
79
|
+
### Spec 注入
|
|
80
|
+
PreToolUse Hook 自动为 Team member 注入:
|
|
81
|
+
- context.jsonl 中列出的 spec 文件
|
|
82
|
+
- requirements.md 和 plan.md 摘要
|
|
83
|
+
- research/ 目录下的研究成果
|
|
84
|
+
|
|
85
|
+
Builder 不需要在 prompt 中手动粘贴 spec — Hook 自动处理。
|
|
86
|
+
|
|
87
|
+
### 降级方案
|
|
88
|
+
TeamCreate 失败(Agent Teams 未启用)→ Claude 自己按计划顺序实施。
|
|
89
|
+
|
|
90
|
+
## 7. 输出规范
|
|
91
|
+
|
|
92
|
+
- 中文交流,技术术语保留英文
|
|
93
|
+
- 代码块标明语言
|
|
94
|
+
- 变更摘要用 git diff 格式
|
|
95
|
+
- 研究结果用表格对比
|