create-prlisted
Install: claude install-skill gagip/gagip-dev
## 작업 순서
### 1. 변경사항 수집
base 브랜치 감지:
```bash
git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||'
```
감지 실패 시 `main`을 기본값으로 사용.
변경사항 확인 (감지한 base 브랜치로 대체):
```bash
git log <base>..<HEAD> --oneline
git diff <base>...<HEAD> --stat
```
필요시 주요 파일 diff 상세 확인.
### 2. remote push 확인
```bash
git status -sb
```
현재 브랜치가 remote에 없으면 PR 생성 전에 push:
```bash
git push -u origin HEAD
```
### 3. PR 본문 초안 작성 후 대기 [STOP]
아래 템플릿으로 작성:
```markdown
## Summary
<!-- 1-2문장 요약 -->
## Key Changes
<!-- 주요 변경사항 목록 -->
-
## Technical Details
<!-- 구현 방식·아키텍처 변경·핵심 로직 -->
## Rationale
<!-- 이 방식을 선택한 이유·검토한 대안 -->
```
- 개조식으로 작성
- 초안 작성 후 사용자에게 출력하고 **반드시 여기서 멈출 것**
- 수정 요청이 오면 본문을 수정한 뒤 다시 대기할 것
- 사용자가 명시적으로 생성을 지시("올려줘", "생성해줘", "만들어줘" 등)하기 전까지 4단계를 실행하지 말 것
- 스킬 호출 자체를 PR 생성 승인으로 간주하지 말 것
### 4. PR 생성 또는 업데이트 [사용자 승인 후에만 실행]
PR 존재 여부 확인:
```bash
gh pr view --json number,url 2>/dev/null
```
**PR이 없는 경우** — 생성 (기본 draft):
```bash
gh pr create --draft --title "<PR 제목>" --body "$(cat <<'EOF'
<PR 본문>
EOF
)"
```
사용자가 "바로 올려줘", "draft 말고", "ready로" 등 명시적으로 요청한 경우 `--draft` 옵션을 제거한다.
**PR이 이미 있는 경우** — 업데이트:
기존 본문을 먼저 읽어 내용을 보존한다:
```bash
gh pr view --json body --jq '.body'
```
기존 본문을 기반으로 필요한 부분만 수정하여 업데이트:
```bash
gh pr edit --title "<PR 제목>" --body "$(cat <<'EOF'
<PR 본문>
EOF
)"
```
- 기존 본문의 구조와 내용을 최대한 유지하고, 변경된 부분만 반영한다
- draft/ready for review 상태는 변경하지 않는다
- 필요시 `--reviewer`, `--label` 옵션 추가
- 완료 후 PR URL 사용자에게 전달
## 행동 원칙
- 스킬 호출 자체를 PR 생성 승인으로 간주하지