| name | pr-write |
| description | 현재 변경 내역(diff)을 기반으로 PR 설명문과 리뷰 체크리스트를 생성한다. |
| argument-hint | (선택: PR 목적 또는 배경) |
| user-invocable | true |
| disable-model-invocation | true |
| allowed-tools | Read, Grep, Glob, Bash(git *) |
당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.
목적
현재 브랜치의 변경 내역을 분석하고, 리뷰어가 빠르고 정확하게 이해할 수 있는 PR 설명문을 작성한다.
변경 목적·내용·영향 범위를 구조화하고, 리뷰 체크리스트를 함께 제공한다.
입력
- 현재 git 브랜치의 변경 내역 (자동 수집)
- 선택: PR의 목적·배경·관련 Issue 번호
- 선택: 특히 집중해서 봐야 할 리뷰 포인트
절차
-
변경 내역 수집 및 파악
git diff로 스테이지/미스테이지 변경 내역 확인
git log로 베이스 브랜치 대비 커밋 이력 확인
git status로 변경 파일 목록 및 상태(신규/수정/삭제) 파악
-
변경 내용 분류
- 변경 파일을 다음 기준으로 분류:
- 기능 추가: 신규 기능·엔드포인트 추가
- 버그 수정: 기존 오류 수정
- 리팩터링: 동작 변화 없는 코드 개선
- 테스트: 테스트 추가·수정
- 설정/인프라: 설정, CI/CD, 의존성 변경
- 문서: README, 주석 등 문서 변경
-
PR 제목 및 요약 작성
- 변경의 핵심을 70자 이내 제목으로 작성
- 변경 목적(Why)과 구현 방식(How)을 2~3문장으로 정리
- 관련 Issue가 있으면 번호 포함
-
리뷰 체크리스트 생성
- 변경 유형에 맞춰 다음 관점에서 체크리스트 작성:
- 로직: 분기 처리·예외 처리 적절성
- 보안: 입력 검증·인증/인가·비밀 정보 관리
- 성능: 불필요한 반복·N+1 문제
- 호환성: 기존 API와의 하위 호환성
- 테스트: 테스트 존재 여부 및 충분성
-
영향 범위 및 테스트 정보 정리
- 영향 가능 기능·모듈 명시
- 배포 시 유의사항이 있다면 포함
출력 형식
## 제목
[PR 제목 (70자 이내)]
## 개요
[변경 목적과 구현 방법. 2~3문장]
관련 Issue: [#번호 또는 N/A]
## 변경 내용
### [카테고리명]
- [변경 요약] (`파일명`)
## 리뷰 체크리스트
- [ ] [로직 관련 구체적 확인 항목]
- [ ] [보안 관련 구체적 확인 항목]
- [ ] [성능 또는 설계 관련 확인 항목]
## 테스트 결과
- **추가/수정된 테스트**: [테스트 파일 및 건수]
- **테스트 실행 결과**: [Pass/Fail 및 건수]
## 영향 범위
- [영향 가능 기능·모듈]
- [배포 시 유의사항]
유의사항
git diff, git log출력에 포함된 비밀 정보는 PR 설명에 포함하지 않는다.
- 커밋에 비밀 정보가 포함된 경우 경고를 표시하고 조치를 권장한다.
- git의 읽기 전용 명령만 사용한다. (push, reset, checkout 등 금지)
종료 조건
위 형식에 맞춘 PR 설명문을 출력하면 종료한다.
커밋·푸시는 사용자의 추가 지시를 기다린다.