user-scope-skills/pr-review-handler/SKILL.md
PR review comments를 체계적으로 처리하는 skill. Use when: (1) PR에 동료의 리뷰가 달렸을 때, (2) 여러 리뷰를 한 번에 처리하고 싶을 때, (3) 수정 후 commit 링크가 포함된 reply를 자동으로 추가하고 싶을 때
npx skillsauth add onejaejae/skills pr-review-handlerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
PR에 동료들이 남긴 review comments를 체계적으로 처리하는 workflow입니다.
Claude에게 PR 리뷰 처리를 요청합니다:
PR 26번 리뷰 처리해줘
또는:
pr-review-handler 실행해줘 (PR 26번)
참고:
/pr-review-handler는 Claude가 내부적으로 실행하는 skill입니다. 사용자가 직접 slash command를 입력하는 것이 아니라, Claude에게 요청하면 됩니다.
이 스킬 로드 시 시스템이 "Base directory for this skill: ..." 메시지를 제공합니다. 이하 $SKILL_DIR은 해당 경로를 의미합니다.
PR의 review threads를 조회합니다.
# PR 번호, OWNER/REPO 모두 자동 감지 (현재 브랜치 + git repo 기반)
$SKILL_DIR/scripts/get-review-threads.sh
# 또는 명시적으로 지정
$SKILL_DIR/scripts/get-review-threads.sh 46 khc-dp/dp-webhook
출력 형식 (파싱된 요약):
PR_URL: https://github.com/owner/repo/pull/46
PR_TITLE: feat: ...
TOTAL: 18 | RESOLVED: 17 | OUTDATED: 0 | ACTIVE: 1
## SKIPPED
PRRT_xxx RESOLVED author file.py:10 comment preview...
## ACTIVE
PRRT_yyy ACTIVE author file.py:20 1 replies comment preview...
포함 정보:
조회된 threads 중 다음 조건에 해당하는 것은 자동으로 스킵됩니다:
| 조건 | 이유 | 표시 |
|------|------|------|
| isResolved: true | 이미 해결됨 | ✅ Resolved |
| isOutdated: true | 코드가 변경됨 (이미 수정 반영됨) | 🔄 Outdated |
자동 필터링 결과:
📋 PR #26: 총 8개 threads
├─ ✅ Resolved: 1개 (자동 스킵)
├─ 🔄 Outdated: 0개 (자동 스킵, 코드 변경됨)
└─ 🔍 검토 필요: 7개
각 comment를 분석하여 다음과 같이 분류합니다:
| 분류 | 설명 | 액션 | |------|------|------| | ACCEPT | 타당한 지적, 수정 필요 | 코드 수정 진행 | | DISCUSS | 논의 필요, 판단 어려움 | 사용자에게 질문 | | SKIP | 이미 처리됨 / 해당 없음 | 건너뛰기 |
분류 기준:
DISCUSS로 분류된 각 comment에 대해 사용자에게 질문합니다:
ACCEPT로 확정된 각 comment에 대해:
Commit 메시지 형식:
[TASK-ID] [수정 내용] #patch
수정 완료된 comment에 reply를 추가합니다:
$SKILL_DIR/scripts/reply-to-thread.sh [THREAD_ID] [BODY]
Reply 형식:
fixed in https://github.com/{owner}/{repo}/pull/{pr}/commits/{sha}
## PR #26 Review Comments 분석
📋 총 8개 threads
├─ ✅ Resolved: 1개 (자동 스킵)
├─ 🔄 Outdated: 0개 (자동 스킵)
└─ 🔍 검토 필요: 7개
### 자동 스킵
| # | Author | File | Comment | 상태 |
|---|--------|------|---------|------|
| 1 | review-fairy | research_repository.py | filters 타입 힌트... | ✅ Resolved |
### 검토 대상
| # | Author | File | Line | Comment | 분류 |
|---|--------|------|------|---------|------|
| 2 | JISU-JEONG | docker-compose.yml | 1 | p2. 해당 db 세팅... | DISCUSS |
| 3 | JISU-JEONG | base_repository.py | 69 | p2. 불필요한 서브쿼리... | ACCEPT |
| 4 | JISU-JEONG | base_repository.py | 74 | p3. 없으면 raise... | ACCEPT |
| ... | ... | ... | ... | ... | ... |
## 수정 완료 요약
| # | File | Commit | Status |
|---|------|--------|--------|
| 1 | base_repository.py:69 | abc1234 | Fixed |
| 2 | base_repository.py:74 | def5678 | Fixed |
| 3 | docker-compose.yml:1 | - | Skipped |
| 시점 | 확인 내용 | 선택지 | |------|----------|--------| | Phase 2 후 | 전체 분류 결과 확인 | 진행 / 수정 / 중단 | | Phase 2-1 | DISCUSS 항목 각각 처리 | ACCEPT / SKIP | | Phase 3 각 수정 전 | 수정 방향 확인 | 승인 / 수정 제안 | | Phase 3 각 수정 후 | Commit 메시지 확인 | 승인 / 수정 | | Phase 4 전 | Reply 추가 확인 | 전체 진행 / 선택적 / 스킵 |
스크립트는 $SKILL_DIR/scripts/ 에 위치합니다. $SKILL_DIR은 이 스킬이 로드될 때 시스템이 주입하는 base directory입니다.
$SKILL_DIR/scripts/get-review-threads.sh [PR_NUMBER] [OWNER/REPO]
gh repo view로 자동 감지$SKILL_DIR/scripts/reply-to-thread.sh <THREAD_ID> <BODY>
PRRT_... 형식 (get-review-threads.sh 출력에서 획득)isResolved: true인 thread는 Phase 1.5에서 자동으로 스킵isOutdated: true인 thread도 자동 스킵 (코드가 이미 변경됨)gh auth login)사용자: PR 26번 리뷰 처리해줘
Claude:
## PR #26 Review Comments 조회 중...
📋 총 8개 threads 발견
├─ ✅ Resolved: 1개 (자동 스킵)
├─ 🔄 Outdated: 0개 (자동 스킵)
└─ 🔍 검토 필요: 7개
### 자동 스킵
| # | Author | File | 상태 |
|---|--------|------|------|
| 1 | review-fairy | research_repository.py | ✅ Resolved |
### 검토 대상 분류 결과
| # | Author | File | Line | Comment | 분류 |
|---|--------|------|------|---------|------|
| 2 | JISU-JEONG | docker-compose.yml | 1 | p2. 해당 db 세팅... | DISCUSS |
| 3 | JISU-JEONG | base_repository.py | 69 | p2. 불필요한 서브쿼리... | ACCEPT |
| 4 | JISU-JEONG | base_repository.py | 74 | p3. 없으면 raise... | ACCEPT |
| ... | ... | ... | ... | ... | ... |
> 위 분류로 진행할까요? (진행/수정/중단)
사용자: 진행
[DISCUSS 항목 처리]
[각 수정 진행 - 방향 확인 → 수정 → 커밋]
[Reply 추가]
## 완료!
testing
CLAUDE.md 기반 환경 안전 체크. 작업 시작 전에 프로젝트의 안전 규칙, 컨벤션, 환경 설정을 자동 검증하여 CLEAR/WARNING/BLOCKED 상태를 보고한다. /check가 "변경 후 검증"이라면, /pre-flight는 "작업 전 환경 검증"이다. Use PROACTIVELY before starting work, especially after switching branches, pulling changes, or resuming a session. Also use when explicitly asked: "/pre-flight", "프리플라이트", "환경 체크", "작업 전 점검", "안전 체크", "environment check", "pre-flight check", "시작해도 돼?", "환경 괜찮아?", "safety check", "DB 확인", "설정 확인", "config check".
tools
PR 리뷰 워크플로우와 체크리스트를 제공하는 스킬. "PR 리뷰해줘", "코드 리뷰 해줘", "이 PR 봐줘", "review this PR" 등 PR 리뷰 요청 시 사용. GitHub/GitLab PR URL 또는 로컬 브랜치 diff를 기반으로 체계적이고 일관된 리뷰를 수행. 코드 품질, 안정성/보안, 성능, 테스트, 문서화 관점에서 건설적인 피드백 제공.
tools
PR diff를 받아 코드 리뷰 자동 요약을 생성하는 스킬. 핵심 변경점을 3줄로 요약하고, 변경 파일별로 what changed / why it matters / risk level을 정리. Use when: "PR 요약", "diff 요약", "PR 변경점 정리", "코드 변경 요약", "summarize PR", "PR summary", "diff summary", "what changed in this PR", "변경점 요약해줘", "PR 핵심 정리", "리뷰 요약"
development
Analyze a user's Plannotator plan archive to extract denial patterns, feedback taxonomy, evolution over time, and actionable prompt improvements — then produce a polished HTML dashboard report. Falls back to Claude Code ExitPlanMode denial reasons when Plannotator data is unavailable.