AgentSkillsCN

review-pr

审查 GitHub 拉取请求,并分析尚未解决的评论。

SKILL.md
--- frontmatter
name: review-pr
description: GitHub Pull Request 리뷰 및 미해결 리뷰 코멘트 분석
allowed-tools: Bash(gh:*), mcp__github__*
disable-model-invocation: true

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#')

작업 지침

  1. PR 세부정보 가져오기

    • gh pr view를 사용하여 기본 PR 정보 가져오기
    • 외부 쿼리 파일과 함께 gh api graphql을 사용하여 리뷰 스레드 가져오기
    • GraphQL 쿼리는 각 스레드의 isResolved 필드 포함
    • isResolved: false인 스레드만 처리
    • 해결된 모든 스레드는 무시 (사용자가 의도적으로 닫음)
  2. 코드 변경사항 분석

    • GraphQL 응답을 파싱하여 미해결 스레드 추출 (isResolved: false)
    • 각 미해결 스레드에 대해 Read 도구를 사용하여 참조된 파일 읽기
    • 코멘트에서 언급된 이슈가 여전히 존재하는지 확인
    • 이미 수정된 이슈의 스레드는 건너뛰기
    • 실제로 남아있는 정당한 이슈에만 집중
  3. 리뷰 기준

    프로젝트의 언어 및 프레임워크에 따라 적절한 코딩 가이드라인을 자동으로 적용합니다.

    중점 검토 항목:

    • 코딩 스타일: 일관성, 가독성, 네이밍 컨벤션
    • 아키텍처: 디자인 패턴, 관심사 분리, 모듈화
    • 부작용: 의도하지 않은 결과, 경쟁 조건, 상태 변경
    • 잠재적 버그: 엣지 케이스, 에러 처리, null/undefined 체크
  4. 리뷰 피드백 제공 및 수정 적용

    실제 이슈를 가리키는 각 코멘트에 대해:

    • 코멘트 컨텍스트: 원본 리뷰 코멘트 인용
    • 파일 및 위치: 파일경로:라인번호
    • 코드 분석: 관련 코드 섹션 검토
    • 평가:
      • 우려사항이 타당한가?
      • 어떤 영향이 있는가?
      • 권장 솔루션은 무엇인가?
    • 결정:
      • 우려사항이 타당하고 수정이 명확한 경우: Edit/Write 도구를 사용하여 즉시 수정 적용
      • 논의가 필요하거나 설계 결정이 필요한 경우: 변경하기 전에 사용자에게 질문
    • 대안적 접근법: 해당되는 경우, 더 나은 구현 제안
  5. 요약

    전체 평가 제공:

    • 총 리뷰 스레드 수
    • 해결된 스레드 수 (건너뜀)
    • 처리한 미해결 스레드 수
    • 자동으로 수정한 이슈 수
    • 사용자 논의가 필요한 이슈 (있는 경우)
    • 전체 PR 품질 평가

출력 형식

markdown
# PR 리뷰: [PR 제목]

**PR**: [PR URL]
**상태**: [열림/초안/닫힘]
**변경된 파일 수**: [개수]

## 리뷰 스레드 분석 및 수정

### 1. [파일 경로]:[라인]

**스레드 상태**: 미해결
**@[사용자명]의 코멘트**:

> [인용된 코멘트]

**현재 코드 상태**:

- ✅ **이미 수정됨** - [어떻게 처리되었는지 설명]
- 또는
- ⚠️ **이슈가 여전히 존재** - 수정 진행

**분석** (이슈가 여전히 존재하는 경우):
[리뷰 기준에 따른 상세 분석]

**적용된 조치**:

- ✅ **자동 수정 완료**: [적용된 수정 내용 설명]
- 또는
- ⏸️ **논의 필요**: [사용자 입력이 필요한 이유]

---

## 전체 평가

- **총 리뷰 스레드**: [개수]
- **해결된 스레드 (건너뜀)**: [개수]
- **처리한 미해결 스레드**: [개수]
- **자동 수정된 이슈**: [개수]
- **논의가 필요한 이슈**: [개수]
- **전체 상태**: [모든 이슈 해결됨 / 부분 해결 / 사용자 입력 대기 중]

중요 사항

  • 비공개 저장소: gh CLI 인증으로 작동
  • 해결 필터링: GraphQL isResolved 필드를 사용하여 해결된 스레드 건너뛰기
  • 스마트 필터링: 현재 코드에 이슈가 여전히 존재하는지도 확인
  • 집중 범위: 실제로 존재하는 이슈가 있는 미해결 스레드만 리뷰 및 수정
  • 자동 수정: 명확한 이슈는 질문 없이 자동으로 수정 적용
  • 사용자 상담: 다음의 경우에만 사용자에게 질문:
    • 아키텍처 또는 설계 결정이 필요한 경우
    • 여러 가지 유효한 접근법이 있는 경우
    • 잠재적인 Breaking Change가 있는 경우
    • 요구사항이 모호한 경우

사용 예시

bash
/review-pr https://github.com/owner/repo/pull/123

이 커맨드는 PR #123의 모든 리뷰 스레드를 가져와 미해결 스레드(isResolved: false)만 필터링하고, 현재 코드에 이슈가 여전히 존재하는지 확인한 후, 적절한 코딩 가이드라인을 기반으로 수정을 제공합니다.