实战 C1:双工具协同工作流——Codex 写代码,Claude Code 做审查

实战教程系列 系列 C:C1 双工具工作流 ← 本文 | C2 混合流水线 | C3 大型项目策略


# 双工具协同工作流 ## 日常分屏工作流 - 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 中添加两个工具的忽略规则