review-pull-request
정보
이 Claude Skill은 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에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
評拉取請求
端對端評 GitHub 拉取請求——自理解變更至提交結構化回饋。所有 GitHub 互動皆用 gh CLI,並產附嚴重度等級之評審註解。
適用時機
- PR 已備評且分配予爾
- 作者處理回饋後之第二次評
- 請他人評之前自評之 PR(自評)
- 為合併後品質評稽核已合併之 PR
- 欲結構化評過程而非臨時掃描時
輸入
- 必要:PR 識別符(編號、URL 或
owner/repo#number) - 選擇性:評焦(安全、效能、正確性、風格)
- 選擇性:對代碼庫之熟悉度(熟、略熟、不熟)
- 選擇性:評審時預算(速掃、標準、徹底)
步驟
步驟一:解上下文
讀 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)並有倉庫權。
步驟二:析 diff
系統化讀實際代碼變更。
- 取完整 diff:
gh pr diff <number> - 小/中 PR,順讀整 diff
- 大 PR,按提交評:
gh pr diff <number> --patch # full patch format - 對每變更文件,評:
- 正確性:代碼是否如 PR 所述?
- 邊例:邊界條件是否處理?
- 錯誤處理:錯被捉並適當處否?
- 安全:任何注入、認證或資料暴露之風險?
- 效能:明顯之 O(n^2) 迴圈、缺索引或記憶體問題?
- 命名:新變數/函數/類命名清否?
- 測試:新行為由測試覆蓋否?
- 讀時記筆記,按嚴重度分類每觀察
預期: 對 diff 中每有意義之變更皆有覆蓋正確性、安全、效能、品質之觀察集。每觀察有嚴重度等級。
失敗時: 若 diff 過大難以有效評,標之:「此 PR 改 {N} 文件 {M} 行。建議拆為小 PR 以資更有效之評。」仍評最高風險之文件。
步驟三:分類回饋
將觀察組入嚴重度等級。
- 分類每觀察:
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 宜短——一句即足
- 若有正面之處宜含至少一 Praise
預期: 含明嚴重度等級之回饋項排序清單。Blocking 項有修復建議。比例宜:少 Blocking、些 Suggest、極少 Nit、至少一 Praise。
失敗時: 若一切似 blocking,PR 恐須重作而非補。考慮於 PR 層級請求變更而非逐行註解。若無錯,陳之——「LGTM」於代碼好時為有效回饋。
步驟四:撰評論註解
以結構化、可行之回饋作評。
- 撰評論摘要(頂層註解):
- 一句:PR 何作(確認理解)
- 整體評:核准、請求變更或註解
- 關鍵項:列 Blocking 議題(若有)與頂 Suggest 項
- 讚:道好處
- 為具體代碼位置撰行內註解:
# 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 建議塊作具體修
- 風格/模式建議鏈接文件
- 每註解以嚴重度標籤起:
- 提交評:
# 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 引用。
步驟五:跟進
追評之解決。
- 作者回應或推更新後:
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 項有具體修復建議
- 含至少一正面 Praise
- 評決定合回饋(無 Blocking 項時方核准)
- 行內註解引特定行附嚴重度標籤
- CI/CD 檢查已驗(核准前綠)
- 作者修訂後跟進已完成
常見陷阱
- 橡皮圖章:未實讀 diff 即核准。每核准乃對品質之斷
- Nit 雪崩:以風格偏好淹作者。將 nit 留予指導場合;於時急之評中略之
- 見木不見林:未解整體設計即逐行評。先讀 PR 描述與提交歷史
- 以風格 blocking:格式與命名幾無 blocking。Blocking 留予錯、安全與資料完整
- 無讚:僅指問題令人沮喪。良代碼當得認可
- 評審範圍蠕:對 PR 中未變之代碼註解。若先存問題擾爾,另開議題
相關技能
review-software-architecture— 系統層架構評(補 PR 層評)security-audit-codebase— 對含敏感安全變更之 PR 之深度安全分析create-pull-request— 過程之另面:建易評之 PRcommit-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개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
