世界を動かす技術を、日本語で。

AIコードレビューのバブルが存在する

概要

  • AIコードレビュー市場 の急速な拡大と競争激化
  • Greptile独自の視点 と差別化戦略の説明
  • 独立性・自律性・フィードバックループ の重要性
  • 将来の完全自動化 を見据えた開発方針
  • 人間の役割 は創造力と意図表現に集中する未来像

AIコードレビュー時代の到来と市場動向

  • OpenAI、Anthropic、Cursor、Augment、Cognition、Linear など大手の参入
  • Greptile、CodeRabbit、Macroscope 等の専門特化型エージェントの台頭
  • YCスタートアップ による新規参入の増加
    • White Claws =純粋なコードレビューエージェントの比喩
    • Budweiser =隣接分野の大手による参入
  • 競争激化 により差別化の必要性が増大

Greptileの差別化ポイント

  • バグ検出能力 に自信を持つが、他社も同様の主張
  • パフォーマンス比較 やブログ記事では差が分かりにくい現状
  • ユーザー自身の体験 による選択を推奨
  • プロダクトの違い ではなく、 視点の違い に注目

長期的ビジョン:独立性・自律性・フィードバックループ

  • 独立したコードレビューエージェント の重要性を強調
    • コーディングエージェントとレビュワーの分離
    • コード生成機能の未提供 (独立性維持のため)
  • 会計監査や論文採点 の例えで、自己レビューの不合理性を説明
  • 将来的な自動承認の普及 を見据えた設計思想
    • 人間がチケット作成→AIがPR作成→別AIがレビュー・承認・マージ
    • 同一AIによる自己承認の危険性 を指摘

コードバリデーションの自動化と人間の役割

  • レビュー・テスト・QA の自動化適性
    • 人間が苦手・やりたがらない作業 の自動化
    • 成功基準が明確 で自動化しやすい
  • UI開発よりも自動化基盤(パイプ)重視
    • 人間の役割 は「何を作るか」「意図や美意識の伝達」に特化
    • AIが地道な作業を担う 未来像

Claude Codeプラグインとフィードバックループ

  • Claude Codeプラグイン によるGreptileコメントの自動対応
    • PRコメント取得・修正・再レビュー の自動ループ
    • 人間の意図→コード生成エージェント→バリデーションエージェント→修正フィードバック の循環
    • 曖昧な点はエージェントがSlackで人間に確認
  • 完全自動化に向けた実践的ステップ

プロダクト選択の重要性と今後の展望

  • IDEやコーディングエージェントより高いスイッチングコスト
  • 大企業では長期的な選択となる重要性
  • AIコードレビュー黎明期からの知見と実績
    • Mag7企業を含むエンタープライズ導入実績
  • 今後もユーザー満足を最優先 とする姿勢
  • 将来像の予測は困難だが、常にベストを追求

Hackerたちの意見

競合と何が違うのか、正直よくわからないな。

「独立性」 コード生成じゃなくてコードレビューを行う「エージェント」は「独立」なの? 「自律性」 他のコードレビューツールも自動化や統合ができるよ。 「ループ」 他のコードレビューツールにリクエストして、もっとレビューをもらうこともできるし…。この記事は問題を提示してるけど、解決策が不十分で逆にあなたに不利になってる気がする。

「独立性」 そうだけど、モデルやツールのプロンプトが生成者とレビュアーで同じだったり似てたりすると、同じように失敗するよ。質問:Claudeが書いたコードのCursorレビューを、Cursorが書いたコードのCursorレビューより信頼できると思う?それとも、あまり変わらない? 「自律性」 たくさんのツールがAI支援のレビューに多くの投資をしていて、人間のレビュアーが差分を理解しやすくするための素晴らしいUIを作ってる。私たちの見解では、コードの検証は中期的には完全に自律的になるだろうから、私たちのシステムは人間の介入をオプションにするように設計されてる。これはあまり人気のない意見かもしれないけど、AI生成コードは常に人がレビューするべきだと言う意見も尊重してる。ただ、私たちがこの職業に望む未来ではないし、予測している未来でもない。 「ループ」 UXやツールに投資して、これを簡単にしたり難しくしたりできる。私たちがこれを簡単にするための第一歩は、/pluginsコマンド内のネイティブClaude Codeプラグインで、Claudeが計画を立てて、書いて、コミットして、レビューコメントをもらって、また計画を立てて書くループを実現することだ。

どのツールも特に良いパフォーマンスを発揮してないし、リントが見つける以上の意味のあるレビューを提供するためのコンテキストが欠けてると思う。SOTAはコードの差分を出発点として使うことができないし、いくつかのシステムのプロンプトは、無邪気すぎてちょっと面白い。私たちは毎日コードレビューのシステムプロンプトを意識して生きるべきだね。

誰もが「すごく」良いとは思ってないよね。今ではリントを超えてると思うけど、9ヶ月前はそうでもなかったかも。これが証拠になるかはわからないけど、過去7日間でPRの著者がGreptileのコメントに「いい発見」「グッドキャッチ」って返信した回数は9,078回だよ。

私が作業していたコードの中で、こんな感じのがあった。 // stuff obj.setSomeData(something); // 他のコードが15行 obj.setSomeData(something); // もっとstuff 「something」はちょっと複雑だったけど、フォーマットが少し違う同じものだった。私のリントは重複した呼び出しを見逃した。AIチャットにコード変更のレビューを頼んだら、重複した呼び出しを正しく指摘してくれた。List objs = someList.stream().filter(o -> o.field.isPresent()).toList(); // ... var something = someFunc(objs); Thingy someFunc(List param) { return param.stream().filter(o -> o.field.isPresent()). ... そのフィルターの一つは不要だったんだけど、呼び出しの境界を越えてそれをキャッチしてくれた。だから、AIコードレビューはリントよりも良いと思う。ただ、アプリケーションの全体的なコンテキストやデータに関する保証、チームのコーディング規約(特に内部用語の命名規則の使い方)を知らないから、気にすることもある。

SOTAはコードの差分を出発点として使うことができない。 出発点ではないけど、大きなプロジェクトの複雑なフォークで、git diff main..fork > main.diffを使って、私が持っている仕様を読み込んで、差分をチャンクごとにレビューしながら./review.mdを更新することで、かなり良い結果が出てる。自分でいくつかのコミットを十分にレビューしなかったことで作った問題を解決してるけど、複数のコミットにまたがるインタラクションを見逃さずに拾ってくれるから、驚くほど効果的だよ。

Opus 4.5は、リンターでは見逃すようなことをたくさんキャッチしてくれるし、手動での促しもほとんどいらないんだよね。DBのインデックスが抜けてたり、忘れられたマイグレーションのシナリオ、似たようなサービスとの不一致、見落とされたエッジケースとか。今はロボットに定期的にブランチをレビューさせて、自分の考えに穴を開けてもらってる。コツは、LLMを確認用のマシンとして使わないこと。人間のレビュアーの代わりにはならないし、LLMのコードレビューをするために新たにCI統合にお金を払う意味がわからない。

GH Copilotは、単なるリンターよりもずっと優れている。具体的な例はないけど、私が特に注目したのは、diffの変更以外の文脈を使うところ。PR自体では通常見えない文脈を引き込んでくれる。例えば、これが典型的なパターンに従っていないとか、このバージョンは再利用可能なコードにすでにカプセル化されているとか、ここで使える既存の定数があるのにハードコーディングされた値を使っているとか。

それには完全に同意するわけじゃないな。私はAIコードレビューにCopilotを使ってるけど、GitHubに組み込まれてて使いやすいから。結果はバラバラだけど、全体的には悪くない。AIを使う以上、何をしているかを理解する必要があるから、自分のコードやアプリケーションの構造を理解しておかないと、全く的外れなことを言われることもあるし、逆のことを言われることもある。だから、そういう時は無視して会話を終わらせる。とはいえ、伝統的なリンターが見逃すようなバグや問題をたくさんキャッチしてくれるのは確か。自動テストの穴を埋めたり、セキュリティの問題を見つけたりするのに役立つし、一般的に良い修正案を出してくれるPRを上げてくれることもある。たまにそうじゃないこともあるけど、その場合も無視して次に進む。AIコードレビューは全くないよりはマシだと思うから、スタートアップには良いと思う。開発者が自分だけだったり、1、2人しかいない場合には特にね。でも、私が言いたかったのは、Copilotを使うのはGitHubのサブスクリプションの一部だから。これが一番いいのかはわからないけど、私にとっては統合コストゼロで価値を追加してくれる。だから、多くのGitHubのサブスクライバーにとってデフォルトのAIコードレビューオプションになると思う。そうなると、GitHubやGitlabのようなホスティングプラットフォーム以外でのAIコードレビューの未来がどれだけあるのか気になるし、厳しい統合が来るんじゃないかと想像してる。

GitLabでのレビュー用にCodeRabbitをインストールしたんだけど、結果には結構満足してる。特に低価格(たしか$15/ユーザー/月)を考えるとね。定期的に問題を見つけてくれるし、人間のレビュアーが見つけにくい微妙だけど重要な問題も見つけてくれる。修正案も結構良いのを出してくれる。ただ、理論上可能だけど実際には無理なことについて文句を言うことが多いから、そのコメントは特にアクションを取らずに解決することに慣れてしまった。もっとタイプを効果的に使えば、そういうことは減るかも。CodeRabbitの言うことには、DeepSourceを使っていた時よりもずっと注意を払っているよ。

AIコードレビューは、AIコード自体に似てると思う。平凡なこと、例えばリストが正しく逆転されているか、ポインタを正しく扱っているか、オフバイワンの問題がないかなどにはうまく対応できるけど、高レベルの問題、例えばコードが実際にビジネスの問題を解決しているか、正しい依存関係を使っているか、より広いデザインに合っているかなどには弱い。これは私にとっては予想通りだし、素晴らしい助けになってる。人間としては、ポインタのライフサイクルを正しく管理しているかをチェックする時間を減らして、コードが必要なことをするためにそこにあるかを確認することに集中できるのが嬉しい。

彼らは、私が作業しているコードのバグを100%見つけてくれるよ。でも、人間のレビューを完全に置き換えるわけじゃない。まだそこまで行ってないけど、役に立つツールだね。大体の人は、テストやリンターが先に動いてからコードレビューをするよね。

SOTAはコードの差分を出発点として使うことができない。HNのコメントの質の低さには驚いてる。ここ6ヶ月以上、あなたが言ってることを毎日やってるから、まさにその通りだよ。

コードレビューの問題は、単にプロンプトを出すだけで簡単にできちゃうことだ。OpusやGPT5.2Codexなどのフロンティアモデルは、コードレビューをうまくこなしてる。最初のサブスクリプションやAPIコールがあれば、追加のものは必要ないし、統合もすぐに使える。私たちのケース、agentastic.devでは、コードレビューをIDEに組み込んでる。エージェント用に差分をパッケージして、プロンプトを付けて、異なるエージェント(ClaudeやCodex)に並行して送信するだけ。ユーザーがこれを気に入ってる理由は、もうコードレビューのために余分な費用を払わなくて済むから。無料のアドオンに勝るものはないし、さらに言えば、詩を読む必要もない。

残念ながら、コードレビューのパフォーマンスは一時的で主観的だ。 今日のエージェントは中央値の人間のコードレビュアーよりも優れている。 どっちなの?両方は無理だよ。

今日のエージェントは、中央値の人間のコードレビュアーよりも「問題を見つけたり、基準を守ったりするのが上手くなってきている」。これは、良いコードレビューが主観的なものであることを意味していると思った。だけど、コードの基準やパターンを明確に定義すれば、リンターや自動化ツール、AIコードレビュアーは常に人間よりも多くのことをキャッチしてくれるよ。

最近、コードレビューのツールが爆発的に増えているのを感じていて、企業の焦点がずれている気がする。特に目立つのはSentryとVercel。どちらも最近コードレビューのツールをリリースしたけど、なんかズレてるなって思う。彼らがそのタイプの製品で拡大できると思った理由はわかるけど、競合に対しての利点が見えない。私たちはすべてのPRにGH Copilotがネイティブで使えるし、すごく良い仕事をしてくれる。PRのコメントシステムとも非常にうまく統合されてるし、コストも安い(今の使い方だと無料)。GHや他のソース管理サービスは、PRツールに一流のコードレビュー機能を組み込むのに適している。SentryやVercelがCopilot以上のものを提供しているのかはよくわからないし、私が試した限りでは品質やDXに顕著な違いは見られなかった。彼らは製品選びからして厳しい戦いを強いられている気がするし、GHや他のソース管理サービスがどれだけ深く統合できるかにDXが制限されている。Vercelには、AIを活用したQAをぜひ見てみたい。彼らはすでに各PRにデプロイされるプレビュー環境を管理しているし、Vercelツールバーのコメントでフィードバックシステムもあるから、それらをエージェント的なQAシステムと結びつけるだけでいいと思う。もちろん、これはもっと高い目標だけど、差別化要素になるし、うまくいけば多くのチームが高額でも払うだろうね。

AIツールを使ったコードレビューの経験から言うと、重要なバグを見つけることはできる(私の振り返り分析では、80%の確率で見つかる)けど、信号対雑音比が悪い。コードに問題がある理由を20個も推測してくるのに、重要なエラーは1つだけというのが本当に難しい。ほとんどの場合、十分な人間の注意があれば、その重要なバグも特定できたはずだから、人間の注意がここでは主要なボトルネックになってる。だから、信号対雑音比の悪さは副次的な問題じゃなくて、コアな問題の一つなんだ。結果的に、今のところは選択的に使っていて、すべてのPRにデフォルトでオンにしたくはないな。

でも、信号対雑音の比率が悪いね。 その通り。私が見たときは、いつもひどい。人間のレビューでも嫌なところなんだけど、名前について20個もコメント残して、実際の機能的な問題がその中に埋もれてることが多い。良いコードレビュアーは、イライラすることを全部無視して、重要なことに集中できるんだよね。コードに機能的な問題があるなら。AIがそれを克服できるかどうか、ちょっと疑問だな。かなり微妙なところだからね。でも、もしできたら、今の業界は多くの開発者にとって厳しくなると思う。エージェンシー以外では、これが自動化されにくい部分だったから。

コードレビューの重要なポイントの一つは、コードベースの進化を他のチームメンバーに理解させることだってことも言わないとね。レビュアーもレビューすることで得るものがあるし。

信号対雑音の理由で、最初にClaude CodeにPRをレビューさせるんだ。それから、実際のレビューに持ち上げたいものを選んでる。モデルにはない追加のコンテキストがあったり、ただの細かいことだったりすることが多いから。

AIの冗長さが本当に嫌い。コンテキストを与えることができるのは知ってるし、実際にやったこともあるけど、少しだけ助けになるだけだね。それでも、10個の「アイデア」を出してくるけど、その多くは互いに密接に関連してる。

最近ちょっと使ってみたんだけど、最初は楽しんでたんだ。でもすぐに、各マイナーなイテレーションごとに、nullとundefinedのチェックのループみたいな、いろんな小さな問題を見つけることになっちゃった。

同意するけど、無視するのは結構簡単だと思う。人間のレビューをLLMレビューに置き換えるつもりはないけど、頻度を下げて実行できる良い補完だと思う。だからこそ、ノイズを無視するのが簡単なんだ。大きなレビュータスクに対して、たくさんの変更があった後に使うからね。大体10個くらい見つけてくれて、その中の上位3つか4つは深く見てみる価値がありそう。

同意。Cスタイルの基本がうまくいってるのに、C++ライブラリコード、例えばstd::variantを提案してくるのには常に反発しなきゃいけない。

それは製品によるね。私の経験では、Copilotは信号ノイズがひどい。でもBugbotは素晴らしい。ノイズがほとんどなくて、私のチームの非常に経験豊富な人たちが見逃したものを一貫して見つけてくれる。

Codexを試してみるべきだよ。市場に出ているコードレビューのツールの質にはかなりの差があるから。

成功する方法の一つは、1) 問題を深刻度順にリストアップさせることと、2) それがどれくらい深刻な問題かを評価させることだね。そうすると、人間のレビュアーは上位10件のリストと、LLMが自分のリストについてどう思ってるかを簡単に確認できる。つまり、LLMが自分のアイデアをバカだと思ってたら、人間はあんまり深く考えなくてもいいってこと。問題の種類(命名、セキュリティ、パフォーマンス、正確性など)を明示的に指摘するのも役立つよ。人間はLLMに対して考える時間を割く必要はなくて、ただのアイデア生成ツールだからね。テーブル形式の上位10件リストを見れば、最初のチェックで10秒くらいでスキャンできるよ。

他の誰かのモデルに基づいたビジネスは、価値がないと思う。まるで「DropboxはただのFTPだ」って言ってるみたいだけど、本当にそう感じる。良いアイデアはOpenAIやAnthropicにコピーされるだけだと思う。AIのコードレビューが良いアイデアだと証明されたら、CodexやClaude Codeがコードレビュー用のコマンドを実装しない理由はないよね?

競争がないビジネスモデルは一番不安定だよ。他の誰もそのアイデアを持っていなかったら、たぶん間違ってる。彼らは持ってたけど、悪いアイデアだったから失敗したんだ。重要なのは、どうやって競争するかだね。ここにはたくさんの答えがあるけど、新しくて良いものは珍しい。

厳密に言うと、モデルに依存すること自体は問題じゃないと思う。そこには十分な「肉」があって、小さくて利益の出る会社を作ることができる。そういうツールは、モデルの評価や微調整に高額な人間の時間を使うことで、バニラエージェントよりも優れている。価値を加えるためのさまざまな統合、管理、報告機能も構築できる。もし今日、またはその会社のほとんどが始まった12ヶ月前にモデルの進捗を凍結したとしても、それは実行可能なビジネスだと思う。ただ、最初の部分で得た利益は新しいモデルに奪われるし、LLMが人々にかなり複雑な機能を迅速に構築させるようになると、2番目の部分の価値はそれほど高くなくなる。無価値かどうかは分からないけど、これらの会社は顧客を集めて、少なくとも買収のために自分たちを価値あるものにするための時間が非常に限られている。

「独立性」のポイントには共感するね。ポリシーの実行でもこのパターンを見たことがある。行動を生み出すシステムと、それを検証するシステムは同じであってはいけないと思う。気になるのは、フィードバックループが曖昧さをどう扱うかだね。レビューエージェントが何かをフラグ付けして、コーディングエージェントがそれを「修正」する時、修正が技術的には合っていても意味的には間違っているリスクがある。コーディングエージェントはレビューを通過することを最優先にしていて、必ずしも正確さを重視しているわけじゃない。これが、コーディングエージェントがレビュー基準をうまく利用するようになって、実際にコードの質を改善するのではなくなるような対立的なダイナミクスを生んでいるのを見たことある?

これはちょっと突飛に思えるかもしれないけど、反事実的な状況はカフカ的だ。 > 競争の雪崩に襲われた、ええと、AIコードレビューのツールの所有者として、私たちは自分たちの違いは何かを考えている。 > 人間のエンジニアは、存在すべき素晴らしいアイデアを考え出すことと、それをきれいでパフォーマンスの良いコードに変えるエージェントに自分のビジョンやセンスを伝えることにだけ集中すべきだ。 > どこかに曖昧さがあれば、エージェントは人間に確認を求める。これはLLM広告がLLMによって生成されたものなのか?少なくともそう感じる。

AIはコードを書けない。みんな、LLMがポンジスキームだって気づき始めてるし、これらの研究所はバーニー・マドフよりちょっとマシなだけだよ。彼らがやってることは、犯罪に近いね。