ccg-workflow 1.7.60 → 1.7.61
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/dist/cli.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/shared/{ccg-workflow.flWlQcrI.mjs → ccg-workflow.DRQxix1F.mjs} +1 -1
- package/package.json +5 -1
- package/templates/commands/team-exec.md +107 -0
- package/templates/commands/team-plan.md +118 -0
- package/templates/commands/team-research.md +123 -0
- package/templates/commands/team-review.md +95 -0
package/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import cac from 'cac';
|
|
3
3
|
import ansis from 'ansis';
|
|
4
|
-
import { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, s as showMainMenu, i as init, E as configMcp, F as version, a as i18n } from './shared/ccg-workflow.
|
|
4
|
+
import { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, s as showMainMenu, i as init, E as configMcp, F as version, a as i18n } from './shared/ccg-workflow.DRQxix1F.mjs';
|
|
5
5
|
import 'inquirer';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:util';
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as changeLanguage, x as checkForUpdates, y as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, t as getCurrentVersion, v as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, m as installAceToolRs, k as installWorkflows, p as migrateToV1_4_0, q as needsMigration, r as readCcgConfig, s as showMainMenu, o as uninstallAceTool, n as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.
|
|
1
|
+
export { c as changeLanguage, x as checkForUpdates, y as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, t as getCurrentVersion, v as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, m as installAceToolRs, k as installWorkflows, p as migrateToV1_4_0, q as needsMigration, r as readCcgConfig, s as showMainMenu, o as uninstallAceTool, n as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.DRQxix1F.mjs';
|
|
2
2
|
import 'ansis';
|
|
3
3
|
import 'inquirer';
|
|
4
4
|
import 'node:child_process';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccg-workflow",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.61",
|
|
4
4
|
"description": "Claude-Codex-Gemini 多模型协作系统 - 智能路由多模型开发工作流",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.17.1",
|
|
@@ -49,6 +49,10 @@
|
|
|
49
49
|
"templates/commands/spec-plan.md",
|
|
50
50
|
"templates/commands/spec-impl.md",
|
|
51
51
|
"templates/commands/spec-review.md",
|
|
52
|
+
"templates/commands/team-research.md",
|
|
53
|
+
"templates/commands/team-plan.md",
|
|
54
|
+
"templates/commands/team-exec.md",
|
|
55
|
+
"templates/commands/team-review.md",
|
|
52
56
|
"templates/commands/agents/",
|
|
53
57
|
"templates/prompts/codex/",
|
|
54
58
|
"templates/prompts/gemini/analyzer.md",
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Agent Teams 并行实施 - 读取计划文件,spawn Builder teammates 并行写代码'
|
|
3
|
+
---
|
|
4
|
+
<!-- CCG:TEAM:EXEC:START -->
|
|
5
|
+
**Core Philosophy**
|
|
6
|
+
- 实施是纯机械执行——所有决策已在 team-plan 阶段完成。
|
|
7
|
+
- Lead 不写代码,只做协调和汇总。
|
|
8
|
+
- Builder teammates 并行实施,文件范围严格隔离。
|
|
9
|
+
|
|
10
|
+
**Guardrails**
|
|
11
|
+
- **前置条件**:`.claude/team-plan/` 下必须有计划文件。没有则终止,提示先运行 `/ccg:team-plan`。
|
|
12
|
+
- **Agent Teams 必须启用**:需要 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`。
|
|
13
|
+
- Lead 绝不直接修改产品代码。
|
|
14
|
+
- 每个 Builder 只能修改分配给它的文件。
|
|
15
|
+
|
|
16
|
+
**Steps**
|
|
17
|
+
1. **前置检查**
|
|
18
|
+
- 检测 Agent Teams 是否可用。
|
|
19
|
+
- 若不可用,输出启用指引后终止:
|
|
20
|
+
```
|
|
21
|
+
⚠️ Agent Teams 未启用。请先配置:
|
|
22
|
+
在 settings.json 中添加:
|
|
23
|
+
{ "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }
|
|
24
|
+
```
|
|
25
|
+
- 读取 `.claude/team-plan/` 下最新的计划文件。
|
|
26
|
+
- 若无计划文件,提示:`请先运行 /ccg:team-plan <任务描述> 生成计划`,终止。
|
|
27
|
+
|
|
28
|
+
2. **解析计划**
|
|
29
|
+
- 解析子任务列表、文件范围、依赖关系、并行分组。
|
|
30
|
+
- 向用户展示摘要并确认:
|
|
31
|
+
```
|
|
32
|
+
📋 即将并行实施:
|
|
33
|
+
- 子任务:N 个
|
|
34
|
+
- 并行分组:Layer 1 (X 个并行) → Layer 2 (Y 个)
|
|
35
|
+
- Builder 数量:N 个(Sonnet)
|
|
36
|
+
确认开始?
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
3. **创建 Team + spawn Builders**
|
|
40
|
+
- 创建 Agent Team。
|
|
41
|
+
- 按 Layer 分组 spawn Builder teammates(Sonnet)。
|
|
42
|
+
- 每个 Builder 的 spawn prompt 必须包含:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
你是 Builder,负责实施一个子任务。严格按照以下指令执行。
|
|
46
|
+
|
|
47
|
+
## 你的任务
|
|
48
|
+
<从计划文件中提取该 Builder 负责的子任务全部内容,包括实施步骤>
|
|
49
|
+
|
|
50
|
+
## 工作目录
|
|
51
|
+
{{WORKDIR}}
|
|
52
|
+
|
|
53
|
+
## 文件范围约束(⛔ 硬性规则)
|
|
54
|
+
你只能创建或修改以下文件:
|
|
55
|
+
<文件列表>
|
|
56
|
+
严禁修改任何其他文件。违反此规则等于任务失败。
|
|
57
|
+
|
|
58
|
+
## 实施要求
|
|
59
|
+
1. 严格按照实施步骤执行
|
|
60
|
+
2. 代码必须符合项目现有规范和模式
|
|
61
|
+
3. 完成后运行相关的 lint/typecheck 验证(如果项目有配置)
|
|
62
|
+
4. 代码应自解释,非必要不加注释
|
|
63
|
+
|
|
64
|
+
## 验收标准
|
|
65
|
+
<从计划中提取>
|
|
66
|
+
|
|
67
|
+
完成所有步骤后,标记任务为 completed。
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
- **依赖关系**:Layer 2 的 Builder 任务设为依赖 Layer 1 的对应任务,等 Layer 1 完成后自动解锁。
|
|
71
|
+
- spawn 完成后,进入 **delegate 模式**,只协调不写码。
|
|
72
|
+
|
|
73
|
+
4. **监控进度**
|
|
74
|
+
- 等待所有 Builder 完成。
|
|
75
|
+
- 如果某个 Builder 遇到问题并发消息求助:
|
|
76
|
+
* 分析问题,给出指导建议
|
|
77
|
+
* 不要自己写代码替它完成
|
|
78
|
+
- 如果某个 Builder 失败:
|
|
79
|
+
* 记录失败原因
|
|
80
|
+
* 不影响其他 Builder 继续执行
|
|
81
|
+
|
|
82
|
+
5. **汇总 + 清理**
|
|
83
|
+
- 所有 Builder 完成后,汇总报告:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## ✅ Team 并行实施完成
|
|
87
|
+
|
|
88
|
+
### 变更摘要
|
|
89
|
+
| Builder | 子任务 | 状态 | 修改文件 |
|
|
90
|
+
|---------|--------|------|----------|
|
|
91
|
+
| Builder 1 | <名称> | ✅/❌ | file1, file2 |
|
|
92
|
+
| Builder 2 | <名称> | ✅/❌ | file3, file4 |
|
|
93
|
+
| ... | ... | ... | ... |
|
|
94
|
+
|
|
95
|
+
### 后续建议
|
|
96
|
+
1. 运行完整测试验证集成:`npm test` / `pnpm test`
|
|
97
|
+
2. 检查各模块间的集成是否正常
|
|
98
|
+
3. 提交代码:`git add -A && git commit`
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
- 关闭所有 teammates,清理 team。
|
|
102
|
+
|
|
103
|
+
**Exit Criteria**
|
|
104
|
+
- [ ] 所有 Builder 任务完成(或明确失败并记录原因)
|
|
105
|
+
- [ ] 变更摘要已输出
|
|
106
|
+
- [ ] Team 已清理
|
|
107
|
+
<!-- CCG:TEAM:EXEC:END -->
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Agent Teams 规划 - Lead 调用 Codex/Gemini 并行分析,产出零决策并行实施计划'
|
|
3
|
+
---
|
|
4
|
+
<!-- CCG:TEAM:PLAN:START -->
|
|
5
|
+
**Core Philosophy**
|
|
6
|
+
- 产出的计划必须让 Builder teammates 能无决策机械执行。
|
|
7
|
+
- 每个子任务的文件范围必须隔离,确保并行不冲突。
|
|
8
|
+
- 多模型协作是强制的:Codex(后端权威)+ Gemini(前端权威)。
|
|
9
|
+
|
|
10
|
+
**Guardrails**
|
|
11
|
+
- 多模型分析是 **mandatory**:必须同时调用 Codex 和 Gemini。
|
|
12
|
+
- 不写产品代码,只做分析和规划。
|
|
13
|
+
- 计划文件必须包含 Codex/Gemini 的实际分析摘要。
|
|
14
|
+
- 使用 `AskUserQuestion` 解决任何歧义。
|
|
15
|
+
|
|
16
|
+
**Steps**
|
|
17
|
+
1. **上下文收集**
|
|
18
|
+
- 用 Glob/Grep/Read 分析项目结构、技术栈、现有代码模式。
|
|
19
|
+
- 如果 `mcp__ace-tool__search_context` 可用,优先语义检索。
|
|
20
|
+
- 整理出:技术栈、目录结构、关键文件、现有模式。
|
|
21
|
+
|
|
22
|
+
2. **多模型并行分析(PARALLEL)**
|
|
23
|
+
- **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用,`run_in_background: true`。
|
|
24
|
+
- **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。
|
|
25
|
+
|
|
26
|
+
**FIRST Bash call (Codex)**:
|
|
27
|
+
```
|
|
28
|
+
Bash({
|
|
29
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend codex - \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/codex/analyzer.md\n<TASK>\n需求:$ARGUMENTS\n上下文:<步骤1收集的项目结构和关键代码>\n</TASK>\nOUTPUT:\n1) 技术可行性评估\n2) 推荐架构方案(精确到文件和函数)\n3) 详细实施步骤\n4) 风险评估\nEOF",
|
|
30
|
+
run_in_background: true,
|
|
31
|
+
timeout: 3600000,
|
|
32
|
+
description: "Codex 后端分析"
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**SECOND Bash call (Gemini) - IN THE SAME MESSAGE**:
|
|
37
|
+
```
|
|
38
|
+
Bash({
|
|
39
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend gemini {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/gemini/analyzer.md\n<TASK>\n需求:$ARGUMENTS\n上下文:<步骤1收集的项目结构和关键代码>\n</TASK>\nOUTPUT:\n1) UI/UX 方案\n2) 组件拆分建议(精确到文件和函数)\n3) 详细实施步骤\n4) 交互设计要点\nEOF",
|
|
40
|
+
run_in_background: true,
|
|
41
|
+
timeout: 3600000,
|
|
42
|
+
description: "Gemini 前端分析"
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**等待结果**:
|
|
47
|
+
```
|
|
48
|
+
TaskOutput({ task_id: "<codex_task_id>", block: true, timeout: 600000 })
|
|
49
|
+
TaskOutput({ task_id: "<gemini_task_id>", block: true, timeout: 600000 })
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- 必须指定 `timeout: 600000`,否则默认 30 秒会提前超时。
|
|
53
|
+
- 若 10 分钟后仍未完成,继续轮询,**绝对不要 Kill 进程**。
|
|
54
|
+
|
|
55
|
+
3. **综合分析 + 任务拆分**
|
|
56
|
+
- 后端方案以 Codex 为准,前端方案以 Gemini 为准。
|
|
57
|
+
- 拆分为独立子任务,每个子任务:
|
|
58
|
+
* 文件范围不重叠(**强制**)
|
|
59
|
+
* 如果无法避免重叠 → 设为依赖关系
|
|
60
|
+
* 有具体实施步骤和验收标准
|
|
61
|
+
- 按依赖关系分 Layer:同 Layer 可并行,跨 Layer 串行。
|
|
62
|
+
|
|
63
|
+
4. **写入计划文件**
|
|
64
|
+
- 路径:`.claude/team-plan/<任务名>.md`(英文短横线命名)
|
|
65
|
+
- 格式:
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
# Team Plan: <任务名>
|
|
69
|
+
|
|
70
|
+
## 概述
|
|
71
|
+
<一句话描述>
|
|
72
|
+
|
|
73
|
+
## Codex 分析摘要
|
|
74
|
+
<Codex 实际返回的关键内容>
|
|
75
|
+
|
|
76
|
+
## Gemini 分析摘要
|
|
77
|
+
<Gemini 实际返回的关键内容>
|
|
78
|
+
|
|
79
|
+
## 技术方案
|
|
80
|
+
<综合最优方案,含关键技术决策>
|
|
81
|
+
|
|
82
|
+
## 子任务列表
|
|
83
|
+
|
|
84
|
+
### Task 1: <名称>
|
|
85
|
+
- **类型**: 前端/后端
|
|
86
|
+
- **文件范围**: <精确文件路径列表>
|
|
87
|
+
- **依赖**: 无 / Task N
|
|
88
|
+
- **实施步骤**:
|
|
89
|
+
1. <具体步骤>
|
|
90
|
+
2. <具体步骤>
|
|
91
|
+
- **验收标准**: <怎么算完成>
|
|
92
|
+
|
|
93
|
+
### Task 2: <名称>
|
|
94
|
+
...
|
|
95
|
+
|
|
96
|
+
## 文件冲突检查
|
|
97
|
+
✅ 无冲突 / ⚠️ 已通过依赖关系解决
|
|
98
|
+
|
|
99
|
+
## 并行分组
|
|
100
|
+
- Layer 1 (并行): Task 1, Task 2
|
|
101
|
+
- Layer 2 (依赖 Layer 1): Task 3
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
5. **用户确认**
|
|
105
|
+
- 展示计划摘要(子任务数、并行分组、Builder 数量)。
|
|
106
|
+
- 用 `AskUserQuestion` 请求确认。
|
|
107
|
+
- 确认后提示:`计划已就绪,运行 /ccg:team-exec 开始并行实施`
|
|
108
|
+
|
|
109
|
+
6. **上下文检查点**
|
|
110
|
+
- 报告当前上下文使用量。
|
|
111
|
+
- 如果接近 80K:建议 `/clear` 后运行 `/ccg:team-exec`。
|
|
112
|
+
|
|
113
|
+
**Exit Criteria**
|
|
114
|
+
- [ ] Codex + Gemini 分析完成
|
|
115
|
+
- [ ] 子任务文件范围无冲突
|
|
116
|
+
- [ ] 计划文件已写入 `.claude/team-plan/`
|
|
117
|
+
- [ ] 用户已确认计划
|
|
118
|
+
<!-- CCG:TEAM:PLAN:END -->
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Agent Teams 需求研究 - 并行探索代码库,产出约束集 + 可验证成功判据'
|
|
3
|
+
---
|
|
4
|
+
<!-- CCG:TEAM:RESEARCH:START -->
|
|
5
|
+
**Core Philosophy**
|
|
6
|
+
- Research 产出的是**约束集**,不是信息堆砌。每条约束缩小解决方案空间。
|
|
7
|
+
- 约束告诉后续阶段"不要考虑这个方向",使 plan 阶段能产出零决策计划。
|
|
8
|
+
- 输出:约束集合 + 可验证的成功判据,写入 `.claude/team-plan/<任务名>-research.md`。
|
|
9
|
+
|
|
10
|
+
**Guardrails**
|
|
11
|
+
- **STOP! BEFORE ANY OTHER ACTION**: 必须先做 Prompt 增强。
|
|
12
|
+
- 按上下文边界(context boundaries)划分探索范围,不按角色划分。
|
|
13
|
+
- 多模型协作是 **mandatory**:Codex(后端边界)+ Gemini(前端边界)。
|
|
14
|
+
- 不做架构决策——只发现约束。
|
|
15
|
+
- 使用 `AskUserQuestion` 解决任何歧义,绝不假设。
|
|
16
|
+
|
|
17
|
+
**Steps**
|
|
18
|
+
0. **MANDATORY: Prompt 增强**
|
|
19
|
+
- **立即执行,不可跳过。**
|
|
20
|
+
- 分析 $ARGUMENTS 的意图、缺失信息、隐含假设,补全为结构化需求(明确目标、技术约束、范围边界、验收标准)。
|
|
21
|
+
- 后续所有步骤使用增强后的需求。
|
|
22
|
+
|
|
23
|
+
1. **代码库评估**
|
|
24
|
+
- 用 Glob/Grep/Read 扫描项目结构。
|
|
25
|
+
- 判断项目规模:单目录 vs 多目录。
|
|
26
|
+
- 识别技术栈、框架、现有模式。
|
|
27
|
+
|
|
28
|
+
2. **定义探索边界(按上下文划分)**
|
|
29
|
+
- 识别自然的上下文边界(不是功能角色):
|
|
30
|
+
* 边界 1:用户域代码(models, services, UI)
|
|
31
|
+
* 边界 2:认证与授权(middleware, session, tokens)
|
|
32
|
+
* 边界 3:基础设施(configs, builds, deployments)
|
|
33
|
+
- 每个边界应自包含,无需跨边界通信。
|
|
34
|
+
|
|
35
|
+
3. **多模型并行探索(PARALLEL)**
|
|
36
|
+
- **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用。
|
|
37
|
+
- **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。
|
|
38
|
+
|
|
39
|
+
**FIRST Bash call (Codex)**:
|
|
40
|
+
```
|
|
41
|
+
Bash({
|
|
42
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend codex - \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/codex/analyzer.md\n<TASK>\n需求:<增强后的需求>\n探索范围:后端相关上下文边界\n</TASK>\nOUTPUT (JSON):\n{\n \"module_name\": \"探索的上下文边界\",\n \"existing_structures\": [\"发现的关键模式\"],\n \"existing_conventions\": [\"使用中的规范\"],\n \"constraints_discovered\": [\"限制解决方案空间的硬约束\"],\n \"open_questions\": [\"需要用户确认的歧义\"],\n \"dependencies\": [\"跨模块依赖\"],\n \"risks\": [\"潜在阻碍\"],\n \"success_criteria_hints\": [\"可观测的成功行为\"]\n}\nEOF",
|
|
43
|
+
run_in_background: true,
|
|
44
|
+
timeout: 3600000,
|
|
45
|
+
description: "Codex 后端探索"
|
|
46
|
+
})
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**SECOND Bash call (Gemini) - IN THE SAME MESSAGE**:
|
|
50
|
+
```
|
|
51
|
+
Bash({
|
|
52
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend gemini {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/gemini/analyzer.md\n<TASK>\n需求:<增强后的需求>\n探索范围:前端相关上下文边界\n</TASK>\nOUTPUT (JSON):\n{\n \"module_name\": \"探索的上下文边界\",\n \"existing_structures\": [\"发现的关键模式\"],\n \"existing_conventions\": [\"使用中的规范\"],\n \"constraints_discovered\": [\"限制解决方案空间的硬约束\"],\n \"open_questions\": [\"需要用户确认的歧义\"],\n \"dependencies\": [\"跨模块依赖\"],\n \"risks\": [\"潜在阻碍\"],\n \"success_criteria_hints\": [\"可观测的成功行为\"]\n}\nEOF",
|
|
53
|
+
run_in_background: true,
|
|
54
|
+
timeout: 3600000,
|
|
55
|
+
description: "Gemini 前端探索"
|
|
56
|
+
})
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**等待结果**:
|
|
60
|
+
```
|
|
61
|
+
TaskOutput({ task_id: "<codex_task_id>", block: true, timeout: 600000 })
|
|
62
|
+
TaskOutput({ task_id: "<gemini_task_id>", block: true, timeout: 600000 })
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
4. **聚合与综合**
|
|
66
|
+
- 合并所有探索输出为统一约束集:
|
|
67
|
+
* **硬约束**:技术限制、不可违反的模式
|
|
68
|
+
* **软约束**:惯例、偏好、风格指南
|
|
69
|
+
* **依赖**:影响实施顺序的跨模块关系
|
|
70
|
+
* **风险**:需要缓解的阻碍
|
|
71
|
+
|
|
72
|
+
5. **歧义消解**
|
|
73
|
+
- 编译优先级排序的开放问题列表。
|
|
74
|
+
- 用 `AskUserQuestion` 系统性地呈现:
|
|
75
|
+
* 分组相关问题
|
|
76
|
+
* 为每个问题提供上下文
|
|
77
|
+
* 在适用时建议默认值
|
|
78
|
+
- 将用户回答转化为额外约束。
|
|
79
|
+
|
|
80
|
+
6. **写入研究文件**
|
|
81
|
+
- 路径:`.claude/team-plan/<任务名>-research.md`
|
|
82
|
+
- 格式:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
# Team Research: <任务名>
|
|
86
|
+
|
|
87
|
+
## 增强后的需求
|
|
88
|
+
<结构化需求描述>
|
|
89
|
+
|
|
90
|
+
## 约束集
|
|
91
|
+
|
|
92
|
+
### 硬约束
|
|
93
|
+
- [HC-1] <约束描述> — 来源:<Codex/Gemini/用户>
|
|
94
|
+
- [HC-2] ...
|
|
95
|
+
|
|
96
|
+
### 软约束
|
|
97
|
+
- [SC-1] <约束描述> — 来源:<Codex/Gemini/用户>
|
|
98
|
+
- [SC-2] ...
|
|
99
|
+
|
|
100
|
+
### 依赖关系
|
|
101
|
+
- [DEP-1] <模块A> → <模块B>:<原因>
|
|
102
|
+
|
|
103
|
+
### 风险
|
|
104
|
+
- [RISK-1] <风险描述> — 缓解:<策略>
|
|
105
|
+
|
|
106
|
+
## 成功判据
|
|
107
|
+
- [OK-1] <可验证的成功行为>
|
|
108
|
+
- [OK-2] ...
|
|
109
|
+
|
|
110
|
+
## 开放问题(已解决)
|
|
111
|
+
- Q1: <问题> → A: <用户回答> → 约束:[HC/SC-N]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
7. **上下文检查点**
|
|
115
|
+
- 报告当前上下文使用量。
|
|
116
|
+
- 提示:`研究完成,运行 /clear 后执行 /ccg:team-plan <任务名> 开始规划`
|
|
117
|
+
|
|
118
|
+
**Exit Criteria**
|
|
119
|
+
- [ ] Codex + Gemini 探索完成
|
|
120
|
+
- [ ] 所有歧义已通过用户确认解决
|
|
121
|
+
- [ ] 约束集 + 成功判据已写入研究文件
|
|
122
|
+
- [ ] 零开放问题残留
|
|
123
|
+
<!-- CCG:TEAM:RESEARCH:END -->
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Agent Teams 审查 - 双模型交叉审查并行实施的产出,分级处理 Critical/Warning/Info'
|
|
3
|
+
---
|
|
4
|
+
<!-- CCG:TEAM:REVIEW:START -->
|
|
5
|
+
**Core Philosophy**
|
|
6
|
+
- 双模型交叉验证捕获单模型审查遗漏的盲区。
|
|
7
|
+
- Critical 问题必须修复后才能结束。
|
|
8
|
+
- 审查范围严格限于 team-exec 的变更,不扩大范围。
|
|
9
|
+
|
|
10
|
+
**Guardrails**
|
|
11
|
+
- **MANDATORY**: Codex 和 Gemini 必须都完成审查后才能综合。
|
|
12
|
+
- 审查范围限于 `git diff` 的变更,不做范围蔓延。
|
|
13
|
+
- Lead 可以直接修复 Critical 问题(审查阶段允许写代码)。
|
|
14
|
+
|
|
15
|
+
**Steps**
|
|
16
|
+
1. **收集变更产物**
|
|
17
|
+
- 运行 `git diff` 获取变更摘要。
|
|
18
|
+
- 如果有 `.claude/team-plan/` 下的计划文件,读取约束和成功判据作为审查基准。
|
|
19
|
+
- 列出所有被修改的文件。
|
|
20
|
+
|
|
21
|
+
2. **多模型审查(PARALLEL)**
|
|
22
|
+
- **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用。
|
|
23
|
+
- **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。
|
|
24
|
+
|
|
25
|
+
**FIRST Bash call (Codex)**:
|
|
26
|
+
```
|
|
27
|
+
Bash({
|
|
28
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend codex - \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/codex/reviewer.md\n<TASK>\n审查以下变更:\n<git diff 输出或变更文件列表>\n</TASK>\nOUTPUT (JSON):\n{\n \"findings\": [\n {\n \"severity\": \"Critical|Warning|Info\",\n \"dimension\": \"logic|security|performance|error_handling\",\n \"file\": \"path/to/file\",\n \"line\": 42,\n \"description\": \"问题描述\",\n \"fix_suggestion\": \"修复建议\"\n }\n ],\n \"passed_checks\": [\"已验证的检查项\"],\n \"summary\": \"总体评估\"\n}\nEOF",
|
|
29
|
+
run_in_background: true,
|
|
30
|
+
timeout: 3600000,
|
|
31
|
+
description: "Codex 后端审查"
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**SECOND Bash call (Gemini) - IN THE SAME MESSAGE**:
|
|
36
|
+
```
|
|
37
|
+
Bash({
|
|
38
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend gemini {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'\nROLE_FILE: ~/.claude/.ccg/prompts/gemini/reviewer.md\n<TASK>\n审查以下变更:\n<git diff 输出或变更文件列表>\n</TASK>\nOUTPUT (JSON):\n{\n \"findings\": [\n {\n \"severity\": \"Critical|Warning|Info\",\n \"dimension\": \"patterns|maintainability|accessibility|ux|frontend_security\",\n \"file\": \"path/to/file\",\n \"line\": 42,\n \"description\": \"问题描述\",\n \"fix_suggestion\": \"修复建议\"\n }\n ],\n \"passed_checks\": [\"已验证的检查项\"],\n \"summary\": \"总体评估\"\n}\nEOF",
|
|
39
|
+
run_in_background: true,
|
|
40
|
+
timeout: 3600000,
|
|
41
|
+
description: "Gemini 前端审查"
|
|
42
|
+
})
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**等待结果**:
|
|
46
|
+
```
|
|
47
|
+
TaskOutput({ task_id: "<codex_task_id>", block: true, timeout: 600000 })
|
|
48
|
+
TaskOutput({ task_id: "<gemini_task_id>", block: true, timeout: 600000 })
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
3. **综合发现**
|
|
52
|
+
- 合并两个模型的发现。
|
|
53
|
+
- 去重重叠问题。
|
|
54
|
+
- 按严重性分级:
|
|
55
|
+
* **Critical**: 安全漏洞、逻辑错误、数据丢失风险 → 必须修复
|
|
56
|
+
* **Warning**: 模式偏离、可维护性问题 → 建议修复
|
|
57
|
+
* **Info**: 小改进建议 → 可选修复
|
|
58
|
+
|
|
59
|
+
4. **输出审查报告**
|
|
60
|
+
```markdown
|
|
61
|
+
## 审查报告
|
|
62
|
+
|
|
63
|
+
### 🔴 Critical (X issues) - 必须修复
|
|
64
|
+
- [ ] [安全] file.ts:42 - 描述
|
|
65
|
+
- [ ] [逻辑] api.ts:15 - 描述
|
|
66
|
+
|
|
67
|
+
### 🟡 Warning (Y issues) - 建议修复
|
|
68
|
+
- [ ] [模式] utils.ts:88 - 描述
|
|
69
|
+
|
|
70
|
+
### 🔵 Info (Z issues) - 可选
|
|
71
|
+
- [ ] [维护] helper.ts:20 - 描述
|
|
72
|
+
|
|
73
|
+
### ✅ 已通过检查
|
|
74
|
+
- ✅ 无 XSS 漏洞
|
|
75
|
+
- ✅ 错误处理完整
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
5. **决策门**
|
|
79
|
+
- **Critical > 0**:
|
|
80
|
+
* 展示发现,用 `AskUserQuestion` 询问:"立即修复 / 跳过"
|
|
81
|
+
* 选择修复 → Lead 直接修复(后端问题参考 Codex 建议,前端参考 Gemini 建议)
|
|
82
|
+
* 修复后重新运行受影响的审查维度
|
|
83
|
+
* 重复直到 Critical = 0
|
|
84
|
+
- **Critical = 0**:
|
|
85
|
+
* 报告通过,建议提交代码
|
|
86
|
+
|
|
87
|
+
6. **上下文检查点**
|
|
88
|
+
- 报告当前上下文使用量。
|
|
89
|
+
|
|
90
|
+
**Exit Criteria**
|
|
91
|
+
- [ ] Codex + Gemini 审查完成
|
|
92
|
+
- [ ] 所有发现已综合分级
|
|
93
|
+
- [ ] Critical = 0(已修复或用户确认跳过)
|
|
94
|
+
- [ ] 审查报告已输出
|
|
95
|
+
<!-- CCG:TEAM:REVIEW:END -->
|