code-review について
code-reviewは、agents-plugin:reviewに分析を委任するエンドツーエンドのコードレビュー用スキルです。品質、セキュリティ、性能、テストを確認し、指摘を再検証して重要度と確信度で整理します。
主な機能
- 01品質、セキュリティ、性能、設計を確認
- 02テストカバレッジの不足を確認
- 03agents-plugin:reviewに分析を委任
- 04指摘と発生条件を再検証
- 05重要度と確信度でレポートを整理
- 06大規模コードの並列レビューに対応
活用シーン
- 01ディレクトリやPull Requestの差分をレビュー
- 02セキュリティや性能の問題を発見
- 03不足しているテストケースを特定
- 04修正事項と手動対応を整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill code-reviewインストール後、Claude Code で/code-reviewを入力して読み込まれたか確認します。
同梱ファイルscripts/tests/test-code-review-rubric-depth.sh
詳細
このスキルを使う場面
| このスキルを使う場面… | 代わりに別のものを使う場面… |
|---|---|
| 品質、セキュリティ、パフォーマンス、テストを対象に、エンドツーエンドのレビューを実施する場合 | 手動のセキュリティ/正確性チェックリストを確認する場合 → code-review-checklist |
| エージェントに分析を委任して、ディレクトリまたは PR の差分を監査する場合 | コードの臭いを特定する場合 → code-antipatterns |
| 不足しているテストケースや弱いアサーションを見つける場合 | テストコードの品質だけを監査する場合 → code-test-quality |
| 統合レビュー報告書を作成する場合 | レビューで問題が見つかった後にリファクタリングする場合 → code-refactor |
コンテキスト
- レビュー対象のパス:
$1(指定がない場合は現在のディレクトリ)
パラメーター
$1:レビュー対象のパス(指定がない場合は現在のディレクトリ)
タスク
このタスクを agents-plugin:review エージェントに委任してください。
Agent ツールで subagent_type: agents-plugin:review を指定し、包括的なコードレビューを実施します。
まず、Glob ツールを使ってレビュー対象のソースファイルを検索します。
- ソースファイルには
**/*.py、**/*.js、**/*.ts、**/*.go、**/*.rsを使用します - テストファイルには
**/*test*パターンを使用します
次に、見つかったファイルをエージェントに渡します。
コードレビューエージェントは、次の作業を行います。
-
コード品質を分析する:
- 命名規則と読みやすさ
- コード構造と保守性
- SOLID 原則への準拠
-
セキュリティを評価する:
- 入力検証の脆弱性
- 認証および認可の問題
- シークレットや機密データの露出
-
パフォーマンスを評価する:
- ボトルネックと非効率な処理
- メモリ使用パターン
- 最適化の機会
-
アーキテクチャをレビューする:
- デザインパターンの使用状況
- コンポーネント間の結合度
- 依存関係の管理
-
テストカバレッジの不足を確認する:
- 不足しているテストケース
- カバーされていないエッジケース
- 必要な統合テスト
-
適切かつ安全な場合は修正を適用する
-
各候補の指摘を再検証する(誤検知を除外するためのゲート。報告前に実施): 手順 1~5 で得られた候補の指摘ごとに、該当箇所のコードを再読し、記載された
file:lineで、現在のソースコードに照らして指摘内容が実際に成り立つことを確認します。 記憶や想定に基づく形ではなく、現状のコードを確認してください。再読によって裏付けられた 指摘のみを残し、それ以外は除外します。以下の「再検証パス」を参照してください。 -
残った各指摘を以下の基準で評価する:
- 「重大度の基準」を使って 重大度(Critical/High/Medium/Low)を割り当てます。
- 「確信度の尺度」を使って 確信度(High/Medium/Low)を割り当て、報告基準を下回る指摘は除外するか、明示的に注記します。
-
以下を含む報告書を作成する:
- 重大度の高い順に並べた、残存する指摘。それぞれに
severity、confidence、検証済みのfile:lineを記載します - 発見・修正した問題の概要
- 残っている手動対応事項
- 改善の提案
- 重大度の高い順に並べた、残存する指摘。それぞれに
エージェントには、次の情報を提供します。
- コンテキストに記載されたレビュー対象のパス
- プロジェクトの種類(言語/フレームワーク)
- 指定された重点確認事項
エージェントは、以下の分野に精通しています。
- 複数言語にわたるコード分析(Python、TypeScript、Go、Rust)
- 正確な診断のための LSP 連携
- セキュリティ脆弱性のパターン(OWASP)
- パフォーマンス分析と最適化
重大度の基準
残った各指摘を、以下の基準に照らして評価します。報告書では 重大度の高い順に並べてください。
| 重大度 | 基準 |
|---|---|
| Critical | 悪用可能なセキュリティホール、データの損失/破損、または一般的な操作でのクラッシュ。リリースを阻止する問題であり、マージ前に必ず修正します。 |
| High | 現実的な入力で誤動作する実際の正確性バグ、深刻なパフォーマンスの低下(N+1、無制限の増加)、または既知の悪用手段はないものの認証/検証に不備がある問題。マージ前に修正します。 |
| Medium | エッジケースでのバグ、エラー処理の不足、重要な動作に関するテスト不足、または近いうちに問題になる保守性の課題。修正するか、フォローアップとして記録します。 |
| Low | 動作への影響がない、スタイル、命名、軽微な読みやすさの問題、または些細な指摘。対応は任意です。 |
信頼度の尺度
各指摘に信頼度を割り当て、レポートに含めるかどうかを判断します。目の前のコードから不具合を実証できない指摘は推測であり、推測はレビューへの信頼を損ないます。
| 信頼度 | 意味 | 報告ルール |
|---|---|---|
| 高 | 引用したコードから不具合を証明できます。入力と誤った結果を具体的に示せます。 | 報告します。 |
| 中 | 不具合の可能性は高いものの、十分に確認できなかったコンテキストに左右されます。 | 確認が必要であることを明記して報告します。 |
| 低 | 推測にすぎず、読んだコードに根拠のない勘です。 | 取り上げないか、「Xを確認してください」という一行のメモに格下げします。不具合として提示してはいけません。 |
報告の基準は中です。信頼度が高または中の指摘は報告し、信頼度が低い推測は指摘として提示しないでください。
再検証パス
レポート作成の前に、候補となる指摘をすべて実際のコードに照らして再確認します。最初に読んだ内容を信頼するのではなく、機械的に誤検出を排除します。
Readで指摘のfile:lineを再度開き、引用したコードが指摘の主張どおりであることを確認します(行番号はずれることがあり、前提は変わる可能性があります)。- 指摘している障害が実際に発生し得ることを確認します。それを引き起こす具体的な入力または状態を示してください。示せない場合、信頼度は低です。
- 両方の確認を通過した指摘だけを残します。報告する指摘にはすべて、検証済みの
file:line、重大度、信頼度を記載する必要があります。
エージェントチーム(任意)
大規模なコードベースを包括的にレビューする場合は、専門のレビューチームメイトを並行して起動できます。
| チームメイト | 担当分野 | メリット |
|---|---|---|
| セキュリティレビュアー | OWASP、シークレット、認証の欠陥 | 品質レビューを妨げることなく、詳細なセキュリティ分析を行います |
| パフォーマンスレビュアー | N+1 クエリ、アルゴリズムの計算量、リソースリーク | パフォーマンスに特化したレビューを並行して行います |
| 正確性レビュアー | ロジックエラー、エッジケース、型安全性 | 機能の正確性を並行してレビューします |
これは任意です。標準的なレビューであれば、エージェントチームを使わなくてもこのスキルを利用できます。
関連する設定スキル
- セキュリティスキャンが設定されていない場合 →
/configure:security - リンティングが設定されていない場合 →
/configure:linting - テストカバレッジが追跡されていない場合 →
/configure:coverage