ccg-workflow 1.7.99 → 1.8.1

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 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, a as i18n, s as showMainMenu, i as init, E as configMcp, F as version } from './shared/ccg-workflow.C2t36BW6.mjs';
4
+ import { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, a as i18n, s as showMainMenu, i as init, E as configMcp, F as version } from './shared/ccg-workflow.B875X4bw.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.C2t36BW6.mjs';
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.B875X4bw.mjs';
2
2
  import 'ansis';
3
3
  import 'inquirer';
4
4
  import 'node:child_process';
@@ -10,7 +10,7 @@ import { parse, stringify } from 'smol-toml';
10
10
  import i18next from 'i18next';
11
11
  import ora from 'ora';
12
12
 
13
- const version = "1.7.99";
13
+ const version = "1.8.1";
14
14
 
15
15
  function cmd(id, order, category, name, nameEn, description, descriptionEn, cmdOverride) {
16
16
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccg-workflow",
3
- "version": "1.7.99",
3
+ "version": "1.8.1",
4
4
  "description": "Claude + Codex + Gemini multi-model collaboration system - smart routing development workflow",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.17.1",
@@ -25,10 +25,9 @@ description: '多模型技术分析(并行执行):Codex 后端视角 + Gem
25
25
  ## 多模型调用规范
26
26
 
27
27
  **工作目录**:
28
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
28
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
29
29
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
30
30
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
31
- - 默认使用当前工作目录
32
31
 
33
32
  **调用语法**(并行用 `run_in_background: true`):
34
33
 
@@ -30,10 +30,9 @@ description: '后端专项工作流(研究→构思→计划→执行→优化
30
30
  ## 多模型调用规范
31
31
 
32
32
  **工作目录**:
33
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
33
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
34
34
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
35
35
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
36
- - 默认使用当前工作目录
37
36
 
38
37
  **调用语法**:
39
38
 
@@ -42,10 +42,9 @@ $ARGUMENTS
42
42
  ## 多模型调用规范
43
43
 
44
44
  **工作目录**:
45
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
45
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
46
46
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
47
47
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
48
- - 默认使用当前工作目录
49
48
 
50
49
  **Codex 执行调用语法**:
51
50
 
@@ -142,7 +141,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
142
141
  - 技术方案
143
142
  - 实施步骤
144
143
  - 关键文件列表
145
- - SESSION_ID(`CODEX_SESSION`)。Gemini 无需 SESSION_ID,用 `resume latest`
144
+ - SESSION_ID(`CODEX_SESSION` / `GEMINI_SESSION`)
146
145
 
147
146
  3. **执行前确认**:
148
147
  向用户展示计划摘要,确认后执行:
@@ -26,7 +26,7 @@ description: '多模型调试:Codex 后端诊断 + Gemini 前端诊断,交
26
26
  **工作目录**:
27
27
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
28
28
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
29
- - 默认使用当前工作目录(通过 `pwd` 命令获取)
29
+ - **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
30
30
 
31
31
  **调用示例**:
32
32
 
@@ -21,17 +21,16 @@ $ARGUMENTS
21
21
  ## 多模型调用规范
22
22
 
23
23
  **工作目录**:
24
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
24
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
25
25
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
26
26
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
27
- - 默认使用当前工作目录
28
27
 
29
28
  **调用语法**(并行用 `run_in_background: true`):
30
29
 
31
30
  ```
32
31
  # 复用会话调用(推荐)- 原型生成(Implementation Prototype)
33
32
  Bash({
34
- command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID|latest> - \"{{WORKDIR}}\" <<'EOF'
33
+ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
35
34
  ROLE_FILE: <角色提示词路径>
36
35
  <TASK>
37
36
  需求:<任务描述>
@@ -64,7 +63,7 @@ EOF",
64
63
 
65
64
  ```
66
65
  Bash({
67
- command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID|latest> - \"{{WORKDIR}}\" <<'EOF'
66
+ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
68
67
  ROLE_FILE: <角色提示词路径>
69
68
  <TASK>
70
69
  Scope: Audit the final code changes.
@@ -95,7 +94,7 @@ EOF",
95
94
  | 实施 | `~/.claude/.ccg/prompts/codex/architect.md` | `~/.claude/.ccg/prompts/gemini/frontend.md` |
96
95
  | 审查 | `~/.claude/.ccg/prompts/codex/reviewer.md` | `~/.claude/.ccg/prompts/gemini/reviewer.md` |
97
96
 
98
- **会话复用**:Codex 用 `resume <SESSION_ID>`(从 `/ccg:plan` 获取)。Gemini 的 stream-json 不输出 SESSION_ID,**Gemini 始终用 `resume latest`**。
97
+ **会话复用**:如果 `/ccg:plan` 提供了 SESSION_ID,使用 `resume <SESSION_ID>` 复用上下文。
99
98
 
100
99
  **等待后台任务**(最大超时 600000ms = 10 分钟):
101
100
 
@@ -185,7 +184,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
185
184
  3. OUTPUT: `Unified Diff Patch ONLY. Strictly prohibit any actual modifications.`
186
185
  4. **Gemini 是前端设计的权威,其 CSS/React/Vue 原型为最终视觉基准**
187
186
  5. ⚠️ **警告**:忽略 Gemini 对后端逻辑的建议
188
- 6. Gemini 复用会话始终使用 `resume latest`(无需 GEMINI_SESSION
187
+ 6. 若计划包含 `GEMINI_SESSION`:优先 `resume <GEMINI_SESSION>`
189
188
 
190
189
  #### Route B: 后端/逻辑/算法 → Codex
191
190
 
@@ -201,7 +200,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
201
200
  - Gemini:处理前端部分
202
201
  - Codex:处理后端部分
203
202
  2. 用 `TaskOutput` 等待两个模型的完整结果
204
- 3. Codex `resume <CODEX_SESSION>`,Gemini `resume latest`(若缺失则创建新会话)
203
+ 3. 各自使用计划中对应的 `SESSION_ID` 进行 `resume`(若缺失则创建新会话)
205
204
 
206
205
  **务必遵循上方 `多模型调用规范` 的 `重要` 指示**
207
206
 
@@ -258,7 +257,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
258
257
  - 输入:变更的 Diff + 目标文件
259
258
  - 关注:可访问性、设计一致性、用户体验
260
259
 
261
- 用 `TaskOutput` 等待两个模型的完整审查结果。优先复用 Phase 3 的会话(`resume <SESSION_ID|latest>`)以保持上下文一致。
260
+ 用 `TaskOutput` 等待两个模型的完整审查结果。优先复用 Phase 3 的会话(`resume <SESSION_ID>`)以保持上下文一致。
262
261
 
263
262
  #### 5.2 整合修复
264
263
 
@@ -11,10 +11,9 @@ $ARGUMENTS
11
11
  ## 多模型调用规范
12
12
 
13
13
  **工作目录**:
14
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
14
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
15
15
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
16
16
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
17
- - 默认使用当前工作目录
18
17
 
19
18
  **调用语法**(并行用 `run_in_background: true`,串行用 `false`):
20
19
 
@@ -36,7 +35,7 @@ EOF",
36
35
 
37
36
  # 复用会话调用
38
37
  Bash({
39
- command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID|latest> - \"{{WORKDIR}}\" <<'EOF'
38
+ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
40
39
  ROLE_FILE: <角色提示词路径>
41
40
  <TASK>
42
41
  需求:<增强后的需求(如未增强则用 $ARGUMENTS)>
@@ -62,7 +61,7 @@ EOF",
62
61
  | 实施 | `~/.claude/.ccg/prompts/codex/architect.md` | `~/.claude/.ccg/prompts/gemini/frontend.md` |
63
62
  | 审查 | `~/.claude/.ccg/prompts/codex/reviewer.md` | `~/.claude/.ccg/prompts/gemini/reviewer.md` |
64
63
 
65
- **会话复用**:Codex 调用返回 `SESSION_ID: xxx`,后续用 `resume xxx`。Gemini 不输出 SESSION_ID,**Gemini 始终用 `resume latest`**。
64
+ **会话复用**:每次调用返回 `SESSION_ID: xxx`,后续阶段用 `resume xxx` 复用上下文。
66
65
 
67
66
  **并行调用**:使用 `run_in_background: true` 启动,用 `TaskOutput` 等待结果。**必须等所有模型返回后才能进入下一阶段**。
68
67
 
@@ -30,10 +30,9 @@ description: '前端专项工作流(研究→构思→计划→执行→优化
30
30
  ## 多模型调用规范
31
31
 
32
32
  **工作目录**:
33
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
33
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
34
34
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
35
35
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
36
- - 默认使用当前工作目录
37
36
 
38
37
  **调用语法**:
39
38
 
@@ -55,7 +54,7 @@ EOF",
55
54
 
56
55
  # 复用会话调用
57
56
  Bash({
58
- command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend gemini --gemini-model gemini-3.1-pro-preview resume latest - \"{{WORKDIR}}\" <<'EOF'
57
+ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend gemini --gemini-model gemini-3.1-pro-preview resume <GEMINI_SESSION> - \"{{WORKDIR}}\" <<'EOF'
59
58
  ROLE_FILE: <角色提示词路径>
60
59
  <TASK>
61
60
  需求:<增强后的需求(如未增强则用 $ARGUMENTS)>
@@ -77,7 +76,7 @@ EOF",
77
76
  | 规划 | `~/.claude/.ccg/prompts/gemini/architect.md` |
78
77
  | 审查 | `~/.claude/.ccg/prompts/gemini/reviewer.md` |
79
78
 
80
- **会话复用**:Gemini stream-json 不输出 SESSION_ID,因此 Gemini 复用会话始终使用 `resume latest`(恢复最近一次会话)。
79
+ **会话复用**:每次调用返回 `SESSION_ID: xxx`,后续阶段用 `resume xxx` 复用上下文。阶段 2 保存 `GEMINI_SESSION`,阶段 3 和 5 使用 `resume` 复用。
81
80
 
82
81
  ⛔ **Gemini 失败必须重试**:若 Gemini 调用失败(非零退出码或输出包含错误信息),最多重试 2 次(间隔 5 秒)。仅当 3 次全部失败时才报告错误并终止。
83
82
 
@@ -114,7 +113,7 @@ EOF",
114
113
  - 上下文:阶段 1 收集的项目上下文
115
114
  - OUTPUT: UI 可行性分析、推荐方案(至少 2 个)、用户体验评估
116
115
 
117
- **📌 Gemini 使用 `resume latest` 复用会话**(无需保存 SESSION_ID)。
116
+ **📌 保存 SESSION_ID**(`GEMINI_SESSION`)用于后续阶段复用。
118
117
 
119
118
  输出方案(至少 2 个),等待用户选择。
120
119
 
@@ -122,7 +121,7 @@ EOF",
122
121
 
123
122
  `[模式:计划]` - Gemini 主导规划
124
123
 
125
- **⚠️ 必须调用 Gemini**(使用 `resume latest` 复用会话):
124
+ **⚠️ 必须调用 Gemini**(使用 `resume <GEMINI_SESSION>` 复用会话):
126
125
  - ROLE_FILE: `~/.claude/.ccg/prompts/gemini/architect.md`
127
126
  - 需求:用户选择的方案
128
127
  - 上下文:阶段 2 的分析结果
@@ -30,10 +30,9 @@ description: '多模型性能优化:Codex 后端优化 + Gemini 前端优化'
30
30
  ## 多模型调用规范
31
31
 
32
32
  **工作目录**:
33
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
33
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
34
34
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
35
35
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
36
- - 默认使用当前工作目录
37
36
 
38
37
  **调用语法**(并行用 `run_in_background: true`):
39
38
 
@@ -21,10 +21,9 @@ $ARGUMENTS
21
21
  ## 多模型调用规范
22
22
 
23
23
  **工作目录**:
24
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
24
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
25
25
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
26
26
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
27
- - 默认使用当前工作目录
28
27
 
29
28
  **调用语法**(并行用 `run_in_background: true`):
30
29
 
@@ -54,7 +53,7 @@ EOF",
54
53
  | 分析 | `~/.claude/.ccg/prompts/codex/analyzer.md` | `~/.claude/.ccg/prompts/gemini/analyzer.md` |
55
54
  | 规划 | `~/.claude/.ccg/prompts/codex/architect.md` | `~/.claude/.ccg/prompts/gemini/architect.md` |
56
55
 
57
- **会话复用**:Codex 调用返回 `SESSION_ID: xxx`,**必须保存**供 `/ccg:execute` 使用。Gemini 不输出 SESSION_ID,**Gemini 后续用 `resume latest`**。
56
+ **会话复用**:每次调用返回 `SESSION_ID: xxx`(通常由 wrapper 输出),**必须保存**以供后续 `/ccg:execute` 使用。
58
57
 
59
58
  **等待后台任务**(最大超时 600000ms = 10 分钟):
60
59
 
@@ -129,7 +128,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
129
128
  - 关注:UI/UX 影响、用户体验、视觉设计
130
129
  - OUTPUT: 多角度解决方案 + 优劣势分析
131
130
 
132
- 用 `TaskOutput` 等待两个模型的完整结果。**📌 保存 Codex 的 SESSION_ID**(`CODEX_SESSION`)。Gemini 无需保存,后续用 `resume latest`。
131
+ 用 `TaskOutput` 等待两个模型的完整结果。**📌 保存 SESSION_ID**(`CODEX_SESSION` `GEMINI_SESSION`)。
133
132
 
134
133
  #### 2.2 交叉验证
135
134
 
@@ -185,7 +184,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
185
184
 
186
185
  ### SESSION_ID(供 /ccg:execute 使用)
187
186
  - CODEX_SESSION: <session_id>
188
- - GEMINI_SESSION: latest(Gemini 始终用 `resume latest`)
187
+ - GEMINI_SESSION: <session_id>
189
188
  ```
190
189
 
191
190
  ### ⛔ Phase 2 结束:计划交付(非执行)
@@ -258,4 +257,4 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
258
257
  2. **不问 Y/N** – 只展示计划,让用户决定下一步
259
258
  3. **信任规则** – 后端以 Codex 为准,前端以 Gemini 为准
260
259
  4. 外部模型对文件系统**零写入权限**
261
- 5. **SESSION_ID 交接** – 计划末尾必须包含 `CODEX_SESSION`(供 `/ccg:execute resume <SESSION_ID>` 使用)。Gemini 无需交接,execute 阶段用 `resume latest`
260
+ 5. **SESSION_ID 交接** – 计划末尾必须包含 `CODEX_SESSION` / `GEMINI_SESSION`(供 `/ccg:execute resume <SESSION_ID>` 使用)
@@ -20,10 +20,9 @@ description: '多模型代码审查:无参数时自动审查 git diff,双模
20
20
  ## 多模型调用规范
21
21
 
22
22
  **工作目录**:
23
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
23
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
24
24
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
25
25
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
26
- - 默认使用当前工作目录
27
26
 
28
27
  **调用语法**(并行用 `run_in_background: true`):
29
28
 
@@ -43,7 +43,7 @@ description: '按规范执行 + 多模型协作 + 归档'
43
43
  - **Route A: Gemini** — Frontend/UI/styling (CSS, React, Vue, HTML, components)
44
44
  - **Route B: Codex** — Backend/logic/algorithm (API, data processing, business logic)
45
45
 
46
- **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
46
+ **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
47
47
 
48
48
  For each task:
49
49
  ```
@@ -57,7 +57,7 @@ description: '按规范执行 + 多模型协作 + 归档'
57
57
 
58
58
  Note: `--gemini-model` parameter is only used when `--backend gemini` is specified.
59
59
 
60
- **会话复用**:保存 Codex 返回的 `SESSION_ID:`(`CODEX_PROTO_SESSION`),Step 7 审查时复用。Gemini 不输出 SESSION_ID,后续用 `resume latest`。
60
+ **会话复用**:保存返回的 `SESSION_ID:`(Codex `CODEX_PROTO_SESSION`,Gemini → `GEMINI_PROTO_SESSION`),Step 7 审查时复用。
61
61
 
62
62
  5. **Rewrite Prototype to Production Code**
63
63
  Upon receiving diff patch, **NEVER apply directly**. Rewrite by:
@@ -95,7 +95,7 @@ description: '按规范执行 + 多模型协作 + 归档'
95
95
  **SECOND Bash call (Gemini) - IN THE SAME MESSAGE**:
96
96
  ```
97
97
  Bash({
98
- command: "~/.claude/bin/codeagent-wrapper --progress --backend gemini --gemini-model gemini-3.1-pro-preview resume latest - \"{{WORKDIR}}\" <<'EOF'\nReview the implementation changes:\n- Maintainability: readability, complexity\n- Patterns: consistency with project style\n- Integration: cross-module impacts\nOUTPUT: JSON with findings\nEOF",
98
+ command: "~/.claude/bin/codeagent-wrapper --progress --backend gemini --gemini-model gemini-3.1-pro-preview resume <GEMINI_PROTO_SESSION> - \"{{WORKDIR}}\" <<'EOF'\nReview the implementation changes:\n- Maintainability: readability, complexity\n- Patterns: consistency with project style\n- Integration: cross-module impacts\nOUTPUT: JSON with findings\nEOF",
99
99
  run_in_background: true,
100
100
  timeout: 300000,
101
101
  description: "Gemini: maintainability/patterns review"
@@ -39,6 +39,7 @@ description: '初始化 OpenSpec (OPSX) 环境 + 验证多模型 MCP 工具'
39
39
  - **Note**: Always use `openspec` (not `opsx`) for CLI commands.
40
40
 
41
41
  3. **Initialize OPSX for Current Project**
42
+ - **重要**:所有命令必须在当前工作目录下执行,禁止 `cd` 到其他路径。如不确定当前目录,先执行 `pwd` 确认。
42
43
  - Check if already initialized:
43
44
  ```bash
44
45
  ls -la openspec/ .claude/skills/openspec-* 2>/dev/null || echo "Not initialized"
@@ -59,7 +60,7 @@ description: '初始化 OpenSpec (OPSX) 环境 + 验证多模型 MCP 工具'
59
60
 
60
61
  4. **Validate Multi-Model MCP Tools**
61
62
  - Check `codeagent-wrapper` availability: `~/.claude/bin/codeagent-wrapper --version`
62
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
63
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
63
64
  - Test Codex backend:
64
65
  ```bash
65
66
  echo "echo test" | ~/.claude/bin/codeagent-wrapper --backend codex - "{{WORKDIR}}"
@@ -26,7 +26,7 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
26
26
  2. **Multi-Model Implementation Analysis (PARALLEL)**
27
27
  - **CRITICAL**: You MUST launch BOTH Codex AND Gemini in a SINGLE message with TWO Bash tool calls.
28
28
  - **DO NOT** call one model first and wait. Launch BOTH simultaneously with `run_in_background: true`.
29
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
29
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
30
30
 
31
31
  **Step 2.1**: In ONE message, make TWO parallel Bash calls:
32
32
 
@@ -51,7 +51,7 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
51
51
  4. **Parallel Multi-Model Exploration**
52
52
  - **CRITICAL**: You MUST launch BOTH Codex AND Gemini in a SINGLE message with TWO Bash tool calls.
53
53
  - **DO NOT** call one model first and wait. Launch BOTH simultaneously with `run_in_background: true`.
54
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
54
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
55
55
 
56
56
  **Output Template** (instruct both models to use this format):
57
57
  ```json
@@ -27,7 +27,7 @@ description: '双模型交叉审查(独立工具,随时可用)'
27
27
  3. **Multi-Model Review (PARALLEL)**
28
28
  - **CRITICAL**: You MUST launch BOTH Codex AND Gemini in a SINGLE message with TWO Bash tool calls.
29
29
  - **DO NOT** call one model first and wait. Launch BOTH simultaneously with `run_in_background: true`.
30
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
30
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
31
31
 
32
32
  **Step 3.1**: In ONE message, make TWO parallel Bash calls:
33
33
 
@@ -21,7 +21,7 @@ description: 'Agent Teams 规划 - Lead 调用 Codex/Gemini 并行分析,产
21
21
 
22
22
  2. **多模型并行分析(PARALLEL)**
23
23
  - **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用,`run_in_background: true`。
24
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。
24
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。
25
25
 
26
26
  **FIRST Bash call (Codex)**:
27
27
  ```
@@ -34,7 +34,7 @@ description: 'Agent Teams 需求研究 - 并行探索代码库,产出约束集
34
34
 
35
35
  3. **多模型并行探索(PARALLEL)**
36
36
  - **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用。
37
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。
37
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。
38
38
 
39
39
  **FIRST Bash call (Codex)**:
40
40
  ```
@@ -20,7 +20,7 @@ description: 'Agent Teams 审查 - 双模型交叉审查并行实施的产出,
20
20
 
21
21
  2. **多模型审查(PARALLEL)**
22
22
  - **CRITICAL**: 必须在一条消息中同时发起两个 Bash 调用。
23
- - **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。
23
+ - **工作目录**:`{{WORKDIR}}` **必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断。
24
24
 
25
25
  **FIRST Bash call (Codex)**:
26
26
  ```
@@ -30,10 +30,9 @@ description: '多模型测试生成:智能路由 Codex 后端测试 / Gemini
30
30
  ## 多模型调用规范
31
31
 
32
32
  **工作目录**:
33
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
33
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
34
34
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
35
35
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
36
- - 默认使用当前工作目录
37
36
 
38
37
  **调用语法**(并行用 `run_in_background: true`):
39
38
 
@@ -33,10 +33,9 @@ description: '多模型协作开发工作流(研究→构思→计划→执行
33
33
  ## 多模型调用规范
34
34
 
35
35
  **工作目录**:
36
- - `{{WORKDIR}}`:替换为目标工作目录的**绝对路径**
36
+ - `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
37
37
  - 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
38
38
  - 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
39
- - 默认使用当前工作目录
40
39
 
41
40
  **调用语法**(并行用 `run_in_background: true`,串行用 `false`):
42
41
 
@@ -58,7 +57,7 @@ EOF",
58
57
 
59
58
  # 复用会话调用
60
59
  Bash({
61
- command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID|latest> - \"{{WORKDIR}}\" <<'EOF'
60
+ command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <codex|gemini> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
62
61
  ROLE_FILE: <角色提示词路径>
63
62
  <TASK>
64
63
  需求:<增强后的需求(如未增强则用 $ARGUMENTS)>
@@ -83,7 +82,7 @@ EOF",
83
82
  | 规划 | `~/.claude/.ccg/prompts/codex/architect.md` | `~/.claude/.ccg/prompts/gemini/architect.md` |
84
83
  | 审查 | `~/.claude/.ccg/prompts/codex/reviewer.md` | `~/.claude/.ccg/prompts/gemini/reviewer.md` |
85
84
 
86
- **会话复用**:Codex 调用返回 `SESSION_ID: xxx`,后续用 `resume xxx` 复用。Gemini 的 stream-json 不输出 SESSION_ID,**Gemini 始终用 `resume latest`**。
85
+ **会话复用**:每次调用返回 `SESSION_ID: xxx`,后续阶段用 `resume xxx` 复用上下文(注意:是 `resume`,不是 `--resume`)。
87
86
 
88
87
  **并行调用**:使用 `run_in_background: true` 启动,用 `TaskOutput` 等待结果。**必须等所有模型返回后才能进入下一阶段**。
89
88
 
@@ -134,7 +133,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
134
133
  - Codex:使用分析提示词,输出技术可行性、方案、风险
135
134
  - Gemini:使用分析提示词,输出 UI 可行性、方案、体验
136
135
 
137
- 用 `TaskOutput` 等待结果。**📌 保存 Codex 的 SESSION_ID**(`CODEX_SESSION`)。Gemini 无需保存,后续用 `resume latest`。
136
+ 用 `TaskOutput` 等待结果。**📌 保存 SESSION_ID**(`CODEX_SESSION` `GEMINI_SESSION`)。
138
137
 
139
138
  **务必遵循上方 `多模型调用规范` 的 `重要` 指示**
140
139
 
@@ -146,7 +145,7 @@ TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })
146
145
 
147
146
  **并行调用**(复用会话):
148
147
  - Codex:使用规划提示词 + `resume $CODEX_SESSION`,输出后端架构
149
- - Gemini:使用规划提示词 + `resume latest`,输出前端架构
148
+ - Gemini:使用规划提示词 + `resume $GEMINI_SESSION`,输出前端架构
150
149
 
151
150
  用 `TaskOutput` 等待结果。
152
151