ccg-workflow 2.1.15 → 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.C2MaYeHU.mjs → ccg-workflow.81OoN8XX.mjs} +629 -297
- 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,156 @@
|
|
|
1
|
+
# Strategy: Debug Investigate — 深度调试
|
|
2
|
+
|
|
3
|
+
> 适用于原因不明的复杂 bug,需要多模型并行诊断和交叉验证。
|
|
4
|
+
|
|
5
|
+
## 适用条件
|
|
6
|
+
- 复杂度 M 或以上
|
|
7
|
+
- 错误原因不明确
|
|
8
|
+
- 需要多角度诊断
|
|
9
|
+
|
|
10
|
+
## 前置加载
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Read("~/.claude/.ccg/engine/model-router.md")
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 工作流状态机
|
|
19
|
+
|
|
20
|
+
[phase-state:1-collect]
|
|
21
|
+
当前阶段:信息收集
|
|
22
|
+
📍 Next: 收集完错误信息后启动双模型诊断
|
|
23
|
+
[/phase-state:1-collect]
|
|
24
|
+
|
|
25
|
+
[phase-state:2-diagnose]
|
|
26
|
+
当前阶段:双模型并行诊断
|
|
27
|
+
Gate: 错误信息已收集 ✓
|
|
28
|
+
📍 Next: 双模型诊断返回后进入交叉验证
|
|
29
|
+
[/phase-state:2-diagnose]
|
|
30
|
+
|
|
31
|
+
[phase-state:3-validate]
|
|
32
|
+
当前阶段:交叉验证
|
|
33
|
+
Gate: 双模型诊断已返回 ✓
|
|
34
|
+
📍 Next: 假设排序后请用户确认修复方向
|
|
35
|
+
[/phase-state:3-validate]
|
|
36
|
+
|
|
37
|
+
[phase-state:4-confirm]
|
|
38
|
+
当前阶段:用户确认(HARD STOP)
|
|
39
|
+
Gate: 假设已排序 ✓
|
|
40
|
+
📍 Next: 用户确认后进入修复
|
|
41
|
+
[/phase-state:4-confirm]
|
|
42
|
+
|
|
43
|
+
[phase-state:5-fix]
|
|
44
|
+
当前阶段:修复与验证
|
|
45
|
+
Gate: 用户已确认修复方向 ✓
|
|
46
|
+
📍 Next: 修复完成后报告结果
|
|
47
|
+
[/phase-state:5-fix]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 阶段详情
|
|
52
|
+
|
|
53
|
+
### Phase 1: 信息收集 [required]
|
|
54
|
+
|
|
55
|
+
**Task 更新**:`currentPhase → "1-collect"`, `nextAction → "收集错误信息"`
|
|
56
|
+
|
|
57
|
+
1. 收集错误上下文:
|
|
58
|
+
- 错误消息 / 堆栈跟踪
|
|
59
|
+
- 复现步骤(如果有)
|
|
60
|
+
- 最近的相关变更(`git log --oneline -10`)
|
|
61
|
+
- 环境信息(如相关)
|
|
62
|
+
|
|
63
|
+
2. 搜索相关代码(Grep/MCP)
|
|
64
|
+
3. 读取可能相关的文件
|
|
65
|
+
|
|
66
|
+
### Phase 2: 双模型并行诊断 [required]
|
|
67
|
+
|
|
68
|
+
**Gate check**: 错误信息已收集
|
|
69
|
+
|
|
70
|
+
**并行调用**(`run_in_background: true`):
|
|
71
|
+
- **backend 模型**:debugger 角色
|
|
72
|
+
```
|
|
73
|
+
<TASK>
|
|
74
|
+
需求:诊断以下问题
|
|
75
|
+
上下文:[错误信息、堆栈、相关代码]
|
|
76
|
+
</TASK>
|
|
77
|
+
OUTPUT: 诊断假设(按可能性排序,每个假设含:根因分析、证据、修复建议)
|
|
78
|
+
```
|
|
79
|
+
- **frontend 模型**:debugger 角色(相同格式)
|
|
80
|
+
|
|
81
|
+
等待双模型返回。
|
|
82
|
+
|
|
83
|
+
**Task 更新**:`currentPhase → "2-diagnose"`, `nextAction → "等待双模型诊断返回"`
|
|
84
|
+
|
|
85
|
+
### Phase 3: 交叉验证
|
|
86
|
+
|
|
87
|
+
**Gate check**: 双模型诊断已返回
|
|
88
|
+
|
|
89
|
+
1. 对比两个模型的诊断结果
|
|
90
|
+
2. 找出共识点(两个模型都指出的问题 → 高可信度)
|
|
91
|
+
3. 找出分歧点(只有一个模型指出 → 需要验证)
|
|
92
|
+
4. 综合排序所有假设:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
🔍 诊断结果
|
|
96
|
+
|
|
97
|
+
### 高可信度假设(双模型共识)
|
|
98
|
+
1. [假设] — [证据]
|
|
99
|
+
修复方案: [具体方案]
|
|
100
|
+
|
|
101
|
+
### 待验证假设(单模型提出)
|
|
102
|
+
2. [假设] — [来源模型] — [证据]
|
|
103
|
+
修复方案: [具体方案]
|
|
104
|
+
|
|
105
|
+
### 已排除
|
|
106
|
+
- [假设] — [排除理由]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Phase 4: 用户确认 [required · HARD STOP]
|
|
110
|
+
|
|
111
|
+
**Gate check**: 假设已排序
|
|
112
|
+
|
|
113
|
+
展示诊断结果,请用户选择修复方向:
|
|
114
|
+
- 按假设 1 修复
|
|
115
|
+
- 按假设 2 修复
|
|
116
|
+
- 需要更多调查
|
|
117
|
+
- 其他方向
|
|
118
|
+
|
|
119
|
+
**Task 更新**:
|
|
120
|
+
```
|
|
121
|
+
更新 task.json:
|
|
122
|
+
currentPhase → "4-confirm"
|
|
123
|
+
gate → "user_approval_required"
|
|
124
|
+
nextAction → "等待用户确认修复方向"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**必须等待用户明确确认**,不可自动选择。
|
|
128
|
+
|
|
129
|
+
用户确认后:`task.json: gate → null, currentPhase → "5-fix"`
|
|
130
|
+
|
|
131
|
+
### Phase 5: 修复与验证
|
|
132
|
+
|
|
133
|
+
**Gate check**: 用户已确认
|
|
134
|
+
|
|
135
|
+
1. 按确认的方向应用修复
|
|
136
|
+
2. 运行测试验证
|
|
137
|
+
3. 如果修复无效 → 回退,尝试下一个假设,或返回 Phase 4 重新确认
|
|
138
|
+
4. 输出结果:
|
|
139
|
+
```
|
|
140
|
+
✅ 调试完成
|
|
141
|
+
根因: [确认的根因]
|
|
142
|
+
修复: [应用的修复]
|
|
143
|
+
验证: [测试结果]
|
|
144
|
+
📍 Next: /ccg commit 提交修复
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Task 更新**:`status → "completed"`, `nextAction → "可用 /ccg:commit 提交修复"`
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 铁律
|
|
152
|
+
|
|
153
|
+
- **Phase 4 是 HARD STOP** — 不可自动决定修复方向
|
|
154
|
+
- **双模型诊断必须并行** — 独立诊断才有交叉验证价值
|
|
155
|
+
- **修复前必须有诊断** — 不可跳过 Phase 2-3 直接改代码
|
|
156
|
+
- **修复无效时必须回退** — 不可在错误方向上继续深入
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Strategy: Deep Research — 深度研究
|
|
2
|
+
|
|
3
|
+
> 适用于技术方案研究、对比分析。多模型并行探索,结构化输出。
|
|
4
|
+
|
|
5
|
+
## 适用条件
|
|
6
|
+
- 用户提出研究/分析/对比类问题
|
|
7
|
+
- 不涉及代码修改(纯研究)
|
|
8
|
+
- 任何复杂度级别
|
|
9
|
+
|
|
10
|
+
## 前置加载
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Read("~/.claude/.ccg/engine/model-router.md")
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 工作流状态机
|
|
19
|
+
|
|
20
|
+
[phase-state:1-clarify]
|
|
21
|
+
当前阶段:明确研究问题
|
|
22
|
+
📍 Next: 问题明确后启动多模型探索
|
|
23
|
+
[/phase-state:1-clarify]
|
|
24
|
+
|
|
25
|
+
[phase-state:2-explore]
|
|
26
|
+
当前阶段:多模型并行探索
|
|
27
|
+
Gate: 研究问题已明确 ✓
|
|
28
|
+
📍 Next: 双模型结果返回后进入综合
|
|
29
|
+
[/phase-state:2-explore]
|
|
30
|
+
|
|
31
|
+
[phase-state:3-synthesize]
|
|
32
|
+
当前阶段:综合分析
|
|
33
|
+
Gate: 双模型探索已返回 ✓
|
|
34
|
+
📍 Next: 输出结构化报告后进入讨论
|
|
35
|
+
[/phase-state:3-synthesize]
|
|
36
|
+
|
|
37
|
+
[phase-state:4-discuss]
|
|
38
|
+
当前阶段:交互式讨论
|
|
39
|
+
📍 Next: 用户满意后结束
|
|
40
|
+
[/phase-state:4-discuss]
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 阶段详情
|
|
45
|
+
|
|
46
|
+
### Phase 1: 明确问题 [required]
|
|
47
|
+
|
|
48
|
+
1. 解析用户的研究意图:
|
|
49
|
+
- 要研究什么?
|
|
50
|
+
- 研究目的是什么?(做决策?了解现状?评估可行性?)
|
|
51
|
+
- 有什么约束或偏好?
|
|
52
|
+
|
|
53
|
+
2. 如果问题太宽泛,先收窄:
|
|
54
|
+
```
|
|
55
|
+
📋 研究范围
|
|
56
|
+
问题: [明确的研究问题]
|
|
57
|
+
目的: [决策/了解/评估]
|
|
58
|
+
约束: [时间/技术/资源约束]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Phase 2: 多模型并行探索 [required]
|
|
62
|
+
|
|
63
|
+
**Task 更新**:`currentPhase → "2-explore"`, `nextAction → "双模型并行探索"`
|
|
64
|
+
|
|
65
|
+
**并行调用**(`run_in_background: true`):
|
|
66
|
+
- **backend 模型**:analyzer 角色
|
|
67
|
+
```
|
|
68
|
+
<TASK>
|
|
69
|
+
需求:研究分析 [问题]
|
|
70
|
+
上下文:[项目上下文、技术栈、约束]
|
|
71
|
+
</TASK>
|
|
72
|
+
OUTPUT: 技术分析报告(可行性、架构选项、风险、成本估算)
|
|
73
|
+
```
|
|
74
|
+
- **frontend 模型**:analyzer 角色
|
|
75
|
+
```
|
|
76
|
+
<TASK>
|
|
77
|
+
需求:研究分析 [问题]
|
|
78
|
+
上下文:[项目上下文、用户场景、约束]
|
|
79
|
+
</TASK>
|
|
80
|
+
OUTPUT: 用户/体验视角分析(UX 影响、用户流程、设计选项)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
等待双模型返回。
|
|
84
|
+
|
|
85
|
+
### Phase 3: 综合分析
|
|
86
|
+
|
|
87
|
+
**Gate check**: 双模型探索已返回
|
|
88
|
+
|
|
89
|
+
交叉对比双方视角。
|
|
90
|
+
|
|
91
|
+
**持久化研究成果**(如有任务目录):
|
|
92
|
+
- 将双模型原始分析写入 `.ccg/tasks/{task-name}/research/backend-analysis.md`
|
|
93
|
+
- 将双模型原始分析写入 `.ccg/tasks/{task-name}/research/frontend-analysis.md`
|
|
94
|
+
|
|
95
|
+
输出结构化报告:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
📋 研究报告: [主题]
|
|
99
|
+
|
|
100
|
+
## 选项对比
|
|
101
|
+
|
|
102
|
+
| 维度 | 方案 A | 方案 B | 方案 C |
|
|
103
|
+
|------|--------|--------|--------|
|
|
104
|
+
| 概述 | ... | ... | ... |
|
|
105
|
+
| 优势 | ... | ... | ... |
|
|
106
|
+
| 劣势 | ... | ... | ... |
|
|
107
|
+
| 复杂度 | S/M/L | S/M/L | S/M/L |
|
|
108
|
+
| 风险 | low/mid/high | ... | ... |
|
|
109
|
+
| 预估工期 | ... | ... | ... |
|
|
110
|
+
|
|
111
|
+
## 推荐
|
|
112
|
+
|
|
113
|
+
**推荐方案 [X]**
|
|
114
|
+
理由:[简明理由]
|
|
115
|
+
|
|
116
|
+
## 注意事项
|
|
117
|
+
- [关键风险或注意点]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Phase 4: 交互式讨论
|
|
121
|
+
|
|
122
|
+
用户可以:
|
|
123
|
+
- 追问某个方案的细节
|
|
124
|
+
- 要求更深入分析某个方面
|
|
125
|
+
- 要求 POC / 原型验证
|
|
126
|
+
- 确认结论并结束
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
📍 研究已完成。如需实施推荐方案,可以用 /ccg:go implement [方案描述]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Task 更新**(如有):`status → "completed"`, `nextAction → "研究完成,可实施推荐方案"`
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 铁律
|
|
137
|
+
|
|
138
|
+
- **纯研究模式,不做代码修改** — 除非用户明确要求 POC
|
|
139
|
+
- **结果必须结构化输出** — 表格对比,不是自由聊天
|
|
140
|
+
- **必须给出推荐** — 不可只列选项不做判断
|
|
141
|
+
- **双模型探索必须并行** — 独立视角更有价值
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Strategy: Direct Fix — 直接修复
|
|
2
|
+
|
|
3
|
+
> 适用于范围清晰、单文件的简单 bug 修复。Claude 独立完成,不调用外部模型。
|
|
4
|
+
|
|
5
|
+
## 适用条件
|
|
6
|
+
- 复杂度 S(单文件,<30 行变更)
|
|
7
|
+
- 错误信息或复现路径明确
|
|
8
|
+
- 风险 low 或 medium
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 工作流状态机
|
|
13
|
+
|
|
14
|
+
[phase-state:1-locate]
|
|
15
|
+
当前阶段:定位问题代码
|
|
16
|
+
Gate: 项目上下文已获取 ✓(由 /ccg Phase 1 完成)
|
|
17
|
+
📍 Next: 找到问题代码后进入诊断阶段
|
|
18
|
+
[/phase-state:1-locate]
|
|
19
|
+
|
|
20
|
+
[phase-state:2-diagnose]
|
|
21
|
+
当前阶段:诊断根因
|
|
22
|
+
Gate: 已找到相关代码 ✓
|
|
23
|
+
📍 Next: 确定根因后进入修复阶段
|
|
24
|
+
[/phase-state:2-diagnose]
|
|
25
|
+
|
|
26
|
+
[phase-state:3-fix]
|
|
27
|
+
当前阶段:应用修复
|
|
28
|
+
Gate: 根因已确定 ✓
|
|
29
|
+
📍 Next: 修复完成后进入验证阶段
|
|
30
|
+
[/phase-state:3-fix]
|
|
31
|
+
|
|
32
|
+
[phase-state:4-verify]
|
|
33
|
+
当前阶段:验证修复
|
|
34
|
+
Gate: 修复已应用 ✓
|
|
35
|
+
📍 Next: 验证通过后报告结果,建议提交
|
|
36
|
+
[/phase-state:4-verify]
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 阶段详情
|
|
41
|
+
|
|
42
|
+
### Phase 1: 定位 [required]
|
|
43
|
+
|
|
44
|
+
1. 从用户描述中提取关键信息:
|
|
45
|
+
- 错误消息(如果有)
|
|
46
|
+
- 发生位置(文件、功能、页面)
|
|
47
|
+
- 复现步骤
|
|
48
|
+
|
|
49
|
+
2. 搜索相关代码:
|
|
50
|
+
- 有错误消息 → `Grep` 搜索错误文本
|
|
51
|
+
- 有文件/函数名 → 直接 `Read` 目标文件
|
|
52
|
+
- 信息不足 → 用 MCP 搜索工具或 `Grep` 按关键词搜索
|
|
53
|
+
|
|
54
|
+
3. 读取找到的代码文件,理解上下文
|
|
55
|
+
|
|
56
|
+
### Phase 2: 诊断 [required]
|
|
57
|
+
|
|
58
|
+
1. 分析代码逻辑,找到 bug 的根因
|
|
59
|
+
2. 如果有多个可能原因,按可能性排序
|
|
60
|
+
3. 简要说明诊断结果:
|
|
61
|
+
```
|
|
62
|
+
🔍 诊断
|
|
63
|
+
文件: [path:line]
|
|
64
|
+
根因: [一句话说明]
|
|
65
|
+
修复方案: [一句话说明]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Phase 3: 修复
|
|
69
|
+
|
|
70
|
+
1. 应用最小修复(只改必要的部分)
|
|
71
|
+
2. 如果项目有测试 → 运行相关测试
|
|
72
|
+
3. 如果没有测试 → 建议但不强制添加
|
|
73
|
+
|
|
74
|
+
### Phase 4: 验证
|
|
75
|
+
|
|
76
|
+
1. `git diff` 展示变更
|
|
77
|
+
2. 确认修复合理性:
|
|
78
|
+
- 变更范围是否最小?
|
|
79
|
+
- 是否引入新问题?
|
|
80
|
+
- 边界条件是否考虑?
|
|
81
|
+
3. 如果修复涉及认证/输入处理/安全相关代码 → `/verify-security` 安全扫描
|
|
82
|
+
4. 输出结果:
|
|
83
|
+
```
|
|
84
|
+
✅ 修复完成
|
|
85
|
+
变更: [N] 文件,[M] 行
|
|
86
|
+
根因: [简述]
|
|
87
|
+
修复: [简述]
|
|
88
|
+
📍 Next: 可以用 /ccg:commit 提交
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 升级规则
|
|
94
|
+
|
|
95
|
+
如果在 Phase 1-2 中发现以下情况,建议升级:
|
|
96
|
+
- 涉及 3+ 文件 → 升级到 `guided-develop`
|
|
97
|
+
- 原因不明,需要深度调试 → 升级到 `debug-investigate`
|
|
98
|
+
- 涉及架构问题 → 升级到 `refactor-safely`
|
|
99
|
+
|
|
100
|
+
告知用户并等待确认后切换策略。
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 铁律
|
|
105
|
+
|
|
106
|
+
- **不可在未读代码的情况下猜测修复方案** — Phase 1 必须实际读取代码
|
|
107
|
+
- **最小修复原则** — 只改导致 bug 的部分,不做"顺手重构"
|
|
108
|
+
- **不可跳过诊断直接改代码** — 即使"一眼看出问题",也要经过 Phase 2 确认根因
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# Strategy: Full Collaborate — 完整多模型协作
|
|
2
|
+
|
|
3
|
+
> 适用于复杂功能开发,需要多模型并行分析、规划和审查。等效于 /ccg:workflow。
|
|
4
|
+
|
|
5
|
+
## 适用条件
|
|
6
|
+
- 复杂度 L/XL(5+ 文件,跨模块,架构级变更)
|
|
7
|
+
- 风险 medium 或 high
|
|
8
|
+
- 需要多角度分析和交叉验证
|
|
9
|
+
|
|
10
|
+
## 前置加载
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Read("~/.claude/.ccg/engine/model-router.md")
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 工作流状态机
|
|
19
|
+
|
|
20
|
+
[phase-state:1-research]
|
|
21
|
+
当前阶段:研究与分析 [模式:研究]
|
|
22
|
+
📍 Next: 需求评分 ≥7 后进入多模型构思
|
|
23
|
+
[/phase-state:1-research]
|
|
24
|
+
|
|
25
|
+
[phase-state:2-ideation]
|
|
26
|
+
当前阶段:多模型构思 [模式:构思]
|
|
27
|
+
Gate: 需求完整性评分 ≥7 ✓
|
|
28
|
+
📍 Next: 双模型分析结果返回后进入规划
|
|
29
|
+
[/phase-state:2-ideation]
|
|
30
|
+
|
|
31
|
+
[phase-state:3-planning]
|
|
32
|
+
当前阶段:详细规划 [模式:计划]
|
|
33
|
+
Gate: 双模型分析已返回 ✓
|
|
34
|
+
📍 Next: 用户审批计划后进入实施(HARD STOP)
|
|
35
|
+
[/phase-state:3-planning]
|
|
36
|
+
|
|
37
|
+
[phase-state:4-implementation]
|
|
38
|
+
当前阶段:实施 [模式:执行]
|
|
39
|
+
Gate: 用户已审批计划 ✓
|
|
40
|
+
📍 Next: 实施完成后进入优化审查
|
|
41
|
+
[/phase-state:4-implementation]
|
|
42
|
+
|
|
43
|
+
[phase-state:5-optimization]
|
|
44
|
+
当前阶段:优化审查 [模式:优化]
|
|
45
|
+
Gate: 实施已完成 ✓
|
|
46
|
+
📍 Next: 审查结果整合后进入最终验收
|
|
47
|
+
[/phase-state:5-optimization]
|
|
48
|
+
|
|
49
|
+
[phase-state:6-final]
|
|
50
|
+
当前阶段:最终验收 [模式:评审]
|
|
51
|
+
Gate: 优化审查已完成 ✓
|
|
52
|
+
📍 Next: 验收通过后建议提交
|
|
53
|
+
[/phase-state:6-final]
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 阶段详情
|
|
58
|
+
|
|
59
|
+
### Phase 1: 研究与分析 [required]
|
|
60
|
+
|
|
61
|
+
`[模式:研究]`
|
|
62
|
+
|
|
63
|
+
1. **需求增强**:分析 $ARGUMENTS 的意图、缺失信息、隐含假设,补全为结构化需求(目标、约束、范围、验收标准)
|
|
64
|
+
2. **上下文检索**:用 MCP 搜索工具收集项目上下文
|
|
65
|
+
3. **需求完整性评分**(0-10):
|
|
66
|
+
- 目标明确性(0-3)、预期结果(0-3)、边界范围(0-2)、约束条件(0-2)
|
|
67
|
+
- ≥7:继续 | <7:停止,提出补充问题
|
|
68
|
+
|
|
69
|
+
**Task 更新**:
|
|
70
|
+
```
|
|
71
|
+
更新 .ccg/tasks/{task-name}/task.json:
|
|
72
|
+
currentPhase → "1-research"
|
|
73
|
+
nextAction → "需求增强 + 上下文检索"
|
|
74
|
+
```
|
|
75
|
+
持久化:写入 `.ccg/tasks/{task-name}/requirements.md`
|
|
76
|
+
|
|
77
|
+
### Phase 2: 多模型构思 [required]
|
|
78
|
+
|
|
79
|
+
`[模式:构思]`
|
|
80
|
+
|
|
81
|
+
**Gate check**: 需求评分 ≥7
|
|
82
|
+
|
|
83
|
+
**并行调用**(`run_in_background: true`):
|
|
84
|
+
- **backend 模型**:analyzer 角色 — 技术可行性、后端方案、风险评估
|
|
85
|
+
- **frontend 模型**:analyzer 角色 — UI 可行性、前端方案、用户体验
|
|
86
|
+
|
|
87
|
+
使用 model-router.md 中的调用模板。
|
|
88
|
+
|
|
89
|
+
等待双模型返回:
|
|
90
|
+
```
|
|
91
|
+
TaskOutput({ task_id: "$BACKEND_TASK_ID", block: true, timeout: 600000 })
|
|
92
|
+
TaskOutput({ task_id: "$FRONTEND_TASK_ID", block: true, timeout: 600000 })
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**保存 SESSION_ID**(`BACKEND_SESSION` / `FRONTEND_SESSION`)用于后续复用。
|
|
96
|
+
|
|
97
|
+
**重试规则**:
|
|
98
|
+
- frontend 模型失败 → 重试 2 次,间隔 5s
|
|
99
|
+
- backend 模型执行中(5-15 分钟正常)→ 持续等待,**绝不终止**
|
|
100
|
+
- 3 次全败 → 降级为单模型,告知用户
|
|
101
|
+
|
|
102
|
+
综合双方分析,输出方案对比(至少 2 个方案)。
|
|
103
|
+
|
|
104
|
+
**Task 更新**:`currentPhase → "2-ideation"`, `nextAction → "综合分析结果,进入规划"`
|
|
105
|
+
**持久化**:写入 `.ccg/tasks/{task-name}/analysis.md`
|
|
106
|
+
|
|
107
|
+
**策展 context.jsonl**:
|
|
108
|
+
在进入 Phase 3 前,策展 `.ccg/tasks/{task-name}/context.jsonl`:
|
|
109
|
+
- 检查 `.ccg/spec/` 存在 → 列出相关 spec 文件
|
|
110
|
+
- 将 analysis.md 加入(子 Agent 在规划阶段需要参考分析结果)
|
|
111
|
+
- 格式:每行 `{"file": "路径", "reason": "原因"}`
|
|
112
|
+
|
|
113
|
+
### Phase 3: 详细规划 [required]
|
|
114
|
+
|
|
115
|
+
`[模式:计划]`
|
|
116
|
+
|
|
117
|
+
**Gate check**: 双模型分析已返回
|
|
118
|
+
|
|
119
|
+
**并行调用**(复用会话 `resume`):
|
|
120
|
+
- **backend 模型**:architect 角色 + `resume $BACKEND_SESSION`
|
|
121
|
+
- **frontend 模型**:architect 角色 + `resume $FRONTEND_SESSION`
|
|
122
|
+
|
|
123
|
+
综合双方规划,输出详细实施计划:
|
|
124
|
+
- 实施步骤(按文件/模块分组)
|
|
125
|
+
- 架构决策及理由
|
|
126
|
+
- 测试策略
|
|
127
|
+
- 风险及缓解措施
|
|
128
|
+
|
|
129
|
+
**持久化**:写入 `.ccg/tasks/{task-name}/plan.md`
|
|
130
|
+
|
|
131
|
+
**Task 更新**:
|
|
132
|
+
```
|
|
133
|
+
更新 task.json:
|
|
134
|
+
currentPhase → "3-planning"
|
|
135
|
+
gate → "user_approval_required"
|
|
136
|
+
nextAction → "等待用户审批计划"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**⛔ HARD STOP**:展示完整计划,并告知用户:
|
|
140
|
+
```
|
|
141
|
+
审批后将使用 Agent Teams 并行实施(多个 Builder 同时写代码)。
|
|
142
|
+
```
|
|
143
|
+
等待用户明确审批。未审批不可进入 Phase 4。
|
|
144
|
+
|
|
145
|
+
用户确认后:`task.json: gate → null`
|
|
146
|
+
|
|
147
|
+
### Phase 4: 实施(Agent Teams 并行)
|
|
148
|
+
|
|
149
|
+
`[模式:执行]`
|
|
150
|
+
|
|
151
|
+
**Gate check**: 用户已审批计划
|
|
152
|
+
|
|
153
|
+
**⛔⛔⛔ 你的第一个动作必须是 TeamCreate。不是 Write,不是 Bash,不是 Read,是 TeamCreate。⛔⛔⛔**
|
|
154
|
+
|
|
155
|
+
**你绝对不可以自己用 Write/Edit 工具写产品代码。所有代码由 Team Builder 写。你只做编排。**
|
|
156
|
+
|
|
157
|
+
**Task 更新**:`currentPhase → "4-implementation"`, `nextAction → "TeamCreate → spawn Builders"`
|
|
158
|
+
|
|
159
|
+
#### Step 1: 拆分子任务
|
|
160
|
+
|
|
161
|
+
从 plan.md 中提取实施步骤,按**文件归属**拆分为独立子任务:
|
|
162
|
+
- 每个子任务有明确的文件范围(互不重叠)
|
|
163
|
+
- 标注依赖关系:Layer 1(无依赖)→ Layer 2(依赖 Layer 1)
|
|
164
|
+
|
|
165
|
+
#### Step 2: 创建 Team(必须执行)
|
|
166
|
+
|
|
167
|
+
**立即调用 TeamCreate,不可跳过或假设会失败:**
|
|
168
|
+
```
|
|
169
|
+
TeamCreate({ team_name: "{task-id}-team", description: "CCG 实施团队" })
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
⚠️ 只有当 TeamCreate **实际返回错误**时(Agent Teams 未启用),才可降级为自己写。**不可预判失败而跳过。**
|
|
173
|
+
|
|
174
|
+
#### Step 3: 并行 spawn Layer 1 Builders
|
|
175
|
+
|
|
176
|
+
**所有 Layer 1 Builder 必须在同一条消息中 spawn**(一条消息多个 Agent 调用 = 真正并行):
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Agent({
|
|
180
|
+
team_name: "{task-id}-team",
|
|
181
|
+
name: "dev-1",
|
|
182
|
+
model: "sonnet",
|
|
183
|
+
prompt: "你是 Builder,负责实施子任务 1。\n\n## 工作目录\n{WORKDIR}\n\n## 文件范围约束(⛔ 硬性规则)\n你只能创建或修改以下文件:\n- {file1}\n- {file2}\n严禁修改其他文件。违反 = 任务失败。\n\n## 实施步骤\n{steps from plan.md}\n\n## 验收标准\n{criteria from prd}\n\n完成后标记任务 completed。"
|
|
184
|
+
})
|
|
185
|
+
Agent({
|
|
186
|
+
team_name: "{task-id}-team",
|
|
187
|
+
name: "dev-2",
|
|
188
|
+
model: "sonnet",
|
|
189
|
+
prompt: "..."
|
|
190
|
+
})
|
|
191
|
+
// ... 所有 Layer 1 dev 在这一条消息里
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
#### Step 4: 等待 Layer 1 → spawn Layer 2
|
|
195
|
+
|
|
196
|
+
- teammates 完成后自动通知(不需要轮询)
|
|
197
|
+
- Layer 1 全部完成后 → 在新消息中 spawn Layer 2 Builders
|
|
198
|
+
- Builder 遇到问题 → SendMessage 指导
|
|
199
|
+
|
|
200
|
+
#### Step 5: spawn Reviewer 快检
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
Agent({
|
|
204
|
+
team_name: "{task-id}-team",
|
|
205
|
+
name: "reviewer",
|
|
206
|
+
model: "sonnet",
|
|
207
|
+
prompt: "审查所有变更文件(git diff)。运行 lint/typecheck/test。输出 Critical/Warning/Info 分级报告。完成后标记 completed。"
|
|
208
|
+
})
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Critical → spawn fix-dev 修复(最多 2 轮)。
|
|
212
|
+
|
|
213
|
+
#### Step 6: shutdown + cleanup
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
SendMessage({ to: "dev-1", message: { type: "shutdown_request" } })
|
|
217
|
+
SendMessage({ to: "dev-2", message: { type: "shutdown_request" } })
|
|
218
|
+
SendMessage({ to: "reviewer", message: { type: "shutdown_request" } })
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
#### 降级方案(仅当 TeamCreate 实际报错时)
|
|
222
|
+
|
|
223
|
+
如果 TeamCreate 返回错误(如 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 未启用),则:
|
|
224
|
+
1. 告知用户:"Agent Teams 未启用,降级为顺序实施"
|
|
225
|
+
2. 按 plan.md 中的 Layer 顺序逐文件实施
|
|
226
|
+
3. 仍然遵守质量关卡
|
|
227
|
+
|
|
228
|
+
### Phase 5: 优化审查 + 质量关卡 [required]
|
|
229
|
+
|
|
230
|
+
`[模式:优化]`
|
|
231
|
+
|
|
232
|
+
**Gate check**: 实施已完成
|
|
233
|
+
|
|
234
|
+
**Task 更新**:`currentPhase → "5-optimization"`, `nextAction → "双模型审查 + 质量关卡"`
|
|
235
|
+
|
|
236
|
+
#### 5a. 双模型交叉审查
|
|
237
|
+
|
|
238
|
+
**并行调用**:
|
|
239
|
+
- **backend 模型**:reviewer 角色 — 关注安全、性能、错误处理
|
|
240
|
+
- **frontend 模型**:reviewer 角色 — 关注可访问性、设计一致性
|
|
241
|
+
|
|
242
|
+
#### 5b. 质量关卡
|
|
243
|
+
|
|
244
|
+
**⛔ 以下 Skill 必须逐个调用执行,不可跳过,不可用自己的判断替代:**
|
|
245
|
+
|
|
246
|
+
1. 调用 Skill `verify-security` — 等待报告
|
|
247
|
+
2. 调用 Skill `verify-quality` — 等待报告
|
|
248
|
+
3. 调用 Skill `verify-change` — 等待报告
|
|
249
|
+
|
|
250
|
+
任何关卡报告 **Critical** → 必须修复后重新运行该关卡,才能进入 Phase 6。
|
|
251
|
+
|
|
252
|
+
#### 5c. 综合报告
|
|
253
|
+
|
|
254
|
+
整合审查意见 + 质量关卡结果,按严重度分级:
|
|
255
|
+
- **Critical**:必须修复(阻塞交付)
|
|
256
|
+
- **Warning**:建议修复
|
|
257
|
+
- **Info**:供参考
|
|
258
|
+
|
|
259
|
+
展示审查结果,用户确认后执行必要的优化。
|
|
260
|
+
**持久化**:写入 `.ccg/tasks/{task-name}/review.md`
|
|
261
|
+
|
|
262
|
+
### Phase 6: 最终验收
|
|
263
|
+
|
|
264
|
+
`[模式:评审]`
|
|
265
|
+
|
|
266
|
+
**Task 更新**:`currentPhase → "6-final"`, `nextAction → "最终验收"`
|
|
267
|
+
|
|
268
|
+
1. 对照计划检查完成情况
|
|
269
|
+
2. 运行测试验证功能
|
|
270
|
+
3. `git diff` 全量变更摘要
|
|
271
|
+
4. 输出结果:
|
|
272
|
+
```
|
|
273
|
+
✅ 协作开发完成
|
|
274
|
+
变更: [N] 文件,[M] 行
|
|
275
|
+
方案: [选定方案摘要]
|
|
276
|
+
审查: [Critical: N, Warning: N, Info: N]
|
|
277
|
+
📍 Next: /ccg commit 提交,或查看 .ccg/tasks/{task-name}/ 中的完整记录
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Task 更新**:`status → "completed"`, `nextAction → "可用 /ccg:commit 提交"`
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## 铁律
|
|
285
|
+
|
|
286
|
+
- **Phase 3 必须用户审批** — HARD STOP,不可自动跳过
|
|
287
|
+
- **Phase 2 双模型必须并行** — 不可串行调用
|
|
288
|
+
- **外部模型返回前不可提前进入下一阶段** — 等待是必须的
|
|
289
|
+
- **不可因为"任务简单"而跳过 [required] 阶段** — 每个阶段都有其价值
|
|
290
|
+
- **外部模型零文件写入权限** — 所有修改由 Claude 执行
|
|
291
|
+
- **评分 <7 或用户未审批时强制停止** — 不可绕过
|