「AIにコードレビューを任せたい」と思ったとき、2026年時点では選択肢がかなり増えています。
自分自身はPHPプロジェクト(WordPress非依存のメールフォームシステム)でCodeRabbitを12サイクル回してきており、今のところそれ一本で十分だと感じています。ただ、「別のツールに乗り換える/併用する」という判断をするときのために、現時点の主要ツールを用途別に整理しておきます。
AIコードレビューツールの種類を整理する
AIコードレビューツールは大きく3種類に分類できます。
PR自動レビュー型:PRを開いたとき自動でコメントを投稿する。もっとも一般的なタイプ(CodeRabbit、Greptile、Qodo、Graphite等)。
セキュリティ特化型:脆弱性・依存関係・シークレット検出に特化。コード品質よりセキュリティを重視(Snyk、DeepSource等)。
エディタ連携型:IDEやエディタと深く統合し、コミット前の段階から検出する(Cursor BugBot等)。
自分が試した3ツール
knip — JS/TS専用のため即アウト
knip はTypeScript/JavaScriptプロジェクトの「使われていないコード・依存関係・エクスポート」を検出するツールです。評判は良いのですが、PHP非対応 です。
対応するのは .js・.ts・.jsx・.tsx・.mjs・.cjs のみ。PHPファイルはスキャン対象外なので、PHPプロジェクトへの導入は最初から除外になりました。
使うべき場面: Next.js・React・NestJS等のJS/TSプロジェクトで、デッドコードや未使用の依存を検出したいとき。本来の用途ではかなり優秀です。
Fossil MCP — 誤検知が多すぎて実用困難
Fossil SCM のMCPサーバー経由でコードレビューを実施する構成を試しました。
Claude CodeからMCPツールとして呼び出す想定です。
結果として、誤検知率が高く実用に耐えませんでした。
- Composer管理の
vendor/を毎回スキャンして大量指摘 - ドキュメント内のサンプルコードを「本番コードの問題」として誤検知
- 同一の指摘が文脈なしで繰り返し出現し、対話的な絞り込みができない
.coderabbit.yaml でスキップルールを細かく設定できるCodeRabbitと比べると、カスタマイズ性が乏しく、有効な指摘がノイズに埋もれてしまいます。
CodeRabbit — 12回のレビューサイクルで実績を出した
最終的にメインのレビューエンジンとして採用しています。
GitHubのPRに対してレビューコメントを自動投稿する仕組みで、.coderabbit.yaml による細かい制御が可能です。今回は --prompt-only モードで出力をテキストファイルに書き出し、それをClaude Codeと組み合わせて修正対応するワークフローで運用しています。
CodeRabbitの実績:419件→153件
PHPフォーム を対象に、レビューまで計9サイクル実施しました。
| サイクル | 件数 | 解消 | 新規 |
|---|---|---|---|
| 4th | 172 | — | — |
| 5th | 185 | -50 | +57 |
| 6th | 154 | -66 | +56 |
| 7th | 185 | -50 | +68 |
| 8th | 159 | -51 | +37 |
| 9th | 156 | -59 | +54 |
| 10th | 182 | -47 | +57 |
| 11th | 153 | -51 | +44 |
| 12th | 164 | -25 | +35 |
11th時点で全サイクル最少の 153件 を記録。初期の約419件から 60%以上削減 しています。
途中で件数が増えるサイクル(5th・7th・10th等)があります。これは修正失敗ではなく、スキャン範囲が修正のたびに拡大するためです。関連ファイルが新たに対象に入ることで「新規」が増え、見かけの件数が上がります。各サイクルで 50〜66件が確実に解消 されており、修正効果は毎回出ています。
検出された主な問題カテゴリ
- パストラバーサルな
include時のrealpath検証漏れ、$group変数の未サニタイズ - XSSな管理画面の各所でのエスケープ漏れ、
$_SERVER['PHP_SELF']直出力 - CSRFなトークン未ローテーション、検証順序の問題
- PII漏洩なメールログ・アラートメールへの個人情報フル出力
- 競合状態 (Race Condition)な
file_put_contentsのLOCK_EX未使用 - ハードコードな絶対パスの
require_once、APIキーの直書き
他のツールの概要
現時点で自分は使っていないが、状況によっては使う可能性があるツールをまとめておきます。
Greptile — リポジトリ全体を理解して深掘りするタイプ
料金: $30/developer/month(OSSプロジェクトは無料)
PHP対応: あり
Git連携: GitHub・GitLab
CodeRabbitがPRの差分をレビューするのに対し、Greptileはリポジトリ全体のコードグラフを構築してから分析します。依存関係をまたいだバグ・影響範囲の広い変更の検出が得意で、「コードベース全体を知っている古参エンジニア」のようなレビューを目指しています。
先週リリースされたv4ではPRあたりの対処コメント数が74%増加、コメント採用率が43%に向上しており、誤検知率も改善されています。
強みはコンテキストの深さですが、その分ノイズも多くなる傾向があります。個人開発よりも、複雑な依存関係を持つ中〜大規模プロジェクト向けです。
検討するタイミング: リポジトリが大きくなってきて「どこかを変えると別のどこかが壊れる」という問題が出てきたとき。
Qodo Merge(旧CodiumAI) — テスト生成も込みで品質管理するタイプ
料金: Freeプランあり、Pro $19/user/month
PHP対応: あり
Git連携: GitHub・GitLab・Bitbucket
コードレビューにとどまらず、変更されたコードに対するテストケースの自動生成まで行うのが最大の特徴です。PR内でスラッシュコマンドを使って対話的に操作できます。
/review - PRの全体レビュー
/improve - コード改善提案
/ask "質問" - コードについて質問
/generate_tests - テストケースを自動生成
「指摘するだけでなく、検証コードも一緒に出す」アプローチで、テストを書く習慣をつけたいプロジェクトに向いています。
検討するタイミング: テストカバレッジを上げたいとき、あるいはQA工程を自動化したいとき。
Graphite + Diamond — ワークフローごと変えるタイプ
料金: $20〜/user/month、Freeプランあり
PHP対応: あり(言語非依存)
Git連携: GitHub専用
「小さなPRをスタックして順番にマージしていく(スタックPR)」というワークフロー自体を導入することで、レビューのサイクルタイムを短縮するアプローチです。AIレビュー機能(Diamond)はこの上に乗るもので、Shopifyが「開発者1人あたりのPR数33%増」、Asanaが「週7時間の節約」を報告しています。
ただし、これらの成果はAI機能よりもワークフロー変革自体によるものが大きいとされています。個人開発や小規模チームよりも、チームのコードレビュープロセスが課題になっている組織向けです。プライバシーファースト設計で、コードをモデル学習に使わないことを保証しているのも特徴です。
検討するタイミング: チームのPRが大きすぎ・レビュー待ちが長すぎて詰まっているとき。
Cursor BugBot — Cursor使いならPR前に検出できるタイプ
料金: $40/user/month(Cursor契約に追加)
PHP対応: あり(言語非依存)
Git連携: GitHub専用
Cursor IDEと深く統合されたAIレビューツールです。フォーマットやスタイルの指摘を意図的に避け、「実際に壊れる可能性のあるバグ」に絞って検出するのが特徴で、フラグを立てた問題の70%以上がマージ前に解決されています。
「Fix in Cursor」ボタンでレビューコメントからエディタ上の該当箇所に直接ジャンプできるため、Cursorをメインエディタとして使っているなら操作感が良いです。
ただし$40/user/monthはCodeRabbitの約2.7倍と高額で、Cursor以外のエディタを使っているなら選択肢に入りません。また、同じ会社がコード生成(Cursor)とレビュー(BugBot)を担うことへの懸念もあります。
検討するタイミング: Cursorをメインエディタとして使っており、バグ検出の精度を最優先にしたいとき。
Snyk Code — セキュリティを本格的に専門ツールで扱うタイプ
料金: Freeプランあり、Team $25/developer/month
PHP対応: あり
Git連携: GitHub・GitLab・Bitbucket・Azure DevOps
CVEデータベースとSAST(静的解析)を組み合わせた、セキュリティ特化のツールです。コードだけでなく依存パッケージ・Dockerコンテナ・IaC(Terraform等)まで横断的にスキャンします。
ゼロデイ脆弱性が出ても最大24時間以内にデータベースが更新されます。「脆弱なライブラリをインポートしているが実際には呼び出していない」場合はFalse Positiveとして除外するReachability機能が有用です(有料プランのみ)。
コードの可読性・構造の問題は対象外で、あくまでセキュリティに特化しています。CodeRabbitとの併用で「CodeRabbitで品質・Snykでセキュリティ」という分担も考えられます。
検討するタイミング: セキュリティ要件が厳しいプロジェクト(金融・医療・個人情報を扱うシステム等)、あるいは依存パッケージの脆弱性を自動管理したいとき。
DeepSource — コード品質ゲートをシンプルに設置するタイプ
料金: Freeプランあり、$12/user/month〜
PHP対応: あり
Git連携: GitHub・GitLab・Bitbucket
2000以上のルールによる静的解析をベースに、バグリスク・アンチパターン・パフォーマンス問題を自動検出します。AIによる「文脈理解」よりもルールベースの確実性を重視した設計で、誤検知率が低いのが強みです。
セットアップが5分以内で完了する手軽さがあり、CIに組み込む「品質ゲート」として使いやすいです。PRごとに自動修正(Autofix)を提案する機能もあります。
CodeRabbitやGreptileと比べると「AIとしての賢さ」は劣りますが、その分安定感があります。
検討するタイミング: 誤検知が少なく安定した品質ゲートが欲しいとき、あるいは低コストで自動化をスタートしたいとき。
用途別の選択指針
| 用途・状況 | 推奨ツール | 理由 |
|---|---|---|
| PHP個人・小規模開発 | CodeRabbit | コスパ最良、カスタマイズ豊富、PHP対応 |
| コードベース全体の依存関係把握 | Greptile | リポジトリ全体をコードグラフ化 |
| テスト生成まで自動化したい | Qodo | レビュー+テストケース生成 |
| セキュリティを本格的に管理 | Snyk Code | CVEベース、依存pkg・IaCも対応 |
| ワークフローごと改善したい | Graphite | スタックPR+AI Review |
| Cursor使いでバグ検出精度優先 | BugBot | Cursor統合、低誤検知でバグ特化 |
| 低誤検知で安定した品質ゲートが欲しい | DeepSource | ルールベース、セットアップ簡単 |
| JS/TSプロジェクトのデッドコード検出 | knip | JS/TS専用、未使用コード・依存の検出 |
比較表
| ツール | 料金(目安) | PHP | 重視する観点 | 誤検知率 | 個人開発 |
|---|---|---|---|---|---|
| CodeRabbit | 無料〜$15/月 | ✅ | バランス型(品質・セキュリティ) | 低〜中 | ◎ |
| Greptile | $30/月 | ✅ | 依存関係・コンテキスト深度 | 中〜高 | △(大規模向き) |
| Qodo | 無料〜$19/月 | ✅ | 品質+テスト生成 | 低〜中 | ○ |
| Graphite | $20〜/月 | ✅ | ワークフロー改善 | 低 | △(チーム向き) |
| BugBot | $40/月(追加) | ✅ | バグ・セキュリティ特化(低ノイズ) | 低 | △(Cursor必須) |
| Snyk | 無料〜$25/月 | ✅ | セキュリティ専門 | 中 | ○ |
| DeepSource | 無料〜$12/月 | ✅ | 安定した品質ゲート | 低 | ○ |
| knip | 無料 | ❌ | デッドコード検出 | 低 | ○(JS/TSのみ) |
| Fossil MCP | 無料 | △ | 汎用(言語非依存) | 高 | ✗ |
CodeRabbitの運用Tips
ワークフロー
① coderabbit --prompt-only > logs/coderabbit-reviewN.txt
↓
② CodeRabbitの出力をClaude Codeに渡して優先度分類
↓
③ 🔴高優先度(セキュリティ)→ 即対応
🟡中優先度 → 影響範囲を確認してまとめて対応
⬜スキップリスト → .coderabbit.yaml に記録
↓
④ 修正後にタスクログ(TaskYYMM.NN.md)を作成
↓
⑤ 次のレビューサイクルへ
.coderabbit.yaml の基本設定
language: "ja"
reviews:
profile: "assertive"
request_changes_workflow: false # 個人開発ならブロックしない
high_level_summary: true
auto_review:
enabled: true
path_instructions:
- path: "vendor/**"
instructions: "Composer管理のため指摘不要"
- path: "docs/**"
instructions: "ドキュメント内のサンプルコードは指摘不要"
スキップリストの管理
意図的な実装をスキップリストに記録しておかないと、毎サイクル同じ指摘が出続けます。
lang="ja-GP"等の非標準BCP47 → CSS:lang()フックとして意図的に使用vendor/phpmailer/→ Composer管理のためconfig/mail.phpのテスト用認証情報 → プライベート環境のみで使用
credential系の指摘への対処:.env/ パターン
パスワードハッシュやAPIキーが直書きされていると毎回指摘されます。以下のパターンで解消できます。
config/
├─ admin.php ← include で読み込む(コミット可)
└─ .env/
└─ password-hash.php ← 実値を書く(.gitignoreで除外)
// admin.php
$password_hash = require __DIR__ . '/.env/password-hash.php';
.env/
この構造にすると、CodeRabbitは .env/ 以下をスキャンできないため指摘が出なくなり、実運用上の安全性も向上します。config/logger.php のAPIキー等、同種の問題にも同じパターンが使えます。
ベンチマーク数値について
各ツールの公式ベンチマーク(「バグ検出率○○%」等)は参考程度に留めるのが無難です。各ベンダーが独自に発表するベンチマークは自社製品が必ず勝つ構造になっており、同じリポジトリでGreptileをAugment Codeが計測すると45%となり、Greptile自身の公表値82%と大きく乖離するという事例も報告されています。
実際の精度は「自分のプロジェクトで使ってみる」以外に判断する方法がありません。FreeプランやTrialを活用して試すのが確実です。
まとめ
PHPプロジェクトでAIコードレビューを自動化したい場合、現時点ではCodeRabbitがコスパ・機能のバランスで最もおすすめです。
別のツールを検討するとしたら以下の場合です。
- リポジトリが大きくなり依存関係の追跡が必要になってきた → Greptile
- テスト自動生成も込みで品質管理したい → Qodo
- セキュリティ要件が厳しいプロジェクトに移行した → Snyk Code
- Cursorをメインエディタにしている → BugBot
CodeRabbitは「一発で全部直す」ツールではなく、「繰り返すたびにコードが確実に改善される」イテレーションの相棒として使うのがコツです。12サイクルを通じて、「人間が見落としがちなセキュリティ問題を体系的に潰していく」という使い方が最も効果的でした。
この記事は PHPフォーム プロジェクトのCodeRabbit レビューサイクルの実作業をもとに執筆しました。ツールの料金・機能は2026年3月時点の情報です。

