CodeRabbitがレビュー時に利用しているデータについて
LLMはここ数年で扱えるコンテキスト量が増大しています。しかし、情報量を与えれば与えるほど、良い結果が返ってくるとは限りません。スペック駆動開発でも言われるように、むしろ制限されたコンテキスト・小さなタスクにした方が優秀な結果が得られるものです。
コードレビューについても同様です。人がコードレビューを行う場合、膨大な情報を基に行っているわけではありません。むしろ、自己の経験をベースにレビューしている人の方が多いでしょう。そして、ビジネス要件については、レビュアーよりも開発担当者の方が理解していることは多いです。
CodeRabbitでは、レビューに必要なコンテキストを積極的に増やそうとはしていません。むしろ、最適なコンテキストを収集して、人が行うようなレビューを目指しています。
主に収集する情報は以下の通りです。
- コードおよび PR インデックス
- Linter / 静的アプリケーションセキュリティテスト(SAST)
- コードグラフ
- コーディングエージェントのルールファイル
- カスタムレビュールールおよび学習結果
- Issue チケット(Jira、Linear、GitHub Issues)
- 公開 MCP サーバー
- Web 検索
コードおよび PR インデックス
これはもちろん当たり前ですが、コードとPRの内容を利用します。Node.jsのモジュールなども利用し、型チェックなどに利用します。
Linter / 静的アプリケーションセキュリティテスト(SAST)
CodeRabbitでは、各種Linter/SASTツールを利用しています。この記事の時点で約40個のツールがあります。
CodeRabbit Documentation - AI code reviews on pull requests, IDE, and CLI
デフォルトで有効ですが、ツール単位で有効・無効を指定したり、ツールによっては若干のカスタマイズがあります。
コードグラフ
ソースコードの構造や関係性を示すコードグラフです。
コーディングエージェントのルールファイル
CLAUDE.mdやAGENTS.mdなどの各種コーディングエージェントのルールファイルです。たとえば以下のようなファイルに対応しています。
- Cursor
.cursorrules - GitHub Copilot
.github/copilot-instructions.md - Cline
.clinerules/* - Windsurf
.windsurfrules - Claude
CLAUDE.md
カスタムレビュールールおよび学習結果
カスタムレビュールールは .coderabbit.yml の path_instructions で指定します。
CodeRabbit Documentation - AI code reviews on pull requests, IDE, and CLI
以下はその例です。
reviews:
#...
path_instructions:
- path: "**/*.js"
instructions: |
Google JavaScriptスタイルガイドに基づいてJavaScriptコードをレビューし、不一致点を指摘してください
- path: "tests/**.*"
instructions: |
以下のMochaテストライブラリを使用して記述されたユニットテストコードを確認してください。以下の点を確認してください:
- コードがMochaに関連するベストプラクティスに準拠していること
- 各テストの意図を明確に伝えるために、説明的なテスト名が使用されていること
学習結果は、CodeRabbitのLearningsです。こちらの動画で解説しています。
CodeRabbit Documentation - AI code reviews on pull requests, IDE, and CLI
レビューに対してコメントすると、その内容を学んで次回以降のレビューに活かす機能になります。最初はチームにフィットしていなかったとしても、コミュニケーションを通して徐々に最適なレビューを行うようになりますので、積極的にボット(@coderabbitai)にコメントしてください。
Issue チケット(Jira、Linear、GitHub Issues)
Jira/Linearについては公式の連携が用意されています。
CodeRabbit Documentation - AI code reviews on pull requests, IDE, and CLI
GitHub Issuesについては、Linked Issue機能が利用できます。
CodeRabbit Documentation - AI code reviews on pull requests, IDE, and CLI
Linked Issueでは、PRに対して fixes #123 やIssueのURLを記述することで、そのIssueに書かれた完了要件に合わせたレビューを行ってくれる機能になります。
Issueの内容を満たせているかどうか、その観点からレビューが可能です。
公開 MCP サーバー
CodeRabbitには、MCPサーバーに接続する機能があります。Notionからドキュメントを取得したり、BacklogからIssueの取得などもできます。なお、基本的に「検索→詳細」という手順になるので、検索ワード(PRのタイトルにある文字列が使われるようです)から最適な結果が返せるようになっている必要があります。
CodeRabbitのMCP連携 = コンテキストとコードレビュー
Web 検索
最後にWeb検索です。LLMが最新情報に追随していない場合であっても、Web検索を使って最新版の情報を取得、レビューに活用します。
まとめ
CodeRabbitでは、このような情報を収集し、品質の高いコードレビューを提供しています。他のツール(特にCLI系)と比べると実行速度が遅い、と言われることもあるのですが、速くて低品質ではなく、遅くとも高品質のレビューを目指しています。
とはいえ、人がレビューを行うのに比べれば、圧倒的に早いはずです。CodeRabbitからの指摘に対応してコード品質を上げれば、最終的にレビューを行う人の負荷を大幅に下げられます。
ぜひCodeRabbitを使って、高速・高品質なプロダクト開発に取り組んでください。
Discussion