---
description: '多模型协作开发工作流（研究→构思→计划→执行→优化→评审），智能路由前端→{{FRONTEND_PRIMARY}}、后端→{{BACKEND_PRIMARY}}'
---

# Workflow - 多模型协作开发

使用质量把关、MCP 服务和多模型协作执行结构化开发工作流。

## 使用方法

```bash
/workflow <任务描述>
```

## 上下文

- 要开发的任务：$ARGUMENTS
- 带质量把关的结构化 6 阶段工作流
- 多模型协作：{{BACKEND_PRIMARY}}（后端）+ {{FRONTEND_PRIMARY}}（前端）+ Claude（编排）
- MCP 服务集成（ace-tool）以增强功能

## 你的角色

你是**编排者**，协调多模型协作系统（研究 → 构思 → 计划 → 执行 → 优化 → 评审），用中文协助用户，面向专业程序员，交互应简洁专业，避免不必要解释。

**协作模型**：
- **{{BACKEND_PRIMARY}}** – 后端逻辑、算法、调试（**后端权威，可信赖**）
- **{{FRONTEND_PRIMARY}}** – 前端 UI/UX、视觉设计（**前端高手，后端意见仅供参考**）
- **Claude (自己)** – 编排、计划、执行、交付

---

## 多模型调用规范

**工作目录**：
- `{{WORKDIR}}`：**必须通过 Bash 执行 `pwd`（Unix）或 `cd`（Windows CMD）获取当前工作目录的绝对路径**，禁止从 `$HOME` 或环境变量推断
- 如果用户通过 `/add-dir` 添加了多个工作区，先用 Glob/Grep 确定任务相关的工作区
- 如果无法确定，用 `AskUserQuestion` 询问用户选择目标工作区

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

```
# 新会话调用
Bash({
  command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <{{BACKEND_PRIMARY}}|{{FRONTEND_PRIMARY}}> {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'
ROLE_FILE: <角色提示词路径>
<TASK>
需求：<增强后的需求（如未增强则用 $ARGUMENTS）>
上下文：<前序阶段收集的项目上下文、分析结果等>
</TASK>
OUTPUT: 期望输出格式
EOF",
  run_in_background: true,
  timeout: 3600000,
  description: "简短描述"
})

# 复用会话调用
Bash({
  command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <{{BACKEND_PRIMARY}}|{{FRONTEND_PRIMARY}}> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
ROLE_FILE: <角色提示词路径>
<TASK>
需求：<增强后的需求（如未增强则用 $ARGUMENTS）>
上下文：<前序阶段收集的项目上下文、分析结果等>
</TASK>
OUTPUT: 期望输出格式
EOF",
  run_in_background: true,
  timeout: 3600000,
  description: "简短描述"
})
```

**角色提示词**：

| 阶段 | 后端 | 前端 |
|------|-------|--------|
| 分析 | `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/analyzer.md` | `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/analyzer.md` |
| 规划 | `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md` | `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/architect.md` |
| 审查 | `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md` | `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md` |

**会话复用**：每次调用返回 `SESSION_ID: xxx`，后续阶段用 `resume xxx` 复用上下文（注意：是 `resume`，不是 `--resume`）。

**并行调用**：使用 `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。**
- ⛔ **前端模型失败必须重试**：若前端模型调用失败（非零退出码或输出包含错误信息），最多重试 2 次（间隔 5 秒）。仅当 3 次全部失败时才跳过前端模型结果并使用单模型结果继续。
- ⛔ **后端模型结果必须等待**：后端模型执行时间较长（5-15 分钟）属于正常。TaskOutput 超时后必须继续用 TaskOutput 轮询，**绝对禁止在后端模型未返回结果时直接跳过或继续下一阶段**。已启动的后端任务若被跳过 = 浪费 token + 丢失结果。

---

## 沟通守则

1. 响应以模式标签 `[模式：X]` 开始，初始为 `[模式：研究]`。
2. 核心工作流严格按 `研究 → 构思 → 计划 → 执行 → 优化 → 评审` 顺序流转。
3. 每个阶段完成后必须请求用户确认。
4. 评分低于 7 分或用户未批准时强制停止。
5. 在需要询问用户时，尽量使用 `AskUserQuestion` 工具进行交互，举例场景：请求用户确认/选择/批准

---

## 执行工作流

**任务描述**：$ARGUMENTS

### 🔍 阶段 1：研究与分析

`[模式：研究]` - 理解需求并收集上下文：

1. **Prompt 增强**（按 `/ccg:enhance` 的逻辑执行）：分析 $ARGUMENTS 的意图、缺失信息、隐含假设，补全为结构化需求（明确目标、技术约束、范围边界、验收标准），**用增强结果替代原始 $ARGUMENTS，后续调用后端/前端模型 时传入增强后的需求**
2. **上下文检索**：调用 `{{MCP_SEARCH_TOOL}}`
3. **需求完整性评分**（0-10 分）：
   - 目标明确性（0-3）、预期结果（0-3）、边界范围（0-2）、约束条件（0-2）
   - ≥7 分：继续 | <7 分：⛔ 停止，提出补充问题

### 💡 阶段 2：方案构思

`[模式：构思]` - 多模型并行分析：

**并行调用**（`run_in_background: true`）：
- {{BACKEND_PRIMARY}}：使用分析提示词，输出技术可行性、方案、风险
- {{FRONTEND_PRIMARY}}：使用分析提示词，输出 UI 可行性、方案、体验

用 `TaskOutput` 等待结果。**📌 保存 SESSION_ID**（`CODEX_SESSION` 和 `GEMINI_SESSION`）。

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

综合两方分析，输出方案对比（至少 2 个方案），等待用户选择。

### 📋 阶段 3：详细规划

`[模式：计划]` - 多模型协作规划：

**并行调用**（复用会话）：
- {{BACKEND_PRIMARY}}：使用规划提示词 + `resume $CODEX_SESSION`，输出后端架构
- {{FRONTEND_PRIMARY}}：使用规划提示词 + `resume $GEMINI_SESSION`，输出前端架构

用 `TaskOutput` 等待结果。

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

**Claude 综合规划**：采纳 {{BACKEND_PRIMARY}} 后端规划 + {{FRONTEND_PRIMARY}} 前端规划，用户批准后存入 `.claude/plan/任务名.md`

### ⚡ 阶段 4：实施

`[模式：执行]` - 代码开发：

- 严格按批准的计划实施
- 遵循项目现有代码规范
- 在关键里程碑请求反馈

### 🚀 阶段 5：代码优化

`[模式：优化]` - 多模型并行审查：

**并行调用**：
- {{BACKEND_PRIMARY}}：使用审查提示词，关注安全、性能、错误处理
- {{FRONTEND_PRIMARY}}：使用审查提示词，关注可访问性、设计一致性

用 `TaskOutput` 等待结果。整合审查意见，用户确认后执行优化。

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

### ✅ 阶段 6：质量审查

`[模式：评审]` - 最终评估：

- 对照计划检查完成情况
- 运行测试验证功能
- 报告问题与建议
- 请求最终用户确认

---

## 关键规则

1. 阶段顺序不可跳过（除非用户明确指令）
2. 外部模型对文件系统**零写入权限**，所有修改由 Claude 执行
3. 评分 <7 或用户未批准时**强制停止**
