project-prlisted
Install: claude install-skill Kyungjong-kim/claude-code-harness
# Project PR
현재 브랜치의 변경사항으로 PR을 생성한다.
## Step 0 — 사전 확인 (git 레포 · 인증 · PR 중복)
```bash
# git 레포 확인 (S73)
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
echo "⚠ 현재 디렉터리가 git 저장소가 아닙니다. 프로젝트 루트로 이동 후 다시 실행하세요."
exit 1
fi
# 인증 확인 — 토큰 만료 vs 미로그인 분기 (S80)
AUTH_OUTPUT=$(gh auth status 2>&1)
if echo "$AUTH_OUTPUT" | grep -qi "not logged"; then
echo "⚠ GitHub CLI 미인증 — gh auth login 후 재실행"
exit 1
elif echo "$AUTH_OUTPUT" | grep -qi "expired\|token\|invalid"; then
echo "⚠ GitHub CLI 토큰 만료 — gh auth refresh 실행 후 재실행"
exit 1
fi
# 현재 브랜치 및 base 브랜치 감지
CURRENT_BRANCH=$(git branch --show-current)
DEFAULT_BRANCH=$(git remote show origin 2>/dev/null | grep "HEAD branch" | awk '{print $NF}')
BASE_BRANCH="${DEFAULT_BRANCH:-develop}"
# CLAUDE.md에 base 브랜치 규칙이 있으면 그것을 우선 사용
grep -iE "base.*브랜치|PR.*base|develop|main" CLAUDE.md 2>/dev/null | head -3
echo "현재 브랜치: $CURRENT_BRANCH / base 브랜치: $BASE_BRANCH"
# 원격 upstream 존재 여부 확인 (S33)
if ! git rev-parse --abbrev-ref "@{upstream}" > /dev/null 2>&1; then
echo "⚠ 원격 브랜치가 없습니다. 먼저 push하세요:"
echo " git push -u origin $CURRENT_BRANCH"
exit 1
fi
# 현재 브랜치에 이미 PR이 있는지 확인
gh pr list --head "$CURRENT_BRANCH" --json number,url,state 2>/dev/null
```
| 결과 | 처리 |
|------|------|
| git 레포 아님 | 안내 후 중단 |
| `⚠ 미인증` | `gh auth login` 안내 후 중단 |
| `⚠ 토큰 만료` | `gh auth refresh` 안내 후 중단 |
| 원격 브랜치 없음 | `git push -u origin <브랜치>` 안내 후 중단 |
| `현재 브랜치 == base 브랜치` | "작업 브랜치에서 실행해야 합니다. 현재 브랜치가 base 브랜치입니다." 안내 후 중단 |
| PR 목록에 항목