| name | codex-multi-review |
| description | Codexに専門レビュアーロールを割り当てて並列レビュー。修正は行わない。 |
| user_invocable | true |
Codex マルチレビュー
Codex CLI (codex exec) を使い、4つの専門レビュアーを並列起動する。Claudeのコンテキストを消費しないため /multi-review より軽量。修正は行わない。
レビュアー構成
常時起動(4 Codex)
| # | ロール | プロンプト | 専門領域 |
|---|
| A | Security | prompts/security.md | セキュリティ |
| B | Logic | prompts/logic.md | ロジック・バグ |
| C | Architecture | prompts/architecture.md | 設計・アーキテクチャ |
| D | Testability | prompts/testability.md | テスタビリティ・テスト網羅性 |
条件付き起動(ネイティブコード含む場合のみ +1)
| # | ロール | プロンプト | 専門領域 |
|---|
| E | Native | prompts/native.md | Swift/Kotlin |
起動条件: レビュー対象に .swift または .kt ファイルが含まれる場合。
手順
Step 1: レビュー対象の確認
- ディレクトリの存在を必ずGlobで確認する
- レビュー対象のファイル一覧を取得
- ネイティブコード判定:
.swift / .kt ファイルが含まれるかGlobで確認
- ユーザーにレビュー対象を確認
Step 2: 全Codex並列起動
各プロンプトファイルの プロンプトテンプレート セクション内のテキストを読み取り、{{TARGET_FILES}} をファイル一覧に置換する。E (Native) にはSwift/Kotlinファイルのみ渡す。
4-5個のBashツール呼び出しを1つのメッセージで並列実行する。レビュアーを省略しない。全員起動が必須。
各プロンプトを /tmp/prompt-{role}.txt に書き出し、stdin で渡す。
cat /tmp/prompt-security.txt | codex exec --sandbox read-only --skip-git-repo-check -c model_reasoning_effort="xhigh" -
注意:
- プロンプトは stdin (
cat <file> | codex exec ... -) で渡す(引数長制限回避)。stdin 供給なので < /dev/null は付けない
run_in_background: true / timeout: 600000
Step 3: 結果収集
各Bashの完了通知を待ち、stdoutからレビュー結果を読み取る。
結果が空または構造化されていない場合はリトライする。全レビュアーの結果が揃うまで集約しない。
Step 4: スコアベース集約
集約ルール
| 条件 | 判定 |
|---|
| confidence 80以上 | 修正対象 |
| confidence 75-79 だが、2人以上のレビュアーが同一箇所/同一問題に75以上を付与 | 修正対象 |
| confidence 75-79 で単独指摘 | 報告のみ |
| confidence 75未満 | レビュアー側でフィルタ済み |
集約手順
- 全レビュアーの結果を一覧化
- 同一箇所・同一問題の指摘をグループ化(ファイル:行番号 + 指摘内容で判定)
- 上記ルールで修正対象を決定
- Critical → Warning → Infoの優先順でソート
出力形式
## 修正対象(confidence 80+ または 2人以上が75+)
### Critical
- [confidence: XX, reporters: A,C] ファイル:行番号 - 指摘内容
### Warning
- [confidence: XX, reporters: B] ファイル:行番号 - 指摘内容
### Info
- [confidence: XX, reporters: D] ファイル:行番号 - 指摘内容
## 報告のみ(confidence 75-79 単独)
- [confidence: 77, reporter: A] ファイル:行番号 - 指摘内容
## 各レビュアー判定
- A (Security): LGTM / NOT LGTM
- B (Logic): LGTM / NOT LGTM
- C (Architecture): LGTM / NOT LGTM
- D (Testability): LGTM / NOT LGTM
- E (Native): LGTM / NOT LGTM ※ネイティブコード含む場合のみ
レビュー結果の判断
- Critical指摘は実コードと突き合わせて裏取り必須: Codexはプロジェクトコンテキスト(DB実カラム名、ランタイム環境特性等)を持たないことがある。
tsc結果や実行結果など客観的証拠で判断する
- 偽陽性と判断したら根拠を示してスキップする
- Warningでもプロジェクト規約違反(
asキャスト等)は修正すべきと提案する
注意事項
- 計画書レビューと実装レビューは別物: 計画書のレビュー済み≠実装コードのレビュー済み
- Codexの行番号やコード引用は実コードと一致しているか確認する(不安定な場合がある)