diff --git a/.claude/commands/branch.md b/.claude/commands/branch.md new file mode 100644 index 0000000..9c05fe1 --- /dev/null +++ b/.claude/commands/branch.md @@ -0,0 +1,53 @@ +# 브랜치 생성 커맨드 + +## 사용법 + +``` +/branch <이슈번호> <설명> +``` + +예시: `/branch 156 course-like` + +## 동작 순서 + +1. `$ARGUMENTS`에서 이슈번호와 설명을 파싱한다. +2. 커밋 타입을 선택하도록 사용자에게 묻는다. +3. 브랜치명을 조합하고 확인을 요청한다. +4. 확인 후 아래 순서로 명령을 실행한다. + - `git fetch origin develop` — 최신 develop 동기화 + - `git checkout -b <브랜치명> origin/develop` — 로컬 브랜치 생성 + - `git push -u origin <브랜치명>` — 원격 브랜치 생성 및 추적 설정 +5. 완료 후 생성된 브랜치명을 출력한다. + +## 브랜치 명명 규칙 + +``` +/#<이슈번호>-<설명> +``` + +### 타입 선택 기준 + +| 타입 | 사용 시점 | +|------|----------| +| `feat` | 새로운 기능 추가 | +| `fix` | 버그 수정 | +| `refactor` | 기능 변경 없는 코드 개선 | +| `docs` | 문서, 주석 변경 | +| `test` | 테스트 코드 추가/수정 | +| `chore` | 빌드, 설정, 의존성 등 기타 변경 | + +### 예시 + +``` +feat/#156-course-like +fix/#149-semofeed-image-url-quote +refactor/#160-tracking-buffer-flush +``` + +## 실행 명령 예시 + +```bash +git fetch origin develop +git checkout -b feat/#156-course-like origin/develop +git push -u origin feat/#156-course-like +``` diff --git a/.claude/commands/issue.md b/.claude/commands/issue.md index fa90d07..a3d8b61 100644 --- a/.claude/commands/issue.md +++ b/.claude/commands/issue.md @@ -10,7 +10,9 @@ 1. `$ARGUMENTS`로 전달된 설명을 바탕으로 작업 내용을 파악한다. 2. 아래 이슈 템플릿을 채워 초안을 제안한다. -3. 사용자 확인 후 `gh issue create` 명령으로 GitHub에 이슈를 생성한다. +3. 사용자에게 초안을 보여주고 "생성할까요?" 라고 확인을 요청한다. +4. 사용자가 확인하면 즉시 `gh issue create` 명령을 실행하고 생성된 이슈 URL을 출력한다. +5. 수정 요청이 있으면 해당 항목을 수정한 뒤 다시 확인을 요청한다. ## 이슈 템플릿 @@ -65,11 +67,24 @@ - 논의가 필요하거나 고민되는 부분을 작성 - 없으면 `없음`으로 작성 -## 이슈 생성 명령 예시 +## 이슈 생성 명령 + +사용자 확인 후 아래 순서로 실행한다. +본문은 특수문자·마크다운 이스케이프 오류를 막기 위해 임시 파일로 작성 후 `--body-file`로 전달한다. ```bash +# 1. 본문을 임시 파일에 저장 +cat > /tmp/issue_body.md << 'EOF' +<채워진 템플릿 내용> +EOF + +# 2. 이슈 생성 gh issue create \ --title "<이슈 제목>" \ - --body "<채워진 템플릿 내용>" \ - --label "feat" + --body-file /tmp/issue_body.md + +# 3. 임시 파일 삭제 +rm /tmp/issue_body.md ``` + +생성 완료 후 반환된 이슈 URL을 사용자에게 출력한다. diff --git a/.claude/commands/pr.md b/.claude/commands/pr.md index 0d9532d..b27da64 100644 --- a/.claude/commands/pr.md +++ b/.claude/commands/pr.md @@ -5,7 +5,9 @@ 1. `git log`와 `git diff ...HEAD`로 현재 브랜치의 전체 변경사항을 파악한다. 2. 브랜치명에서 이슈 번호를 추출한다. (예: `feat/#151-claude-command` → `#151`) 3. 아래 PR 템플릿을 채워 초안을 제안한다. -4. 사용자 확인 후 `gh pr create` 명령으로 GitHub에 PR을 생성한다. +4. 사용자에게 초안을 보여주고 "생성할까요?" 라고 확인을 요청한다. +5. 사용자가 확인하면 즉시 `gh pr create` 명령을 실행하고 생성된 PR URL을 출력한다. +6. 수정 요청이 있으면 해당 항목을 수정한 뒤 다시 확인을 요청한다. ## PR 템플릿 @@ -27,6 +29,13 @@ ## 각 항목 작성 규칙 +### PR 제목 형식 +- `[Feat] ~기능 추가` — 새로운 기능 +- `[Fix] ~버그 수정` — 버그 수정 +- `[Refactor] ~개선` — 리팩토링 +- `[Chore] ~` — 설정, 빌드, 기타 +- `[Docs] ~` — 문서 + ### 🧾 요약 - 이 PR이 무엇을 왜 하는지 한 줄로 작성 - 예: `산 좋아요 토글 API 구현 — 사용자가 관심 산을 저장할 수 있도록` @@ -46,17 +55,31 @@ ### ✅ 확인 - `빌드 OK` / `테스트 OK` 항목은 사용자가 직접 체크하도록 체크박스로 남겨둔다. -## PR 생성 명령 예시 +## PR 생성 명령 + +사용자 확인 후 아래 순서로 실행한다. +본문은 특수문자·마크다운 이스케이프 오류를 막기 위해 임시 파일로 작성 후 `--body-file`로 전달한다. ```bash +# 1. 본문을 임시 파일에 저장 +cat > /tmp/pr_body.md << 'EOF' +<채워진 템플릿 내용> +EOF + +# 2. PR 생성 gh pr create \ - --title "<타입>: <한글 제목>" \ - --body "<채워진 템플릿 내용>" \ + --title "[<타입>] <한글 제목>" \ + --body-file /tmp/pr_body.md \ --base develop + +# 3. 임시 파일 삭제 +rm /tmp/pr_body.md ``` +생성 완료 후 반환된 PR URL을 사용자에게 출력한다. + ## 주의사항 -- base 브랜치는 기본적으로 `develop`으로 설정한다. `main`으로 보내는 경우 사용자에게 확인한다. +- base 브랜치는 항상 `develop`으로 설정한다. `main`으로 보내는 경우 반드시 사용자에게 확인한다. - 리뷰어 2명 승인 필요 — PR 생성 후 리뷰어 지정을 안내한다. - 셀프 머지 금지 규칙을 사용자에게 상기시킨다.