OpenCodeReview - Git差分と文脈を分担して調べるAIコードレビューCLI
OpenCodeReviewは、Git差分を読み、変更ファイルをLLMエージェントに渡して行単位の構造化コメントを出すコードレビューCLIだ。差分がない既存コードには、ファイル全体や指定ディレクトリを対象にする`ocr scan`も用意されている。中心にあるのは、対象ファイルの選別、関連ファイルの分割、レビュー規則の対応付けを決定論的な処理に任せ、コードの文脈取得と欠陥の判断をエージェントに任せる分担である。 この分担は、レビュー範囲と指摘位置を安定させたいチームに魅力がある。一方、欠陥の検出漏れが少ないことまで保証する設計ではない。開発元はClaude Codeとの比較でPrecisionとF1が高い一方、Recallは低いと報告している。レビューの目的が見逃しの最小化なら、この差を自分たちの変更で確かめる必要がある。
なぜ注目されているか
取得されたリポジトリ情報ではGitHubのスター数が41,843。READMEにはTrendshiftの週次・月次バッジも掲載されている。日次増加数やコミュニティの反応は、取得された本文からは検証できない。
なぜ重要なのか
コードレビューを汎用エージェントに一括して任せると、対象ファイルを拾う作業、周辺コードを読む作業、欠陥を判断する作業、コメントを正しい行に置く作業が同じ指示の中に混ざる。OpenCodeReviewは前後の工程を専用処理として切り出し、判断が必要な部分にエージェントを使う。この構成が実務で効けば、レビュー品質を調整するときに、対象範囲、規則の対応付け、エージェントの判断、指摘位置を別々に見直せる。ただし、各工程を分けたことと、実際の欠陥を十分に発見できることは別の評価である。
この記事に出てくる言葉(6語)
- レビュー単位
関連するファイルをまとめ、独立した文脈のサブエージェントへ渡す処理単位。
- 規則の対応付け
ファイルの特徴に合わせ、テンプレートベースのレビュー規則を選ぶ処理。規則だけで欠陥を確定するという意味ではない。
- Delegation Mode
OpenCodeReviewが対象ファイルの選別と規則の解決を担い、レビュー自体をホストのコーディングエージェントに委ねる実行形態。
- Precision
出された指摘のうち、正しい指摘が占める割合。指摘を確認する負担を見る際の尺度。
- Recall
存在する正解指摘のうち、レビューが見つけた割合。見逃しを考える際の尺度。
- 構造化コメント
指摘内容に加えてファイルと行の位置を持つ、行単位のレビュー結果。
1. 読む前に知っておきたいこと
レビューの難所は判断だけではない
開発元のREADMEは、Claude Codeのような汎用エージェントにレビューを任せる場合の課題として、対象ファイルの確認漏れ、指摘位置のずれ、プロンプト変更に伴う品質の揺れを挙げる。これらは欠陥を見抜く能力とは異なる問題だ。変更ファイルが増えるほど、何を調べるか、どの周辺コードを読むか、最終的な指摘を差分のどこへ結び付けるかという工程も増える。自然言語の指示で一連の工程を扱える柔軟さはあるが、結果が変わったとき、対象の選び方と欠陥判断のどちらが原因かを切り分けにくい。OpenCodeReviewが扱おうとするのは、この工程の混在である。
差分と既存コードでは入口が違う
普段の変更確認なら、レビューの入口はGit差分になる。OpenCodeReviewにはワークスペース、ブランチ間、単一コミットを対象とするコマンドが示されており、たとえばocr review --from main --to feature-branchで比較範囲を指定できる。一方、変更差分のない既存コードを調べたいとき、差分を入口にすると対象を表せない。そこでocr scanはファイル全体や指定ディレクトリを対象にする。両者の違いはレビュー対象の決め方にあり、その後は対象ファイルに文脈と規則を与えてレビューするという同じ設計思想で読める。
「決定論的」の射程
ここでいう決定論的な処理は、READMEで確認できる範囲では、対象の選別と除外、関連ファイルの分割、ファイル別規則の対応付け、コメント位置の特定などを指す。これを、NPEやSQLインジェクションなどの欠陥を静的解析エンジンが確定検出する仕組みと読み替えるべきではない。欠陥かどうかの判断には、ファイル全文の参照やコード検索ができるLLMエージェントが残る。したがって、この設計を理解する鍵は「AIレビューの前後を固定しやすくする」ことであり、判断そのものが常に再現可能になるという意味ではない。
2. どう動くのか
入口で対象を絞り、関連ファイルを束ねる
差分レビューでは、まずGit差分から対象ファイルを選別し、除外すべきファイルを外す。全ファイル監査では、ocr scanが指定されたファイルやディレクトリを入口にする。次に、関連するファイルを一つのレビュー単位へまとめる。ファイルをただ個別に投げるのではなく、関連性を保った単位で渡すため、エージェントは変更同士のつながりを同じ文脈で確認できる。各レビュー単位は独立した文脈のサブエージェントで処理されるというのが開発元の説明だ。どのファイルを対象にし、どのファイルを一緒に読むかを、欠陥判断の前段に置く構成になっている。
規則を割り当て、必要な文脈を取りに行く
対象が決まると、ファイルの特徴に応じてテンプレートベースのレビュー規則が対応付けられる。規則はレビュー時の観点をファイルへ結び付ける仕組みであり、規則の対応付けだけで指摘が完成するわけではない。レビュー単位を受け取ったエージェントは、必要に応じてファイル全文を参照し、コードを検索し、ほかの変更ファイルも確認できる。差分の断片だけでは判断しにくい指摘でも、周辺の実装を調べる余地がある。前段が対象と観点を与え、エージェントが追加の文脈を集めて判断する、というデータの流れだ。
判断をコメントの位置へ戻す
エージェントが指摘を作った後には、コメント位置の特定と指摘内容の再検討を担う独立モジュールが置かれる。最終的な出力は行単位の構造化コメントだ。レビューで有用な指摘があっても、ファイルや行がずれていれば、受け手は根拠を探し直さなければならない。この設計は、欠陥の判断と、その判断を変更箇所へ結び付ける処理を分けている。ただし、位置特定の工程があることから、すべてのコメントが正しい行に置かれるとまでは言えない。実際の差分で、指摘内容と位置の両方を確かめる必要がある。
実行主体を変えるDelegation Mode
通常の実行では、レビュー前にLLMを設定する必要がある。Delegation Modeでは分担が変わり、OpenCodeReviewが対象ファイルの選別と規則の解決を担い、ホスト側のコーディングエージェントがレビューする。READMEはClaude Code、Codex、Cursor、Kimi Codeなどとの連携を案内している。既存のエージェントを使う場合でも、対象と規則を準備する工程をOpenCodeReview側に置けるわけだ。レビューとスキャンには中断したセッションを再開するコマンドもある。長い処理を扱う際には有用だが、再開できること自体は指摘の正しさを示さない。
3. 使いどころと限界
対象範囲を揃えたいレビューに合う
複数ファイルにまたがる変更で、まずレビュー対象を明確にし、関連ファイルを一緒に読み、指摘を行へ結び付けたいチームには、この工程分担が合う。ブランチ間や単一コミットのレビューは日常の変更確認に、ocr scanは既存コードやディレクトリの監査に使える。READMEはGitHub Actions、GitLab CI、GitFlic CI、Gerritとの連携も案内している。ただし、CIへ置く場合も、どの変更を対象にするか、どのLLM設定で実行するか、出力を誰が確認するかは運用側で決める必要がある。自動実行と自動採用は同じではない。
汎用エージェントとの違い
Claude CodeにSkillや自然言語の指示を渡すレビューと比べると、OpenCodeReviewは対象ファイルの選別、関連ファイルの分割、規則の対応付け、コメント位置の特定を専用の工程に分担させる。比較の中心は、基盤モデルそのものよりレビューの組み立て方だ。すでに汎用エージェントを使っているチームなら、Delegation Modeによって、そのエージェントの判断を残しながら対象と規則の準備を任せる選択もできる。逆に、レビュー対象を人が厳密に絞り、エージェントとの対話で調査を進める運用では、専用CLIを挟む利点を個別に確かめたい。
ベンチマークは精度の保証ではない
開発元は、50のオープンソースリポジトリ、200件のPull Request、10言語、1,505件の注釈付き正解指摘を用い、同じ基盤モデルのClaude Codeと比較したと説明する。その条件で、レビュー当たりのトークン消費は約9分の1、PrecisionとF1は高く、Recallは低かったという報告だ。取得されたREADME本文にはPrecision、F1、所要時間の具体的な数値はない。トークン差や品質差は開発元の評価条件に結び付いた報告として読むべきで、自分たちのリポジトリでも同じ差が出るとは言えない。特に見逃しを減らすことが第一のレビューでは、低いと報告されたRecallを重く見る必要がある。
導入条件と確認すべき境界
Git 2.41以降が前提であり、それを使えない環境には適合しにくい。Delegation Mode以外ではレビュー前にLLMの設定も必要になる。設定したプロバイダーやカスタムモデルエンドポイントを使う運用では、どのコードを参照させ、どの権限を与え、どの程度のトークンを消費するかをチームの条件で確認したい。READMEのベンチマークだけでは、個々のCI環境での所要時間や費用は判断できない。また、テンプレートによる規則対応付けが、利用言語や独自のレビュー基準にどこまで合うかも、実際の変更で検証すべき点だ。
このツールから考える
ここからは、一次情報と限界を踏まえた編集上の考察です。
OpenCodeReviewが示すのは、コードレビューを一回のエージェントへの依頼ではなく、対象を定め、関連ファイルを束ね、規則を渡し、文脈を調べ、指摘を行へ戻す工程として扱う設計である。この分担が自分たちの変更でも機能すれば、チームはレビュー結果が揺れたときに、対象の選び方と判断の質を分けて点検しやすくなるだろう。一方、開発元は汎用エージェントとの比較でRecallが低いと報告している。工程を整えることは見逃しの解消を意味しない。採用を考えるなら、普段の差分と既存コードの双方で、対象漏れ、指摘位置、誤検知、見逃し、実行コストを同じ基準で見たい。
検証に使用した一次情報
DevTool Lensでは、第三者の二次情報やREADMEの宣伝文句に依存せず、以下の公式リポジトリ・ドキュメント・リリース情報を精査して記事を作成しています。