GitHub Pull Request 리뷰 도우미
제공된 URL의 Pull Request를 리뷰하고 미해결 리뷰 코멘트를 분석하여 종합적인 코드 리뷰 피드백을 제공합니다.
PR 정보
PR URL: $1
GitHub CLI를 사용하여 PR 세부정보 가져오기:
- •PR 메타데이터: !gh pr view "$1" --json number,title,author,state,isDraft,files
- •리뷰 스레드 (해결 상태 포함): !gh api graphql -F query=@.claude/skills/review-pr/queries/pr-review-threads.graphql -f owner="$(echo "$1" | sed -E 's#https://github.com/([^/]+)/.*#\\1#')" -f repo="$(echo "$1" | sed -E 's#https://github.com/[^/]+/([^/]+)/.*#\\1#')" -F number=$(echo "$1" | sed -E 's#.*/pull/([0-9]+).#\1#')
작업 지침
- •
PR 세부정보 가져오기
- •
gh pr view를 사용하여 기본 PR 정보 가져오기 - •외부 쿼리 파일과 함께
gh api graphql을 사용하여 리뷰 스레드 가져오기 - •GraphQL 쿼리는 각 스레드의
isResolved필드 포함 - •
isResolved: false인 스레드만 처리 - •해결된 모든 스레드는 무시 (사용자가 의도적으로 닫음)
- •
- •
코드 변경사항 분석
- •GraphQL 응답을 파싱하여 미해결 스레드 추출 (
isResolved: false) - •각 미해결 스레드에 대해 Read 도구를 사용하여 참조된 파일 읽기
- •코멘트에서 언급된 이슈가 여전히 존재하는지 확인
- •이미 수정된 이슈의 스레드는 건너뛰기
- •실제로 남아있는 정당한 이슈에만 집중
- •GraphQL 응답을 파싱하여 미해결 스레드 추출 (
- •
리뷰 기준
프로젝트의 언어 및 프레임워크에 따라 적절한 코딩 가이드라인을 자동으로 적용합니다.
중점 검토 항목:
- •코딩 스타일: 일관성, 가독성, 네이밍 컨벤션
- •아키텍처: 디자인 패턴, 관심사 분리, 모듈화
- •부작용: 의도하지 않은 결과, 경쟁 조건, 상태 변경
- •잠재적 버그: 엣지 케이스, 에러 처리, null/undefined 체크
- •
리뷰 피드백 제공 및 수정 적용
실제 이슈를 가리키는 각 코멘트에 대해:
- •코멘트 컨텍스트: 원본 리뷰 코멘트 인용
- •파일 및 위치:
파일경로:라인번호 - •코드 분석: 관련 코드 섹션 검토
- •평가:
- •우려사항이 타당한가?
- •어떤 영향이 있는가?
- •권장 솔루션은 무엇인가?
- •결정:
- •우려사항이 타당하고 수정이 명확한 경우: Edit/Write 도구를 사용하여 즉시 수정 적용
- •논의가 필요하거나 설계 결정이 필요한 경우: 변경하기 전에 사용자에게 질문
- •대안적 접근법: 해당되는 경우, 더 나은 구현 제안
- •
요약
전체 평가 제공:
- •총 리뷰 스레드 수
- •해결된 스레드 수 (건너뜀)
- •처리한 미해결 스레드 수
- •자동으로 수정한 이슈 수
- •사용자 논의가 필요한 이슈 (있는 경우)
- •전체 PR 품질 평가
출력 형식
markdown
# PR 리뷰: [PR 제목] **PR**: [PR URL] **상태**: [열림/초안/닫힘] **변경된 파일 수**: [개수] ## 리뷰 스레드 분석 및 수정 ### 1. [파일 경로]:[라인] **스레드 상태**: 미해결 **@[사용자명]의 코멘트**: > [인용된 코멘트] **현재 코드 상태**: - ✅ **이미 수정됨** - [어떻게 처리되었는지 설명] - 또는 - ⚠️ **이슈가 여전히 존재** - 수정 진행 **분석** (이슈가 여전히 존재하는 경우): [리뷰 기준에 따른 상세 분석] **적용된 조치**: - ✅ **자동 수정 완료**: [적용된 수정 내용 설명] - 또는 - ⏸️ **논의 필요**: [사용자 입력이 필요한 이유] --- ## 전체 평가 - **총 리뷰 스레드**: [개수] - **해결된 스레드 (건너뜀)**: [개수] - **처리한 미해결 스레드**: [개수] - **자동 수정된 이슈**: [개수] - **논의가 필요한 이슈**: [개수] - **전체 상태**: [모든 이슈 해결됨 / 부분 해결 / 사용자 입력 대기 중]
중요 사항
- •비공개 저장소:
ghCLI 인증으로 작동 - •해결 필터링: GraphQL
isResolved필드를 사용하여 해결된 스레드 건너뛰기 - •스마트 필터링: 현재 코드에 이슈가 여전히 존재하는지도 확인
- •집중 범위: 실제로 존재하는 이슈가 있는 미해결 스레드만 리뷰 및 수정
- •자동 수정: 명확한 이슈는 질문 없이 자동으로 수정 적용
- •사용자 상담: 다음의 경우에만 사용자에게 질문:
- •아키텍처 또는 설계 결정이 필요한 경우
- •여러 가지 유효한 접근법이 있는 경우
- •잠재적인 Breaking Change가 있는 경우
- •요구사항이 모호한 경우
사용 예시
bash
/review-pr https://github.com/owner/repo/pull/123
이 커맨드는 PR #123의 모든 리뷰 스레드를 가져와 미해결 스레드(isResolved: false)만 필터링하고, 현재 코드에 이슈가 여전히 존재하는지 확인한 후, 적절한 코딩 가이드라인을 기반으로 수정을 제공합니다.