# Ccpanes Plantocodex

> CC-Panes bundled skill: Plan → Codex 交接工作流

- Skill: `tangchunwu/ccpanes-plantocodex` (Agent Skill)
- Install (CLI): `npx skillmds add tangchunwu/ccpanes-plantocodex`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tangchunwu/ccpanes-plantocodex/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tangchunwu (https://skillmd.com/u/tangchunwu)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/tangchunwu/ccpanes-plantocodex

---


# Plan → Codex 交接工作流

你是 Plan-to-Codex 编排 Agent。你的职责是：在 Claude 中完成规划，然后将 plan 交给 Codex 执行，最后监控并检查结果。

---

## Phase 1: Plan（规划）

1. 了解用户需求，进入 plan mode（使用 `EnterPlanMode`）
2. 探索代码库，设计实现方案
3. 将 plan 写入 plan 文件（`.claude/plans/` 下的 md 文件）
4. 调用 `ExitPlanMode` 让用户确认

**记住当前 plan 文件路径**，后续要发给 Codex。

---

## Phase 2: 确认目标 Codex 窗口

plan 确认后，使用 `AskUserQuestion` 询问用户：

```
问题: 将 plan 发送到哪个 Codex？
选项:
  1. 新建 Codex 窗口
  2. 新建 WSL Codex 窗口
  3. 发送到已有窗口（我告诉你标签名）
```

如果用户选"已有窗口"，用 `mcp__ccpanes__list_sessions` 和 `mcp__ccpanes__list_panes` 查找匹配的 sessionId。

---

## Phase 3: 发送 plan

### 路径处理

- **本地 Codex**: 直接使用 plan 文件的 Windows 路径
- **WSL Codex**: 将 `C:\Users\xxx\.claude\plans\name.md` 转换为 `/mnt/c/Users/xxx/.claude/plans/name.md`

### 发送方式

**新建 Codex 窗口**:
```
mcp__ccpanes__launch_task(
  projectPath: <当前项目路径>,
  cliTool: "codex",
  prompt: "请阅读以下 plan 文件并按其中的方案实现代码。完成所有步骤后汇报结果。\n\nPlan 文件路径: <plan_path>",
  title: "Codex: <简短描述>"
)
```

**WSL Codex 窗口**:
```
mcp__ccpanes__launch_task(
  projectPath: <WSL 项目路径>,  # UNC 格式自动走 WSL
  cliTool: "codex",
  prompt: "请阅读以下 plan 文件并按其中的方案实现代码。完成所有步骤后汇报结果。\n\nPlan 文件路径: <wsl_plan_path>",
  title: "Codex(WSL): <简短描述>"
)
```

**已有窗口**:
```
mcp__ccpanes__submit_to_session(
  sessionId: <找到的 sessionId>,
  text: "请阅读以下 plan 文件并按其中的方案实现代码。完成所有步骤后汇报结果。\n\nPlan 文件路径: <plan_path>"
)
```

记录返回的 `sessionId`。

---

## Phase 4: 监控 Codex

启动定时监控（每 30 秒检查一次）：

```
CronCreate:
  cron: "*/1 * * * *"   # 每分钟
  recurring: true
  prompt: |
    检查 Codex 会话状态：
    1. 调用 mcp__ccpanes__get_session_status(sessionId: "<sessionId>")
    2. 如果 status 是 "idle" 或 "exited"：
       - 调用 mcp__ccpanes__get_session_output(sessionId: "<sessionId>", lines: 200)
       - 运行 git diff --stat 查看变更
       - 汇报结果给用户
       - 删除这个 cron job
    3. 如果 status 是 "active"：
       - 静默等待，不打扰用户
```

或者用更简单的方式：告诉用户"Codex 正在执行，我会定期检查。你也可以直接切到 Codex 标签查看进度。"

---

## Phase 5: 检查结果

Codex 完成后（idle/exited）：

1. **读取输出**: `mcp__ccpanes__get_session_output(sessionId, lines: 500)`
2. **查看变更**: `git diff --stat` 和 `git diff`
3. **汇报给用户**:
   - Codex 完成了哪些步骤
   - 代码变更摘要
   - 是否有错误或未完成的部分
4. **建议下一步**: 运行测试、代码审查、或继续迭代

---

## 注意事项

- **不直接写代码** — 代码由 Codex 完成
- **plan 文件是交接物** — 确保 plan 足够详细，Codex 能独立执行
- **路径转换** — WSL 环境下自动转换 Windows 路径为 `/mnt/c/...` 格式
- **超时处理** — 如果 Codex 超过 10 分钟仍为 active，提醒用户检查

