user-scope-skills/pr-diff-summary/SKILL.md
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 핵심 정리", "리뷰 요약"
npx skillsauth add onejaejae/skills pr-diff-summaryInstall 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의 diff를 분석하여 핵심 변경점을 3줄로 요약하고, 파일별로 구조화된 리뷰 요약을 생성한다.
PR 26번 요약해줘
PR diff 정리해줘 #123
이 PR 변경점 요약해줘
Step 1: PR 정보 수집 (diff + metadata)
Step 2: 3-Line Executive Summary 생성
Step 3: 파일별 상세 분석 (What / Why / Risk)
Step 4: 최종 리포트 출력
모든 단계는 자동으로 진행되며, 사용자 승인 없이 한 번에 결과를 출력한다.
# PR 메타데이터
gh pr view <PR_NUMBER> --json title,body,files,additions,deletions,author,baseRefName,headRefName,labels
# PR diff (핵심)
gh pr diff <PR_NUMBER>
# 커밋 히스토리
gh pr view <PR_NUMBER> --json commits --jq '.commits[].messageHeadline'
# base 브랜치 대비 diff
git diff main...HEAD
# 커밋 로그
git log main..HEAD --oneline
# 변경 파일 목록
git diff main...HEAD --stat
diff 전체를 분석하여 정확히 3줄로 핵심을 요약한다.
## 3-Line Summary
1. [WHAT] 사용자 인증 플로우에 OAuth2 소셜 로그인 기능을 추가
2. [HOW] Google/GitHub provider를 strategy pattern으로 구현하고, 기존 세션 관리와 통합
3. [IMPACT] 신규 가입 전환율 개선 예상, 기존 이메일 로그인 플로우에는 영향 없음
변경된 각 파일(또는 논리적 파일 그룹)에 대해 3가지 관점으로 분석한다.
| 관점 | 설명 | 분석 방법 | |------|------|----------| | What Changed | 이 파일에서 구체적으로 무엇이 변경되었는가 | diff 내용 기반, 함수/클래스/설정 단위 | | Why It Matters | 이 변경이 왜 중요한가, 어떤 맥락인가 | PR 설명 + 커밋 메시지 + 코드 맥락 | | Risk Level | 이 변경의 위험도는 어느 정도인가 | 아래 Risk 판단 기준 참조 |
| Level | 기준 | 예시 | |-------|------|------| | LOW | 문서, 테스트, 설정값 변경, 리팩토링(동작 불변) | README 수정, 테스트 추가, 변수명 변경 | | MEDIUM | 기존 로직 수정, 새 기능 추가, 의존성 변경 | 새 API 엔드포인트, 비즈니스 로직 변경 | | HIGH | 인증/인가, 데이터 마이그레이션, 핵심 인프라, 삭제 | DB 스키마 변경, 보안 로직, 결제 로직 | | CRITICAL | 프로덕션 데이터 직접 접근, 보안 크리덴셜, 롤백 불가 변경 | 마이그레이션 스크립트, 환경변수 변경 |
다음 항목 중 해당하는 것이 있으면 Risk를 한 단계 올린다:
파일이 10개 이상일 때는 논리적으로 그룹핑한다:
# PR #{number}: {title}
> Author: {author} | Files: {file_count} | +{additions}/-{deletions}
---
## 3-Line Summary
1. **[WHAT]** {한 줄 요약: 이 PR이 무엇을 하는가}
2. **[HOW]** {한 줄 요약: 어떻게 구현했는가}
3. **[IMPACT]** {한 줄 요약: 시스템에 미치는 영향}
---
## File-by-File Analysis
### {파일경로 또는 그룹명} (+{additions}/-{deletions})
| Aspect | Detail |
|--------|--------|
| **What Changed** | {구체적 변경 내용} |
| **Why It Matters** | {변경의 중요성과 맥락} |
| **Risk Level** | {LOW/MEDIUM/HIGH/CRITICAL} - {이유 한 줄} |
### {다음 파일...}
...
---
## Risk Heatmap
| Risk | Files |
|------|-------|
| CRITICAL | {파일 목록 또는 "없음"} |
| HIGH | {파일 목록 또는 "없음"} |
| MEDIUM | {파일 목록} |
| LOW | {파일 목록} |
---
## Reviewer Checklist
위 분석 기반으로, 리뷰어가 특히 주의해서 봐야 할 포인트:
- [ ] {HIGH/CRITICAL 파일에서 확인할 사항 1}
- [ ] {HIGH/CRITICAL 파일에서 확인할 사항 2}
- [ ] {테스트 커버리지 관련 사항}
파일이 20개를 넘으면:
--stat 출력을 먼저 분석하여 변경량 기준 상위 10개 파일에 집중diff가 1000줄을 넘으면:
gh pr diff 대신 gh pr view --json files로 파일 목록 먼저 확인gh pr diff <PR_NUMBER> -- <specific_file_path>
# PR #42: feat: 사용자 프로필 이미지 업로드 기능
> Author: kim | Files: 4 | +120/-15
---
## 3-Line Summary
1. **[WHAT]** 사용자 프로필 페이지에 이미지 업로드 기능을 추가
2. **[HOW]** S3 presigned URL 방식으로 클라이언트 직접 업로드 구현, 서버는 URL 발급만 담당
3. **[IMPACT]** 새 기능 추가로 기존 플로우 영향 없음, S3 버킷 설정 필요
---
## File-by-File Analysis
### src/api/profile.py (+45/-5)
| Aspect | Detail |
|--------|--------|
| **What Changed** | `upload_profile_image` 엔드포인트 추가, presigned URL 생성 로직 |
| **Why It Matters** | 핵심 비즈니스 로직, 파일 크기/타입 검증 포함 |
| **Risk Level** | MEDIUM - 새 API 엔드포인트, S3 연동 |
### src/services/s3.py (+55/-0)
| Aspect | Detail |
|--------|--------|
| **What Changed** | S3 presigned URL 생성 서비스 클래스 신규 |
| **Why It Matters** | 외부 서비스(AWS) 연동, 크리덴셜 관리 |
| **Risk Level** | HIGH - AWS 크리덴셜 사용, 에러 핸들링 확인 필요 |
### src/models/user.py (+5/-5)
| Aspect | Detail |
|--------|--------|
| **What Changed** | User 모델에 `profile_image_url` 필드 추가 |
| **Why It Matters** | DB 스키마 변경 |
| **Risk Level** | MEDIUM - 마이그레이션 필요 |
### tests/test_profile.py (+15/-5)
| Aspect | Detail |
|--------|--------|
| **What Changed** | 업로드 API 테스트 3건 추가 |
| **Why It Matters** | 핵심 로직 테스트 커버리지 |
| **Risk Level** | LOW - 테스트 코드 |
---
## Risk Heatmap
| Risk | Files |
|------|-------|
| CRITICAL | 없음 |
| HIGH | src/services/s3.py |
| MEDIUM | src/api/profile.py, src/models/user.py |
| LOW | tests/test_profile.py |
---
## Reviewer Checklist
- [ ] s3.py: AWS 크리덴셜이 환경변수로 관리되는지 확인
- [ ] s3.py: presigned URL 만료 시간 적절한지 확인
- [ ] profile.py: 파일 크기/타입 검증 로직 우회 가능성 확인
- [ ] user.py: DB 마이그레이션 스크립트 포함 여부 확인
# PR #89: refactor: 레거시 인증 모듈을 새 아키텍처로 마이그레이션
> Author: park | Files: 23 | +450/-380
---
## 3-Line Summary
1. **[WHAT]** 레거시 세션 기반 인증을 JWT + refresh token 아키텍처로 전면 교체
2. **[HOW]** 기존 AuthManager를 TokenService/SessionService로 분리하고, middleware 체인 재구성
3. **[IMPACT]** 인증 전체 플로우 변경으로 모든 API 엔드포인트에 영향, 하위 호환 레이어 포함
---
## File-by-File Analysis
### Auth Core (src/auth/) (+200/-180) - 5 files
| Aspect | Detail |
|--------|--------|
| **What Changed** | AuthManager 삭제, TokenService/SessionService 신규, JWT 발급/검증 로직 |
| **Why It Matters** | 인증 시스템의 핵심 변경, 모든 API에 영향 |
| **Risk Level** | CRITICAL - 인증/인가 핵심 로직 전면 교체 |
### Middleware (src/middleware/) (+80/-60) - 3 files
| Aspect | Detail |
|--------|--------|
| **What Changed** | auth middleware 체인 재구성, JWT 검증 미들웨어 추가 |
| **Why It Matters** | 모든 요청의 인증 처리 경로 변경 |
| **Risk Level** | HIGH - 미들웨어 순서 오류 시 전체 API 영향 |
### Tests (tests/auth/) (+120/-90) - 8 files
| Aspect | Detail |
|--------|--------|
| **What Changed** | 기존 세션 테스트 삭제, JWT 기반 테스트 전면 재작성 |
| **Why It Matters** | 새 인증 로직의 정합성 검증 |
| **Risk Level** | LOW - 테스트 코드 |
### Config & Migration (+50/-50) - 7 files
| Aspect | Detail |
|--------|--------|
| **What Changed** | JWT 관련 환경변수, DB 마이그레이션(refresh_token 테이블) |
| **Why It Matters** | 배포 시 환경 설정 필요, 롤백 시 DB 고려 |
| **Risk Level** | HIGH - 환경변수 누락 시 장애, 마이그레이션 롤백 복잡 |
---
## Risk Heatmap
| Risk | Files |
|------|-------|
| CRITICAL | src/auth/ (5 files) |
| HIGH | src/middleware/ (3 files), config & migration (7 files) |
| MEDIUM | 없음 |
| LOW | tests/ (8 files) |
---
## Reviewer Checklist
- [ ] auth/: JWT secret rotation 전략 확인
- [ ] auth/: refresh token 만료/갱신 로직 검증
- [ ] middleware/: 미들웨어 체인 순서 정확한지 확인
- [ ] migration/: 롤백 마이그레이션 포함 여부
- [ ] config/: 모든 환경(dev/staging/prod) 환경변수 매핑 확인
- [ ] 하위 호환: 기존 세션 토큰 보유 사용자 처리 방안 확인
- [ ] 전체: 통합 테스트에서 인증 플로우 end-to-end 검증
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를 기반으로 체계적이고 일관된 리뷰를 수행. 코드 품질, 안정성/보안, 성능, 테스트, 문서화 관점에서 건설적인 피드백 제공.
documentation
PR review comments를 체계적으로 처리하는 skill. Use when: (1) PR에 동료의 리뷰가 달렸을 때, (2) 여러 리뷰를 한 번에 처리하고 싶을 때, (3) 수정 후 commit 링크가 포함된 reply를 자동으로 추가하고 싶을 때
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.