Anthropicが、Claude Code開発チームのコードレビュー手法を公開していました。
記事はこちら:How the Claude Code team does code review
Claude Codeのコードの約90%はClaude自身が書いているそうです。AIによるコード生成が増える中、人間がすべてのコードをレビューするのは難しくなっています。
そこでAnthropicでは、AIによるコードレビュー、自動テスト、変更内容に応じた承認フローなどを組み合わせて開発しています。
また、GitHubには複数のエージェントによるコードレビューや、テストの品質確認に利用できるプラグインも公開されています。
この記事では、Anthropicの開発チームが採用している仕組みと、公開されているプラグインを整理します。
1. Anthropicのコードレビュー運用
コードレビューの自動化による変化
Anthropicが公開している数値は以下のとおりです。
| 指標 | 変化 |
|---|---|
| 実質的なレビュー指摘があるPR | 16% → 54% |
| 5回以上レビューを繰り返すPR | 8.9% → 1.5% |
| 1回のレビュー・修正で通過するPR | 65% → 78% |
| 平均レビュー回数 | 2.08回 → 1.32回 |
| マージされたPR数(2026年6〜9月) | 2倍以上 |
| 取り消しが必要になったPRの割合(同期間) | 40%以上減少 |
出典:How the Claude Code team does code review
※各指標は異なる期間・条件で測定されたものです。
コードの実装からリリースまで
Anthropicでは、コードの実装からリリースまで、複数の段階で検証を行っています。
- Claudeがコードを実装し、テスト・ビルド・リンターを実行する
- 別のエージェントが変更内容を確認する
- PR作成後、AIによるコードレビュー・セキュリティレビュー・CIを実行する
- 変更のリスクに応じて人間が承認する
- マージ前に最新のコードに対して再度チェックを行う
- 段階的にリリースし、問題があれば変更を取り消す
人間によるレビューを完全になくすのではなく、影響の大きい変更に集中させる構成です。
例えば、ドキュメントなどの低リスクな変更は自動チェックのみでマージできる場合があります。一方、通常の機能変更には1名、影響の大きい変更には2名の承認が必要です。
CLAUDE.md と REVIEW.md の使い分け
Anthropicでは、レビューの判断基準をファイルとして管理しています。
CLAUDE.md にはプロジェクトの構成や開発ルールを記載し、REVIEW.md にはレビュー時に重視する観点や、指摘しなくてよい内容を定義します。
例えば、特定のディレクトリで注意すべき処理や、既知の設計上の制約などをレビュー基準として管理できます。
なお、REVIEW.md はAnthropicのCode Reviewサービスで利用される仕組みです。後述する公開プラグインの /code-review では、同じように読み込まれるわけではありません。
AIレビューの繰り返しを防ぐ
過去には、1つのPRでAIによるレビューと修正が50回以上繰り返された事例があったそうです。
そこで、以下のような対策が導入されています。
- 3回レビューしても問題が解決しない場合、実装方針の再検討を求める
- 最初の数回以降は、新しく変更された差分を中心に確認する
- 一度指摘した問題を繰り返し投稿しない
- 同じ種類の不具合は、該当箇所をまとめて修正するよう指摘する
レビューを機械的に3回で打ち切るのではなく、修正と指摘の繰り返しを防ぐための運用です。
2. 公開されているコードレビュープラグイン
Anthropicは、Claude Codeで利用できるレビュー用プラグインをGitHubで公開しています。
code-review:複数エージェントによる並列レビュー
/code-review コマンドで実行するプラグインです。
公開されているコマンド定義では、4つのエージェントが並列でレビューします。
| エージェント | 役割 |
|---|---|
| Agent 1・2 |
CLAUDE.md に定義されたルールへの準拠を確認 |
| Agent 3 | 明確な不具合を検出 |
| Agent 4 | セキュリティやロジック上の問題を検出 |
レビュー後は、検出された問題ごとに別のエージェントが検証を行い、根拠のない指摘を除外します。
処理の流れは以下のとおりです。
PRの変更内容を取得
↓
複数エージェントが並列レビュー
↓
検出された問題を別エージェントが検証
↓
根拠のない指摘を除外
↓
レビュー結果を出力
通常は結果を端末に表示し、--comment オプションを付けるとPRにコメントを投稿します。
/code-review --comment
なお、READMEには確信度を0〜100で評価し、80点未満を除外する説明もありますが、公開されているコマンド定義とは一致していません。ここではコマンド定義に記載された処理を紹介しています。
pr-review-toolkit:観点別の専門エージェント
こちらは、6種類の専門エージェントを使い分けるプラグインです。
| エージェント | 役割 |
|---|---|
pr-test-analyzer |
テストケースの不足や品質を確認 |
silent-failure-hunter |
例外処理やエラーの見逃しを検出 |
code-reviewer |
コードの不具合や規約違反を確認 |
type-design-analyzer |
型設計や不変条件を確認 |
comment-analyzer |
コメントと実装の整合性を確認 |
code-simplifier |
複雑なコードを簡素化 |
例えば、テストの不足を確認する場合は以下のように実行します。
/pr-review-toolkit:review-pr tests
すべての観点でレビューする場合は以下です。
/pr-review-toolkit:review-pr all
コード全体を一度にレビューするのではなく、テスト、例外処理、型設計などの観点ごとに役割を分けています。
3. QAエージェントとテスト自動化
コードレビュー以外にも、テスト生成や検証を自動化するための実装例が公開されています。
テスト生成エージェント
GitHub:Agent Development Examples
Anthropicが公開しているエージェント開発例には、テスト生成エージェントが含まれています。
主な処理は以下のとおりです。
- 実装を解析し、入出力やエラー条件を確認する
- 既存のテスト構成や命名規則を調べる
- 正常系・異常系・境界値のテストケースを設計する
- テストコードを生成する
- テストが実行できるかを確認する
こちらはエージェントを作成するためのサンプルであり、そのまま利用するプラグインではありません。
先ほどの pr-test-analyzer がテストの不足を確認するのに対し、こちらはテストコードの生成を担当します。
Skillsによる検証の自動化
Building verification loops in Claude Code with skills
Anthropicは、テストの実行から修正・再検証までの手順をSkillsとして定義する方法も紹介しています。
Skillは、エージェントが利用する作業手順をまとめたものです。例えば、.claude/skills/verify/SKILL.md にテストの実行方法や確認手順を記載できます。
公式記事では、Skillsを使った検証方法として次の4つが紹介されています。
| 方法 | 内容 |
|---|---|
| Standalone | 必要なときに手動で実行 |
| Embedded | 実装用Skillの中に検証処理を組み込む |
| Chained | Skillの実行後に別のSkillを呼び出す |
| On every PR | PRごとに検証を実行 |
テストの実行方法を共通化し、実装エージェントから繰り返し利用できるようにする仕組みです。
4. SkillとSubagentの違い
Claude Codeでは、SkillとSubagentを組み合わせて処理を構成できます。
| Skill | Subagent | |
|---|---|---|
| 主な役割 | 作業手順や知識の再利用 | 独立した作業の実行 |
| 定義場所 | .claude/skills/ |
.claude/agents/ |
| 実行時の文脈 | 通常は現在の会話を利用 | 独立した文脈で実行 |
| 主な用途 | テスト手順、検証方法など | コードレビュー、調査、テスト分析など |
Skillも context: fork を指定することで、独立したサブエージェントとして実行できます。
また、SubagentからSkillを読み込むことも可能です。
つまり、両者は完全に独立した仕組みではなく、組み合わせて利用できます。
5. マルチエージェントの構成例
ここまでの公開資料をもとに、テスト生成・品質確認・コードレビューを分離すると、以下のような構成が考えられます。
※Anthropicの社内構成を示したものではありません。
.claude/
├── agents/
│ ├── test-generator.md
│ ├── qa-reviewer.md
│ ├── code-reviewer.md
│ └── security-reviewer.md
│
└── skills/
├── verify/
│ └── SKILL.md
└── regression-test/
└── SKILL.md
CLAUDE.md
REVIEW.md
各エージェントの役割は以下を想定しています。
| 役割 | 処理内容 |
|---|---|
| test-generator | テストコードを生成 |
| qa-reviewer | テストケースの不足を確認 |
| code-reviewer | 不具合や規約違反を確認 |
| security-reviewer | セキュリティ上の問題を確認 |
| verify Skill | テストやビルドを実行 |
| regression-test Skill | 過去の不具合の再発を確認 |
すべてのエージェントを毎回起動するのではなく、変更内容やリスクに応じて必要な検証を実行する構成です。
なお、この構成で REVIEW.md を利用する場合は、各エージェントが読み込むように明示する必要があります。
6. レビューAI自体の品質評価
Anthropicでは、レビューAIそのものの品質も継続的に評価しています。
過去に障害を引き起こしたPRと、その修正内容を評価データとして蓄積し、レビューAIが過去の不具合を検出できるかを確認しています。
また、正常なコードに対して不要な指摘を出していないかも評価しています。
レビュー結果に対する開発者の反応も分析しており、実際に修正された指摘なのか、誤検出だったのかなどを分類しています。
レビューAIを導入するだけでなく、検出性能と誤検出の両方を測定している点が特徴です。
まとめ
Anthropicでは、複数エージェントによるレビューだけでなく、指摘内容の再検証や、過去の障害を用いたレビューAI自体の品質評価も行っています。また、コード生成からレビュー、テスト、リリースまでを自動化する一方、変更リスクに応じて人間の承認を残す設計になっています。