本文へ移動
🔍

Claude Codeのコードレビューは、作業中の差分を確認する /code-review と、GitHub PRに指摘を残す @claude review で入口が分かれます。先に対象差分と修正の有無を決めると、意図しない範囲のレビューや、修正後の確認漏れを減らせます。

この記事では、ローカルで差分を確認してから、必要なPRをGitHubのCode Reviewに渡す運用を扱います。公式仕様は2026年9月9日に確認しました。コマンドや設定の説明と、この記事で提案する導入ルールを分けて記載します。

確認したいこと入口本文の読む場所
push前の差分と修正内容Claude Codeの /code-review次のローカルレビュー手順
PRに残す指摘とレビュー基準GitHubの @claude reviewGitHub App・REVIEW.mdの節
未完了のレビューをどう扱うかcheck runの詳細と対象commitcheck runの節

Claude Code自体の導入は Claude Code実践ガイド を参照してください。脆弱性に絞った確認は security review設計ガイド、CI失敗やPRコメントを受けた修正は Auto-Fix実践ガイド で扱います。本記事の役割は、通常のバグ・回帰レビューの対象と、指摘を受け取った後の判断を整えることです。

ローカル /code-review の対象を確認してから実行する

比較するbranchと未コミット差分を把握する

公式の ローカルレビュー仕様 では、引数なしの場合はupstreamより先のbranch commitと未コミット変更を対象にします。ローカルで起動する、という意味であり、オフライン実行を意味しません。

実行前に次を確認するのをおすすめします。

git status --short
git branch -vv
git diff --stat
git diff --cached --stat

たとえば作業branchのupstreamが同名のremote branchなら、引数なしの対象と、PRでmainに取り込む差分が一致するとは限りません。PRのbaseを確認し、比較範囲を明示します。以下はbaseが main、作業branchが feature-auth-session の場合の入力例です。実在するrefに置き換えてください。

/code-review main...feature-auth-session

この例を使った後に未コミット変更も追加した場合は、今回どの差分を見たかを結果と照合してください。レビュー済みのcommitと、その後に書いた変更を同じ扱いにしないことが運用上の要点です。

--fix を使う前に戻せる作業単位を作る

ローカルレビューは CLAUDE.md に従い、GitHub Code Review用の REVIEW.md は読みません。また、バックグラウンドで適用した --fix の編集は /rewind の対象外です。読み込む指示と編集の仕様

最初はフラグを付けずに指摘を読み、修正する範囲を選びます。--fix を使う場合は、既存作業を確認できるcommitや専用worktreeを用意してから実行する運用をおすすめします。戻す際はGitで対象の差分を特定し、自分の変更までまとめて破棄しないようにします。

同じ比較範囲に修正を適用する入力例です。上の準備と指摘の確認を済ませた場合に使います。

/code-review --fix main...feature-auth-session

修正後は git diff と git diff --cached で変更を読み、対象機能のテストとプロジェクトのbuildを実行します。「指摘が出た」「修正が入った」「検証が通った」は別々に記録してください。

ローカル確認からPRレビューに渡す情報

PRへ渡す際は、少なくとも比較したref、確認したcommit、修正を採用した理由、実行した検証を残します。以下は記録用テンプレートです。実行していない検証を埋めないでください。

- 比較したref:
- 確認したcommit:
- 採用した指摘と理由:
- 見送った指摘と理由:
- 修正後に実行した検証と結果:
- 未確認の条件:

深いクラウドレビューが必要かを判断する場合は Claude Code ultrareview設計ガイド、繰り返す作業手順を再利用したい場合は Claude Code Skills設計ガイド を参照してください。ここでは対象差分の確認と修正後の検証までに留めます。

GitHub PRレビューはManualから導入する

私なら、Claude Code code review は次の構成から始めます。

項目初期設定
対象 repository重要 repo 1つだけ
review behaviorManual
起動方法@claude review
継続 review必要な PR だけ @claude review always
指示ファイルREVIEW.md にレビュー基準を書く
費用monthly spend cap を必ず設定
merge gate最初は branch protection に直結しない

理由は単純です。Code Review は research preview で、Team / Enterprise 向けの機能です。さらにレビューは token usage に基づいて課金され、PR サイズ、codebase の複雑さ、検証が必要な指摘数で費用が変わります。最初から every push にすると、レビュー品質の検証より先に費用と通知量の問題が出ます。

Manual で始めると、対象を選べます。

@claude review

一回だけの確認ならこれで十分です。同じ PR を以後の push でも継続的に見たい場合だけ、次を使います。

@claude review always

always は便利ですが、PR が活発に更新されるほど費用も増えます。大きな PR、外部 API、認可、請求、migration のような高リスク差分だけに使う方が安定します。

GitHub Code ReviewとActionsの担当を決める

Anthropic docs では、Code Review と Claude Code GitHub Actions は別の導線として扱われています。ここを混ぜると設計が濁ります。

仕組み主な用途起動
Code ReviewPR の bug / regression / security finding を出すGitHub App、review behavior、@claude review
GitHub Actionsissue / PR comment から実装、修正、調査、独自 automation を動かすworkflow、@claude mention、prompt
Routinesschedule / API / GitHub trigger で cloud 側の反復作業を走らせるroutine trigger
HooksClaude Code の tool 実行前後に local gate を置くsettings.json

Code Review はレビュー専用 lane です。PR に inline comment や check run output を出し、既存のレビュー workflow と並走します。一方、GitHub Actions は Claude Code を runner 上で動かす汎用 automation です。実装修正や issue 対応まで任せるなら GitHub Actions、PR 差分の危険面を見たいだけなら Code Review、と分けます。

この線引きをしないと、@claude mention に「レビューして、直して、テストして、必要ならPR更新して」と詰め込みがちです。レビューは発見、修正は別の作業として分けた方が、人間が判断しやすくなります。

GitHub App の権限を先に確認する

Code Review の setup では、organization owner が Claude Code admin settings から Code Review を有効化し、Claude GitHub App を install します。公式 docs では、GitHub App が repository contents、issues、pull requests の read / write permission を要求すると説明されています。

ここで「レビューだけなのに write がある」と違和感を持つ人は正しいです。Code Review 自体は contents read と pull request write を使いますが、同じ app permission set は GitHub Actions 側の機能にも関係します。だから、組織導入では次を先に決めます。

以下は導入範囲を検討する記入例です。repository名と担当は仮のもので、製品の設定ファイルではありません。

claude_code_review_rollout:
  repositories:
    - name: web-app
      reason: auth and billing changes are reviewed weekly
  github_app_scope:
    installation: selected_repositories_only
  owners:
    admin_owner: platform
    review_policy_owner: engineering_manager
  disabled_repositories:
    - customer-data-export
    - billing-ops-private-runbooks

最初から全 repository に入れません。まず「レビュー結果に価値が出やすく、秘密情報や顧客データの露出が少ない repo」を選びます。private repo に入れる場合は、既存の GitHub App review、third-party access review、audit log review と同じ棚に載せるべきです。

@claude review / always / once を使い分ける

Manual mode では、comment command で review を起動します。

command使いどころ
@claude reviewその時点の PR を一回だけ見る
@claude review once@claude review と同じ扱いで、一回だけ見る
@claude review alwaysその PR を以後の push-triggered review にも載せる

私なら、初期ルールはこのようにします。

## Claude Code Review trigger policy

- Use `@claude review` for auth, permission, payment, migration, and external API changes.
- Use `@claude review always` only when the PR is still changing and each push can introduce regression.
- Do not use `always` on docs-only, style-only, generated-output-only, or dependency-lock-only PRs.
- If a PR is split after review, trigger a new one-time review on the final smaller PR.

always を濫用すると、「push するたびに AI レビューが再実行される状態」が標準になります。これは安全に見えますが、実際には費用、待ち時間、重複コメントが増えます。PR の差分が落ち着いてから @claude review を一回呼ぶ方がよい場面も多いです。

GitHub Code Review用の REVIEW.md に基準を書く

GitHub上のCode Reviewは CLAUDE.md と REVIEW.md を読めます。ローカル /code-review とは適用範囲が違います。ただし責務は違います。

ファイル置くもの
CLAUDE.mdproject 全体の作業ルール、build command、style、禁止事項
REVIEW.mdreview-only の観点、severity、報告形式、見ないもの

Claude Code を普段の実装にも使っている repo では、CLAUDE.md が既に太りがちです。Code Review のためにさらに review 観点を足すと、実装時にもレビュー用の話が混ざります。レビュー専用基準は REVIEW.md に分けます。

最小構成はこれで足ります。

# REVIEW.md

Review newly introduced behavior changes only.

Prioritize:

- auth bypass
- permission escalation
- data loss
- payment or billing mistakes
- migration rollback risk
- missing tests for changed behavior

Treat severity as:

- Important: must be addressed before merge
- Nit: useful but non-blocking
- Pre-existing: not introduced by this PR

Do not comment on:

- wording preferences
- formatting covered by automated tools
- naming style unless it hides a bug
- broad architecture rewrites unrelated to the diff

大事なのは「見ないもの」を書くことです。AI レビューは指摘を増やすほど価値が上がるわけではありません。人間が merge 前に判断すべき finding だけを前に出す方が、運用に残ります。

neutral checkとレビュー完了を分けて確認する

Code Review の check run は neutral conclusion で完了するため、そのまま branch protection の必須 check にしても merge を止める gate にはなりません。公式 docs では、severity breakdown を check run output から読み、自分の CI で gate したい場合に使う流れが説明されています。

neutralだけでレビュー済みと判断しない運用が必要です。公式の トラブルシューティング では、エラーやtimeoutでもneutralとなり、自動再試行されないと説明されています。

レビュー待ちのPRでは、対象commitとcheckの詳細を照合し、未完了なら人間のレビューを続けるか再実行するかを決めます。コメントがないことを「指摘なし」の根拠にせず、Detailsに結果があるか確認してください。費用上限によるskipも未レビューとして記録します。

以下は観察からCI判定へ進める運用案です。製品に渡す設定ファイルではありません。

claude_code_review_gate:
  phase_1:
    behavior: observe_only
    action: human reads inline comments and check run details
  phase_2:
    behavior: soft_gate
    action: release owner confirms Important findings are resolved
  phase_3:
    behavior: custom_ci_gate
    action: parse check run output and fail only on Important findings

いきなり CI gate にすると、誤検知、GitHub annotation の欠落、review timeout の扱いで詰まります。まず 2 週間ほど observe-only で運用し、Important finding が本当に merge blocker として使えるかを見ます。

spend cap は導入条件に入れる

Code Review は plan の included usage とは別に usage credits として扱われます。公式 docs では、review 平均費用の目安、review behavior による費用差、monthly spend cap、analytics dashboard が説明されています。

初期導入ではreview behaviorと一緒に上限を決めます。以下の金額と割合は検討用の仮定値で、推奨予算や製品の設定キーではありません。管理画面で実際の上限を設定してください。

claude_code_review_budget:
  monthly_cap_usd: 200
  default_behavior: manual
  always_allowed:
    - security-critical
    - billing
    - auth
  always_requires_comment:
    - why repeated review is needed
  alert_when:
    weekly_spend_percent: 60

費用を絞りすぎると、必要な PR で review が skipped になります。逆に広げすぎると、毎 push review が標準化します。最初は小さめに始め、analytics の PRs reviewed、weekly cost、repository breakdown を見て調整します。

実務の導入手順

私なら、次の順番で入れます。

  1. 対象 repo を 1 つ選ぶ
  2. Claude GitHub App の installation scope を selected repositories にする
  3. review behavior は Manual にする
  4. REVIEW.md を置く
  5. monthly spend cap を設定する
  6. auth / payment / migration PR だけ @claude review する
  7. 2 週間、Important finding の精度と費用を記録する
  8. 必要な repo だけ Once after PR creation へ広げる

この段階では、merge block にはしません。review finding を人間が分類し、PR author が修正するか、別 issue に送るか、no action にするかを決めます。

運用ログはこのくらいで十分です。

## Claude Code Review rollout log

- Repo:
- Review behavior:
- Spend cap:
- REVIEW.md version:
- PRs reviewed this week:
- Important findings:
- False positives:
- Skipped by spend cap:
- Decision:

毎週これを見ると、「高リスク PR では役に立つが docs PR では不要」「migration では見落としを拾うが UI copy ではノイズが多い」のような判断ができます。

よくある失敗

いきなり every push にする

PR が動くたびに review が走り、費用と通知が増えます。最初は Manual で十分です。

CLAUDE.md に review 基準を詰め込む

GitHub Code Review用の基準は REVIEW.md に分けます。ローカル /code-review にも必要なルールは CLAUDE.md 側に残し、両者の適用範囲を確認します。

指摘を自動修正まで一気通貫にする

review と fix を同じ自動 lane にすると、人間が「本当に直すべき指摘か」を見る余地が減ります。最初は finding を読むだけにします。

neutral check run を gate だと思う

Code Review の check run は既存 workflow を壊さないため neutral です。merge gate にするなら、severity output を自分の CI で読む必要があります。

spend cap に到達してから気づく

cap 到達時は review が skipped されます。高リスク PR で使えなくなる方が困るので、weekly cost と repo 別平均を見ます。

PRを渡す前に確認すること

ローカルでは比較refを明示し、修正を入れたら差分と検証結果を残します。GitHubではManualで対象PRを選び、REVIEW.md と費用上限を整えます。最後に、レビューが最新commitを対象に完了したかを確認してから、人間がmergeを判断します。

Claude Code の全体導入順を整理したい場合は Claude Code の使い方 実践ガイド、PR review を Codex 側で設計する場合は Codex code review 実践ガイド、レビュー前に実行時の危険操作を止める場合は Claude Code Hooks の使い方 実践ガイド を先に読むと、review lane の責務が分かれます。

参考

WRITTEN BY nidoneko

Full-stack engineer with 8+ years of experience in TypeScript, React, Node.js, and cloud-native development across healthcare, finance, HR, and IoT domains.

View Profile →