コードレビュー
PRやコード変更を体系的にレビューするための汎用スキルです。 言語非依存の共通レビュー基準と、言語/フレームワーク固有のベストプラクティスを組み合わせて使用します。
ディレクトリ構成
ランタイムファイル
CI実行時に自動生成されるファイル。リポジトリにはコミットしない。
外部スキル連携
React / Next.js のベストプラクティスは、Vercel提供の vercel-react-best-practices スキルを使用する。
- リポジトリ: https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices
- インストール:
npx -y skills add vercel-labs/agent-skills --skill vercel-react-best-practices --agent claude-code --yes - カバー範囲: 非同期ウォーターフォール排除、バンドルサイズ最適化、サーバー側パフォーマンス、クライアント側データ取得、再レンダリング最適化、レンダリングパフォーマンス、高度なパターン、JavaScriptパフォーマンス(8カテゴリ、40以上のルール)
コスト最適化(CI環境)
GitHub Actions等のCI環境で実行する場合、トリアージフェーズを軽量モデル(Haiku)に委任することでコストを大幅に削減できる。 詳細は references/ci-optimized-workflow.md [blocked] を参照。
トリアージ結果の活用
CI環境で事前トリアージが実行されている場合、作業ディレクトリに .pr-triage.json が存在する。
このファイルが存在する場合、以下の最適化を適用する:
- ステップ1をスキップ — トリアージ結果の
summaryを使用する - リファレンスの選択的読み込み —
required_referencesに含まれるものだけを読む - 表層チェックの省略 —
surface_issuesに含まれるMinor/Suggestion問題は既にチェック済みとして、Critical/Major分析に集中する - 差分の効率的な確認 —
filesのカテゴリ分類を活用し、重要度の高いファイルから優先的にレビューする
.pr-triage.jsonが存在しない場合は、従来通りステップ1から全ステップを実行する(後方互換性あり)。
インクリメンタルレビュー(PR更新時の差分最適化)
PR更新(synchronizeイベント)時に、前回のレビュー状態を活用してトークン消費を削減する。
詳細は references/incremental-review.md [blocked] を参照。
.pr-review-state.jsonが存在しない場合(初回レビュー)は、インクリメンタル最適化は適用されず、フルトリアージを実行する。不正な形式の場合も警告を出力してフルトリアージを実行する。
レビューワークフロー
以下のチェックリストをコピーして進行状況を追跡します:
ステップ1: 変更概要の把握
.pr-triage.jsonが存在する場合: このファイルを読み込み、summary、files、change_categories、diff_summaryを使用する。以下の手動確認はスキップしてステップ2へ進む。
変更内容を理解する。
- 変更ファイル一覧を確認 - 変更の範囲とスコープを把握
- コード差分を確認 - 追加・変更・削除された内容を把握
- 変更の意図を理解 - PR説明やコミットメッセージから目的を確認
確認すべきポイント:
- 変更は単一の目的にフォーカスしているか
- スコープが適切か(1つのPRで多すぎる変更をしていないか)
- 関連する変更が漏れなく含まれているか
ステップ2: 共通品質チェック
.pr-triage.jsonが存在する場合:surface_issuesに含まれるMinor/Suggestionの問題は既にチェック済み。ここではCritical/Majorレベル(セキュリティ、ロジック・正確性、パフォーマンスの重大問題)の検出に集中する。表層的な問題(命名規則、デストラクチャリング等)は再チェック不要。
言語に依存しない汎用的なチェックを実施する。
2-1. セキュリティ
認可(Authorization)の詳細レビュー:認可に関わる変更がある場合は、references/authorization-review-general.md [blocked] を参照して詳細なチェックを行う。PostgreSQL RLSを使用している場合は、追加で references/authorization-review-postgres-rls.md [blocked] も参照する。
2-2. ロジック・正確性
2-3. 設計・保守性
2-4. パフォーマンス
2-5. テスト
ステップ3: 言語/フレームワーク固有チェック
.pr-triage.jsonが存在する場合:required_referencesに記載されたリファレンスのみを読み込む。リストにないリファレンスは読み込まない(トークン節約)。
変更ファイルの言語/フレームワークに応じて、対応するリファレンスファイルを参照する。
参照可能なリファレンス:
参照ルール:
- TypeScriptの変更 → 内部リファレンスを読み込む
- React / Next.js の変更 →
vercel-react-best-practicesスキルを併用する(インストール済みの場合) - 認可に関わる変更(認証/権限チェック、データアクセス制御等) → 認可リファレンス(一般編)を参照
- PostgreSQL RLSを使用している場合 → 認可リファレンス(RLS編)も追加で参照
- GitHub Actions等のCI環境でPRレビューを実行する場合 → GitHub PRレビューアクションを参照(コメント投稿・評価方法)
- SKILL.mdファイルが含まれる変更 → スキルレビューリファレンスを参照し、スキル品質チェックを追加実施する
- 複数の言語/FWにまたがる変更の場合は、すべての該当リファレンスを参照する
- リファレンスが存在しない言語の場合は、ステップ2の共通チェックのみで判断する
ステップ4: approve/reject判定
すべてのチェック結果に基づき、以下の基準でapprove/rejectを判定する。
問題の重要度と減点
判定基準
満点は10点とし、以下の基準で判定する。
判定フローチャート
ステップ5: レビュー結果の出力
.pr-triage.jsonが存在する場合: トリアージフェーズのsurface_issuesをレビュー結果の「検出された問題」テーブルにマージする(重複を除外)。スコアリングにはトリアージの指摘も含める。
以下のフォーマットでレビュー結果を出力する。
GitHub上でのレビュー投稿:GitHub Actions等のCI環境でPRレビューを実行している場合のみ、references/github-pr-review-actions.md [blocked] を参照して、
ghコマンドやインラインコメントを使用してレビュー結果をGitHub上に投稿する。ローカル環境での実行時は、結果を標準出力に表示するのみとする。修正済み問題のフォローアップ:
.pr-triage.jsonにresolved_issuesが含まれる場合(インクリメンタルレビュー時)、元のインラインコメントにリプライして修正を報告する。レビュー完了後、投稿したコメントIDを.pr-review-state.jsonに記録する。
重要な注意事項
- レビューはコードの品質向上が目的であり、批判ではない。建設的なフィードバックを心がける
- 問題の指摘には必ず具体的な改善案を添える
- 変更の意図を尊重し、スタイルの好みではなく客観的な基準で判断する
- 自動検出が困難なドメイン知識やビジネスロジックの判断は、人間のレビュアーに委ねる
- Suggestionは強制ではなく、採用するかどうかは著者の判断に任せる


