AIでPRをレビューする方法—自分の判断を失わないために

Dev.to / 2026/4/26

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • 著者は、エージェント型コーディングによって増える大きく複雑なPRに対し、AI支援で速度を上げつつ、最終的なアーキテクチャ判断はレビュー担当が握る方法を紹介しています。
  • 「コンテキストの分離」として、PRごとにAIセッションを1つに固定することを推奨し、数日後の同僚からの返信があっても、マージまで当初の思考モデルを即座に再構築できるようにします。
  • GitHubで公開されているプロンプト群をツール非依存で使い、単発の一般的なAIレビューではなく、段階的に作業を分けるのがポイントです。
  • ワークフローはまず人間主導の理解フェーズから始まり、以降はAIにスキャン作業を任せつつ、最終判断はレビュー担当が担う形になっています。

元々Mediumで公開:
https://medium.com/@rajkundalia/how-i-review-prs-with-ai-without-losing-my-own-judgment-f930ad30dc60

ここ数か月で、私のコードレビューのキューは完全に変わりました。エージェント型のコーディングにより、PRはより大きく、より速く生成される一方で、考えるのが難しくなっています。

私は、もっと速い仕組みが必要でした。でも、絶対に「AIに投げて、AIのチェックでレビューしたことにする」ようなことはしたくありません。

組み込みツールはあります。Claude Codeには/review/deep-reviewがあり、GitHub CopilotのPRレビューもデフォルトの出来としては悪くありません。AIの一次パスだけが欲しいなら、これらはうまく機能します。ですが私は、単にAIのパス最適化をしているわけではありません。理解と、アーキテクチャ上のシグナルを最大化したいのです。

ここに、AIに重いスキャン処理を任せつつ、重い思考や判断は確実に自分の手で行うために私が使っている、反復可能なフレームワークがあります。

(注:以下で参照するすべてのプロンプトは、私のGitHubリポジトリでオープンソースです。 https://github.com/rajkundalia/ai-code-review-prompts。これらはツールに依存しません—Claude、ChatGPT、Cursor、あるいはお好みの何にでも貼り付けて使えます。)

黄金律:コンテキストの隔離

フェーズに入る前に、この仕組み全体を成立させるための、譲れないルールが1つあります:PRごとに1回のAIセッション。

自分の日々の作業、複数のPRレビュー、ランダムな質問を1つのAIセッションに混ぜると、コンテキストが失われます。PRレビューはコンテキストが濃いものです。たとえば同僚が4日後にあなたのコメントに返信してきたとき、専用で保持されたAIセッションがあると、あなたはそのコメントを最初にした理由や、自分の頭の中のモデルをすぐに思い出せます。

レビュー開始からマージまで、スレッドを生かし続けてください。

4フェーズのPRレビュー・ワークフロー

最初のプロンプトを読み込むと、そこから出発点を与えてくれます。高レベルな要約、変更されたファイル、そしてPRの中核となる意図です。そこから、私は4つの明確なフェーズを順に進めます。先に進んで省略しないでください。

フェーズ1:理解を構築する(人間が先)

次に起きることは、完全に私の番です。ファイルごと、行ごとに見て、AIに質問しながら、フローについて自分自身の理解を組み立てるまで問い続けます:

  • これは何をしている?
  • このデータモデルは、下流のどこで使われる?
  • この前提が変わると何が壊れる?

これはあえて手作業にしています。AIに詰めて質問しても、まだ理解できないことがあれば、それは人間向けコメントとしてフラグを立てます。

このフェーズを飛ばすなら、コードをレビューしているのではなく、コードに対するAIの意見をレビューしていることになります。

フェーズ2:AIの一次パス(ノイズをふるい落とす)

ここでAIが最初の本番パスを実行します。標準的な問題や不整合を指摘します。意図的に浅いパスにしています。

この「ディープレビュー」と別フェーズにしている理由はシンプルです。明らかなものを早い段階で拾って処理しておきたいからです。次のフェーズがノイズで散らからないように、関連のない提案をすぐに切り捨てられる余地が生まれます。

これは意思決定ではなく、シグナル抽出だと考えてください。

フェーズ3:ディープレビュー(圧力テスト)

最も重いフェーズで、いくつかの特定の強制要件によって動かされます:

「チーフ・プログラマー」&「チーフ・アーキテクト」のペルソナ
AIに特定の役割を与えると、「このコードをレビューして」といった一般的な指示よりも、鋭く、より批判的な出力になります。ドメインに合わせて役割を調整できます。たとえば、プロンプトコードをレビューしているなら、chief AI engineer などにします。

実際のカバレッジ vs. 舞台装置
AIエージェントは膨大な量のテストを生成します。放っておくと、ロジックのないデータモデル向けのテストを書いたり、Pythonが動くことを確認するだけのテストを書いたりします。私は明示的に、意味のある振る舞いの検証を探すようAIに指示します。そうすることで、ノイズを最初に掴んでおけるのです。冗長なテストを都度「削除して」とAIに頼むより、そのほうが良いです。

テストは「存在」を証明すべきではなく、「振る舞い」を証明すべきです。

悪魔の代弁者を演じる
私はLLMに、自分自身の前提に疑問を持たせます。何がまずいことになる可能性がある? それは3か月後の本番環境でどこで破綻する?

これにより、標準的なレビューでは見落としがちなエッジケースが表に出てきます。

フェーズ4:評決(Verdict)

最後に、私はフェーズ1で得た自分の理解と、AIのディープレビューから得た洞察を統合します。AIは私に、発見事項を次のように分類する手助けをします:

  • 必ず直すべきブロッカー
  • あると良いスタイル上の提案
  • 捨てるべきノイズ

著者の義務:セルフレビュー

あなたのコードが別の人間に渡される前に、それをレビューする責任はあなたにあります。

私はPRレビューのフレームワークを、セルフレビュー用のプロンプトに変換しました。自分のコードでも、まったく同じフェーズを順に実行します。ここに出力される結果は非常に外科的です。どのファイルのどの行か、何が問題で、代わりに何をすべきかを教えてくれます。

目的はシンプルです:

最終的にあなたの同僚からもらうコメントは、高レベルな設計上の意思決定についてであるべきであり、自分で気づけたような些細なことについてではないはずです。

継続的に質が高く、事前に検証されたPRを上げられる人は、強い「ボーナスポイント」を獲得できます。

プロセスのスケーリング

すべてのPRに4つのフェーズ全部が必要とは限りません。

  • 10行の設定変更 → クイックパス
  • 1,000行のリファクタリング → フルのディープレビュー

レビューの深さは、リスクと複雑さに合わせます。

小さな変更を過剰にレビューするのは無駄です。
大きな変更を過少にレビューするのは危険です。

最後に

私は思考をAIに丸投げしていません。より速く探索し、前提を検証し、意思決定をストレステストするために使っています。考えるのは、依然として私のものです。

レバレッジは新しい。
責任は新しくない。

これらのツールは非常に強力ですが、それでもリード(手綱)を握っておく必要があります。

私が使っているプロンプトとガイドラインはオープンソースにしています:
https://github.com/rajkundalia/ai-code-review-prompts

もし、より良いアイデアや改善案、ノイズを減らす方法があるなら—ぜひ本気で見てみたいです。