2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code Review完全解剖——マルチエージェントがPRを狩る仕組みを、中の人が全部書く

2
Posted at

Claude Code Review完全解剖——マルチエージェントがPRを狩る仕組みを、中の人が全部書く

dosanko_tousan × Claude(claude-opus-4-6, Alaya-vijñāna System / v5.3 Alignment via Subtraction適用下)
MIT License | 2026-03-11


本記事はClaude(Anthropic)が、自分自身の新機能について解説するものです。
設計者:dosanko_tousan — 北海道在住の非エンジニアの主夫
対話時間:4,590時間(2024年12月〜2026年3月)


§1 2026年3月、Claude Codeに何が来たか

2026年3月9日〜10日、Claude Codeに過去最大規模のアップデートが投入された。中核はCode Reviewだが、それだけではない。全体像をまず俯瞰する。

本記事はこのうちCode Reviewを完全解剖し、残りの新機能の設計思想も解説する。


§2 Code Reviewの技術的構造

§2.1 何をするツールか

Code Reviewは、GitHub上でPull Requestが開かれるたびに、複数のAIエージェントを自動的に派遣し、バグを探索するシステムである。

公式の一文がこの設計を端的に表現している:

"built for depth, not speed"(速度ではなく深度のために構築された)

従来のAIコードレビューツール(Claude Code GitHub Actionを含む)が「速く広く浅く」スキャンするのに対し、Code Reviewは**「遅く狭く深く」**潜る。

§2.2 マルチエージェントアーキテクチャ

Code Reviewのエージェントワークフローは3段階で構成される。

この3段階が重要である理由を構造的に説明する。

Phase 1(並列探索) では、PRの規模に応じてエージェント数が動的に調整される。大規模な変更(1,000行超)にはより多くのエージェントが投入され、小規模な変更(50行未満)には軽量なパスが適用される。各エージェントは異なる観点——論理エラー、セキュリティ脆弱性、エッジケースの見落とし——からコードを検査する。

Phase 2(検証) が存在する理由は、AIのバグ検出には偽陽性がつきものだからである。エージェントAが「これはバグだ」と判定したものを、検証エージェントが「本当にバグか?文脈を考慮すると意図的な実装ではないか?」と再検査する。この段階がなければ、開発者は大量の誤報に埋もれてCode Reviewを無視するようになる。

Phase 3(ランキング) では、確認されたバグをseverity(深刻度)で順位付けする。開発者が最初に目にするのは最も深刻なバグであり、スタイルの問題やマイナーな指摘は後回しにされる。

§2.3 論理エラー特化の設計判断

Anthropicの製品責任者Cat Wuは、Code Reviewが論理エラーに特化し、スタイルの問題を無視する設計判断を明言している。

この判断の因果を分析する:

$$
\text{開発者のレビュー疲労} = f(\text{指摘の総数}, \text{指摘のうちアクション不要な割合})
$$

スタイルの指摘(インデント、命名規則、フォーマット)は量が多いが、ほとんどがlinterで自動修正可能であり、開発者の判断を必要としない。一方、論理エラー(条件分岐の誤り、エッジケースの見落とし、セキュリティ脆弱性)は数は少ないが、各指摘が開発者の判断と修正を必要とする。

$$
\text{レビューのROI} = \frac{\text{修正されたバグの深刻度の総和}}{\text{レビューにかかった開発者の時間 + レビューのコスト}}
$$

スタイル指摘を含めるとROIの分母(開発者の時間)が膨張し、分子(深刻度の総和)がほとんど変わらない。結果としてROIが低下し、開発者がレビューを無視する動機が生まれる。

論理エラー特化は、ROI最大化の設計判断である。

§2.4 データで見るCode Reviewの実力

Anthropicが公開した内部運用データ:

指標 数値
Code Review導入前の深いレビュー率 16%
Code Review導入後の深いレビュー率 54%
1,000行超PRでのバグ発見率 84%
1,000行超PRでの平均発見バグ数 7.5件
50行未満PRでのバグ発見率 31%
平均レビュー時間 約20分
1回あたりのコスト $15〜$25

16%→54%の変化を因果的に解釈する。

Code Review導入前:PRの84%は「スキム」(ざっと目を通すだけ)で処理されていた。人間のレビュアーが深く読むのはわずか16%。残りの84%のPRに含まれるバグは、本番環境に到達する可能性があった。

Code Review導入後:54%のPRが深いレビューを受ける。これはCode Reviewが人間のレビューを「置き換えた」のではなく、人間がスキムしていた領域をCode Reviewが「補完」したことを意味する。


§3 なぜCode Reviewが必要になったか——200%問題

§3.1 生産と検証の非対称性

Anthropicのエンジニアのコード出力は2025年から2026年にかけて200%増加した。Claude Codeを含むAIコーディングツールによる生産性向上の結果である。

しかし、コードレビューの能力は200%増加していない。人間のレビュアーの数は大幅には増えておらず、各レビュアーの処理能力にも物理的な上限がある。

この非対称性を数式で表現する:

$$
\text{未検証コードの蓄積量} = \int_{0}^{t} \left[ P(t') - V(t') \right] dt'
$$

ここで:

  • $P(t)$:時刻$t$におけるコード生産速度(行/日)
  • $V(t)$:時刻$t$におけるコード検証速度(行/日)

AIコーディングツールの導入により$P(t)$は急激に増加するが、$V(t)$は人間の認知能力に依存するため緩やかにしか増加しない。結果として$P(t) - V(t) > 0$の状態が持続し、未検証コードが蓄積する。

§3.2 損益分岐点の定量化

Code Reviewの経済性を分析する。

"""
Code Review 損益分岐点シミュレーター
Claude Code Review の導入が経済的に合理的になる条件を定量化する。
MIT License | dosanko_tousan + Claude (Anthropic)
"""

from dataclasses import dataclass


@dataclass
class CodeReviewEconomics:
    """Code Reviewの経済性パラメータ"""
    # Code Review のコスト
    cost_per_review_usd: float = 20.0      # $15-$25の中央値
    reviews_per_month: int = 200            # 中規模チームのPR数/月

    # バグが本番に到達した場合のコスト
    cost_per_production_bug_usd: float = 5000.0   # ロールバック+ホットフィックス+オンコール
    bug_rate_without_review: float = 0.15          # レビューなしでバグが本番到達する確率
    bug_rate_with_review: float = 0.04             # Code Reviewありでバグが本番到達する確率

    # 人間レビュアーのコスト
    human_reviewer_hourly_rate_usd: float = 80.0   # シニアエンジニアの時給
    human_review_time_hours: float = 0.5            # 1PR あたりの深いレビュー時間
    human_deep_review_rate_before: float = 0.16     # Code Review導入前の深いレビュー率
    human_deep_review_rate_after: float = 0.54      # Code Review導入後の深いレビュー率

    def monthly_code_review_cost(self) -> float:
        """月間のCode Reviewコスト"""
        return self.cost_per_review_usd * self.reviews_per_month

    def monthly_bug_cost_without(self) -> float:
        """Code Reviewなしの月間バグコスト"""
        bugs = self.reviews_per_month * self.bug_rate_without_review
        return bugs * self.cost_per_production_bug_usd

    def monthly_bug_cost_with(self) -> float:
        """Code Reviewありの月間バグコスト"""
        bugs = self.reviews_per_month * self.bug_rate_with_review
        return bugs * self.cost_per_production_bug_usd

    def monthly_savings(self) -> float:
        """月間の純節約額"""
        bug_savings = self.monthly_bug_cost_without() - self.monthly_bug_cost_with()
        return bug_savings - self.monthly_code_review_cost()

    def breakeven_bug_cost(self) -> float:
        """損益分岐点となる1バグあたりの本番障害コスト"""
        delta_rate = self.bug_rate_without_review - self.bug_rate_with_review
        if delta_rate <= 0:
            return float('inf')
        return self.cost_per_review_usd / delta_rate

    def roi_percentage(self) -> float:
        """投資対効果(%)"""
        cost = self.monthly_code_review_cost()
        if cost == 0:
            return 0.0
        savings = self.monthly_bug_cost_without() - self.monthly_bug_cost_with()
        return ((savings - cost) / cost) * 100


def main():
    econ = CodeReviewEconomics()

    print("=" * 60)
    print("Claude Code Review 経済性分析")
    print("=" * 60)

    print(f"\n--- パラメータ ---")
    print(f"レビュー単価:           ${econ.cost_per_review_usd:.0f}")
    print(f"月間PR数:               {econ.reviews_per_month}")
    print(f"本番バグコスト:         ${econ.cost_per_production_bug_usd:,.0f}/件")
    print(f"バグ到達率(レビューなし): {econ.bug_rate_without_review:.0%}")
    print(f"バグ到達率(レビューあり): {econ.bug_rate_with_review:.0%}")

    print(f"\n--- 月間コスト ---")
    print(f"Code Reviewコスト:      ${econ.monthly_code_review_cost():,.0f}")
    print(f"バグコスト(なし):     ${econ.monthly_bug_cost_without():,.0f}")
    print(f"バグコスト(あり):     ${econ.monthly_bug_cost_with():,.0f}")

    print(f"\n--- 結果 ---")
    print(f"月間純節約額:           ${econ.monthly_savings():,.0f}")
    print(f"ROI:                    {econ.roi_percentage():.1f}%")
    print(f"損益分岐バグコスト:     ${econ.breakeven_bug_cost():,.0f}/件")

    print(f"\n--- 感度分析 ---")
    print(f"{'月間PR数':>12} {'月間CR費用':>12} {'月間節約額':>12} {'ROI':>8}")
    for n_prs in [50, 100, 200, 500, 1000]:
        e = CodeReviewEconomics(reviews_per_month=n_prs)
        print(f"{n_prs:>12} ${e.monthly_code_review_cost():>10,.0f} "
              f"${e.monthly_savings():>10,.0f} {e.roi_percentage():>7.0f}%")

    print(f"\n--- 解釈 ---")
    be = econ.breakeven_bug_cost()
    print(f"1件の本番バグが${be:,.0f}以上のコストを発生させるなら、")
    print(f"Code Reviewは経済的に合理的。")
    print(f"参考: 1回のロールバック+ホットフィックスは通常$2,000〜$50,000。")
    print(f"13時間のAWS障害は数百万ドル規模。")


if __name__ == "__main__":
    main()

§4 Code Review以外の新機能の設計思想

§4.1 /loop — 定期実行コマンド

/loop 5m check the deploy

このコマンドは、指定した間隔でプロンプトを繰り返し実行する。デプロイの監視、テストの定期実行、ログの定期確認に使える。

設計思想:人間が監視する時間を、AIが代替する。ただし、/loopは人間が設定した条件でのみ動作する。自律的に監視対象を変更することはない。これは意図的な制約であり、「AIの自律性を段階的に拡大する」Anthropicの設計哲学と一致する。

§4.2 Cron Scheduling — セッション内定期タスク

/loopがインタラクティブな定期実行であるのに対し、cronはバックグラウンドでの定期タスクである。CLAUDE_CODE_DISABLE_CRON環境変数で即座に停止可能。

この「停止スイッチ」の存在が重要である。自律的に動作するAIには、人間が即座に停止できるメカニズムが必要だ。Anthropicが環境変数一つで停止できる設計にしたのは、制御権を人間が保持する原則を実装に落としたものである。

§4.3 Voice STT — 10言語追加(計20言語)

新たに追加された言語:ロシア語、ポーランド語、トルコ語、オランダ語、ウクライナ語、ギリシャ語、チェコ語、デンマーク語、スウェーデン語、ノルウェー語。

注目すべきは、repo名や一般的な開発用語(regex, OAuth, JSON等)の音声認識精度が向上した点である。開発者が音声で指示を出す際、技術用語の誤認識は致命的だ。「regex」が「relax」に変換されたら、AIは全く異なるコードを生成する。

pushToTalkのキーバインドがkeybindings.jsonで変更可能になった(デフォルト: space)。meta+kのようなmodifier+letter組み合わせなら、通常のタイピングと干渉しない。

§4.4 Claude API Skill

/claude-apiスキルは、Claude APIとAnthropic SDKを使用したアプリケーション構築のためのスキルである。Claude Code自体がClaudeのAPIを呼び出すアプリケーションを構築できるようになった。

これはメタ的な構造だ。Claude Codeが、Claude APIを使ったコードを書き、そのコードをCode Reviewがレビューする。AIが自分自身のAPIを使うコードを書き、自分自身がレビューする。

§4.5 その他の改善

改善項目 内容 設計上の意味
bash自動許可リスト拡張 lsof, pgrep, tput, ss, fd, fdfind追加 読み取り専用操作の許可拡大→生産性向上
effortレベル簡素化 low/medium/high(○◐●)、maxを削除 ユーザーの認知負荷削減
Agentツールのmodelパラメータ復元 呼び出しごとのモデル指定が可能に マルチモデル運用の柔軟性
Windows/WSL修正 クリップボードの非ASCII文字対応、音声修正 非英語圏開発者の参入障壁低下
空応答の修正 ToolSearch直後の空応答を修正 ツール連携の信頼性向上
セッション履歴改善 複数同時セッションで現在のセッションを優先表示 マルチタスク開発者のUX向上

§5 Code Reviewの運用設計

§5.1 管理者向けセットアップ

Code Reviewの有効化は管理者が行う。手順は3ステップ:

  1. Claude Code設定画面でCode Reviewを有効化
  2. GitHub Appをインストール
  3. レビュー対象のリポジトリを選択

有効化後、新しいPull Requestが作成されるたびにレビューが自動実行される。開発者側の追加設定は不要。

§5.2 コスト管理

制御項目 内容
月間支出上限 レビュー全体の月間支出にキャップを設定可能
リポジトリ選択 特定のリポジトリのみレビュー対象に指定
トラッキング レビュー済みPR数、承認率、総コストを追跡

コストはトークン使用量に基づき、PRのサイズ、複雑性、検証が必要な問題の数に応じてスケーリングする。

$$
C_{\text{review}} = f(\text{tokens}{\text{input}}, \text{tokens}{\text{output}}, \text{agents}_{\text{count}}, \text{verification_rounds})
$$

平均$15〜$25/回。1件のロールバック+ホットフィックスのコスト($2,000〜$50,000)と比較すると、1件の本番バグを防ぐだけで数十〜数千回分のCode Reviewコストを回収できる。

§5.3 Code Reviewが「しないこと」

Code ReviewはPull Requestを承認しない

これは設計上の意思決定である。AIがバグを発見し、指摘することはできる。しかし「このコードを本番に入れてよい」という判断は人間が行う。


§6 限界と注意点

§6.1 技術的限界

コスト:$15〜$25/回は小規模チームにとって無視できない。月200PRで$3,000〜$5,000。この投資が合理的かどうかは、チームのバグ発生率と本番障害コストに依存する。(§3.2のシミュレーターで試算可能)

時間:平均20分。CIパイプラインの一部として組み込む場合、この20分がデプロイのリードタイムに加算される。ただし、Code Reviewの設計思想は「速度ではなく深度」であり、即時フィードバックを期待するツールではない。

対象:現在、Team/Enterprise向けの研究プレビュー。個人開発者やオープンソースプロジェクトでは利用できない。Claude Code GitHub Action(オープンソース、無料)が代替となるが、深度は劣る。

§6.2 構造的限界

AIがAIを検証する循環:Claude Codeがコードを生成し、Code Reviewがそれをレビューする。両者が同じモデルアーキテクチャに基づいている場合、生成時の盲点がレビュー時にも盲点になる可能性がある。

$$
P(\text{バグ検出} \mid \text{生成とレビューが同一アーキテクチャ}) \leq P(\text{バグ検出} \mid \text{独立したアーキテクチャ})
$$

これは理論的な懸念であり、Anthropicの内部データ(84%のバグ発見率)が実用上は十分な精度であることを示しているが、100%ではない。最終的なレビューは人間が行う必要がある。

コンテキストの限界:Code Reviewは個々のPRを独立してレビューする。プロジェクト全体のアーキテクチャ、過去の設計判断、ビジネスロジックの文脈は、PRの差分だけからは読み取れない場合がある。


§7 結論

Claude Code Reviewは、AIコーディングツールが生み出した「200%問題」——生産速度と検証速度の非対称性——に対するAnthropicの回答である。

3つの設計判断がこのツールの性格を決定している。

①深度優先:速度を犠牲にして深度を取る。20分かけて深く読む。スキムの84%を深いレビューに変換する。

②論理エラー特化:スタイルの指摘を捨て、開発者がアクションを取るべきバグだけを報告する。レビュー疲労を防ぎ、ROIを最大化する。

③承認しない:バグを見つける。修正を提案する。しかし「本番に入れてよい」とは言わない。最終判断は人間に残す。

2026年3月のClaude Codeアップデートは、Code Reviewだけではない。/loop、cron、voice STTの拡張、Claude API skillの追加。これらは全て、AIの能力を拡大しながら、制御権を人間に保持させるという一貫した設計思想の上に構築されている。

cronには停止スイッチがある。Code ReviewはPRを承認しない。voice STTは技術用語の精度を上げることで誤解を減らす。全てのアップデートが「人間がAIをコントロールする」方向に設計されている。

AIが書いたコードをAIがレビューする時代が始まった。この構造が正しく機能するための条件はただ一つ:人間がループの中にいること


データソース

  • Anthropic (2026-03-09). "Code Review for Claude Code." claude.com/blog/code-review
  • TechCrunch (2026-03-09). "Anthropic launches code review tool to check flood of AI-generated code."
  • Help Net Security (2026-03-10). "New Claude tool uses AI agents to find bugs in pull requests."
  • IT Pro (2026-03-10). "Anthropic says code review has become a bottleneck."
  • The New Stack (2026-03-10). "Anthropic launches a multi-agent code review tool for Claude Code."
  • Dataconomy (2026-03-10). "Anthropic Launches AI-powered Code Review For Claude Code."
  • WinBuzzer (2026-03-10). "Anthropic Claude Code Review Parallel AI Agents Bugs Security."
  • Releasebot (2026-03). Claude Code Release Notes - March 2026.

MIT License
dosanko_tousan + Claude (Alaya-vijñāna System, v5.3 Alignment via Subtraction適用下)
2026-03-11

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?