コラム Claude Code入門 更新:

Claude Codeでコードレビューを自動化する方法!プルリクエストの品質チェックを効率化する手順

Claude Codeでコードレビューを自動化する方法!プルリクエストの品質チェックを効率化する手順
目次 (27項目)
  1. 1. はじめに
  2. 2. 目次
  3. 3. 1. Claude Codeによるコードレビューの特徴
  4. 人間のレビューと比較した強み
  5. 4. 2. 基本的なレビュー指示
  6. 変更差分をレビューする
  7. 特定のファイルをレビューする
  8. パイプでdiffを渡す
  9. 5. 3. 観点別レビューの指示パターン
  10. セキュリティレビュー
  11. パフォーマンスレビュー
  12. 可読性・保守性レビュー
  13. コーディング規約チェック
  14. 6. 4. プルリクエストの自動レビュー設定
  15. GitHub Actionsでの自動レビュー設定
  16. 7. 5. チーム独自のレビュー基準を設定する
  17. CLAUDE.mdにレビュー基準を記載する
  18. カスタムレビューコマンドを作成する
  19. 8. 6. レビュー結果をGitHubコメントに反映する
  20. GitHub CLIを使ってPRにコメントを追加する
  21. インラインコメントを追加する
  22. 9. 7. 人間のレビューとの使い分け
  23. Claude Codeが担当すべきレビュー
  24. 人間が担当すべきレビュー
  25. 推奨フロー
  26. 10. 8. まとめ
  27. 11. よくある質問(FAQ)

はじめに

「レビューに時間がかかりすぎてリリースが遅れる」

「レビュアーのスキルによって指摘のばらつきがある」

「セキュリティ観点のレビューが手薄になっている」

コードレビューは品質保証の要ですが、人間だけで行うには限界があります。Claude Codeをレビュープロセスに組み込むことで、品質チェックを高速化しながら網羅性も向上させることができます。

目次

  1. Claude Codeによるコードレビューの特徴
  2. 基本的なレビュー指示
  3. 観点別レビューの指示パターン
  4. プルリクエストの自動レビュー設定
  5. チーム独自のレビュー基準を設定する
  6. レビュー結果をGitHubコメントに反映する
  7. 人間のレビューとの使い分け
  8. まとめ

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 →

ご質問はお問い合わせページからお気軽にどうぞ。

著者:R-LLM 開発者

フォロー

Webエンジニアとして10年以上のキャリアがあり、現在はWordPressとLLM(大規模言語モデル)の連携、および生成AIを活用した課題解決のための開発に日々取り組んでいます。

私の信条は、クライアントに寄り添った伴走支援と、最後まで責任を持ってやり遂げる「遂行力」です。これまでの膨大なトライ&エラーの蓄積により、自身の領域内であれば不具合も迅速に解決できる現場の知見を積み上げてきました。

このブログでは、一人のエンジニアとして私自身がAI技術に抱いている純粋な興味をベースに、日々の探求プロセスを発信しています。

生成AILLMをどのように実務に組み込み、価値へ繋げていくか。自身の検証結果だけでなく、実務者としての視点に基づいた「考察や推察」も含めて共有することで、同じように試行錯誤を続ける方々と知見を繋げていければと考えています。

関連記事

SHARE Xでシェア
← 前の投稿
投稿一覧に戻る
次の投稿 →