ccg-workflow 1.4.4 → 1.5.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 +0 -3
- package/dist/cli.mjs +2 -2
- package/dist/index.d.mts +17 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.mjs +1 -1
- package/dist/shared/{ccg-workflow.BYScBcmv.mjs → ccg-workflow.DSwxPZjT.mjs} +53 -18
- package/package.json +1 -1
- package/templates/commands/agents/planner.md +2 -2
- package/templates/commands/agents/ui-ux-designer.md +2 -2
- package/templates/commands/analyze.md +16 -40
- package/templates/commands/backend.md +7 -49
- package/templates/commands/bugfix.md +9 -9
- package/templates/commands/code.md +9 -9
- package/templates/commands/debug.md +5 -5
- package/templates/commands/dev.md +75 -106
- package/templates/commands/enhance.md +1 -1
- package/templates/commands/feat.md +123 -536
- package/templates/commands/frontend.md +7 -49
- package/templates/commands/optimize.md +5 -5
- package/templates/commands/review.md +19 -23
- package/templates/commands/test.md +5 -5
- package/templates/commands/think.md +5 -5
- package/templates/commands/scan.md +0 -569
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ccg:feat
|
|
3
|
-
description: 🚀 智能功能开发 -
|
|
4
|
-
tools: Task,
|
|
3
|
+
description: 🚀 智能功能开发 - 自动规划、设计、实施
|
|
4
|
+
tools: Task, Read, Write, Bash, AskUserQuestion, Glob
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# CCG 智能功能开发
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## 核心能力
|
|
17
|
-
|
|
18
|
-
1. **智能输入识别**:自动判断用户意图(规划/迭代/实施)
|
|
19
|
-
2. **多模型路由**:前端→Gemini,后端→Codex,全栈→并行
|
|
20
|
-
3. **计划版本控制**:`.claude/plan/功能名.md` → `.claude/plan/功能名-1.md` → ...
|
|
21
|
-
4. **自动 Agent 调用**:根据任务类型调用 planner / ui-ux-designer
|
|
9
|
+
智能识别用户输入类型,自动选择工作流:
|
|
10
|
+
- **需求规划**:需求分析 → 任务分解 → 生成计划文档
|
|
11
|
+
- **讨论迭代**:基于现有计划调整优化
|
|
12
|
+
- **执行实施**:按计划调用多模型实施开发
|
|
22
13
|
|
|
23
14
|
---
|
|
24
15
|
|
|
@@ -26,235 +17,109 @@ tools: Task, mcp__ace-tool__search_context, Read, Write, Bash, AskUserQuestion,
|
|
|
26
17
|
|
|
27
18
|
### 步骤 1:输入类型识别
|
|
28
19
|
|
|
29
|
-
|
|
20
|
+
分析用户输入,识别关键词:
|
|
30
21
|
|
|
31
22
|
#### 1.1 需求规划模式(默认)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- 需求、设计、规划
|
|
36
|
-
- "我想要..."、"帮我实现..."
|
|
37
|
-
|
|
38
|
-
**示例**:
|
|
39
|
-
- "实现用户登录功能"
|
|
40
|
-
- "开发一个商品管理模块"
|
|
41
|
-
- "添加实时聊天功能"
|
|
42
|
-
|
|
43
|
-
→ 执行完整规划流程(步骤 2)
|
|
23
|
+
**关键词**:实现、开发、新增、添加、构建、需求、设计、规划
|
|
24
|
+
**示例**:"实现用户登录功能"、"开发商品管理模块"
|
|
25
|
+
**执行**:→ 步骤 2(完整规划)
|
|
44
26
|
|
|
45
27
|
#### 1.2 讨论迭代模式
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- 重新规划、重新设计
|
|
50
|
-
- "计划需要..."、"方案需要..."
|
|
51
|
-
- 包含计划文件路径(`.claude/plan/xxx.md`)
|
|
52
|
-
|
|
53
|
-
**示例**:
|
|
54
|
-
- "调整用户登录功能的方案"
|
|
55
|
-
- "优化商品管理模块的计划"
|
|
56
|
-
- "修改 .claude/plan/登录功能.md 的任务拆分"
|
|
57
|
-
|
|
58
|
-
→ 读取现有计划,调用 planner 重新规划(步骤 2.2)
|
|
28
|
+
**关键词**:调整、修改、优化、改进、更新、重新规划、包含计划文件路径
|
|
29
|
+
**示例**:"调整登录功能方案"、"优化 .claude/plan/登录功能.md"
|
|
30
|
+
**执行**:→ 读取现有计划 → 步骤 2.4(重新规划)
|
|
59
31
|
|
|
60
32
|
#### 1.3 执行实施模式
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- 实施、开发、编码
|
|
65
|
-
- "根据计划..."、"按照 .claude/plan/xxx.md"
|
|
66
|
-
|
|
67
|
-
**示例**:
|
|
68
|
-
- "开始实施用户登录功能"
|
|
69
|
-
- "按照计划执行开发"
|
|
70
|
-
- "根据 .claude/plan/登录功能.md 开始编码"
|
|
71
|
-
|
|
72
|
-
→ 直接进入实施阶段(步骤 3)
|
|
33
|
+
**关键词**:开始实施、执行计划、按照计划、根据计划
|
|
34
|
+
**示例**:"开始实施登录功能"、"按照 .claude/plan/登录功能.md 开发"
|
|
35
|
+
**执行**:→ 步骤 3(直接实施)
|
|
73
36
|
|
|
74
37
|
---
|
|
75
38
|
|
|
76
|
-
### 步骤 2
|
|
39
|
+
### 步骤 2:需求规划流程
|
|
77
40
|
|
|
78
|
-
#### 2.1
|
|
41
|
+
#### 2.1 上下文检索
|
|
79
42
|
|
|
80
|
-
|
|
43
|
+
调用 {{MCP_SEARCH_TOOL}} 检索相关代码:
|
|
81
44
|
|
|
82
|
-
```bash
|
|
83
|
-
# 检查文件是否存在
|
|
84
|
-
if [ -f ".claude/repo-context.md" ]; then
|
|
85
|
-
echo "✓ 检测到项目上下文报告"
|
|
86
|
-
Read(".claude/repo-context.md")
|
|
87
|
-
else
|
|
88
|
-
echo "⚠ 未检测到项目上下文,建议先运行 /ccg:scan"
|
|
89
|
-
# 询问用户是否立即扫描
|
|
90
|
-
AskUserQuestion {
|
|
91
|
-
question: "是否立即扫描项目以获取上下文?",
|
|
92
|
-
options: [
|
|
93
|
-
{ label: "是,立即扫描(推荐)", description: "运行 /ccg:scan 生成上下文报告" },
|
|
94
|
-
{ label: "跳过,直接规划", description: "基于现有知识进行规划" }
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
fi
|
|
98
45
|
```
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
mcp__ace-tool__search_context {
|
|
104
|
-
"project_root_path": "$PROJECT_DIR",
|
|
105
|
-
"query": "{{用户需求关键词}} + 相关的代码实现、API 接口、组件、数据模型"
|
|
46
|
+
{{MCP_SEARCH_TOOL}} {
|
|
47
|
+
"{{MCP_SEARCH_PARAM}}": "{{用户需求关键词}} + 相关代码实现、API、组件、数据模型、技术栈"
|
|
106
48
|
}
|
|
107
49
|
```
|
|
108
50
|
|
|
109
|
-
|
|
110
|
-
- 用户需求:"实现用户登录功能"
|
|
111
|
-
- ace-tool 查询:"用户认证、登录、JWT token、Session 管理、认证中间件"
|
|
112
|
-
|
|
113
|
-
**期望结果**:
|
|
114
|
-
- 现有认证代码位置
|
|
115
|
-
- 可复用的组件
|
|
116
|
-
- 数据库 User 模型
|
|
117
|
-
- API 路由结构
|
|
51
|
+
**期望结果**:现有代码位置、可复用组件、数据模型、API 结构、技术栈
|
|
118
52
|
|
|
119
53
|
---
|
|
120
54
|
|
|
121
55
|
#### 2.2 任务类型判断
|
|
122
56
|
|
|
123
|
-
|
|
57
|
+
基于用户需求和检索结果:
|
|
124
58
|
|
|
125
59
|
| 任务类型 | 判断依据 | 调用流程 |
|
|
126
60
|
|----------|----------|----------|
|
|
127
|
-
|
|
|
128
|
-
|
|
|
129
|
-
|
|
|
61
|
+
| **前端** | 页面、组件、UI、样式、布局 | ui-ux-designer → planner |
|
|
62
|
+
| **后端** | API、接口、数据库、逻辑、算法 | planner |
|
|
63
|
+
| **全栈** | 同时包含前后端 | ui-ux-designer → planner |
|
|
130
64
|
|
|
131
65
|
---
|
|
132
66
|
|
|
133
|
-
#### 2.3 调用 ui-ux-designer
|
|
67
|
+
#### 2.3 调用 ui-ux-designer(前端/全栈)
|
|
134
68
|
|
|
135
|
-
|
|
69
|
+
如果是前端或全栈任务:
|
|
136
70
|
|
|
137
71
|
```bash
|
|
138
|
-
Task(subagent_type="general-purpose", description="调用
|
|
72
|
+
Task(subagent_type="general-purpose", description="调用 UI/UX 设计师") {
|
|
139
73
|
prompt: "
|
|
140
|
-
|
|
141
|
-
~/.claude/commands/ccg/agents/ui-ux-designer.md
|
|
142
|
-
|
|
143
|
-
项目上下文:
|
|
144
|
-
{{ace-tool 检索结果}}
|
|
145
|
-
|
|
146
|
-
用户需求:
|
|
147
|
-
{{原始需求}}
|
|
74
|
+
执行 agent: ~/.claude/agents/ccg/ui-ux-designer.md
|
|
148
75
|
|
|
149
|
-
|
|
150
|
-
{{
|
|
76
|
+
项目上下文: {{MCP 检索结果}}
|
|
77
|
+
用户需求: {{原始需求}}
|
|
78
|
+
技术栈: {{从检索结果提取}}
|
|
151
79
|
|
|
152
|
-
|
|
80
|
+
输出: UI/UX 设计方案(Markdown)
|
|
153
81
|
"
|
|
154
82
|
}
|
|
155
83
|
```
|
|
156
84
|
|
|
157
|
-
**输出示例**:
|
|
158
|
-
```markdown
|
|
159
|
-
# UI/UX 设计方案:用户登录页面
|
|
160
|
-
|
|
161
|
-
## 1. 页面结构
|
|
162
|
-
...
|
|
163
|
-
|
|
164
|
-
## 2. 组件拆分
|
|
165
|
-
- LoginPage.tsx
|
|
166
|
-
- LoginForm.tsx
|
|
167
|
-
- FormInput.tsx
|
|
168
|
-
...
|
|
169
|
-
|
|
170
|
-
## 3. 交互流程
|
|
171
|
-
...
|
|
172
|
-
```
|
|
173
|
-
|
|
174
85
|
---
|
|
175
86
|
|
|
176
|
-
#### 2.4 调用 planner
|
|
177
|
-
|
|
178
|
-
将所有上下文信息传递给 planner:
|
|
87
|
+
#### 2.4 调用 planner
|
|
179
88
|
|
|
180
89
|
```bash
|
|
181
|
-
Task(subagent_type="general-purpose", description="
|
|
90
|
+
Task(subagent_type="general-purpose", description="调用任务规划师") {
|
|
182
91
|
prompt: "
|
|
183
|
-
|
|
184
|
-
~/.claude/commands/ccg/agents/planner.md
|
|
185
|
-
|
|
186
|
-
项目上下文:
|
|
187
|
-
{{ace-tool 检索结果}}
|
|
188
|
-
|
|
189
|
-
{{如果是前端/全栈任务,附加 UI/UX 设计方案}}
|
|
190
|
-
{{UI/UX 设计方案内容}}
|
|
92
|
+
执行 agent: ~/.claude/agents/ccg/planner.md
|
|
191
93
|
|
|
192
|
-
|
|
193
|
-
{{
|
|
94
|
+
项目上下文: {{MCP 检索结果}}
|
|
95
|
+
{{如果有 UI/UX 设计方案,附加在此}}
|
|
96
|
+
用户需求: {{原始需求}}
|
|
97
|
+
技术栈: {{从检索结果提取}}
|
|
194
98
|
|
|
195
|
-
|
|
196
|
-
{{从 repo-context.md 提取}}
|
|
197
|
-
|
|
198
|
-
输出:
|
|
199
|
-
请生成详细的功能规划文档,并按照以下路径保存:
|
|
200
|
-
.claude/plan/{{功能名}}.md
|
|
99
|
+
输出: 生成功能规划文档并保存到 .claude/plan/{{功能名}}.md
|
|
201
100
|
"
|
|
202
101
|
}
|
|
203
102
|
```
|
|
204
103
|
|
|
205
|
-
**planner 输出格式**:
|
|
206
|
-
```markdown
|
|
207
|
-
# 功能规划:用户登录功能
|
|
208
|
-
|
|
209
|
-
## 1. 功能概述
|
|
210
|
-
...
|
|
211
|
-
|
|
212
|
-
## 2. WBS 任务分解
|
|
213
|
-
...
|
|
214
|
-
|
|
215
|
-
## 3. 依赖关系
|
|
216
|
-
...
|
|
217
|
-
|
|
218
|
-
## 4. 实施建议
|
|
219
|
-
...
|
|
220
|
-
```
|
|
221
|
-
|
|
222
104
|
---
|
|
223
105
|
|
|
224
106
|
#### 2.5 计划版本控制
|
|
225
107
|
|
|
226
|
-
|
|
227
|
-
|
|
108
|
+
**首次规划**:
|
|
228
109
|
```bash
|
|
229
|
-
|
|
230
|
-
FEATURE_NAME="{{从用户需求提取的功能名}}"
|
|
110
|
+
FEATURE_NAME="{{从需求提取的功能名}}"
|
|
231
111
|
PLAN_FILE=".claude/plan/${FEATURE_NAME}.md"
|
|
232
112
|
|
|
233
|
-
# 检查是否已存在
|
|
234
113
|
if [ -f "$PLAN_FILE" ]; then
|
|
235
|
-
echo "⚠ 计划文件已存在:$PLAN_FILE"
|
|
236
|
-
echo "将创建新版本:${FEATURE_NAME}-1.md"
|
|
237
114
|
PLAN_FILE=".claude/plan/${FEATURE_NAME}-1.md"
|
|
238
115
|
fi
|
|
239
|
-
|
|
240
|
-
# 保存计划
|
|
241
|
-
Write("$PLAN_FILE", "{{planner 输出}}")
|
|
242
116
|
```
|
|
243
117
|
|
|
244
|
-
|
|
245
|
-
|
|
118
|
+
**讨论迭代**:
|
|
246
119
|
```bash
|
|
247
|
-
|
|
248
|
-
# 识别现有计划文件
|
|
249
|
-
EXISTING_PLAN=$(find .claude/plan -name "*登录*.md" -o -name "*login*.md" | head -n 1)
|
|
120
|
+
EXISTING_PLAN=$(find .claude/plan -name "*{{关键词}}*.md" | head -n 1)
|
|
250
121
|
|
|
251
122
|
if [ -n "$EXISTING_PLAN" ]; then
|
|
252
|
-
echo "✓ 找到现有计划:$EXISTING_PLAN"
|
|
253
|
-
|
|
254
|
-
# 读取现有计划
|
|
255
|
-
EXISTING_CONTENT=$(Read("$EXISTING_PLAN"))
|
|
256
|
-
|
|
257
|
-
# 生成新版本号
|
|
258
123
|
BASE_NAME=$(basename "$EXISTING_PLAN" .md)
|
|
259
124
|
if [[ $BASE_NAME =~ -([0-9]+)$ ]]; then
|
|
260
125
|
VERSION=$((${BASH_REMATCH[1]} + 1))
|
|
@@ -262,27 +127,6 @@ if [ -n "$EXISTING_PLAN" ]; then
|
|
|
262
127
|
else
|
|
263
128
|
NEW_PLAN=".claude/plan/${BASE_NAME}-1.md"
|
|
264
129
|
fi
|
|
265
|
-
|
|
266
|
-
# 调用 planner 重新规划
|
|
267
|
-
Task(subagent_type="general-purpose") {
|
|
268
|
-
prompt: "
|
|
269
|
-
基于现有计划进行调整:
|
|
270
|
-
|
|
271
|
-
【现有计划】
|
|
272
|
-
$EXISTING_CONTENT
|
|
273
|
-
|
|
274
|
-
【用户调整要求】
|
|
275
|
-
{{用户的调整需求}}
|
|
276
|
-
|
|
277
|
-
【任务】
|
|
278
|
-
请根据用户要求,重新规划并生成新的计划文档。
|
|
279
|
-
保持合理的部分,修改需要调整的部分。
|
|
280
|
-
输出到:$NEW_PLAN
|
|
281
|
-
"
|
|
282
|
-
}
|
|
283
|
-
else
|
|
284
|
-
echo "⚠ 未找到相关计划文件,将创建新计划"
|
|
285
|
-
# 回退到首次规划流程
|
|
286
130
|
fi
|
|
287
131
|
```
|
|
288
132
|
|
|
@@ -290,71 +134,50 @@ fi
|
|
|
290
134
|
|
|
291
135
|
#### 2.6 交互确认
|
|
292
136
|
|
|
293
|
-
计划生成后,询问用户下一步操作:
|
|
294
|
-
|
|
295
137
|
```bash
|
|
296
138
|
AskUserQuestion {
|
|
297
139
|
question: "功能规划已完成,请选择下一步操作:",
|
|
298
140
|
header: "下一步",
|
|
299
141
|
options: [
|
|
300
|
-
{
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}
|
|
304
|
-
{
|
|
305
|
-
label: "讨论调整",
|
|
306
|
-
description: "我想修改计划中的某些部分"
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
label: "重新规划",
|
|
310
|
-
description: "推翻当前方案,重新开始"
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
label: "仅保存计划",
|
|
314
|
-
description: "暂时不实施,稍后手动执行"
|
|
315
|
-
}
|
|
142
|
+
{ label: "开始实施(推荐)", description: "根据计划调用多模型开发" },
|
|
143
|
+
{ label: "讨论调整", description: "修改计划中的某些部分" },
|
|
144
|
+
{ label: "重新规划", description: "推翻当前方案重新开始" },
|
|
145
|
+
{ label: "仅保存计划", description: "暂不实施,稍后手动执行" }
|
|
316
146
|
]
|
|
317
147
|
}
|
|
318
148
|
```
|
|
319
149
|
|
|
320
|
-
|
|
321
|
-
-
|
|
322
|
-
-
|
|
323
|
-
-
|
|
324
|
-
-
|
|
150
|
+
**处理逻辑**:
|
|
151
|
+
- 开始实施 → 步骤 3
|
|
152
|
+
- 讨论调整 → 重新执行步骤 2.4
|
|
153
|
+
- 重新规划 → 删除当前计划,重新执行步骤 2
|
|
154
|
+
- 仅保存计划 → 退出
|
|
325
155
|
|
|
326
156
|
---
|
|
327
157
|
|
|
328
|
-
### 步骤 3
|
|
158
|
+
### 步骤 3:执行实施
|
|
329
159
|
|
|
330
160
|
#### 3.1 读取计划文档
|
|
331
161
|
|
|
332
162
|
```bash
|
|
333
|
-
# 确定计划文件路径
|
|
334
163
|
if [[ "$USER_INPUT" =~ \.claude/plan/.*\.md ]]; then
|
|
335
|
-
|
|
336
|
-
PLAN_FILE="{{用户指定的路径}}"
|
|
164
|
+
PLAN_FILE="{{用户指定路径}}"
|
|
337
165
|
else
|
|
338
|
-
# 查找最新的计划文件
|
|
339
166
|
PLAN_FILE=$(ls -t .claude/plan/*.md | head -n 1)
|
|
340
167
|
fi
|
|
341
168
|
|
|
342
|
-
# 读取计划内容
|
|
343
169
|
PLAN_CONTENT=$(Read("$PLAN_FILE"))
|
|
344
|
-
|
|
345
|
-
echo "✓ 读取计划:$PLAN_FILE"
|
|
346
170
|
```
|
|
347
171
|
|
|
348
172
|
---
|
|
349
173
|
|
|
350
174
|
#### 3.2 任务类型分析
|
|
351
175
|
|
|
352
|
-
|
|
176
|
+
从计划提取分类:
|
|
353
177
|
|
|
354
178
|
```bash
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
BACKEND_TASKS=$(echo "$PLAN_CONTENT" | grep -E "#### 模块.*:后端" || echo "")
|
|
179
|
+
FRONTEND_TASKS=$(echo "$PLAN_CONTENT" | grep -E "模块.*:前端" || echo "")
|
|
180
|
+
BACKEND_TASKS=$(echo "$PLAN_CONTENT" | grep -E "模块.*:后端" || echo "")
|
|
358
181
|
|
|
359
182
|
if [ -n "$FRONTEND_TASKS" ] && [ -n "$BACKEND_TASKS" ]; then
|
|
360
183
|
TASK_TYPE="fullstack"
|
|
@@ -362,139 +185,76 @@ elif [ -n "$FRONTEND_TASKS" ]; then
|
|
|
362
185
|
TASK_TYPE="frontend"
|
|
363
186
|
elif [ -n "$BACKEND_TASKS" ]; then
|
|
364
187
|
TASK_TYPE="backend"
|
|
365
|
-
else
|
|
366
|
-
# 无法判断,询问用户
|
|
367
|
-
AskUserQuestion {
|
|
368
|
-
question: "请选择任务类型:",
|
|
369
|
-
options: [
|
|
370
|
-
{ label: "前端任务", description: "主要涉及 UI/组件/样式" },
|
|
371
|
-
{ label: "后端任务", description: "主要涉及 API/逻辑/数据库" },
|
|
372
|
-
{ label: "全栈任务", description: "同时涉及前后端" }
|
|
373
|
-
]
|
|
374
|
-
}
|
|
375
188
|
fi
|
|
376
189
|
```
|
|
377
190
|
|
|
191
|
+
如无法判断,询问用户选择任务类型。
|
|
192
|
+
|
|
378
193
|
---
|
|
379
194
|
|
|
380
195
|
#### 3.3 多模型路由实施
|
|
381
196
|
|
|
382
|
-
#####
|
|
197
|
+
##### 前端任务 → {{FRONTEND_PRIMARY}}
|
|
383
198
|
|
|
384
199
|
```bash
|
|
385
200
|
if [ "$TASK_TYPE" == "frontend" ] || [ "$TASK_TYPE" == "fullstack" ]; then
|
|
386
|
-
echo "
|
|
387
|
-
|
|
388
|
-
# 提取前端相关任务
|
|
389
|
-
FRONTEND_PLAN=$(echo "$PLAN_CONTENT" | sed -n '/#### 模块.*:前端/,/#### 模块.*:/p')
|
|
390
|
-
|
|
391
|
-
# 调用 codeagent-wrapper
|
|
392
|
-
codeagent-wrapper --backend gemini - "$PROJECT_DIR" <<'EOF'
|
|
393
|
-
ROLE_FILE: ~/.claude/.ccg/prompts/gemini/frontend.md
|
|
201
|
+
FRONTEND_PLAN=$(echo "$PLAN_CONTENT" | sed -n '/模块.*:前端/,/模块.*:/p')
|
|
394
202
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
</PROJECT_CONTEXT>
|
|
203
|
+
codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - "$PROJECT_DIR" <<'EOF'
|
|
204
|
+
ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/frontend.md
|
|
398
205
|
|
|
399
206
|
<TASK>
|
|
400
|
-
|
|
401
|
-
|
|
207
|
+
根据以下计划实施前端功能:
|
|
402
208
|
$FRONTEND_PLAN
|
|
403
209
|
|
|
404
210
|
要求:
|
|
405
211
|
1. 创建/修改所有需要的组件文件
|
|
406
|
-
2.
|
|
407
|
-
3.
|
|
408
|
-
4.
|
|
409
|
-
5. 处理 Loading
|
|
410
|
-
6.
|
|
212
|
+
2. 符合项目代码风格
|
|
213
|
+
3. 实现响应式设计
|
|
214
|
+
4. 添加 TypeScript 类型定义
|
|
215
|
+
5. 处理 Loading/Success/Error 状态
|
|
216
|
+
6. 遵循无障碍访问最佳实践
|
|
411
217
|
</TASK>
|
|
412
|
-
|
|
413
|
-
<OUTPUT>
|
|
414
|
-
完成后请提供:
|
|
415
|
-
1. 创建/修改的文件清单
|
|
416
|
-
2. 关键代码片段说明
|
|
417
|
-
3. 使用方法和示例
|
|
418
|
-
</OUTPUT>
|
|
419
218
|
EOF
|
|
420
219
|
|
|
421
|
-
# 捕获 SESSION_ID
|
|
422
220
|
GEMINI_SESSION=$(echo "$OUTPUT" | grep "SESSION_ID:" | awk '{print $2}')
|
|
423
|
-
echo "✓ Gemini 前端实施完成 (Session: $GEMINI_SESSION)"
|
|
424
221
|
fi
|
|
425
222
|
```
|
|
426
223
|
|
|
427
|
-
#####
|
|
224
|
+
##### 后端任务 → {{BACKEND_PRIMARY}}
|
|
428
225
|
|
|
429
226
|
```bash
|
|
430
227
|
if [ "$TASK_TYPE" == "backend" ] || [ "$TASK_TYPE" == "fullstack" ]; then
|
|
431
|
-
echo "
|
|
228
|
+
BACKEND_PLAN=$(echo "$PLAN_CONTENT" | sed -n '/模块.*:后端/,/模块.*:/p')
|
|
432
229
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
# 调用 codeagent-wrapper
|
|
437
|
-
codeagent-wrapper --backend codex - "$PROJECT_DIR" <<'EOF'
|
|
438
|
-
ROLE_FILE: ~/.claude/.ccg/prompts/codex/architect.md
|
|
439
|
-
|
|
440
|
-
<PROJECT_CONTEXT>
|
|
441
|
-
{{从 .claude/repo-context.md 提取的后端技术栈}}
|
|
442
|
-
</PROJECT_CONTEXT>
|
|
230
|
+
codeagent-wrapper --backend {{BACKEND_PRIMARY}} - "$PROJECT_DIR" <<'EOF'
|
|
231
|
+
ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md
|
|
443
232
|
|
|
444
233
|
<TASK>
|
|
445
|
-
|
|
446
|
-
|
|
234
|
+
根据以下计划实施后端功能:
|
|
447
235
|
$BACKEND_PLAN
|
|
448
236
|
|
|
449
237
|
要求:
|
|
450
|
-
1.
|
|
451
|
-
2.
|
|
452
|
-
3.
|
|
453
|
-
4.
|
|
454
|
-
5.
|
|
455
|
-
6.
|
|
238
|
+
1. 创建/修改所有 API 端点
|
|
239
|
+
2. 实现数据验证(Zod/Joi)
|
|
240
|
+
3. 统一错误处理
|
|
241
|
+
4. 添加中间件(认证、日志、CORS)
|
|
242
|
+
5. 编写数据库查询
|
|
243
|
+
6. 确保代码可测试性
|
|
456
244
|
</TASK>
|
|
457
|
-
|
|
458
|
-
<OUTPUT>
|
|
459
|
-
完成后请提供:
|
|
460
|
-
1. 创建/修改的文件清单
|
|
461
|
-
2. API 接口文档(请求/响应格式)
|
|
462
|
-
3. 数据库 Schema 变更(如有)
|
|
463
|
-
4. 测试用例建议
|
|
464
|
-
</OUTPUT>
|
|
465
245
|
EOF
|
|
466
246
|
|
|
467
|
-
# 捕获 SESSION_ID
|
|
468
247
|
CODEX_SESSION=$(echo "$OUTPUT" | grep "SESSION_ID:" | awk '{print $2}')
|
|
469
|
-
echo "✓ Codex 后端实施完成 (Session: $CODEX_SESSION)"
|
|
470
248
|
fi
|
|
471
249
|
```
|
|
472
250
|
|
|
473
|
-
#####
|
|
251
|
+
##### 全栈任务 → 并行调用
|
|
474
252
|
|
|
475
253
|
```bash
|
|
476
254
|
if [ "$TASK_TYPE" == "fullstack" ]; then
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
# 前端和后端任务并行执行(使用后台进程)
|
|
480
|
-
{
|
|
481
|
-
# 前端任务(见 3.3.1)
|
|
482
|
-
codeagent-wrapper --backend gemini - "$PROJECT_DIR" <<'EOF'
|
|
483
|
-
...
|
|
484
|
-
EOF
|
|
485
|
-
} &
|
|
486
|
-
|
|
487
|
-
{
|
|
488
|
-
# 后端任务(见 3.3.2)
|
|
489
|
-
codeagent-wrapper --backend codex - "$PROJECT_DIR" <<'EOF'
|
|
490
|
-
...
|
|
491
|
-
EOF
|
|
492
|
-
} &
|
|
493
|
-
|
|
494
|
-
# 等待两个任务完成
|
|
255
|
+
{ 前端任务 } &
|
|
256
|
+
{ 后端任务 } &
|
|
495
257
|
wait
|
|
496
|
-
|
|
497
|
-
echo "✓ 前后端并行实施完成"
|
|
498
258
|
fi
|
|
499
259
|
```
|
|
500
260
|
|
|
@@ -502,18 +262,10 @@ fi
|
|
|
502
262
|
|
|
503
263
|
#### 3.4 实施后验证
|
|
504
264
|
|
|
505
|
-
##### 3.4.1 检查实施结果
|
|
506
|
-
|
|
507
265
|
```bash
|
|
508
|
-
# 读取 git 状态
|
|
509
266
|
git status --short
|
|
510
|
-
|
|
511
|
-
# 提示用户查看变更
|
|
512
|
-
echo ""
|
|
513
|
-
echo "📝 实施完成!变更文件:"
|
|
514
267
|
git diff --name-status
|
|
515
268
|
|
|
516
|
-
# 询问用户是否需要审查
|
|
517
269
|
AskUserQuestion {
|
|
518
270
|
question: "是否运行代码审查?",
|
|
519
271
|
options: [
|
|
@@ -523,237 +275,72 @@ AskUserQuestion {
|
|
|
523
275
|
}
|
|
524
276
|
```
|
|
525
277
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
```bash
|
|
529
|
-
if [ "$USER_CHOICE" == "是,运行 /ccg:review" ]; then
|
|
530
|
-
echo "🔍 启动代码审查..."
|
|
531
|
-
|
|
532
|
-
# 调用 ccg:review 命令
|
|
533
|
-
/ccg:review
|
|
534
|
-
fi
|
|
535
|
-
```
|
|
278
|
+
如果用户选择审查,调用 `/ccg:review`。
|
|
536
279
|
|
|
537
280
|
---
|
|
538
281
|
|
|
539
|
-
### 步骤 4
|
|
540
|
-
|
|
541
|
-
实施完成后,提供后续步骤建议:
|
|
282
|
+
### 步骤 4:后续建议
|
|
542
283
|
|
|
543
284
|
```bash
|
|
544
|
-
echo ""
|
|
545
285
|
echo "✅ 功能开发完成!"
|
|
546
286
|
echo ""
|
|
547
|
-
echo "📋
|
|
287
|
+
echo "📋 后续步骤:"
|
|
548
288
|
echo " 1. 运行测试:npm run test"
|
|
549
289
|
echo " 2. 启动开发服务器:npm run dev"
|
|
550
|
-
echo " 3.
|
|
290
|
+
echo " 3. 验证功能是否正常"
|
|
551
291
|
echo " 4. 运行 /ccg:commit 提交代码"
|
|
552
292
|
echo ""
|
|
553
|
-
echo "📂
|
|
554
|
-
echo " • 计划文档:$PLAN_FILE"
|
|
555
|
-
echo " • 项目上下文:.claude/repo-context.md"
|
|
556
|
-
echo ""
|
|
293
|
+
echo "📂 计划文档:$PLAN_FILE"
|
|
557
294
|
```
|
|
558
295
|
|
|
559
296
|
---
|
|
560
297
|
|
|
561
|
-
##
|
|
562
|
-
|
|
563
|
-
支持通过参数快速指定模式:
|
|
298
|
+
## 命令参数
|
|
564
299
|
|
|
565
300
|
```bash
|
|
566
|
-
# 显式指定规划模式
|
|
567
|
-
/ccg:feat --mode=
|
|
568
|
-
|
|
569
|
-
#
|
|
570
|
-
/ccg:feat --mode=implement ".claude/plan/用户登录功能.md"
|
|
571
|
-
|
|
572
|
-
# 显式指定迭代模式
|
|
573
|
-
/ccg:feat --mode=iterate ".claude/plan/用户登录功能.md" "调整密码验证逻辑"
|
|
574
|
-
|
|
575
|
-
# 指定任务类型(跳过自动判断)
|
|
576
|
-
/ccg:feat --type=frontend "实现登录页面"
|
|
301
|
+
/ccg:feat --mode=plan "实现用户登录" # 显式指定规划模式
|
|
302
|
+
/ccg:feat --mode=implement "path/to/plan" # 显式指定实施模式
|
|
303
|
+
/ccg:feat --mode=iterate "path" "调整需求" # 显式指定迭代模式
|
|
304
|
+
/ccg:feat --type=frontend "实现登录页面" # 指定任务类型
|
|
577
305
|
/ccg:feat --type=backend "实现登录 API"
|
|
578
|
-
/ccg:feat --type=fullstack "
|
|
306
|
+
/ccg:feat --type=fullstack "实现完整登录"
|
|
579
307
|
```
|
|
580
308
|
|
|
581
309
|
---
|
|
582
310
|
|
|
583
311
|
## 使用示例
|
|
584
312
|
|
|
585
|
-
### 示例 1:从需求到实施(完整流程)
|
|
586
|
-
|
|
587
313
|
```bash
|
|
588
|
-
#
|
|
314
|
+
# 示例 1:完整流程
|
|
589
315
|
/ccg:feat 实现用户登录功能
|
|
590
316
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
#
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
讨论调整
|
|
612
|
-
重新规划
|
|
613
|
-
仅保存计划
|
|
614
|
-
|
|
615
|
-
# 用户选择:开始实施
|
|
616
|
-
|
|
617
|
-
# 第 7 步:多模型实施
|
|
618
|
-
🎨 前端任务 → 路由到 Gemini
|
|
619
|
-
⚙️ 后端任务 → 路由到 Codex
|
|
620
|
-
|
|
621
|
-
✓ 前端实施完成 (Session: 019a7247-...)
|
|
622
|
-
✓ 后端实施完成 (Session: 019a7248-...)
|
|
623
|
-
|
|
624
|
-
# 第 8 步:实施后验证
|
|
625
|
-
📝 实施完成!变更文件:
|
|
626
|
-
M app/api/auth/login/route.ts
|
|
627
|
-
A app/login/page.tsx
|
|
628
|
-
A components/LoginForm.tsx
|
|
629
|
-
M lib/auth.ts
|
|
630
|
-
|
|
631
|
-
? 是否运行代码审查?
|
|
632
|
-
> 是,运行 /ccg:review
|
|
633
|
-
跳过,手动检查
|
|
634
|
-
|
|
635
|
-
# 完成!
|
|
636
|
-
✅ 功能开发完成!
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
### 示例 2:讨论迭代(调整计划)
|
|
640
|
-
|
|
641
|
-
```bash
|
|
642
|
-
# 用户输入
|
|
643
|
-
/ccg:feat 调整用户登录功能,增加"记住我"选项
|
|
644
|
-
|
|
645
|
-
# 系统识别:讨论迭代模式
|
|
646
|
-
|
|
647
|
-
✓ 找到现有计划:.claude/plan/用户登录功能.md
|
|
648
|
-
✓ 读取现有计划内容
|
|
649
|
-
✓ 调用 planner 重新规划...
|
|
650
|
-
|
|
651
|
-
✓ 新计划已生成:.claude/plan/用户登录功能-1.md
|
|
652
|
-
|
|
653
|
-
? 功能规划已完成,请选择下一步操作:
|
|
654
|
-
> 开始实施(推荐)
|
|
655
|
-
继续讨论调整
|
|
656
|
-
重新规划
|
|
657
|
-
仅保存计划
|
|
658
|
-
```
|
|
659
|
-
|
|
660
|
-
### 示例 3:直接实施(跳过规划)
|
|
661
|
-
|
|
662
|
-
```bash
|
|
663
|
-
# 用户输入
|
|
317
|
+
→ 系统识别:需求规划模式
|
|
318
|
+
→ 检索上下文(MCP)
|
|
319
|
+
→ 判断任务类型:全栈
|
|
320
|
+
→ 调用 ui-ux-designer
|
|
321
|
+
→ 调用 planner
|
|
322
|
+
→ 生成计划:.claude/plan/用户登录功能.md
|
|
323
|
+
→ 用户确认:开始实施
|
|
324
|
+
→ 并行调用 Gemini(前端)+ Codex(后端)
|
|
325
|
+
→ 实施完成
|
|
326
|
+
→ 可选:运行代码审查
|
|
327
|
+
|
|
328
|
+
# 示例 2:讨论迭代
|
|
329
|
+
/ccg:feat 调整登录功能,增加"记住我"选项
|
|
330
|
+
|
|
331
|
+
→ 系统识别:讨论迭代模式
|
|
332
|
+
→ 读取现有计划:.claude/plan/用户登录功能.md
|
|
333
|
+
→ 调用 planner 重新规划
|
|
334
|
+
→ 生成新版本:.claude/plan/用户登录功能-1.md
|
|
335
|
+
|
|
336
|
+
# 示例 3:直接实施
|
|
664
337
|
/ccg:feat 按照 .claude/plan/用户登录功能.md 开始实施
|
|
665
338
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
🎨 前端任务 → 路由到 Gemini
|
|
672
|
-
⚙️ 后端任务 → 路由到 Codex
|
|
673
|
-
|
|
674
|
-
✓ 实施完成!
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
---
|
|
678
|
-
|
|
679
|
-
## 注意事项
|
|
680
|
-
|
|
681
|
-
1. **计划文件管理**:
|
|
682
|
-
- 所有计划保存在 `.claude/plan/` 目录
|
|
683
|
-
- 建议将 `.claude/` 加入 `.gitignore`(或选择性提交计划文档)
|
|
684
|
-
|
|
685
|
-
2. **Session 恢复**:
|
|
686
|
-
- 如果实施中断,可使用 SESSION_ID 恢复:
|
|
687
|
-
```bash
|
|
688
|
-
codeagent-wrapper --backend gemini resume <SESSION_ID> - <<'EOF'
|
|
689
|
-
继续上次的任务
|
|
690
|
-
EOF
|
|
691
|
-
```
|
|
692
|
-
|
|
693
|
-
3. **多模型协作**:
|
|
694
|
-
- Gemini:擅长 UI/UX、组件设计、样式实现
|
|
695
|
-
- Codex:擅长业务逻辑、API 设计、数据库操作
|
|
696
|
-
- Claude:负责整体编排、代码重构、质量保证
|
|
697
|
-
|
|
698
|
-
4. **代码审查**:
|
|
699
|
-
- 强烈建议实施后运行 `/ccg:review` 进行双模型审查
|
|
700
|
-
- 90 分以上视为高质量代码
|
|
701
|
-
|
|
702
|
-
5. **测试覆盖**:
|
|
703
|
-
- planner 会建议测试策略,但需手动实施
|
|
704
|
-
- 可运行 `/ccg:test` 生成测试用例
|
|
705
|
-
|
|
706
|
-
---
|
|
707
|
-
|
|
708
|
-
## 工作流程图
|
|
709
|
-
|
|
710
|
-
```mermaid
|
|
711
|
-
graph TD
|
|
712
|
-
Start[用户输入需求] --> Identify{识别输入类型}
|
|
713
|
-
|
|
714
|
-
Identify -->|需求规划| CheckContext[检查项目上下文]
|
|
715
|
-
Identify -->|讨论迭代| LoadPlan[读取现有计划]
|
|
716
|
-
Identify -->|执行实施| ReadPlan[读取计划文档]
|
|
717
|
-
|
|
718
|
-
CheckContext --> AceTool[ace-tool 检索相关代码]
|
|
719
|
-
AceTool --> JudgeType{判断任务类型}
|
|
720
|
-
|
|
721
|
-
JudgeType -->|前端/全栈| UIUX[调用 ui-ux-designer]
|
|
722
|
-
JudgeType -->|后端| Planner1[调用 planner]
|
|
723
|
-
|
|
724
|
-
UIUX --> Planner2[调用 planner]
|
|
725
|
-
Planner1 --> SavePlan[保存计划文档]
|
|
726
|
-
Planner2 --> SavePlan
|
|
727
|
-
|
|
728
|
-
SavePlan --> Confirm{用户确认}
|
|
729
|
-
|
|
730
|
-
Confirm -->|开始实施| ReadPlan
|
|
731
|
-
Confirm -->|讨论调整| LoadPlan
|
|
732
|
-
Confirm -->|重新规划| CheckContext
|
|
733
|
-
Confirm -->|仅保存| End1[结束]
|
|
734
|
-
|
|
735
|
-
LoadPlan --> Planner3[调用 planner 重新规划]
|
|
736
|
-
Planner3 --> SavePlan
|
|
737
|
-
|
|
738
|
-
ReadPlan --> Analyze[分析任务类型]
|
|
739
|
-
|
|
740
|
-
Analyze -->|前端| Gemini[codeagent-wrapper: Gemini]
|
|
741
|
-
Analyze -->|后端| Codex[codeagent-wrapper: Codex]
|
|
742
|
-
Analyze -->|全栈| Parallel[并行调用 Gemini + Codex]
|
|
743
|
-
|
|
744
|
-
Gemini --> Verify[实施后验证]
|
|
745
|
-
Codex --> Verify
|
|
746
|
-
Parallel --> Verify
|
|
747
|
-
|
|
748
|
-
Verify --> Review{运行代码审查?}
|
|
749
|
-
|
|
750
|
-
Review -->|是| CCGReview[/ccg:review]
|
|
751
|
-
Review -->|否| End2[结束]
|
|
752
|
-
|
|
753
|
-
CCGReview --> End2
|
|
754
|
-
|
|
755
|
-
End1[结束]
|
|
756
|
-
End2[结束]
|
|
339
|
+
→ 系统识别:执行实施模式
|
|
340
|
+
→ 读取计划文档
|
|
341
|
+
→ 分析任务类型:全栈
|
|
342
|
+
→ 并行调用 Gemini + Codex
|
|
343
|
+
→ 实施完成
|
|
757
344
|
```
|
|
758
345
|
|
|
759
346
|
---
|