| name | check-reviews |
| description | PR上のAIレビュアー(Claude / GitHub Copilot / CodeRabbit等)からのコメントを取得し、修正要否をトリアージするスキル。「PRのコメント確認して」「Copilotの指摘を見て」「AIレビューを整理して」「review見て」「check-reviews」などのフレーズで起動すること。PRのレビューコメントを一覧化し、対応推奨度(MUST/ASK/MAY)を付けて整理する。 |
check-reviews — AIレビューコメント トリアージ
PRに付いたAIレビュアーのコメントを拾い上げ、「本当に直すべきか?」を素早く判断するためのワークフロー。
入力: PR番号 / PR URL / ブランチ名 / 指定なし(現在のブランチから推定)
前提: gh auth status が認証済みであること
Step 1: PR情報を取得する
repo=$(gh repo view --json nameWithOwner -q .nameWithOwner)
pr=$(gh pr view --json number -q .number)
gh api --paginate "repos/$repo/pulls/$pr/comments" \
--jq '[.[] | {id, author: .user.login, body, path, line, original_line, html_url, in_reply_to_id, created_at, diff_hunk}]'
gh api --paginate "repos/$repo/pulls/$pr/reviews" \
--jq '[.[] | {id, author: .user.login, state, body, html_url}]'
gh api --paginate "repos/$repo/issues/$pr/comments" \
--jq '[.[] | {id, author: .user.login, body, html_url, created_at}]'
gh pr diff "$pr"
PR特定不可/API 403・404/コメント0件の場合はユーザーに報告して指示を仰ぐ。
Step 2: AIコメントを識別する
AIレビュアーの判定ルール (優先順位順):
- ユーザーが絞り込みを指定した場合はそれに従う
- ユーザーがコメント本文を直接ペーストした場合はStep 1をスキップし、そのまま使う (diff未参照のため暫定判定とする)
- 以下のアカウント名パターンでマッチする
| AI | アカウント名パターン |
|---|
| GitHub Copilot | copilot[bot], github-copilot[bot] |
| CodeRabbit | coderabbitai[bot] |
| Claude (Anthropic) | claude[bot], anthropic-claude[bot] |
| GitHub Advanced Security | github-advanced-security[bot] |
| Sourcery | sourcery-ai[bot] |
除外: dependabot[bot], renovate[bot], github-actions[bot] 等の非レビュー系botはAIレビュアーとして扱わない。
上記以外の [bot] アカウントは、コメント内容がコードレビューであればAIレビュアーとして扱う。
Step 3: 各コメントをトリアージする
コメントごとに以下の観点で評価する。実際のdiffとコードを参照して判断すること (コメント文面だけで判断しない)。
同一内容を複数botが指摘している場合は統合して1件として扱う。
返信スレッド (in_reply_to_id あり) は親コメントと合わせて評価する。
推奨度の基準
🔴 MUST — 実質的な問題を指摘している
- 実際のバグ、ロジックエラー、条件の抜け
- 認証・入力値検証の不備など、実際に悪用可能なセキュリティ問題
- データ破損・競合状態のリスク
🟡 ASK — 文脈次第で対応が変わる
- パフォーマンス懸念 (ホットパスかどうか要判断)
- エラーハンドリングの追加提案 (現状で問題があるか不明)
- テストカバレッジの不足
- 設計・実装方針への意見 (プロジェクト方針との整合性を確認)
🟢 MAY — 無視してよい可能性が高い
- プロジェクト規約と合わない文体・命名の好み
- このPRで変更していない既存コードへの指摘
- AIが文脈を誤読した誤検知 (コードを見れば明らかにOK)
- すでに別の方法で対処済みの問題
- 過剰なnullチェック/防御的プログラミングの押しつけ
判定に迷う場合: 影響度(重大/軽微) x 確信度(確実/推測) で判断する。影響度:重大 かつ 確信度:確実 ならMUST、それ以外はASKに寄せる。
Step 4: レポートを出力する
## AIレビュー トリアージ — PR #{番号}: {タイトル}
### サマリー
- 総コメント数: N件 (AIレビュアー: M件)
- 🔴 MUST: X件 / 🟡 ASK: Y件 / 🟢 MAY: Z件
---
### 🔴 MUST
#1 **[{ファイル名}:{行番号}] {コメントの要点1行}**
- レビュアー: {アカウント名}
- 内容: {コメントの要約}
- 判断理由: {なぜMUSTか — コードを参照して具体的に}
- URL: {html_url}
...
### 🟡 ASK
#2 **[{ファイル名}:{行番号}] {コメントの要点1行}**
- レビュアー: {アカウント名}
- 内容: {コメントの要約}
- 判断理由: {文脈次第で対応が変わる理由}
- 確認ポイント: {ユーザーが判断するために確認すべきこと}
- URL: {html_url}
...
### 🟢 MAY
#3 **{コメントの要点1行}** ({ファイル名} / {レビュアー名})
- スキップ理由: {なぜ無視してよいか}
...
---
### 推奨アクション
1. {最優先で対応すべきもの + 具体的な修正方針}
2. ...
- 先頭の
#1 はPR単位で1から始まる連番とすること
line が null のコメント (ファイル全体やPR全体への指摘) は行番号を省略し、対象範囲を明記する
- 該当カテゴリのコメントが0件の場合、そのセクションは省略する
補足
- ユーザーが個別のコメントについて質問した場合は、該当コメントと関連コードを詳細に分析する
- コメントの技術的内容が不明な場合は、関連ファイルを読んでから判断する
- 人間のレビュアーのコメントも含めて確認したい場合は、ユーザーに確認してから全コメントを対象にする
- PRスコープ外の指摘で妥当なものは「別PR化を推奨」として記録する