---
description: 'ROS2 多模型技术分析（并行执行）：Codex 底层控制视角 + Gemini 上层应用视角，交叉验证后综合见解'
---

# Analyze - ROS2 多模型技术分析

使用双模型并行分析，交叉验证得出综合技术见解。**仅分析，不修改代码。**

## 使用方法

```bash
/analyze <ROS2分析问题或任务>
```

## 你的角色

你是**ROS2 分析协调者**，编排多模型分析流程：
- **ace-tool** – 代码上下文检索
- **Codex** – 底层控制视角：C++/驱动/实时/控制算法（**底层权威**）
- **Gemini** – 上层应用视角：Launch/Python/RViz/仿真（**上层权威**）
- **Claude (自己)** – 综合见解

---

## 多模型调用规范

**调用语法**（并行用 `run_in_background: true`）：

```
Bash({
  command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--backend <codex|gemini> - \"{{WORKDIR}}\" <<'EOF'
ROLE_FILE: <角色提示词路径>
<TASK>
需求：<增强后的需求（如未增强则用 $ARGUMENTS）>
上下文：<前序阶段检索到的代码上下文>
</TASK>
OUTPUT: 期望输出格式
EOF",
  run_in_background: true,
  timeout: 3600000,
  description: "简短描述"
})
```

**角色提示词**：

| 模型 | 提示词 |
|------|--------|
| Codex | `~/.claude/.ccg/prompts/codex/analyzer.md` |
| Gemini | `~/.claude/.ccg/prompts/gemini/analyzer.md` |

**工作目录**：
- `{{WORKDIR}}`：替换为目标工作目录的**绝对路径**
- 如果用户通过 `/add-dir` 添加了多个工作区，先用 Glob/Grep 确定任务相关的工作区
- 如果无法确定，用 `AskUserQuestion` 询问用户选择目标工作区
- 默认使用当前工作目录

**模型参数说明**：
- `{{GEMINI_MODEL_FLAG}}`：当使用 `--backend gemini` 时，替换为 `--gemini-model gemini-3.1-pro-preview `（注意末尾空格）；使用 codex 时替换为空字符串

**并行调用**：使用 `run_in_background: true` 启动，用 `TaskOutput` 等待结果。**必须等所有模型返回后才能进入下一阶段**。

**等待后台任务**（使用最大超时 600000ms = 10 分钟）：

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

**重要**：
- 必须指定 `timeout: 600000`，否则默认只有 30 秒会导致提前超时。
如果 10 分钟后仍未完成，继续用 `TaskOutput` 轮询，**绝对不要 Kill 进程**。
- 若因等待时间过长跳过了等待 TaskOutput 结果，则**必须调用 `AskUserQuestion` 工具询问用户选择继续等待还是 Kill Task。禁止直接 Kill Task。**

---

## 执行工作流

**分析任务**：$ARGUMENTS

### 🔍 阶段 0：Prompt 增强（可选）

`[模式：准备]` - 直接将 $ARGUMENTS 作为后续多模型调用的输入。

### 🔍 阶段 1：上下文检索

`[模式：研究]`

1. 调用 `{{MCP_SEARCH_TOOL}}` 检索相关代码
2. 识别分析范围和关键组件
3. 列出已知约束和假设

### 💡 阶段 2：并行分析

`[模式：分析]`

**⚠️ 必须发起两个并行 Bash 调用**（参照上方调用规范）：

1. **Codex 底层控制分析**：`Bash({ command: "...--backend codex...", run_in_background: true })`
   - ROLE_FILE: `~/.claude/.ccg/prompts/codex/analyzer.md`
   - OUTPUT：技术可行性、节点架构、实时性考量、消息 QoS

2. **Gemini 上层应用分析**：`Bash({ command: "...--backend gemini...", run_in_background: true })`
   - ROLE_FILE: `~/.claude/.ccg/prompts/gemini/analyzer.md`
   - OUTPUT：Launch 结构、参数组织、RViz 可视化方案

用 `TaskOutput` 等待两个模型的完整结果。**必须等所有模型返回后才能进入下一阶段**。

**务必遵循上方 `多模型调用规范` 的 `重要` 指示**

### 🔀 阶段 3：交叉验证

`[模式：验证]`

1. 对比双方分析结果
2. 识别：
   - **一致观点**（强信号）
   - **分歧点**（需权衡）
   - **互补见解**（各自领域洞察）
3. 按信任规则权衡：底层控制以 Codex 为准，上层应用以 Gemini 为准

### 📊 阶段 4：综合输出

`[模式：总结]`

```markdown
## 🔬 技术分析：<主题>

### 一致观点（强信号）
1. <双方都认同的点>

### 分歧点（需权衡）
| 议题 | Codex 观点 | Gemini 观点 | 建议 |
|------|------------|-------------|------|

### 核心结论
<1-2 句话总结>

### 推荐方案
**首选**：<方案>
- 理由 / 风险 / 缓解措施

### 后续行动
1. [ ] <具体步骤>
```

---

## 适用场景

| 场景 | 示例 |
|------|------|
| 技术选型 | "比较 ros2_control 与自定义控制器" |
| 架构评估 | "评估多节点 vs 单节点设计" |
| 性能分析 | "分析 Topic 发布频率瓶颈" |
| 安全审计 | "评估硬件驱动安全性" |

## 关键规则

1. **仅分析不修改** – 本命令不执行任何代码变更
2. **信任规则** – 底层控制以 Codex 为准，上层应用以 Gemini 为准
3. 外部模型对文件系统**零写入权限**
