📖

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.ymlpath_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です。こちらの動画で解説しています。

https://www.youtube.com/watch?v=Yu0cmmOYA-U

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系)と比べると実行速度が遅い、と言われることもあるのですが、速くて低品質ではなく、遅くとも高品質のレビューを目指しています。

「スローAI」のススメ:開発者が速度偏重をやめるべき理由

とはいえ、人がレビューを行うのに比べれば、圧倒的に早いはずです。CodeRabbitからの指摘に対応してコード品質を上げれば、最終的にレビューを行う人の負荷を大幅に下げられます。

ぜひCodeRabbitを使って、高速・高品質なプロダクト開発に取り組んでください。

CodeRabbit: AI Code Reviews

CodeRabbit

Discussion