はじめに
「レビューに時間がかかりすぎてリリースが遅れる」
「レビュアーのスキルによって指摘のばらつきがある」
「セキュリティ観点のレビューが手薄になっている」
コードレビューは品質保証の要ですが、人間だけで行うには限界があります。Claude Codeをレビュープロセスに組み込むことで、品質チェックを高速化しながら網羅性も向上させることができます。
目次
- Claude Codeによるコードレビューの特徴
- 基本的なレビュー指示
- 観点別レビューの指示パターン
- プルリクエストの自動レビュー設定
- チーム独自のレビュー基準を設定する
- レビュー結果をGitHubコメントに反映する
- 人間のレビューとの使い分け
- まとめ
1. Claude Codeによるコードレビューの特徴
人間のレビューと比較した強み
| 観点 | 人間のレビュー | Claude Codeレビュー |
|---|---|---|
| スピード | 数時間〜数日 | 数十秒〜数分 |
| 網羅性 | レビュアーの知識に依存 | 一貫して高い |
| セキュリティ | 見落としが発生しやすい | 体系的にチェック |
| 疲労の影響 | 受ける | 受けない |
| コンテキスト理解 | 高い | 高い(プロジェクト全体を参照) |
| ビジネスロジックの判断 | 得意 | 苦手 |
2. 基本的なレビュー指示
変更差分をレビューする
> git diff mainを確認して、コードレビューをしてください。
問題点があれば具体的な改善案とともに指摘してください。
特定のファイルをレビューする
> src/api/userController.jsのコードレビューをしてください。
以下の観点でチェックしてください:
- コードの可読性
- バグの可能性
- セキュリティ上の問題
- パフォーマンスの改善余地
パイプでdiffを渡す
git diff main | claude -p "このコード変更をレビューして、
問題点を日本語で箇条書きにしてください"
3. 観点別レビューの指示パターン
セキュリティレビュー
> src/api/以下のすべてのファイルをセキュリティ観点でレビューしてください。
特に以下をチェックしてください:
- SQLインジェクションの脆弱性
- XSS(クロスサイトスクリプティング)の脆弱性
- CSRF対策の漏れ
- 認証・認可の不備
- センシティブな情報のログ出力
- 適切でない入力バリデーション
- ハードコードされたシークレット・パスワード
パフォーマンスレビュー
> このコードをパフォーマンス観点でレビューしてください。
チェック項目:
- N+1クエリ問題
- 不要なループ・再計算
- メモリリークの可能性
- キャッシュを使えるのに使っていない箇所
- 非同期処理の最適化余地
可読性・保守性レビュー
> このコードの可読性・保守性を評価してください。
チェック項目:
- 変数名・関数名がわかりやすいか
- 関数が単一責任原則を守っているか
- 複雑すぎる処理がないか(循環的複雑度)
- コメントが適切か
- DRY原則に違反していないか
コーディング規約チェック
> CLAUDE.mdに記載されているコーディング規約に
違反している箇所をすべて指摘してください。
修正案も合わせて提示してください。
4. プルリクエストの自動レビュー設定
GitHub Actionsでの自動レビュー設定
PRが作成・更新されるたびに自動でClaude Codeがレビューを行う設定です。
# .github/workflows/claude-review.yml
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get diff
id: diff
run: |
git diff origin/main...HEAD > diff.txt
- name: Claude Code Review
run: |
cat diff.txt | claude -p "
このプルリクエストの変更をレビューしてください。
以下の観点でチェックし、問題点があれば具体的に指摘してください:
1. バグの可能性
2. セキュリティ上の問題
3. パフォーマンスの問題
4. コーディング規約違反
問題がなければ'LGTM'と返してください。
" > review.txt
- name: Post review comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review.txt', 'utf8');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## Claude Code レビュー\n\n${review}`
});
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
5. チーム独自のレビュー基準を設定する
CLAUDE.mdにレビュー基準を記載する
# コードレビュー基準
## 必須チェック項目
- [ ] エラーハンドリングが適切か
- [ ] ログにセンシティブ情報が出力されていないか
- [ ] テストが追加されているか
- [ ] 破壊的変更がある場合はCHANGELOG.mdを更新しているか
## 禁止パターン
- console.log()を本番コードに残さない
- any型をTypeScriptで使わない
- マジックナンバーを使わず定数に定義する
- try-catchの中でエラーを握りつぶさない
## 推奨パターン
- 早期リターンパターンを使ってネストを浅くする
- 関数は20行以内に収める
- 変数名は省略せず意味が伝わる名前にする
カスタムレビューコマンドを作成する
.claude/commands/review-pr.md にチーム独自のレビュー手順を定義します。
# review-pr
現在のブランチとmainの差分を確認して、
チームのコーディング基準(CLAUDE.md参照)に基づいてレビューしてください。
レビュー結果は以下の形式で出力してください:
## 必須修正(マージ前に対応が必要)
- 問題点と修正案
## 推奨修正(できれば対応)
- 問題点と修正案
## 良かった点
- 評価できる実装
## 総評
LGTM / 要修正 / 要議論
6. レビュー結果をGitHubコメントに反映する
GitHub CLIを使ってPRにコメントを追加する
# レビュー結果を変数に格納
REVIEW=$(git diff main | claude -p "コードレビューをして、
問題点を箇条書きで教えてください")
# PRにコメントを投稿
gh pr comment --body "## Claude Codeレビュー結果
$REVIEW"
インラインコメントを追加する
> このPRの差分を確認して、問題のある行にインラインコメントを追加してください。
GitHub CLIのgh pr review --comment コマンドを使って、
具体的なファイルと行番号を指定してコメントしてください。
7. 人間のレビューとの使い分け
Claude Codeが担当すべきレビュー
- コーディング規約のチェック
- 明らかなバグパターンの検出
- セキュリティ脆弱性の初期チェック
- テストカバレッジの確認
- パフォーマンス問題の基本チェック
人間が担当すべきレビュー
- ビジネスロジックの正しさの確認
- アーキテクチャ設計の判断
- チームの方向性との整合性
- UX・ユーザー視点からの評価
- 複雑なトレードオフの判断
推奨フロー
PRが作成される
↓
Claude Codeが自動レビュー(数分)
↓
明らかな問題があれば開発者が修正
↓
人間のレビュアーがビジネス観点でレビュー
↓
承認・マージ
このフローにより、人間のレビュアーは機械的なチェックから解放され、より本質的な判断に集中できます。
8. まとめ
Claude Codeでのコードレビューの基本:
git diff main | claude -p "レビューして"でシンプルに実行できる- セキュリティ・パフォーマンス・可読性など観点を明示して依頼する
- CLAUDE.mdにチーム独自のレビュー基準を記載する
自動化の設定:
- GitHub ActionsでPR作成時に自動レビューを実行できる
- レビュー結果はGitHub CLIでPRコメントに自動投稿できる
人間のレビューとの役割分担:
- 機械的チェックはClaude Codeに任せる
- ビジネスロジック・アーキテクチャ判断は人間が担当する
次回の第14回:GitHub Actionsを設定する方法では、CI/CDパイプラインの自動構築をClaude Codeで行う方法を解説します。
よくある質問(FAQ)
Q. レビューコメントが多すぎて対応しきれません。優先度をつけられますか?
A. はい。指示に「Critical・Major・Minorの3段階で優先度をつけて」と追加することで、対応が必須なものと任意のものを区別できます。
Q. 誤検知(問題ないのに問題と指摘される)はありますか?
A. あります。特にビジネスロジックの判断や、プロジェクト固有の設計思想に基づく実装は誤検知が出やすいです。CLAUDE.mdにプロジェクトの設計方針を記載することで誤検知を減らせます。
この記事はClaude Code入門シリーズ(第2部)の第13回です。← 第12回:テストコード自動生成 | 第14回:GitHub Actions →
ご質問はお問い合わせページからお気軽にどうぞ。