| name | pr-review-triage |
| description | Handle Pull Request review comments (especially from GitHub Copilot). Fetch, summarize, and triage review comments, then apply fixes with user approval. Use when the user wants to address PR review comments, handle Copilot feedback, or process review suggestions. Triggers on phrases like "PRのレビューコメントに対応", "handle PR reviews", "address Copilot comments", "fix review feedback", or when working in a git branch with an open PR. |
PR Review Comment Triage and Resolution
このスキルは、Pull Requestに付けられたレビューコメント(特にGitHub Copilotによるもの)を取得・要約・トリアージし、ユーザーの承認を得てから修正を適用するワークフローを提供します。
前提条件
- カレントディレクトリがgitリポジトリである
- 現在のブランチからPull Requestが作成されている
gh CLIがインストールされ、認証済みである
ワークフロー
1. PRとレビューコメントの取得
まず、現在のブランチに紐づくPRを特定し、レビューコメントを取得します。
git branch --show-current
gh pr view --json number,title,body
gh api repos/{owner}/{repo}/pulls/{number}/comments
重要: state が null でないコメント(resolved済み)は除外してください。
レビューコメントが0件の場合は、「レビューコメントはありません」と表示して終了します。
2. PRスコープの理解
レビューコメントをトリアージする前に、このPRが何を目的としているかを理解します。以下の情報を収集してください:
- PRのタイトルと説明文
- 変更されたファイル一覧(
gh pr view --json files)
- コミット履歴とメッセージ(
gh pr view --json commits)
これらの情報から、PRの主要な目的とスコープを把握します。例えば:
- 新機能の追加
- バグ修正
- リファクタリング
- パフォーマンス改善
3. レビューコメントのトリアージ
各レビューコメントを以下の基準で分析・分類します:
優先度の判定基準
Critical(最優先):
- セキュリティの脆弱性
- データ損失やシステムクラッシュを引き起こす可能性のあるバグ
- 機能が全く動作しない致命的な問題
- 間違った設定やエンドポイントの使用
High(高優先度):
- PRのスコープ内の主要な機能に影響するバグ
- パフォーマンスの大幅な劣化
- API契約の違反
- リソースリークやメモリリーク
Medium(中優先度):
- コード品質の改善(デッドコード削除、可読性向上など)
- エラーハンドリングやログの改善
- エッジケースの処理
- PRのスコープに関連するが、周辺的な改善
Low(低優先度):
- タイポやコメントの修正
- コーディングスタイルの統一
- PRのスコープから外れるが、ついでに直せるもの
スコープ外の判定: レビューコメントがPRの主目的から大きく逸脱している場合、優先度を下げてください。例えば、新機能追加のPRで、全く関係ない既存コードのリファクタリングを提案されている場合など。
対応難易度の判定
各コメントについて、Claude自身で修正可能かどうかを判断します:
- 自動対応可能: タイポ修正、シンプルなロジック変更、変数名の修正など
- 要確認: 複雑なロジック変更、アーキテクチャの変更、複数ファイルにまたがる変更
- 判断不可: ビジネスロジックの決定が必要、外部システムの仕様理解が必要など
4. コメント一覧の提示
トリアージしたコメントを、以下のフォーマットでユーザーに提示します。
重要: 以下のフィールドはすべて必須です。どのコメントにも必ず含めてください:
- 番号(選択用)
- 優先度とカテゴリ
- ファイル名と行番号
- レビュワー
- コメント内容
- 対応難易度(自動対応可能/要確認/判断不可のいずれか)
- PRスコープとの関連
特に対応難易度は、ユーザーがどのコメントに対応すべきか判断する上で非常に重要です。必ず記載してください。
## レビューコメント一覧(全X件)
### [1] Critical - セキュリティ: 間違った設定値の使用
- **ファイル**: src/config/client.go:145
- **レビュワー**: Copilot
- **内容**: `config.AuthEndpoint`は認証用だが、ここではAPI用のエンドポイントを使用すべき
- **対応難易度**: 要確認(正しい設定値の確認が必要)
- **PRスコープとの関連**: 直接関連(新機能が正しく動作しない)
### [2] High - バグ: 不正な状態のデータも処理対象に含まれている
- **ファイル**: internal/processor/handler.go:89
- **レビュワー**: Copilot
- **内容**: Pending/Failed状態のレコードも含めて処理しているため、誤った結果になる可能性
- **対応難易度**: 自動対応可能
- **PRスコープとの関連**: 直接関連(データ処理の正確性)
### [3] Medium - コード品質: 未使用フィールドの削除
- **ファイル**: internal/service/worker.go:42
- **レビュワー**: Copilot
- **内容**: `Client`と`Logger`フィールドが定義されているが使用されていない
- **対応難易度**: 自動対応可能
- **PRスコープとの関連**: 関連(新規追加ファイルのクリーンアップ)
### [4] Low - タイポ: ログメッセージの修正
- **ファイル**: cmd/main.go:203
- **レビュワー**: Copilot
- **内容**: "processer" は "processor" の誤り
- **対応難易度**: 自動対応可能
- **PRスコープとの関連**: 軽微(タイポ修正)
...(続く)
矛盾するコメントの扱い
複数のレビュワーから矛盾する提案がある場合は、以下のように表示します:
### [X] High - 矛盾あり: 処理方法について意見が分かれています
- **関連ファイル**: pkg/handler/request.go
- **矛盾内容**:
- レビュワーA: 同期処理に変更すべき
- レビュワーB: 非同期処理を維持すべき
- **対応難易度**: 判断不可(ユーザーの判断が必要)
5. ユーザーによる選択
コメント一覧を提示した後、ユーザーに対応したいコメントを選択してもらいます:
対応したいコメントの番号をカンマ区切りで指定してください(例: 1,2,5)
または、以下のコマンドで一括選択できます:
- "all" - すべて対応
- "critical" - Criticalのみ
- "high" - Critical + High
- "auto" - 自動対応可能なもののみ
ユーザーの選択を待ってから、次のステップに進みます。
6. 修正の適用
選択されたコメントに対して、一つずつ修正を適用します。
各修正について:
- 修正内容をユーザーに説明
- 実際のコード変更を実行
- 変更内容を確認してもらう
- コミットするかユーザーに確認(自動コミットは禁止)
## コメント[1]の修正を適用しました
### 変更内容
- ファイル: src/config/client.go
- 修正: 認証エンドポイントをAPI用エンドポイントに変更
### 差分
[git diffの出力]
コミットしますか? (y/n)
ユーザーが y と答えた場合のみ、以下のようにコミットを作成します:
git add <modified-files>
git commit -m "fix: [コメント内容の要約]
Addresses review comment from [レビュワー名]
- [具体的な修正内容]
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>"
重要: レビューコメントへの返信は不要です。コミットのみ作成してください。
7. 完了報告
すべての選択されたコメントへの対応が完了したら、サマリーを表示します:
## 対応完了
対応したコメント: X件
- コミット作成: Y件
- スキップ: Z件
次のステップ:
1. 変更内容を確認してください
2. 必要に応じてテストを実行してください
3. `git push` でリモートに反映してください
エラーハンドリング
PRが見つからない場合
エラー: 現在のブランチに紐づくPull Requestが見つかりませんでした。
以下を確認してください:
- 正しいブランチにいるか
- PRが作成済みか
- gh CLIが正しく認証されているか
gh CLIが利用できない場合
エラー: gh CLIが見つかりません。
インストール方法: https://cli.github.com/
APIエラー
GitHub APIのレート制限やネットワークエラーが発生した場合は、エラーメッセージを表示し、ユーザーに再試行を促します。
注意事項
- 自動コミットは禁止: 必ずユーザーの承認を得てからコミットしてください
- resolved除外: 解決済みのコメントは処理対象外です
- スコープ重視: PRの主目的から外れるコメントは優先度を下げてください
- 安全第一: 不確実な修正は「要確認」として、ユーザーの判断を仰いでください
Tips
- レビューコメントが多い場合は、まず
critical や high のみに絞って対応することを提案してください
- タイポなどの簡単な修正は、複数まとめて一つのコミットにすることも検討してください(ユーザーに確認)
- 修正後にテストの実行を提案することで、品質を担保できます