实战 C1:双工具协同工作流——Codex 写代码,Claude Code 做审查
# 双工具协同工作流
## 日常分屏工作流
- Codex:TDD 开发
- Claude Code:Pre-commit 审查
- 交替进行,互相独立
## 任务分工矩阵
- 按任务类型分配
- 按风险级别分配
- 按模型特性分配
## 共享配置策略
- 统一的 AGENTS.md/CLAUDE.md
- 共享 Skills
- 避免配置冲突
很多开发者的误区是把 Codex 和 Claude Code 看作"二选一"。实际上,它们可以同时在一个项目中使用——而且是互补的。本文不讨论"谁更好",而是展示如何设计工作流,让两个工具各自发挥最强的一面。
核心原则:根据任务特征分配工具
| 任务特征 | 推荐工具 | 原因 |
|---|---|---|
| 编写新功能代码 | Codex | TDD 闭环、验证习惯更好 |
| 大规模批量重构 | Claude Code | Dynamic Workflows 可并行数百文件 |
| 快速迭代 UI 开发 | Codex | Fast mode 响应更快 |
| 深度代码审查 | Claude Code | 5 级 effort + inline PR 评论 |
| 安全漏洞扫描 | Claude Code | /security-review 覆盖 OWASP Top 10 |
| 定时后台自动化 | Codex | Automations + Triage 收件箱 |
| 技术调研报告 | Claude Code | /deep-research 带引用来源 |
| 配置和基础设施 | Codex | config.toml 分层更灵活 |
案例 1:日常开发分屏——Codex 写,Claude Code 审
场景:你在开发一个 API 端点,希望写完代码后立刻得到两个 AI 的交叉审查。
工作流设计
flowchart TB
A[需求分析] --> B{任务类型?}
B -->|新功能| C[Codex TDD]
B -->|代码审查| D[Claude Code 审查]
B -->|安全扫描| E[Claude Code 安全]
B -->|批量重构| F[Claude Code 批量]
B -->|定时任务| G[Codex 自动化]
C --> H[diff + review]
D --> L[发布 review]
H --> I{CI 通过?}
I -->|是| J[合并 PR]
I -->|否| K[修复重试]
K --> H
E --> J
F --> J
G --> J
L --> J
classDef codex fill:#2563eb,color:#fff,stroke:#1d4ed8
classDef claude fill:#d97706,color:#fff,stroke:#b45309
classDef neutral fill:#6b7280,color:#fff,stroke:#4b5563
class C,G codex
class D,E,F claude
class A,B,H,I,J,K,L neutral
sequenceDiagram
participant C as Codex CLI
participant G as Git Repo
participant CC as Claude Code CLI
participant GH as GitHub
C->>C: TDD 开发 + 运行测试
C->>C: diff 确认改动
C->>G: git commit
G-->>CC: 检测到新 commit
CC->>CC: code-review effort=high
CC-->>C: 输出审查报告
C->>C: 根据报告修复 + 重新测试
CC->>CC: code-review --fix 自动修复
C->>G: git push
C->>GH: 创建 PR
CC->>GH: review PR 并发布评论
关键点:
- Codex 负责"做"——写代码、跑测试、确认功能
- Claude Code 负责"审"——代码质量、安全检查、PR 评论
- 两个工具操作同一个 Git 仓库,但不要同时修改同一个文件
实际操作脚本
终端 1——Codex:
# 启动 Codex
cd ~/projects/api-service
codex
# 对话 1:TDD 开发
用 TDD 实现 GET /api/users/:id/orders 端点。
包含分页、筛选和排序。先写测试,确认失败后写实现。
运行测试确认通过。
# 对话 2:确认改动
/diff
/review
# 对话 3:提交
git add -A && git commit -m "feat(api): add user orders endpoint with pagination"
终端 2——Claude Code:
# 启动 Claude Code
cd ~/projects/api-service
claude
# 对话 1:深度审查刚提交的改动
/code-review effort=high
重点关注:错误处理是否完整、SQL 查询是否有 N+1 风险、分页是否正确处理边界
# 对话 2:安全审查
/security-review
# 对话 3:如果审查发现问题,用 --fix 自动修复
/code-review --fix
为什么这样分工
Codex 在日常开发中的优势是 TDD 闭环——它在写测试→写实现→跑验证的循环中表现稳定,不容易跳过验证步骤。
Claude Code 在审查中的优势是 深度分析——effort=high 级别的审查会追踪调用链、检查 N+1 查询、分析错误传播路径——这些是 Codex 的 /review 做不到的。
案例 2:任务分工矩阵
场景:你的团队在做一个大项目,需要决定哪些任务分配给哪个工具。
按任务类型分配
| 任务类型 | 工具选择 | 原因 |
|---|---|---|
| 新功能开发 (CRUD) | Codex | TDD 流程标准,验证习惯好 |
| 复杂算法实现 | Claude Code (effort=xhigh) | 需要深度推理 |
| 前端 UI 迭代 | Codex (Fast mode) | 快速反馈循环 |
| 后端架构重构 | Claude Code (Dynamic Workflow) | 多文件并行处理 |
| 代码格式化/类型补全 | Codex (轻量模型) | 成本低,速度快 |
| 安全敏感模块 | Claude Code (/security-review) | 内置 OWASP 扫描 |
| 技术选型调研 | Claude Code (/deep-research) | 多源交叉验证 |
| CI/CD 定时任务 | Codex (Automations) | Triage 收件箱 + cron 调度 |
| PR 审查 | Claude Code (/code-review --comment) | inline PR 评论 + 5 级 effort |
按风险级别分配
| 风险级别 | 策略 |
|---|---|
| 低风险(工具函数、类型定义) | Codex 或 Claude Code,自动执行 |
| 中风险(API 端点、数据模型) | Codex 实现,Claude Code 审查 |
| 高风险(认证、支付、数据库迁移) | Claude Code 规划 + 实现,Codex 二次审查 |
按模型特性分配
| 场景 | 策略 |
|---|---|
| 需要快速迭代(10 次/小时) | Codex gpt-5.4-mini + /fast on |
| 需要深度推理(1-2 次/小时) | Claude Code effort=xhigh 或 Codex gpt-5.5 high |
| 需要批量并行(500 文件) | Claude Code ultracode |
| 需要无人值守(24/7 运行) | Codex Automations |
案例 3:共享配置——让两个工具理解同一个项目
场景:你的项目同时使用 Codex 和 Claude Code。如何避免在两个工具的配置文件中重复维护相同的项目知识?
策略:AGENTS.md 是唯一真相源
项目根目录
AGENTS.md ← 唯一的项目引导文件
CLAUDE.md ← 符号链接指向 AGENTS.md
.codex/
config.toml ← Codex 专属配置
.claude/
settings.json ← Claude Code 专属配置
skills/ ← Claude Code 专属 Skills
# 创建符号链接
ln -s AGENTS.md CLAUDE.md
AGENTS.md 写什么(两个工具通用)
# Project: E-Commerce Platform
## Commands (Both Tools)
- Install: `bun install`
- Dev: `bun run dev` → localhost:3000
- Lint: `bun run lint`
- Type check: `bun run typecheck`
- Test: `bun run test`
## Architecture
- monorepo/web/ — Next.js frontend (React 19, Tailwind)
- monorepo/api/ — Go backend (Chi router, sqlc, PostgreSQL)
- monorepo/shared/ — TypeScript types shared between frontend and BFF
## Conventions (Both Tools)
- Use TypeScript strict mode (frontend/shared)
- Go error handling with fmt.Errorf wrapping (backend)
- API changes must update OpenAPI spec
- DB changes must include migration + rollback
Codex 专属配置 .codex/config.toml
model = "gpt-5.4-mini" # Codex 偏好轻量快速
review_model = "gpt-5.5" # 但审查用主力模型
model_reasoning_effort = "medium"
[features]
goals = true
multi_agent = true
fast_mode = true
Claude Code 专属配置 .claude/settings.json
{
"model": "claude-sonnet-4-6",
"effort": "high"
}
Claude Code 专属 Skills
Skills 是工具专属的——Codex 和 Claude Code 的 Skills 格式虽然相似,但不能直接通用。把工具专属的工作流放在各自目录下:
.claude/skills/
deep-review/SKILL.md ← Claude Code 用 /code-review 的深度审查流
deploy/SKILL.md ← Claude Code 用 MCP 连接 AWS 的部署流
.codex/skills/
db-migration/SKILL.md ← Codex 的数据库迁移标准流
release/SKILL.md ← Codex 的发布流程
避免的坑:双工具并行时的冲突
坑 1:同时编辑同一个文件
两个工具同时修改 src/api/users.go → Git 冲突。
解决:建立"文件锁"约定——在 commit message 或分支名中标记工具:
git checkout -b feat/codex-orders-endpoint
git checkout -b review/claude-security-fix
坑 2:配置互相覆盖
Codex 和 Claude Code 都可能在项目根目录创建配置文件。确保:
.codex/和.claude/目录互不干扰- 共享文件(AGENTS.md/CLAUDE.md)通过 symlink 保持同步
.gitignore中包含两个工具的缓存和日志目录
坑 3:模型成本失控
两个工具都在消耗 API 额度。建议:
- Codex 日常迭代用 gpt-5.4-mini(低成本)
- Claude Code 仅用于审查和深度分析(按需使用)
- 用 Codex Automations 替代手动 Claude Code 重复调用
总结
双工具协同的核心不是"让它们同时做同一件事",而是根据任务特征选择最合适的工具:
- Codex 做日常开发——TDD、迭代、自动化
- Claude Code 做质量保障——审查、安全、深度分析
- 共享 AGENTS.md,独立 Skills 和配置文件
下一章:C2: 混合流水线——Codex 自动化 + Claude Code 深度分析
实操清单
- 在同一项目中配置 Codex 和 Claude Code 的共存环境
- 创建
CLAUDE.md → AGENTS.md符号链接,保持配置同步 - 分别建立
.codex/skills/和.claude/skills/目录 - 按照任务分工矩阵,将当前 Sprint 的任务分配给合适的工具
- 实践一次分屏工作流:Codex 写代码 + Claude Code 审查
- 建立 Git 分支命名约定:
codex/feat/*、claude/refactor/* - 在
.gitignore中添加两个工具的忽略规则