跳转至

计划 - 多模型协同规划

多模型协同规划 - 上下文获取 + 双模型分析 → 生成分步实施计划。

前提条件: 此命令需要外部 ccg-workflow 运行时。它不包含在基础 ECC 安装中。请运行 npx ccg-workflow 进行初始化,并配置此命令依赖的 ~/.claude/bin/codeagent-wrapper 和 ~/.claude/.ccg/prompts/* 角色文件。如果没有此运行时,该命令无法正常工作。

$ARGUMENTS


核心协议

  • 语言协议:与工具/模型交互时使用英语,与用户则使用用户的语言沟通
  • 强制并行:Codex/Gemini 调用必须使用 run_in_background: true(包括单模型调用,以避免阻塞主线程)
  • 代码主权:外部模型对文件系统零写入访问,所有变更均由 Claude 执行
  • 损失限制机制:在当前阶段输出经过验证之前,不进入下一阶段
  • 仅计划:此命令允许读取上下文并写入 .claude/plan/* 计划文件,但不修改生产代码

多模型调用规范

调用语法(并行:使用 run_in_background: true):

Bash({
  command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend <codex|gemini> {{GEMINI_MODEL_FLAG}}- \"$PWD\" <<'EOF'
ROLE_FILE: <ロールプロンプトパス>
<TASK>
Requirement: <強化された要件>
Context: <取得したプロジェクトコンテキスト>
</TASK>
OUTPUT: 疑似コードを含むステップバイステップの実装計画。ファイルを変更しない。
EOF",
  run_in_background: true,
  timeout: 3600000,
  description: "簡潔な説明"
})

模型参数注意事项: - {{GEMINI_MODEL_FLAG}}:如果使用 --backend gemini,替换为 --gemini-model gemini-3-pro-preview(注意末尾空格);如果是 codex,则使用空字符串

角色提示词:

阶段 Codex Gemini
分析 ~/.claude/.ccg/prompts/codex/analyzer.md ~/.claude/.ccg/prompts/gemini/analyzer.md
计划 ~/.claude/.ccg/prompts/codex/architect.md ~/.claude/.ccg/prompts/gemini/architect.md

会话复用:每次调用都会返回 SESSION_ID: xxx(通常由包装器输出),需要保存以供后续 /ccg:execute 使用。

等待后台任务(最大超时 600000ms = 10 分钟):

TaskOutput({ task_id: "<task_id>", block: true, timeout: 600000 })

重要: - 必须指定 timeout: 600000。否则默认 30 秒会提前超时 - 如果 10 分钟后仍未完成,继续使用 TaskOutput 轮询,不要强制终止进程 - 如果因超时而跳过等待,必须调用 AskUserQuestion 询问用户是继续等待还是强制终止任务


执行工作流

计划任务:$ARGUMENTS

阶段 1:完整上下文获取

[Mode: Research]

1.1 提示词增强(必须首先执行)

如果 ace-tool MCP 可用,调用 mcp__ace-tool__enhance_prompt 工具:

mcp__ace-tool__enhance_prompt({
  prompt: "$ARGUMENTS",
  conversation_history: "<直近5-10の会話ターン>",
  project_root_path: "$PWD"
})

等待增强后的提示词,并用增强结果替换后续所有阶段中的原始 $ARGUMENTS。

如果 ace-tool MCP 不可用:跳过此步骤,并在后续所有阶段中直接使用原始 $ARGUMENTS。

1.2 上下文获取

如果 ace-tool MCP 可用,调用 mcp__ace-tool__search_context 工具:

mcp__ace-tool__search_context({
  query: "<強化された要件に基づくセマンティッククエリ>",
  project_root_path: "$PWD"
})
  • 使用自然语言构建语义查询(Where/What/How)
  • 不要基于假设回答

如果 ace-tool MCP 不可用,使用 Claude Code 内置工具回退: 1. Glob:按模式搜索相关文件(例如:Glob("**/*.ts")、Glob("src/**/*.py")) 2. Grep:搜索关键符号、函数名、类定义(例如:Grep("className|functionName")) 3. Read:读取发现的文件并收集完整上下文 4. Task(Explore 代理):如果需要更深入的探索,使用 Task 并设置 subagent_type: "Explore"

1.3 完整性检查

  • 必须获取相关类、函数、变量的完整定义和签名
  • 如果上下文不足,触发递归获取
  • 优先输出:入口文件 + 行号 + 关键符号名;仅在需要消除歧义时添加最小代码片段

1.4 需求一致性

  • 如果需求仍存在歧义,必须向用户输出引导性问题
  • 直到需求边界明确(无缺失、无冗余)

阶段 2:多模型协同分析

[Mode: Analysis]

2.1 输入分配

并行调用 Codex 和 Gemini(run_in_background: true):

将原始需求(无预设观点)分配给两个模型:

  1. Codex 后端分析:
  2. ROLE_FILE: ~/.claude/.ccg/prompts/codex/analyzer.md
  3. 关注点:技术可行性、对架构的影响、性能考量、潜在风险
  4. OUTPUT:多角度方案 + 优缺点分析

  5. Gemini 前端分析:

  6. ROLE_FILE: ~/.claude/.ccg/prompts/gemini/analyzer.md
  7. 关注点:对 UI/UX 的影响、用户体验、视觉设计
  8. OUTPUT:多角度方案 + 优缺点分析

使用 TaskOutput 等待两个模型的完整结果。保存 SESSION_ID(CODEX_SESSION 和 GEMINI_SESSION)。

2.2 交叉验证

整合视角,并迭代优化:

  1. 识别共识(强信号)
  2. 识别分歧(需要加权)
  3. 互补优势:后端逻辑遵循 Codex,前端设计遵循 Gemini
  4. 逻辑推理:排除方案中的逻辑缺口

2.3(可选但推荐)双模型计划草稿

为降低 Claude 整合计划中的遗漏风险,可以并行让两个模型输出“计划草稿”(但不允许修改文件):

  1. Codex 计划草稿(后端权威):
  2. ROLE_FILE: ~/.claude/.ccg/prompts/codex/architect.md
  3. OUTPUT:分步计划 + 伪代码(关注:数据流/边缘情况/错误处理/测试策略)

  4. Gemini 计划草稿(前端权威):

  5. ROLE_FILE: ~/.claude/.ccg/prompts/gemini/architect.md
  6. OUTPUT:分步计划 + 伪代码(关注:信息架构/交互/可访问性/视觉一致性)

使用 TaskOutput 等待两个模型的完整结果,并记录提案的主要差异。

2.4 生成实施计划(Claude 最终版)

整合两个分析,生成分步实施计划:

## 実装計画: <タスク名>

### タスクタイプ
- [ ] フロントエンド(→ Gemini)
- [ ] バックエンド(→ Codex)
- [ ] フルスタック(→ 並列)

### 技術的ソリューション
<Codex + Gemini分析から統合された最適なソリューション>

### 実装ステップ
1. <ステップ1> - 期待される成果物
2. <ステップ2> - 期待される成果物
...

### キーファイル
| ファイル | 操作 | 説明 |
|------|-----------|-------------|
| path/to/file.ts:L10-L50 | 変更 | 説明 |

### リスクと緩和策
| リスク | 緩和策 |
|------|------------|

### SESSION_ID(/ccg:execute使用のため)
- CODEX_SESSION: <session_id>
- GEMINI_SESSION: <session_id>

阶段 2 结束:交付计划(不是实施)

/ccg:plan 的职责到此结束。必须执行以下操作:

  1. 向用户呈现完整实施计划(包括伪代码)
  2. 将计划保存到 .claude/plan/<feature-name>.md(从需求中提取功能名,例如:user-auth、payment-module)
  3. 以粗体文本输出提示(必须使用实际保存的文件路径):

计划已生成,并保存到 .claude/plan/actual-feature-name.md

请审阅上述计划。你可以: - 修改计划:告诉我需要调整的内容,我会更新计划 - 执行计划:将以下命令复制到新会话

/ccg:execute .claude/plan/actual-feature-name.md

注意:上述 actual-feature-name.md 必须替换为实际保存的文件名!

  1. 立即结束当前响应(在此停止,不再进行任何工具调用。)

绝对禁止: - 询问用户“Y/N”后自动执行(执行是 /ccg:execute 的职责) - 对生产代码执行写入操作 - 自动调用 /ccg:execute 或任何实施操作 - 在用户未明确要求变更时继续触发模型调用


保存计划

计划完成后,将计划保存到以下位置:

  • 初始计划:.claude/plan/<feature-name>.md
  • 迭代版本:.claude/plan/<feature-name>-v2.md、.claude/plan/<feature-name>-v3.md...

计划文件的写入必须在向用户展示计划之前完成。


计划变更流程

如果用户要求修改计划:

  1. 根据用户反馈调整计划内容
  2. 更新 .claude/plan/<feature-name>.md 文件
  3. 重新展示修改后的计划
  4. 再次提示用户审阅或执行

下一步

用户批准后,手动执行:

/ccg:execute .claude/plan/<feature-name>.md

重要规则

  1. 仅计划,不实现 – 此命令不会执行代码更改
  2. 无 Y/N 提示 – 仅展示计划,由用户决定下一步
  3. 信任规则 – 后端遵循 Codex,前端遵循 Gemini
  4. 外部模型对文件系统零写入访问
  5. SESSION_ID 传递 – 计划最后必须包含 CODEX_SESSION / GEMINI_SESSION(供使用 /ccg:execute resume <SESSION_ID>)

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC