review-pull-request
정보
이 스킬은 GitHub CLI를 사용하여 엔드투엔드 풀 리퀘스트 리뷰를 수행하며, 변경 사항(diff), 커밋 히스토리, CI/CD 체크를 분석합니다. 심각도 등급(차단/제안/사소한 의견/칭찬)으로 피드백을 제공하고 `gh pr review`를 통해 공식 리뷰를 제출합니다. 할당된 PR 검토, 리뷰 요청 전 자체 점검, 피드백 후 재검토, 또는 머지 후 품질 감사에 활용할 수 있습니다.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/review-pull-requestClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
name: review-pull-request description: > GitHub CLIを使用してプルリクエストをエンドツーエンドでレビューする。差分分析、 コミット履歴のレビュー、CI/CDチェックの検証、重大度付きフィードバック (blocking/suggestion/nit/praise)、およびgh pr reviewの提出を網羅する。 レビューに割り当てられたプルリクエスト、他者のレビューを依頼する前の セルフレビュー、フィードバック対応後の再レビュー、またはマージ済みPRの 事後品質評価に使用する。 locale: ja source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Grep Glob Bash WebFetch metadata: author: Philipp Thoss version: "1.0" domain: review complexity: intermediate language: multi tags: review, pull-request, github, code-review, gh-cli, feedback, pr
Review Pull Request
GitHubプルリクエストを変更の理解から構造化されたフィードバックの提出まで、エンドツーエンドでレビューする。すべてのGitHubとのやり取りに gh CLIを使用し、重大度付きのレビューコメントを生成する。
使用タイミング
- プルリクエストがレビュー準備完了で自分に割り当てられている場合
- 著者がフィードバックに対応した後の再レビューを実施する場合
- 他者のレビューを依頼する前に自分のPRを確認する(セルフレビュー)
- マージ済みPRの事後品質評価を監査する場合
- アドホックなスキャンではなく構造化されたレビュープロセスが必要な場合
入力
- 必須: PR識別子(番号、URL、または
owner/repo#number) - 任意: レビューの焦点(セキュリティ、パフォーマンス、正確性、スタイル)
- 任意: コードベースへの習熟度(習熟、ある程度、不慣れ)
- 任意: レビューの時間予算(クイックスキャン、標準、徹底的)
手順
ステップ1: コンテキストの理解
PRの説明を読み、変更が何を達成しようとしているかを理解する。
- PRのメタデータを取得する:
gh pr view <number> --json title,body,author,baseRefName,headRefName,labels,additions,deletions,changedFiles,reviewDecision - PRのタイトルと説明を読む:
- このPRはどの問題を解決しているか?
- 著者はどのようなアプローチを取ったか?
- 著者が特にレビューを求めている領域はあるか?
- PRのサイズを確認し、必要な時間を評価する:
PR Size Guide:
+--------+-----------+---------+-------------------------------------+
| Size | Files | Lines | Review Approach |
+--------+-----------+---------+-------------------------------------+
| Small | 1-5 | <100 | Read every line, quick review |
| Medium | 5-15 | 100-500 | Focus on logic changes, skim config |
| Large | 15-30 | 500- | Review by commit, focus on critical |
| | | 1000 | files, flag if should be split |
| XL | 30+ | 1000+ | Flag for splitting. Review only the |
| | | | most critical files. |
+--------+-----------+---------+-------------------------------------+
- コミット履歴をレビューする:
gh pr view <number> --json commits --jq '.commits[].messageHeadline'- コミットは論理的で整理されているか?
- 履歴はストーリーを語っているか(各コミットが一貫したステップ)?
- CI/CDステータスを確認する:
gh pr checks <number>- すべてのチェックが通過しているか?
- チェックが失敗している場合は、どのチェックかを記録する — これがレビューに影響する
期待結果: PRが何をするか、なぜ存在するか、どれくらい大きいか、CIがグリーンかどうかについて明確に理解できている。このコンテキストがレビューのアプローチを形成する。
失敗時: PRの説明が空または不明確な場合は、これを最初のフィードバックとして記録する。コンテキストのないPRはレビューのアンチパターンである。gh コマンドが失敗する場合は、認証を確認する(gh auth status)とリポジトリへのアクセスを確認する。
ステップ2: 差分の分析
実際のコード変更を体系的に読む。
- 完全な差分を取得する:
gh pr diff <number> - 小/中規模PRの場合は、差分全体を順番に読む
- 大規模PRの場合は、コミットごとにレビューする:
gh pr diff <number> --patch # full patch format - 各変更ファイルについて評価する:
- 正確性: コードはPRが言っていることを実行しているか?
- エッジケース: 境界条件が処理されているか?
- エラーハンドリング: エラーが適切にキャッチ・処理されているか?
- セキュリティ: インジェクション、認証、データ公開のリスクはあるか?
- パフォーマンス: 明らかなO(n²)ループ、欠落インデックス、メモリ問題はあるか?
- 命名: 新しい変数/関数/クラスが明確に命名されているか?
- テスト: 新しい動作がテストでカバーされているか?
- 読みながらメモを取り、各観察を重大度で分類する
期待結果: 差分のすべての意味のある変更について正確性、セキュリティ、パフォーマンス、品質をカバーする観察のセットが得られる。各観察には重大度レベルがある。
失敗時: 差分が大きすぎて効果的にレビューできない場合は、指摘する:「このPRは{N}ファイルと{M}行を変更しています。より効果的なレビューのために小さなPRに分割することをお勧めします。」それでも最もリスクの高いファイルをレビューする。
ステップ3: フィードバックの分類
観察を重大度レベルに整理する。
- 各観察を分類する:
Feedback Severity Levels:
+-----------+------+----------------------------------------------------+
| Level | Icon | Description |
+-----------+------+----------------------------------------------------+
| Blocking | [B] | Must fix before merge. Bugs, security issues, |
| | | data loss risks, broken functionality. |
| Suggest | [S] | Should fix, but won't block merge. Better |
| | | approaches, missing edge cases, style issues that |
| | | affect maintainability. |
| Nit | [N] | Optional improvement. Style preferences, minor |
| | | naming suggestions, formatting. |
| Praise | [P] | Good work worth calling out. Clever solutions, |
| | | thorough testing, clean abstractions. |
+-----------+------+----------------------------------------------------+
- 各Blockingアイテムについて説明する:
- 何が問題か(特定の問題)
- なぜ重要か(影響)
- 修正方法(具体的な提案)
- 各Suggestアイテムについて、代替案とその理由を説明する
- Nitは簡潔に — 1文で十分
- 何かポジティブなものがあれば少なくとも1つのPraiseを含める
期待結果: 明確な重大度レベルを持つフィードバックのソートされたリスト。Blockingアイテムには修正提案がある。比率は一般的に:Blockingが少数、Suggestがいくつか、Nitが最小限、Praiseが少なくとも1つ。
失敗時: すべてがBlockingに見える場合は、PRをパッチ適用よりも作り直す必要があるかもしれない。行ごとのコメントではなくPRレベルで変更を要求することを検討する。何も問題がないように見える場合は、そのように伝える — コードが良好な場合は「LGTM」は有効なフィードバックである。
ステップ4: レビューコメントの執筆
構造化された実行可能なフィードバックでレビューを作成する。
- レビューサマリー(トップレベルのコメント)を執筆する:
- 1文:PRが何をするか(理解の確認)
- 全体的な評価:承認、変更要求、またはコメント
- 主要なアイテム:Blockingの問題(ある場合)と主要なSuggestアイテムをリスト
- Praise:良い仕事を称える
- 特定のコードの場所へのインラインコメントを執筆する:
# Post inline comments via gh API gh api repos/{owner}/{repo}/pulls/{number}/comments \ -f body="[B] This SQL query is vulnerable to injection. Use parameterized queries instead.\n\n\`\`\`suggestion\ndb.query('SELECT * FROM users WHERE id = $1', [userId])\n\`\`\`" \ -f commit_id="<sha>" \ -f path="src/users.js" \ -F line=42 \ -f side="RIGHT" - フィードバックを一貫してフォーマットする:
- 各コメントを重大度タグで始める:
[B]、[S]、[N]、または[P] - 具体的な修正にはGitHubのsuggestionブロックを使用する
- スタイル/パターンの提案にはドキュメントへのリンクを貼る
- 各コメントを重大度タグで始める:
- レビューを提出する:
# Approve gh pr review <number> --approve --body "Review summary here" # Request changes (when blocking issues exist) gh pr review <number> --request-changes --body "Review summary here" # Comment only (when unsure or providing FYI feedback) gh pr review <number> --comment --body "Review summary here"
期待結果: 明確で実行可能なフィードバックを含む提出済みのレビュー。著者は何を修正すべきか(Blocking)、何を検討すべきか(Suggest)、何が良かったか(Praise)を正確に把握している。
失敗時: gh pr review が失敗する場合は権限を確認する。リポジトリへの書き込みアクセスまたは要請されたレビュアーであることが必要。インラインコメントが失敗する場合は、file:line参照を含むレビュー本文にすべてのフィードバックを記載する。
ステップ5: フォローアップ
レビューの解決を追跡する。
- 著者が返答したり更新をプッシュした後:
gh pr view <number> --json reviewDecision,reviews - フィードバックに対応した変更のみを再レビューする:
gh pr diff <number> # check new commits - 承認前にBlockingアイテムが解決されているか確認する
- 問題が対応されたらコメントスレッドを解決する
- すべてのBlockingアイテムが修正されたら承認する:
gh pr review <number> --approve --body "All blocking issues resolved. LGTM."
期待結果: Blockingの問題が修正済みとして検証されている。レビューの会話が解決されている。PRが承認されているか、残りの具体的な項目を含む追加変更が要求されている。
失敗時: 著者がフィードバックに同意しない場合は、PRスレッドで議論する。権威ではなく影響(なぜ重要か)に焦点を当てる。Blockingでない項目について意見の相違が続く場合は、潔く譲る — 著者がコードを所有している。
バリデーション
- PRのコンテキストを理解している(目的、サイズ、CIステータス)
- すべての変更ファイルをレビューした(XL PRの場合は最もリスクの高いファイル)
- フィードバックを重大度で分類した(Blocking/Suggest/Nit/Praise)
- Blockingアイテムに具体的な修正提案がある
- ポジティブな側面に対して少なくとも1つのPraiseが含まれている
- レビュー決定がフィードバックと一致している(Blockingアイテムがない場合のみ承認)
- インラインコメントが重大度タグを含む特定の行を参照している
- CI/CDチェックが検証されている(承認前にグリーン)
- 著者の改訂後にフォローアップが完了している
よくある落とし穴
- 形式的な承認: 実際に差分を読まずに承認すること。すべての承認は品質の主張である
- Nitの洪水: スタイルの好みで著者を溺れさせる。メンタリングの状況のためにNitを残す;時間が重要なレビューではスキップする
- 全体像を見失う: 全体的なデザインを理解せずに行ごとにレビューする。まずPRの説明とコミット履歴を読む
- スタイルでBlockingにする: フォーマットと命名はほぼ決してBlockingではない。バグ、セキュリティ、データの整合性のためにBlockingを使用する
- Praiseなし: 問題のみを指摘するのは士気を下げる。良いコードには認識が値する
- レビュースコープの拡大: PRで変更されていないコードにコメントする。既存の問題が気になる場合は別のIssueを作成する
関連スキル
review-software-architecture— システムレベルのアーキテクチャレビュー(PRレベルのレビューを補完)security-audit-codebase— セキュリティ重要な変更を含むPRの深いセキュリティ分析create-pull-request— プロセスの反対側:レビューしやすいPRの作成commit-changes— クリーンなコミット履歴はPRレビューを大幅に容易にする
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
