pr-review について
pr-review は、GitHub のプルリクエストレビューコメントを扱い、承認された対応を実施してテストで検証するスキルです。PR の URL または番号を指定でき、現在のブランチに紐づくオープンな PR も検出できます。
主な機能
- 01URL、番号、ブランチによる PR 特定
- 02gh によるレビューコメントの取得
- 03コメントの分類と解決状況の追跡
- 04承認済み変更の実施とチェック
- 05コメント抽出と優先度付きレポート作成
活用シーン
- 01GitHub PR の対応可能なフィードバックへの対処
- 02ブランチの PR コメントの確認と検証
- 03レビューコメントから優先度付きタスクリストを作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jellydn/ my-ai-tools --skill pr-reviewインストール後、Claude Code で/pr-reviewを入力して読み込まれたか確認します。
同梱ファイルscripts/extract-pr-comments.js
詳細
PR レビューコメントの修正
PR レビューコメントで要求された変更を実装して修正します。
使用方法
/pr-review <PR_URL> # Review PR by URL (expects full GitHub URL)
/pr-review <PR_NUMBER> # Review PR by number (expects number, e.g., 123)
/pr-review # Auto-detect PR from current branch
📋 引数の処理
このコマンドは、$ARGUMENTS から PR 識別子を受け取ります。
- PR URL:GitHub PR の完全な URL(例:
https://github.com/owner/repo/pull/123) - PR 番号:PR 番号のみ(例:
123) - 引数なし:現在の Git ブランチに関連付けられた PR を自動検出します
$ARGUMENTS が指定されている場合は、それを PR 識別子として使用します。それ以外の場合は、以下を使って現在のブランチの PR を自動検出します。
gh pr view --json number,url -q '.number'
これは現在のブランチにあるオープンな PR から PR 番号を抽出し、後続のコマンドで使用します。
現在のブランチにオープンな PR が見つからない場合は、次のエラーを表示します。
Error: No open pull request found for the current branch.
To review a specific PR:
/pr-review <PR_URL>
/pr-review <PR_NUMBER>
Or create a PR first:
gh pr create
手順
$ARGUMENTSを解析し、PR 識別子(URL、番号、自動検出)を特定しますghを使用して、PR の詳細、レビューのスレッド、イシューコメント、権威あるスレッド解決状態を取得します- 各コメントを、対応が必要、情報提供、意見の相違/曖昧、または解決済みに分類します。意見の相違がある要求や曖昧な要求を変更する前に確認します
- 対応が必要なコメントごとに、コメント ID、変更予定の内容、検証コマンドを記録します
- 承認された修正を実装します
- 対象を絞ったテストを実行し、その後、関連するより広範なチェックを実行します
- コメントと変更の一覧を再確認し、対応が必要なスレッドがすべて解決済み、または明示的に保留されていることを確認します
- 変更をコミットします
利用可能なスクリプト
PR コメントの抽出
extract-pr-comments.js スクリプトは、GitHub PR のレビューコメントとイシューコメントを処理し、対応が必要な TODO リストを作成します。
# Usage
node $SKILL_PATH/scripts/extract-pr-comments.js <review-comments-file> <issue-comments-file> <threads-file> [output-file]
# Example
gh api graphql \
-f owner=OWNER -f name=REPO -F number=4972 \
-f query='query($owner:String!, $name:String!, $number:Int!) { repository(owner:$owner, name:$name) { pullRequest(number:$number) { reviewThreads(first:100) { nodes { isResolved comments(first:100) { nodes { databaseId } } } } } } }' \
> pr-4972-threads.json
node $SKILL_PATH/scripts/extract-pr-comments.js \
pr-4972-review-comments-raw.json \
pr-4972-issue-comments-raw.json \
pr-4972-threads.json \
pr-4972-comments.ndjson
機能:
- GitHub のレビュー スレッドファイルが必要です。
isResolved: trueのスレッドに属する場合にのみ、レビューコメントをスキップします - 返信があっても解決済みとは見なしません。返信のないスレッドは引き続き対応が必要です
- コメントを重大度(Critical、High、Medium、Low)で分類します
- コメントをカテゴリ(セキュリティ、パフォーマンス、保守性など)に分類します
- 3 つの出力ファイルを作成します:
.ndjson- 構造化されたコメントデータ-todo.md- 優先順位付けされた TODO リスト-summary.md- 絵文字付きの分析概要
重大度の分類:
- 🔴 Critical:セキュリティ、脆弱性、エクスプロイト
- 🟠 High:バグ、エラー、後方互換性を損なう変更、クラッシュ、失敗
- 🟡 Medium:パフォーマンス、改善、リファクタリング、最適化
- 🟢 Low:その他すべて
カテゴリ:
- 🔒 セキュリティ
- ⚡ パフォーマンス
- 🔧 保守性
- ♿ アクセシビリティ
- 🧪 テスト
- 📚 ドキュメント
- 🏷️ 型付け
- 🎨 スタイル
- ✨ コード品質
例
# Fix review comments for a PR using URL
/pr-review https://github.com/owner/repo/pull/123
# Fix review comments using PR number
/pr-review 123
# Auto-detect PR from current branch
/pr-review
# After extracting comments with the script, work through the TODO list
# The TODO list is ordered by priority: Critical → High → Medium → Low
コメント
Markdown 対応