Codex ワークフローパターン
Codexは日常的なコーディングから複雑なリファクタリングまで、さまざまな開発ワークフローに組み込むことができ、効率を大幅に向上させます。
日常開発ワークフロー
日常開発は最も一般的なワークフローパターンで、新機能の構築や小規模な変更に適しています。
ワークフローの手順
| 手順 | 操作 | Codexとの連携 |
|---|---|---|
| 1 | 要件を明確にする | 実装したい機能を説明する |
| 2 | Codexによる分析 | Codexがプロジェクト構造と規約を理解する |
| 3 | 方針の検討 | Codexと実装方針を確認する |
| 4 | コード生成 | Codexがコードを作成し、ファイルを変更する |
| 5 | テストで検証 | テストを実行して機能が正しいことを確認する |
| 6 | 反復的な最適化 | フィードバックに基づいてコードを調整する |
例:新しいAPIエンドポイントの追加
日常開発の流れ
# 手順1:要件を説明する
"/api/users パスにGETエンドポイントを追加して、ユーザーリストを返す
ページネーションパラメータ page と limit をサポートする"
# 手順2-3:Codexが分析し方針を確認する
Codexは既存のAPI構造を分析し、以下を確認します:
- ルート定義の場所
- データベースクエリ方法
- レスポンス形式の規約
# 手順4:コード生成
Codexが自動的に作成:
- ルート定義
- データ取得ロジック
- エラーハンドリング
- レスポンスのフォーマット
# 手順5:テストで検証
"テストを実行し、新しいエンドポイントを確認する"
# 手順6:反復的な最適化
"キャッシュサポートを追加し、応答時間を100ms未満にする"
"/api/users パスにGETエンドポイントを追加して、ユーザーリストを返す
ページネーションパラメータ page と limit をサポートする"
# 手順2-3:Codexが分析し方針を確認する
Codexは既存のAPI構造を分析し、以下を確認します:
- ルート定義の場所
- データベースクエリ方法
- レスポンス形式の規約
# 手順4:コード生成
Codexが自動的に作成:
- ルート定義
- データ取得ロジック
- エラーハンドリング
- レスポンスのフォーマット
# 手順5:テストで検証
"テストを実行し、新しいエンドポイントを確認する"
# 手順6:反復的な最適化
"キャッシュサポートを追加し、応答時間を100ms未満にする"
コード理解ワークフロー
レガシーコードや馴染みのないプロジェクトを理解する必要がある場合に、このワークフローを使用します。
探索的ワークフロー
- エントリーポイントから始めて、Codexに全体アーキテクチャを説明させます
- 主要モジュールへ段階的に掘り下げ、中核ロジックを理解します
- データフローと呼び出しチェーンを追跡します
- 重要なポイントと注意事項をまとめます
レガシープロジェクトの理解
# 全体アーキテクチャ
"このプロジェクトの全体アーキテクチャを分析し、主要モジュールとそれらの関係を説明してください"
# 中核モジュール
"src/auth モジュールの動作原理を、認証フローと権限チェックを含めて説明してください"
# データフローの追跡
"ユーザーログイン後、リクエストからレスポンスまでの完全なフローを追跡してください"
# 重要ポイントのまとめ
"このプロジェクトの中核となるデザインパターンと注意すべき点をまとめてください"
"このプロジェクトの全体アーキテクチャを分析し、主要モジュールとそれらの関係を説明してください"
# 中核モジュール
"src/auth モジュールの動作原理を、認証フローと権限チェックを含めて説明してください"
# データフローの追跡
"ユーザーログイン後、リクエストからレスポンスまでの完全なフローを追跡してください"
# 重要ポイントのまとめ
"このプロジェクトの中核となるデザインパターンと注意すべき点をまとめてください"
新規プロジェクトに素早く慣れる
新規プロジェクト開始ガイド
# プロジェクト概要
"これは何のプロジェクトですか?主な機能と技術スタックは何ですか?"
# 開発ガイド
"ローカルで開発環境を起動するには?テストを実行するには?"
# コーディング規約
"このプロジェクトのコーディング規約は何ですか?どんな取り決めがありますか?"
# モジュールナビゲーション
"X機能を追加する場合、どのファイルを変更すべきですか?"
"これは何のプロジェクトですか?主な機能と技術スタックは何ですか?"
# 開発ガイド
"ローカルで開発環境を起動するには?テストを実行するには?"
# コーディング規約
"このプロジェクトのコーディング規約は何ですか?どんな取り決めがありますか?"
# モジュールナビゲーション
"X機能を追加する場合、どのファイルを変更すべきですか?"
リファクタリングワークフロー
リファクタリングは慎重な対応が必要ですが、Codexはコード構造を体系的に改善するのに役立ちます。
リファクタリングの原則
- 既存のコード構造を先に理解する
- 小さなステップでリファクタリングし、段階的に改善する
- 各ステップで検証し、機能が変わらないことを確認する
- テストカバレッジを維持する
リファクタリングワークフローの手順
| 手順 | 説明 |
|---|---|
| 問題の特定 | Codexがコードを分析し、改善が必要な部分を特定する |
| 方針を立てる | リファクタリング方針を検討し、改善の方向性を確認する |
| 段階的に実行 | 小規模な変更を行い、変更のたびに検証する |
| テストによる検証 | すべてのテストを実行し、機能が正しいことを確認する |
| 整理と最適化 | 冗長なコードを削除し、命名を最適化する |
リファクタリングの例
# 問題の特定
"src/utils モジュールを分析し、コードの重複と不合理な設計を特定してください"
# 方針を立てる
"このモジュールを後方互換性を保ちながらリファクタリングする方法を検討してください"
# 段階的に実行
"ステップ1:共通関数を utils/common.py に抽出する"
# テストによる検証
"すべてのテストを実行し、リファクタリングが機能を壊していないことを確認する"
# 次のステップへ
"ステップ2:複雑な関数を簡素化し、より小さな単位に分割する"
"src/utils モジュールを分析し、コードの重複と不合理な設計を特定してください"
# 方針を立てる
"このモジュールを後方互換性を保ちながらリファクタリングする方法を検討してください"
# 段階的に実行
"ステップ1:共通関数を utils/common.py に抽出する"
# テストによる検証
"すべてのテストを実行し、リファクタリングが機能を壊していないことを確認する"
# 次のステップへ
"ステップ2:複雑な関数を簡素化し、より小さな単位に分割する"
リファクタリング時は /plan モードで先に計画を立て、その後段階的に実行して、一度に大きな変更を加えることを避けましょう。
バグ修正ワークフロー
Codexはバグの迅速な特定と修正を支援します。
修正フロー
| 手順 | 操作 |
|---|---|
| 問題の説明 | バグの症状と発生条件を説明する |
| 情報の提供 | エラーメッセージ、ログ、スクリーンショットを共有する |
| 根本原因の特定 | Codexが分析し根本原因を特定する |
| 修正の生成 | Codexが修正案を提案する |
| 修正の検証 | テストを実行して問題が解決されたことを確認する |
| 再発防止 | そのシナリオをカバーするテストを追加する |
バグ修正の例
# 問題の説明
"ユーザーログイン時にまれに500エラーが発生します。エラーログには次のように表示されます:
TypeError: Cannot read property 'id' of undefined"
# 情報の提供
"これは完全なエラースタックです:[スタック情報を貼り付け]"
# 根本原因の特定
Codexが分析したところ、ユーザーオブジェクトが特定の状況で null になる問題が見つかりました
# 修正の生成
"この問題を修正し、通常のログインフローに影響を与えないようにしてください"
# 修正の検証
"ログイン関連のすべてのテストを実行する"
# 再発防止
"ユーザーオブジェクトが null の場合をカバーするテストを追加する"
"ユーザーログイン時にまれに500エラーが発生します。エラーログには次のように表示されます:
TypeError: Cannot read property 'id' of undefined"
# 情報の提供
"これは完全なエラースタックです:[スタック情報を貼り付け]"
# 根本原因の特定
Codexが分析したところ、ユーザーオブジェクトが特定の状況で null になる問題が見つかりました
# 修正の生成
"この問題を修正し、通常のログインフローに影響を与えないようにしてください"
# 修正の検証
"ログイン関連のすべてのテストを実行する"
# 再発防止
"ユーザーオブジェクトが null の場合をカバーするテストを追加する"
スクリーンショットによるデバッグ支援
スクリーンショットを使ってCodexに問題を理解させましょう:
画像入力
# CLIでスクリーンショットを添付
codex -i error-screenshot.png "このエラーを説明して修正してください"
# IDEでスクリーンショットを貼り付け
チャットにスクリーンショットを直接貼り付け、問題を説明する
codex -i error-screenshot.png "このエラーを説明して修正してください"
# IDEでスクリーンショットを貼り付け
チャットにスクリーンショットを直接貼り付け、問題を説明する
コードレビューワークフロー
Codexはコードの変更をレビューし、問題を発見して改善提案を行うことができます。
レビューモード
| モード | トリガー方法 | 適用シナリオ |
|---|---|---|
| Review Mode | アプリ内で有効にする | ローカルの未コミット変更をレビュー |
| /review コマンド | CLI/IDE で使用 | 指定範囲の変更をレビュー |
| GitHub 統合 | PR で @codex review | Pull Request をレビュー |
ローカルレビュー
Review Mode
# App で Review Mode を有効にする
ツールバーの目のアイコンをクリック
# または CLI で使用
/review
# レビュー範囲を指定
/review src/auth/
# 特定のコミットをレビュー
/review HEAD~3..HEAD
ツールバーの目のアイコンをクリック
# または CLI で使用
/review
# レビュー範囲を指定
/review src/auth/
# 特定のコミットをレビュー
/review HEAD~3..HEAD
レビュー重点のカスタマイズ
レビュー重点の指定
# セキュリティレビュー
/review for security issues
# パフォーマンスレビュー
/review for performance regressions
# コードスタイル
/review for code style consistency
# 総合レビュー
/review --detailed
/review for security issues
# パフォーマンスレビュー
/review for performance regressions
# コードスタイル
/review for code style consistency
# 総合レビュー
/review --detailed
テスト作成ワークフロー
Codex はテストコードの作成とメンテナンスを支援します。
新機能テスト
テストの作成
# 新機能のテストを書く
"src/api/users.py の GET エンドポイントの単体テストを作成し、
正常応答、空リスト、ページネーション境界などのシナリオをカバーする"
# テストを検証
"新しく作成したテストを実行する"
# カバレッジを補充
"テストカバレッジを確認し、未カバーの境界ケースを補充する"
"src/api/users.py の GET エンドポイントの単体テストを作成し、
正常応答、空リスト、ページネーション境界などのシナリオをカバーする"
# テストを検証
"新しく作成したテストを実行する"
# カバレッジを補充
"テストカバレッジを確認し、未カバーの境界ケースを補充する"
テスト修正
失敗したテストの修正
# 失敗したテストを分析
"テスト test_user_login が失敗しました。原因を分析して修正してください"
# 一括修正
"すべてのテストを実行し、失敗したテストを修正する"
"テスト test_user_login が失敗しました。原因を分析して修正してください"
# 一括修正
"すべてのテストを実行し、失敗したテストを修正する"
ドキュメント生成ワークフロー
Codex はドキュメントの生成と更新を支援します。
ドキュメント生成
ドキュメント生成
# API ドキュメント
"src/api モジュールの API ドキュメントを生成し、各エンドポイントのリクエスト形式とレスポンス形式を含める"
# README 更新
"README.md を更新し、新機能の説明と使用例を追加する"
# インラインコメント
"複雑な関数にコメントを追加し、重要なロジックを説明する"
"src/api モジュールの API ドキュメントを生成し、各エンドポイントのリクエスト形式とレスポンス形式を含める"
# README 更新
"README.md を更新し、新機能の説明と使用例を追加する"
# インラインコメント
"複雑な関数にコメントを追加し、重要なロジックを説明する"
ベストプラクティス
ワークフローの選択
- 日常開発:継続的な対話で段階的に改善
- リファクタリング:まず計画してから実行し、小さなステップで検証
- バグ修正:十分な情報を提供し、根本原因を検証
- レビュー:定期的に実施し、セキュリティ問題に注目
効率化のコツ
- AGENTS.md を使用してプロジェクト規範を定義し、重複する説明を減らす
- Skills を利用してよく使うワークフローをカプセル化
- Worktree を使用して異なるタスクを分離
- 合理的な Approval ポリシーを設定
よくある質問
Q: 大規模なリファクタリングはどう扱えばよいですか?
/plan モードを使用して段階的な計画を立て、各ステップ完了後に検証します。
Q: バグ修正後、再発を防ぐにはどうすればよいですか?
そのシナリオをカバーする専用のテストを追加し、AGENTS.md に関連するチェックルールを追加します。
Q: Codexにプロジェクト規約を理解させるにはどうすればよいですか?
AGENTS.md ファイルを作成し、プロジェクトの技術スタック、コード規範、テスト要件などを定義します。
Q: レビュー結果をチームと共有するにはどうすればよいですか?
GitHub 統合を使用して PR でレビューすると、結果が自動的にコメントとして追加されます。
その他の拡張