最近、開発のやり方をガラッと変えた。

Claude CodeにCodexをつないで、役割分担させる体制にしたら、これがびっくりするくらい快適になった。「もっと早く入れておけばよかった」というやつ。

シャンディ
シャンディ
一人で全部やらせる時代はもう終わった気がする。

今日はこの「Claude Code × Codex」の棲み分けについて、実際にやってみて何が変わったかをまとめておく。

きっかけはClaude Code単体の限界

インターン生
インターン生
Claude Codeだけじゃダメなんですか?

もちろんClaude Code単体でも十分優秀で、一人で設計から実装までこなせる。ただ、長く使っていると「ちょっとこれはもったいないな」と感じる場面が増えてきた。

一番の悩みはトークン消費。機械的なコード量産でコンテキストを食いつぶしてしまい、肝心の設計やレビューに使える脳みそが減っていく。せっかくの判断力が、単純作業で削られていくのはもったいない。

設計も実装もレビューも同じモデル1つでやると、どこかで必ず集中力が薄まる。

役割分担という発想

シャンディ
シャンディ
Claudeは頭、Codexは手。そう決めるだけで動きが変わる。

解決策はシンプルで、役割をはっきり分けること。自分の中ではこう整理した。

Claude Code:考える/設計する/レビューする
Codex:作る/直す/つなげる

Claudeには要件整理・アーキテクチャ判断・コードレビューに集中してもらう。実装や修正、既存コードの改修といった「手を動かす作業」はCodexに委譲する。頭脳と手、という感じ。

Codexが書いたコードはClaudeがレビューして妥当性をチェックする。ここが効く。一人で書いて一人で読み返すより、別のモデルの視点が入ることで見落としが減る。

実際のワークフロー

インターン生
インターン生
具体的にはどんな流れで進めるんですか?

ざっくり、こんな流れで回している。

まずClaude側で設計を固める。目的・要件・制約・完了条件を詰めて、Codexが実装しやすい粒度までタスクを分解する。「コンポーネント雛形を作る」「stateを組む」「UIを組む」「組み込む」みたいに、1タスク1責務で積み上げる。

分解が終わったら、/codex経由で実装を依頼する。Codexは淡々と手を動かしてくれる。ビルドが通ったらClaudeに戻して、レビュー。既存パターンとの整合、型の扱い、リグレッションの観点で指摘を入れて、また修正はCodexに任せる。

プレビュー確認まではCodexが担当して、本番可否の判断はClaudeで最終チェック。この往復がかなり心地いい。

シャンディ
シャンディ
review-gateも有効化しておくと、承認プロセスが自然に挟まる。

やってみて変わったこと

一番の変化は、自分が「考えることだけ」に集中できるようになったこと。コード生成を追いかける疲労が減って、設計判断に時間を使える。結果として最終品質も上がっている実感がある。

トークン消費も明らかに軽くなった。Claude側のコンテキストが実装コードで圧迫されないので、長い議論や大きな設計判断にも耐えられる。

インターン生
インターン生
これからは全部このやり方で?
シャンディ
シャンディ
軽い編集や調査はClaude単体でいい。非自明な実装が出たらCodexに渡す。

使い分けの基準はこれくらいで十分だと思う。全部を分担する必要はなくて、「手が重くなったらCodexを呼ぶ」くらいのゆるさがちょうどいい。

AI同士を組み合わせる時代に入ったんだな、と素直に思う。一人で完結するよりも、役割を分けたチームにしたほうが、結局は速くて品質も高い。人間の組織と同じ話だ。

Claudeは頭、Codexは手。迷ったらこの原則に戻る。

しばらくはこの体制で回してみて、また気づきがあれば追記する予定。