技術
約3分で読めます
Claude Code + Codex 自動開発フレームワークを汎用化して公開した
はじめに
実践編と改善編で作ったClaude Code + Codexの自動ループを、汎用フレームワークとしてGitHubで公開した。
https://github.com/hide3tu/tmux-cidex-claude-conversation
このフレームワークでできること
- Codex(マネージャー)がタスクを選んでClaude(ワーカー)に指示
- Claudeが実装・コミット・プッシュ
- Codexがレビューして、問題があれば修正指示
- 完了したら次のタスクへ自動で進む
todo.mdにタスクを書いて起動すれば、あとは放置で開発が進む。
アーキテクチャ
Codex(マネージャー)
├── docs/todo.md を読む
├── work/task.md にタスク指示を書く
├── Claudeの完了を待つ
├── work/review.md にレビュー結果を書く
└── docs/todo.md を更新
↓↑ ファイル通信
Claude(ワーカー)
├── work/task.md を読む
├── 実装・コミット・プッシュ
└── logs/.claude_done で完了通知
通信はすべてファイル経由。
| ファイル | 用途 |
|---|---|
work/task.md | Codex → Claude へのタスク指示 |
work/review.md | Codex → Claude へのレビューフィードバック |
logs/.claude_done | Claude → Codex への完了シグナル |
使い方
1. クローン
git clone https://github.com/hide3tu/tmux-cidex-claude-conversation
cd tmux-cidex-claude-conversation
2. 設定ファイルを編集
CLAUDE.md にプロジェクト固有のルールを書く:
# プロジェクト概要
○○を開発するプロジェクト。
# 使用コマンド
- ビルド: npm run build
- テスト: npm test
# コーディング規約
- TypeScript使用
- コミットメッセージは日本語
AGENTS.md はCodex用の指示書。基本的にはそのままで動く。
3. タスクリストを作成
docs/todo.md:
# TODO
- [ ] ユーザー認証APIの実装 (`src/api/auth.ts`)
- [ ] ログインUIコンポーネント作成 (`src/components/Login.tsx`)
- [ ] フォームバリデーション追加 (`src/utils/validation.ts`)
タスクの粒度は「1コミットで終わる程度」が目安。大きすぎると途中で迷子になる。
4. 起動
./scripts/codex-main.sh
tmuxセッションが起動し、Codexが自動でタスクを処理し始める。止めたいときは Ctrl+C。
設計思想
なぜCodexをマネージャーにしたか
Codexは計画立案とレビューが得意で、Claudeは実装が得意。得意分野で役割分担した。
Codexをマネージャーにすることで「どのタスクを次にやるか」の判断が一元化される。実践編ではClaudeが自分でtodo.mdを読んで判断していたが、意図しない順序で進むことがあった。
なぜファイル通信か
API経由で直接通信する方法もあるが、ファイル通信にはメリットがある:
- 介入しやすい: 動作中にtask.mdを手動で書き換えられる
- デバッグしやすい: ファイルを見れば何が起きているかわかる
- 状態が残る: セッションが切れても途中から再開できる
- シンプル: 複雑な通信プロトコルが不要
コンテキスト効率化について
改善編で詳しく書いたが、ポイントは:
- Claudeワーカーをタスクごとに起動・終了
- 完了後にworkディレクトリをクリーン
- ブロッキング待機でAPI呼び出し削減
カスタマイズのヒント
タイムアウト変更
AGENTS.md の timeout 3600 を変更する。単位は秒。
レビュー回数変更
AGENTS.md で「レビューは最大3回」と書いてある部分を変更する。
別のLLMを使う
Claude部分をGeminiに差し替えるなら、CLAUDE.md を GEMINI.md にリネームして、起動スクリプトの claude コマンドを gemini に変える。