Code Review
マルチエージェント分析を使用してコードベース全体を検査し、ロジックエラー、セキュリティ脆弱性、リグレッションを検出する自動化された PR レビューを設定します
Code Review はリサーチプレビュー段階であり、Team および Enterprise サブスクリプションで利用可能です。Zero Data Retention が有効になっている組織では利用できません。
Code Review は GitHub プルリクエストを分析し、コードの問題が見つかった行にインラインコメントとして結果を投稿します。特化したエージェントのフリートがコード変更をコードベース全体のコンテキストで検査し、ロジックエラー、セキュリティ脆弱性、壊れたエッジケース、微妙なリグレッションを探します。
結果は重大度でタグ付けされ、PR を承認またはブロックしないため、既存のレビューワークフローはそのまま機能します。リポジトリに CLAUDE.md または REVIEW.md ファイルを追加することで、Claude がフラグを立てる内容をカスタマイズできます。
Claude を管理サービスではなく独自の CI インフラストラクチャで実行する場合は、GitHub Actions または GitLab CI/CD を参照してください。自己ホスト型 GitHub インスタンス上のリポジトリについては、GitHub Enterprise Server を参照してください。
このページでは以下をカバーしています:
- レビューの仕組み
- セットアップ
@claude reviewと@claude review onceを使用したレビューの手動トリガーCLAUDE.mdとREVIEW.mdを使用したレビューのカスタマイズ- 料金
- トラブルシューティング失敗した実行と欠落したコメント
レビューの仕組み
管理者が組織の Code Review を有効にすると、リポジトリの設定された動作に応じて、PR が開かれたとき、すべてのプッシュ時、または手動でリクエストされたときにレビューがトリガーされます。PR で @claude review とコメントすると、任意のモードでレビューが開始されます。
レビューが実行されると、複数のエージェントが Anthropic インフラストラクチャ上で並行して diff と周囲のコードを分析します。各エージェントは異なるクラスの問題を探し、その後、検証ステップが候補を実際のコード動作に対してチェックして、偽陽性を除外します。結果は重複排除され、重大度でランク付けされ、問題が見つかった特定の行にインラインコメントとして投稿され、レビュー本文に概要が記載されます。問題が見つからない場合、Code Review は GitHub チェック実行を更新して、問題が検出されなかったことを表示します。Claude は PR に短い確認コメントを投稿することもあります。
レビューはコストが PR のサイズと複雑さに応じてスケーリングされ、平均 20 分で完了します。管理者は分析ダッシュボードを通じてレビューアクティビティと支出を監視できます。
重大度レベル
各結果は重大度レベルでタグ付けされます:
| マーカー | 重大度 | 意味 |
|---|---|---|
| 🔴 | Important | マージ前に修正すべきバグ |
| 🟡 | Nit | 軽微な問題、修正する価値があるがブロッキングではない |
| 🟣 | Pre-existing | コードベースに存在するが、この PR で導入されなかったバグ |
結果には、展開可能な拡張推論セクションが含まれており、Claude がなぜ問題をフラグ立てしたのか、どのように問題を検証したのかを理解するために展開できます。
結果に対する評価と返信
Claude からの各レビューコメントには、👍 と 👎 が既に添付されているため、GitHub UI で両方のボタンがワンクリック評価のために表示されます。結果が有用だった場合は 👍 をクリックし、間違っていたか騒々しかった場合は 👎 をクリックしてください。Anthropic は PR がマージされた後にリアクションカウントを収集し、それを使用してレビュアーをチューニングします。リアクションは再レビューをトリガーしたり、PR 上の何かを変更したりしません。
インラインコメントに返信しても、Claude が応答したり PR を更新したりするようにプロンプトされません。結果に対処するには、コードを修正してプッシュしてください。PR がプッシュトリガーレビューにサブスクライブされている場合、次の実行は問題が修正されるとスレッドを解決します。プッシュせずに新しいレビューをリクエストするには、トップレベルの PR コメントとして @claude review once とコメントしてください。
チェック実行出力
インラインレビューコメントに加えて、各レビューは CI チェックと並んで表示される Claude Code Review チェック実行を生成します。その Details リンクを展開して、すべての結果の概要を 1 か所で確認でき、重大度でソートされています:
| 重大度 | ファイル:行 | 問題 |
|---|---|---|
| 🔴 Important | src/auth/session.ts:142 |
トークン更新がログアウトと競合し、古いセッションがアクティブなままになる |
| 🟡 Nit | src/auth/session.ts:88 |
parseExpiry は不正な形式の入力で黙って 0 を返す |
各結果は、Files changed タブの注釈としても表示され、関連する diff 行に直接マークされます。Important の結果は赤いマーカーで、nit は黄色の警告で、既存のバグは灰色の通知でレンダリングされます。注釈と重大度テーブルはインラインレビューコメントとは独立してチェック実行に書き込まれるため、移動した行のインラインコメントが GitHub に拒否された場合でも利用可能なままです。
チェック実行は常に中立的な結論で完了するため、ブランチ保護ルールを通じてマージをブロックすることはありません。Code Review の結果に基づいてマージをゲートしたい場合は、チェック実行出力から重大度の内訳を読み取り、独自の CI で使用してください。Details テキストの最後の行は、ワークフローが gh と jq で解析できるマシン可読コメントです:
gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
--jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'
これは重大度ごとのカウントを含む JSON オブジェクトを返します。例えば {"normal": 2, "nit": 1, "pre_existing": 0} です。normal キーは Important の結果のカウントを保持します。ゼロ以外の値は、Claude がマージ前に修正する価値のあるバグを少なくとも 1 つ見つけたことを意味します。
Code Review がチェックする内容
デフォルトでは、Code Review は正確性に焦点を当てています:フォーマット設定の好みやテストカバレッジの欠落ではなく、本番環境を壊すバグです。リポジトリにガイダンスファイルを追加することで、チェック内容を拡張できます。
Code Review のセットアップ
管理者が組織に対して Code Review を 1 回有効にし、含めるリポジトリを選択します。
Claude Code 管理設定を開く
claude.ai/admin-settings/claude-code にアクセスして、Code Review セクションを見つけます。Claude 組織への管理者アクセスと GitHub 組織に GitHub Apps をインストールする権限が必要です。
セットアップを開始する
Setup をクリックします。これにより GitHub App インストールフローが開始されます。
Claude GitHub App をインストールする
プロンプトに従って、Claude GitHub App を GitHub 組織にインストールします。アプリは以下のリポジトリ権限をリクエストします:
- Contents: 読み取りと書き込み
- Issues: 読み取りと書き込み
- Pull requests: 読み取りと書き込み
Code Review は contents への読み取りアクセスと pull requests への書き込みアクセスを使用します。より広い権限セットは、後で有効にする場合、GitHub Actions もサポートします。
リポジトリを選択する
Code Review を有効にするリポジトリを選択します。リポジトリが表示されない場合は、インストール中に Claude GitHub App にアクセス権を付与したことを確認してください。後でリポジトリを追加できます。
リポジトリごとにレビュートリガーを設定する
セットアップが完了すると、Code Review セクションはリポジトリをテーブルに表示します。各リポジトリについて、Review Behavior ドロップダウンを使用してレビューが実行されるタイミングを選択します:
- Once after PR creation: PR が開かれるか ready for review としてマークされたときにレビューが 1 回実行されます
- After every push: PR ブランチへのすべてのプッシュでレビューが実行され、PR が進化するにつれて新しい問題をキャッチし、フラグが立てられた問題を修正するとスレッドを自動解決します
- Manual: PR で
@claude reviewまたは@claude review onceとコメントしたときのみレビューが開始されます。@claude reviewはまた、その後のプッシュでレビューに PR をサブスクライブします
すべてのプッシュでレビューすると、最も多くのレビューが実行され、最もコストがかかります。Manual モードは、特定の PR をレビューにオプトインしたい高トラフィックリポジトリ、または PR が ready になったら PR のレビューを開始したい場合に便利です。
リポジトリテーブルは、最近のアクティビティに基づいて各リポジトリの平均レビューコストも表示します。行アクションメニューを使用して、リポジトリごとに Code Review をオンまたはオフにするか、リポジトリを完全に削除します。
セットアップを確認するには、テスト PR を開きます。自動トリガーを選択した場合、Claude Code Review という名前のチェック実行が数分以内に表示されます。Manual を選択した場合は、PR で @claude review とコメントして最初のレビューを開始します。チェック実行が表示されない場合は、リポジトリが管理設定に一覧表示されていることと、Claude GitHub App がアクセス権を持っていることを確認してください。
レビューを手動でトリガーする
2 つのコメントコマンドがオンデマンドでレビューを開始します。どちらもリポジトリの設定されたトリガーに関係なく機能するため、Manual モードで特定の PR をレビューにオプトインするか、他のモードで即座に再レビューを取得するために使用できます。
| コマンド | 実行内容 |
|---|---|
@claude review |
レビューを開始し、その後のプッシュでレビューがトリガーされるように PR をサブスクライブします |
@claude review once |
今後のプッシュにサブスクライブせずに単一のレビューを開始します |
PR の現在の状態についてフィードバックが必要だが、その後のすべてのプッシュでレビューが発生するのを望まない場合は、@claude review once を使用します。これは頻繁なプッシュを伴う長時間実行される PR や、PR のレビュー動作を変更せずに 1 回限りの 2 番目の意見が必要な場合に便利です。
どちらのコマンドでもレビューをトリガーするには:
- トップレベルの PR コメントとして投稿し、diff 行のインラインコメントではない
- コメントの開始にコマンドを配置し、ワンショット形式を使用している場合は
onceを同じ行に配置します - リポジトリへのオーナー、メンバー、またはコラボレーターアクセス権を持つ必要があります
- PR は開いている必要があります
自動トリガーとは異なり、手動トリガーはドラフト PR で実行されます。明示的なリクエストはドラフトステータスに関係なく、今すぐレビューが必要であることを示すためです。
その PR でレビューが既に実行されている場合、リクエストは進行中のレビューが完了するまでキューに入ります。PR のチェック実行を通じて進捗を監視できます。
レビューをカスタマイズする
Code Review はリポジトリから 2 つのファイルを読み取り、フラグを立てる内容をガイドします。これらは、デフォルトの正確性チェックの上にどの程度強く影響するかが異なります:
CLAUDE.md: Claude Code がすべてのタスク(レビューだけではなく)に使用する共有プロジェクト指示。Code Review はそれをプロジェクトコンテキストとして読み取り、新しく導入された違反を nit としてフラグ立てします。REVIEW.md: レビューのみのガイダンス、レビューパイプラインのすべてのエージェントに最優先として直接注入されます。フラグを立てるもの、重大度、結果の報告方法を変更するために使用します。
CLAUDE.md
Code Review はリポジトリの CLAUDE.md ファイルを読み取り、新しく導入された違反をnit レベルの結果として扱います。これは双方向に機能します:PR が CLAUDE.md ステートメントを古くする方法でコードを変更する場合、Claude はドキュメントを更新する必要があることをフラグ立てします。
Claude はディレクトリ階層のすべてのレベルで CLAUDE.md ファイルを読み取るため、サブディレクトリの CLAUDE.md のルールはそのパスの下のファイルにのみ適用されます。CLAUDE.md の仕組みの詳細については、memory ドキュメントを参照してください。
一般的な Claude Code セッションに適用したくないレビュー固有のガイダンスについては、代わりにREVIEW.mdを使用します。
REVIEW.md
REVIEW.md はリポジトリルートのファイルで、Code Review がリポジトリ上でどのように動作するかをオーバーライドします。その内容は、レビューパイプラインのすべてのエージェントのシステムプロンプトに最優先の指示ブロックとして注入され、デフォルトのレビューガイダンスより優先されます。
逐語的に貼り付けられるため、REVIEW.md はプレーンな指示です:@ import 構文は展開されず、参照されたファイルはプロンプトに読み込まれません。実装したいルールをファイルに直接配置します。
チューニング可能な内容
REVIEW.md はフリーフォーム markdown であるため、レビュー指示として表現できるものはすべてスコープ内です。以下のパターンは実際に最も影響があります。
重大度: リポジトリの 🔴 Important の意味を再定義します。デフォルトのキャリブレーションは本番コードをターゲットにしています。ドキュメントリポジトリ、設定リポジトリ、またはプロトタイプは、はるかに狭い定義が必要な場合があります。Important である結果のクラスと、最大でも Nit である結果のクラスを明示的に述べます。別の方向にエスカレートすることもできます。例えば、デフォルトの nit ではなく、CLAUDE.md 違反を Important として扱う場合です。
Nit ボリューム: 単一のレビューが投稿する 🟡 Nit コメントの数をキャップします。散文と設定ファイルは永遠に磨くことができます。「最大 5 つの nit を報告し、残りを概要のカウントとして言及する」というようなキャップは、レビューを実行可能に保ちます。
スキップルール: Claude が結果を投稿しないべきパス、ブランチパターン、結果カテゴリを一覧表示します。一般的な候補は、生成されたコード、ロックファイル、ベンダーされた依存関係、マシン作成ブランチ、および linting やスペルチェックなど CI が既に実装しているものです。完全な精査を保証しないが何らかのレビューを保証するパスについては、完全にスキップするのではなく、より高いバーを設定します:「scripts/ では、ほぼ確実で重大な場合のみ報告します」。
リポジトリ固有のチェック: すべての PR でフラグを立てたいルールを追加します。例えば「新しい API ルートには統合テストが必要」。REVIEW.md は最優先として注入されるため、これらは長い CLAUDE.md の同じルールよりも確実に着地します。
検証バー: 結果クラスが投稿される前に証拠を要求します。例えば「動作クレームは命名からの推論ではなく、ソースの file:line 引用が必要」は、そうでなければ著者に往復を費やさせる偽陽性を削減します。
再レビュー収束: PR が既にレビューされている場合、Claude がどのように動作するかを伝えます。「最初のレビュー後、新しい nit を抑制し、Important の結果のみを投稿する」というようなルールは、1 行の修正がスタイルだけで 7 ラウンド目に到達するのを防ぎます。
概要の形状: レビュー本文が 2 factual, 4 style のような 1 行のタリーで開くことを要求し、その場合は「ファクチュアルな問題なし」で始めることを要求します。著者は詳細の前に作業の形状を知りたいです。
例
この REVIEW.md はバックエンドサービスの重大度を再キャリブレーションし、nit をキャップし、生成されたファイルをスキップし、リポジトリ固有のチェックを追加します。
# レビュー指示
## ここで Important が意味するもの
Important は、動作を壊す、データをリークする、またはロールバックをブロックする結果のために予約します:不正なロジック、スコープされていないデータベースクエリ、ログまたはエラーメッセージの PII、および後方互換性のないマイグレーション。スタイル、命名、リファクタリング提案は最大でも Nit です。
## Nit をキャップする
レビューごとに最大 5 つの Nit を報告します。さらに見つけた場合は、インラインで投稿する代わりに、概要で「plus N similar items」と言います。見つけたすべてが Nit の場合、概要を「No blocking issues」で始めます。
## 報告しない
- CI が既に実装しているもの:lint、フォーマット、型エラー
- `src/gen/` の下の生成されたファイルと任意の `*.lock` ファイル
- 本番ルールを意図的に違反するテストのみのコード
## 常にチェック
- 新しい API ルートには統合テストがある
- ログ行にメールアドレス、ユーザー ID、またはリクエスト本文が含まれていない
- データベースクエリは呼び出し元のテナントにスコープされている
フォーカスを保つ
長さはコストがあります:長い REVIEW.md は最も重要なルールを薄めます。レビュー動作を変更する指示に保ち、一般的なプロジェクトコンテキストは CLAUDE.md に残します。
使用状況を表示する
claude.ai/analytics/code-review にアクセスして、組織全体の Code Review アクティビティを確認します。ダッシュボードは以下を表示します:
| セクション | 表示内容 |
|---|---|
| PRs reviewed | 選択した時間範囲でレビューされたプルリクエストの日次カウント |
| Cost weekly | Code Review の週次支出 |
| Feedback | 開発者が問題に対処したため自動解決されたレビューコメントのカウント |
| Repository breakdown | リポジトリごとのレビューされた PR とコメント解決のカウント |
管理設定のリポジトリテーブルは、各リポジトリの平均レビューコストも表示します。ダッシュボードのコスト数値は活動を監視するための推定値です。請求書に正確な支出については、Anthropic の請求書を参照してください。
料金
Code Review はトークン使用量に基づいて請求されます。各レビューは平均 $15~25 のコストで、PR サイズ、コードベースの複雑さ、検証が必要な問題の数に応じてスケーリングされます。Code Review の使用はusage creditsを通じて個別に請求され、プランの含まれた使用量にはカウントされません。
選択するレビュートリガーは総コストに影響します:
- Once after PR creation: PR ごとに 1 回実行されます
- After every push: 各プッシュで実行され、プッシュ数でコストが乗算されます
- Manual: PR で誰かが
@claude reviewとコメントするまでレビューはありません
どのモードでも、@claude review とコメントすると、PR がプッシュトリガーレビューにオプトインされるため、そのコメント後のプッシュごとに追加コストが発生します。今後のプッシュにサブスクライブせずに単一のレビューを実行するには、代わりに @claude review once とコメントしてください。
コストは、組織が他の Claude Code 機能に Amazon Bedrock または Google Vertex AI を使用しているかどうかに関係なく、Anthropic の請求書に表示されます。Code Review の月次支出上限を設定するには、claude.ai/admin-settings/usage にアクセスして、Claude Code Review サービスの制限を設定します。
analytics の週次コストチャートまたは管理設定のリポジトリごとの平均コスト列を通じて支出を監視します。
トラブルシューティング
レビュー実行はベストエフォートです。失敗した実行は PR をブロックすることはありませんが、自動的に再試行されることもありません。このセクションでは、失敗した実行から回復する方法と、チェック実行が報告する問題が見つからない場合に確認する場所について説明します。
失敗またはタイムアウトしたレビューを再トリガーする
レビューインフラストラクチャが内部エラーに遭遇するか、時間制限を超える場合、チェック実行は Code review encountered an error または Code review timed out というタイトルで完了します。結論は依然として中立的であるため、マージをブロックするものはありませんが、結果は投稿されません。
レビューを再度実行するには、PR で @claude review once とコメントしてください。これは PR を今後のプッシュにサブスクライブせずに新しいレビューを開始します。PR が既にプッシュトリガーレビューにサブスクライブされている場合、新しいコミットをプッシュすることも新しいレビューを開始します。
GitHub の Checks タブの Re-run ボタンは Code Review を再トリガーしません。コメントコマンドまたは新しいプッシュを代わりに使用してください。
レビューが実行されず、PR が支出上限メッセージを表示する
組織の月次支出上限に達すると、Code Review は PR に単一のコメントを投稿し、レビューがスキップされたことを説明します。レビューは次の請求期間の開始時に自動的に再開されるか、管理者が claude.ai/admin-settings/usage で上限を引き上げるとすぐに再開されます。
インラインコメントとして表示されていない問題を見つける
チェック実行タイトルが問題が見つかったと言っているが、diff にインラインレビューコメントが表示されない場合は、結果が表示されるこれらの他の場所を確認してください:
- チェック実行 Details: Checks タブの Claude Code Review チェックの横にある Details をクリックします。重大度テーブルは、インラインコメントが受け入れられたかどうかに関係なく、ファイル、行、概要を含むすべての結果を一覧表示します。
- Files changed 注釈: PR の Files changed タブを開きます。結果はレビューコメントとは別に、diff 行に直接添付された注釈としてレンダリングされます。
- レビュー本文: レビューが実行されている間に PR にプッシュした場合、一部の結果は現在の diff に存在しなくなった行を参照する場合があります。これらは、インラインコメントではなく、レビュー本文テキストの Additional findings 見出しの下に表示されます。
関連リソース
Code Review は Claude Code の残りの部分と連携するように設計されています。PR を開く前にローカルでレビューを実行したい場合、自己ホスト型セットアップが必要な場合、または CLAUDE.md がツール全体で Claude の動作をどのように形成するかについてさらに詳しく知りたい場合、これらのページは次の良い停止点です:
- Plugins: プッシュ前にローカルでオンデマンドレビューを実行するための
code-reviewプラグインを含むプラグインマーケットプレイスを参照 - GitHub Actions: コードレビューを超えたカスタム自動化のための独自の GitHub Actions ワークフローで Claude を実行
- GitLab CI/CD: GitLab パイプライン用の自己ホスト型 Claude 統合
- Memory: Claude Code 全体で
CLAUDE.mdファイルがどのように機能するか - Analytics: コードレビューを超えた Claude Code 使用状況を追跡