| name | review-code |
| description | PRベースの多角的コードレビューを実行する。
4つの独立subagentが並列にレビューし、指摘箇所のコード実在確認・
WebSearchによる公式ドキュメント裏取りでハルシネーションを防止する。
各指摘に前提知識・公式リファレンスURLを付与し教育的なレビューを提供する。
言語・フレームワークを自動検出し、プロジェクト設定+公式ガイドラインに基づくレビューを実施。
以下の場合に使用:
(1) PRのコードレビューを依頼されたとき
(2) git diffに対するコードレビュー
(3) マージ前の品質チェック
(4) コードの改善提案が欲しいとき
|
| disable-model-invocation | true |
| argument-hint | [PR-url, branch-name, or empty for current branch] |
Code Review: 多角的PRレビュー
核心原則
- 教育的レビュー: 指摘ごとに「なぜ問題か」の理由と、理解に必要な前提知識・公式ドキュメントURLを提示する
- 証拠ベース: すべての指摘は
file:line で特定し、Read でコード実在を確認済みであること
- ハルシネーション防止: API仕様・言語仕様に言及する場合は
WebSearch で公式ドキュメントを裏取りする
- コード変更禁止: レビューのみ。修正は行わない
入力処理
$ARGUMENTS の内容に応じて:
- GitHub PR URL:
Task(ctx:github) でPR情報を取得(diff, comments, files, body)
- ブランチ名:
git diff main...{branch} で差分取得
- 引数なし: 現在のブランチの
git diff main...HEAD を使用
Phase 1: Context Collection(コンテキスト収集)
目的: レビュー対象の差分取得 + プロジェクトの言語・フレームワーク・lint設定を把握
Step 1: 差分取得
- PR URL →
Task(ctx:github) で構造化情報取得
- ブランチ →
git diff で差分取得
- 変更ファイル一覧と変更行数を把握
- 未追跡ファイルを必ず含める:
git diff は未追跡(新規)ファイルを出力しない。git status --short の ?? と git ls-files --others --exclude-standard で新規ファイルを列挙し、内容を直接 Read してレビュー対象に加える。新規 useCase / service / test 本体が未追跡のまま diff だけ見て本体を見落とす事故が多発している
Step 2: 言語・フレームワーク自動検出
Step 3: 公式レビューガイドラインの取得
- lang-detection.md の「動的参照戦略」に記載された
site: 付き検索クエリを使用する
- 必ず公式サイトに限定した検索を行う(例:
site:typescriptlang.org, site:go.dev)
- 検索クエリには現在の年(
$CURRENT_YEAR)を含めて最新ドキュメントを優先する
WebFetch で公式ドキュメントページの詳細を取得し、Phase 2 の Agent D に渡す
- ブログ記事やサードパーティの解説ではなく、言語・フレームワーク公式ドキュメントのみを信頼する
Phase 1 出力: 差分サマリー、検出言語/FW、lint設定、取得した公式ガイドライン
Phase 2: Multi-perspective Review(多角的レビュー)
目的: 4つの独立subagentが異なる観点から並列にレビューする
Task(Explore) を最大4並列で起動。各agentは他のagentの結果を知らない。
直接レビューで済ませず、必ず同一ターンで4つのsubagentを並列起動する(Opus 4.8 はサブエージェント生成を控える傾向があるため明示する)。
各agentに渡す情報:
- 差分(git diff 出力)
- 変更ファイルの全体コンテキスト(
Read で変更関数の前後を含む)
- Phase 1 で検出した言語・FW情報
Agent A: Correctness — ロジックの正確性、エラーハンドリング、要件一致
Agent B: Security & Performance — セキュリティ脆弱性、パフォーマンス問題
Agent C: Design & Maintainability — 設計品質、可読性、テスト網羅性
Agent D: Language-specific — 言語固有の観点(公式ガイドライン + プロジェクトlint設定ベース)
各agentの出力スキーマ: review-dimensions.md を参照
Phase 3: Synthesis & Verification(統合・検証)
目的: 指摘の品質保証と教育的レポートの生成
Step 1: 統合と重複排除
- 4 agentの指摘を統合
- 同一箇所への重複指摘をマージ(重大度は高い方を採用)
Step 2: ハルシネーション防止チェック
- 全指摘の
file:line を Read で再確認
- API仕様や言語仕様への言及を
WebSearch で裏取り(site: 付きで公式ドキュメントに限定)
Step 3: 教育的リファレンスの付与
各指摘に対して:
- 前提知識: この指摘を理解するために必要な概念を簡潔に説明
- 公式リファレンス:
WebSearch で該当する公式ドキュメントのURLを取得し付与
- 学習ポイント: この指摘から学べること、同様の問題を今後防ぐ方法
Step 4: 重大度スコアリング
出力フォーマット
## PR レビューサマリー
**対象**: {PR タイトル / ブランチ名}
**言語**: {検出された言語・フレームワーク}
**変更規模**: {ファイル数}ファイル, +{追加行} -{削除行}
## 強み
- {具体的に良い点} — `file:line`
## 課題
### 🚨 Critical(修正必須)
#### {問題タイトル}
- **箇所**: `file:line`
- **コード**: `引用`
- **問題**: {なぜ問題か}
- **改善案**: {具体的な修正方法}
- **前提知識**: {理解に必要な概念の簡潔な説明}
- **リファレンス**: [{ドキュメント名}]({URL}) — {該当セクション}
### ⚠️ Important(修正推奨)
{同一形式}
### 💡 Minor(提案)
{同一形式}
## 学習リソース
- [{概念名}]({公式ドキュメントURL}) — {この PR で特に関連する箇所}
## 評価
{マージ可否と理由(1-2文)}
エラーハンドリング
| 状況 | 対応 |
|---|
| PR URLが無効 | 再入力を求める、またはブランチ名にフォールバック |
| 差分が巨大(1000行超) | 変更ファイルを重要度で優先順位付けし、上位を集中レビュー |
| 言語検出失敗 | Agent D をスキップし、Agent A-C の3並列で実行 |
| WebSearch で公式ドキュメントが見つからない | リファレンスなしで指摘を出力(「公式ドキュメント未確認」と明記) |