
Claude Code / Codex を開発現場で使うときの設計原則
AI コーディングツールは、使い方より "環境設計" で成果が変わる。
この記事の結論
- Claude Code / Codex / Cursor などの AI コーディングツールは、個人の生産性向上ツール から チームの再現可能な開発プロセス に進化しつつあります。
- 個人利用とチーム導入で必要なものは違います。チーム導入では、プロジェクト文脈ファイル (CLAUDE.md / AGENTS.md) が起点になります。
- 大事なのは「どのプロンプトを使うか」より、コードベースの構造、テスト、lint、型、ドキュメント、レビューフロー が整っているか。
- ツール選定は「Cursor は対話編集、Claude Code はターミナル / 大規模変更、Codex はクラウドで PR まで自動化」の住み分けが現実的です。
- 失敗が起きたときに ルール・ドキュメントに反映する習慣 が、AI 時代の改善サイクルです。
「Cursor を導入したけど、人によって使い方がバラバラで効果が出ない」「Claude Code、個人では使えるけどチームで使うと PR レビューが追いつかない」
AI コーディングツールを導入した組織から、こうした相談が増えています。問題は ツールではなく、環境設計 にあることがほとんどです。
この記事では、Claude Code / Codex / Cursor をチームで使うときの設計原則を、ツール選定、ドキュメント、テスト、レビューの 4 観点で整理します。
ツール選定: Cursor / Claude Code / Codex の住み分け
AI コーディングツールはどれも進化が早く、機能差はすぐ追い付きます。ただし、得意な使い方が違う ので、チームでは複数を併用するのが現実的です。
| ツール | 得意な使い方 | 苦手 |
|---|---|---|
| Cursor | IDE での対話編集、ファイル間の小さな変更、ペアプログラミング感覚 | 大規模変更、ターミナル操作中心の作業 |
| Claude Code | ターミナルでの大規模変更、CLAUDE.md による文脈付与、コードベース横断の調査 | IDE 内のリアルタイム補完 |
| Codex | クラウドでの並列タスク、PR 作成までの自動化、サンドボックスでのテスト実行 | ローカル IDE での対話的編集 |
OpenAI のドキュメントによれば、Codex は独立したクラウドサンドボックスでテストやリンタを実行できる設計とされています (Introducing Codex / OpenAI)。Claude Code は、ローカルのファイルシステムを直接たどってコードベースを理解する設計で、CLAUDE.md などのハーネス (CLAUDE.md / hooks / skills / plugins / MCP servers) がモデル本体より成果を左右する、と整理されています (Claude Code docs / Anthropic)。
min's での使い分け例
- 新機能の実装: Cursor で対話的に書き始め、形が見えたら Claude Code に切り替えてテスト追加・複数ファイル調整
- コードベース全体の調査: Claude Code または Codex Subagents で並列調査
- 大規模リファクタリング: Codex のクラウド実行で並列に複数ブランチを試す
- 緊急バグ修正: Cursor で原因箇所を特定 → Claude Code で修正 + テスト追加
「全部を 1 つのツールでやろう」とすると、どこかに無理が出ます。チーム内でツールを統一する必要はなく、得意な使い方で住み分ける のが現実的です。
AI コーディングツールを個人利用で終わらせない
個人で使うときの強みは、自分が触っているコードベースの文脈を全部頭に入れた状態で AI に指示できることです。チームで使うとそうはいかない。人によって AI に渡す前提が違う ので、生成されるコードの品質もバラバラになります。
これを解消するために、AI に渡す前提を コードベース側に置いておく のが基本姿勢です。
具体的には、リポジトリのルートに以下のようなファイル群を置きます。
/CLAUDE.md ← Claude Code 用のプロジェクト文脈
/AGENTS.md ← Codex 用のプロジェクト文脈 (内容は CLAUDE.md と共通化可)
/.claude/ ← Claude Code 固有の設定、スキル、フック
/.codex/ ← Codex 固有の設定、サブエージェント定義
/docs/architecture/ ← アーキテクチャ判断の記録
/docs/runbook/ ← 障害対応・運用手順
ここまで揃っていれば、誰が AI に指示しても、同じ前提のコードが出やすくなります。
CLAUDE.md / AGENTS.md の役割
Anthropic の Claude Code には CLAUDE.md という設定ファイルの仕組みがあり、Claude の system prompt に自動的に含められます。プロジェクトの構造、規約、ワークフローを記述し、毎回の対話で読み込ませる用途で使われます (Using CLAUDE.md files / Anthropic)。OpenAI の Codex にも AGENTS.md という同じ役割のファイルがあり、グローバル / プロジェクト / サブディレクトリの 3 階層で重なる設計です (Custom instructions with AGENTS.md / OpenAI Developers)。
書くべき項目 (最低限)
- プロジェクトの概要 (何を作っているか、誰が使うか)
- ディレクトリ構成と、各ディレクトリの責務
- コーディング規約 (命名、フォーマット、関数の責務分割)
- 主要なコマンド (
npm test,npm run typecheck,npm run lint) - テストの書き方、自動テストの範囲
- 触ってはいけないファイル、マイグレーションのルール
- セキュリティ上の注意事項
書きすぎてはいけないもの
OpenAI の Codex ベストプラクティスでも、AGENTS.md は 「肥大化したらタスク別ドキュメントへ分ける」 ことが推奨されています (Codex Best Practices / OpenAI Developers)。プロジェクト全体に効く規約だけを残し、特定タスクの詳細は別ファイルへ分割します。
具体的に書かない方がいいもの:
- 個別の機能の実装詳細 (別ファイル
docs/features/などに) - 個別 API の仕様 (OpenAPI / Swagger / 別 README で)
- 設計判断の歴史的経緯 (
docs/decisions/の ADR で) - 過去のバグ修正の経緯 (PR 履歴で十分)
詳しい書き方とテンプレートは CLAUDE.md / AGENTS.md に何を書くべきか で展開しています。
テスト・lint・型チェックを先に整える
AI に書かせる前に、コードベースが「機械的に検証できる状態」 になっている必要があります。
最低限揃える CI のチェック
# 例: GitHub Actions のチェック項目
- pnpm install --frozen-lockfile
- pnpm typecheck # 型チェック
- pnpm lint # ESLint / Biome
- pnpm test # 単体テスト (Vitest / Jest)
- pnpm e2e # E2E テスト (Playwright)
これらが揃っていれば、AI が書いたコードを 「動いているように見えるが、壊れている」状態でマージ することを防げます。
逆に揃っていれば、AI に「型エラーを直して」「テストを追加して」と指示するだけで、品質ゲートを通る形でコードが出てきます。Codex のドキュメントでも、テスト出力やターミナルログを通じて作業の検証可能性を提供する設計が説明されています (Introducing Codex / OpenAI)。AI と CI は補完関係です。
既存プロジェクトに後から入れるときの順序
既存のリポジトリでこれらが整っていない場合、以下の順で入れていきます。
- 型チェック (TypeScript なら
tsc --noEmitを CI で実行) - lint + formatter (ESLint / Biome / Prettier)
- 単体テスト (まずはドメインロジックだけ)
- CI で必須化 (PR が通らない設定)
- E2E テスト (主要フローだけ)
全部一気にやらず、1〜2 週間ずつかけて段階的に 入れます。
AI に任せるタスク単位を定義する
AI に任せるタスクは、完了基準と検証方法が明確 なものに絞ります。
任せやすいタスク
| タスク | 検証方法 |
|---|---|
| 単独機能の実装 (CRUD、フォーム) | 自動テストで動作確認 |
| 既存関数のリファクタリング | テスト通過 + 差分レビュー |
| テストケースの追加 | カバレッジ計測 + 観点レビュー |
| ドキュメント更新 | 内容レビュー |
| バグの原因調査 | 再現コードによる検証 |
| ライブラリ移行 (例: Moment.js → date-fns) | テスト通過 + 差分レビュー |
任せにくいタスク
| タスク | 理由 |
|---|---|
| 認証・テナント分離の設計 | 整合性判断は人間 |
| データモデルの根本変更 | 既存データへの影響判断が必要 |
| セキュリティ判断 | 業界・法令の文脈が必要 |
| リリース判断 | 事業判断が必要 |
| 価格・契約に関わるロジック | 法務判断が絡む |
「コードベースをまたぐ大きな変更」は、Claude Code が複数ファイルを横断して扱える設計とされていますが、それでも 人間がスコープを切ってから渡す のが現実的です。
Codex Subagents での並列実行
OpenAI のドキュメントでは、複雑な調査や実装で specialized agents を並列に走らせる Subagents の仕組みが提供されています (Codex Subagents / OpenAI Developers)。
典型的な使い方:
- コードベース全体から「特定 API を使っている箇所」を並列に探す
- 複数ブランチで同じ機能の別実装を試して比較する
- 大規模リファクタリングを、サブディレクトリ単位で並列に進める
ただし、最終 PR は 1 つに集約して、人間がレビューする という設計が破綻を防ぎます。
レビューと承認フローを設計する
AI が書いたコードを、CI 通過だけでマージするのは危険です。最低限以下のレビューフローを組みます。
PR テンプレートに AI 区分を入れる
## このPRの種類
- [ ] 100% 手書き
- [ ] AI 生成 + 人間レビュー済み
- [ ] AI 生成 + 軽微な修正
- [ ] AI と対話しながら共同で書いた
これがあると、レビュアーは「AI 生成部分は特に注意して見る」という心構えで読めます。
必須レビュー領域
以下の変更は、必ず人間 2 人以上でレビューする運用にします。
- 認証・権限・テナント分離
- 課金・決済
- データモデルの変更 (マイグレーション)
- 外部 API との連携
- 環境変数・秘密情報の扱い
これらは AI 任せにせず、設計段階で人間が方針を決めて、AI は実装補助 に使います。
「AI レビュアー」を補助に使う
レビュー側も AI を使えます。
- PR 差分の要約 (この PR が何を変えているか)
- 影響範囲の調査 (この関数を使っている他のファイル)
- リスクの列挙 (この変更で壊れる可能性のあるシナリオ)
- テスト観点の抽出 (追加すべきテストケース)
これらを AI に依頼すると、人間は「事業判断」「例外許容」「リスク受容」「UX 判断」に時間を集中できます。
ここまでで「自社のコードベースに、AI を本格導入したい」と感じたら、まずは現状診断と CLAUDE.md / AGENTS.md の整備から始めるのが現実的です。
失敗をルールに反映する習慣
AI コーディングを運用していると、必ず「AI が同じミスを繰り返す」状況が出てきます。コーディング規約に書いていない暗黙の前提を AI が知らないと、何度プロンプトを工夫しても同じ間違いが起きます。
そのときの対処は、プロンプトを工夫する ではなく、CLAUDE.md / AGENTS.md に追記する が正解です。
典型的な追記パターン
- 「ドメイン関数は副作用を持たない。副作用は
lib/db/と route handler だけ」 - 「マイグレーションは既存ファイルを編集せず、新規ファイルを追加する」
- 「フォームバリデーションは zod でスキーマを定義してから実装する」
- 「PR には必ず単体テストを追加する。テスト追加なしの PR は CI で reject」
OpenAI の Codex ベストプラクティスでも、失敗が起きたら振り返って AGENTS.md に反映する運用が推奨されています。「失敗 → ルール化 → 再発防止」 が、AI 時代の改善サイクルです。
これを徹底すると、AI を使うほどに コードベースの一貫性が上がっていく ようになります。
min's の運用例
min's では、CLAUDE.md / AGENTS.md は 「2 週間に 1 回見直し、月に 1 回チームで読み合わせ」 という運用にしています。同じ指摘がレビューで 2 回出たら、その場でファイルに追記します。
四半期に 1 回は全文をレビューし、陳腐化した項目 (使わなくなったライブラリの注意事項など) を整理します。CLAUDE.md / AGENTS.md は 長くなりすぎると AI のコンテキストを圧迫する ので、適切なサイズを保つ意識が重要です。
ハーネス全体で考える
Claude Code のドキュメントでは、CLAUDE.md だけでなく、hooks、skills、plugins、MCP servers といった ハーネス全体 が成果を左右する、とされています。これは Codex も同じで、AGENTS.md だけでなく、Subagents、Skills、CLI 設定、IDE 統合まで含めて「環境」を作ります。
ハーネスを構成する要素:
- ドキュメント: CLAUDE.md / AGENTS.md / ADR / Runbook
- CI: 型、テスト、lint、E2E、セキュリティスキャン
- ツール統合: GitHub Actions、Slack、Linear などへの連携
- サブエージェント / スキル: 繰り返し作業を再利用可能な単位にまとめる
- MCP サーバー: AI からデータベース、API、外部 SaaS にアクセスする経路
- PR テンプレート: レビュー観点の定型化
これらを 一度に全部揃える必要はありません。プロジェクトで使うものから少しずつ整え、運用の中で増やしていくのが現実的です。
AI 開発環境のセットアップを依頼したい方へ
min's では、Claude Code / Codex / Cursor のチーム導入、CLAUDE.md / AGENTS.md の整備、AI 活用前提の CI 整備を支援しています。
以下のような状態であれば、ご相談ください。
-
AI コーディングツールをチームに導入したいが、効果が出ない
-
CLAUDE.md / AGENTS.md のテンプレートが欲しい
-
既存コードベースを AI フレンドリーに整えたい
-
AI 開発を前提とした CI / テスト戦略を設計したい
-
ツール選定 (Cursor / Claude Code / Codex / その他) で迷っている
次に読む記事
参考
- Custom instructions with AGENTS.md / OpenAI Developers — Codex に渡すプロジェクト固有指示の階層
- Codex Best Practices / OpenAI Developers — AGENTS.md の運用と失敗時の振り返り
- Codex Subagents / OpenAI Developers — 並列実行可能なサブエージェントの設計
- Introducing Codex / OpenAI — Codex のクラウドサンドボックスとテスト実行
- Claude Code docs / Anthropic — Claude Code のコードベース探索とハーネス設計
- Using CLAUDE.md files / Anthropic — CLAUDE.md でプロジェクト文脈を Claude に渡す仕組み