From 39b145eb5b0c59efa3d7857fa4ca6a9091519b26 Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Sat, 30 May 2026 02:24:17 +0900 Subject: [PATCH 1/5] =?UTF-8?q?chore:=20/issue,=20/pr=20=EC=BB=A4=EB=A7=A8?= =?UTF-8?q?=EB=93=9C=20GitHub=20=EC=9E=90=EB=8F=99=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=ED=9D=90=EB=A6=84=EC=9C=BC=EB=A1=9C=20=EC=97=85=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/issue.md | 13 +++++++++---- .claude/commands/pr.md | 12 +++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.claude/commands/issue.md b/.claude/commands/issue.md index fa90d07..1905307 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,14 @@ - 논의가 필요하거나 고민되는 부분을 작성 - 없으면 `없음`으로 작성 -## 이슈 생성 명령 예시 +## 이슈 생성 명령 + +사용자 확인 후 아래 명령을 실행한다. ```bash gh issue create \ --title "<이슈 제목>" \ - --body "<채워진 템플릿 내용>" \ - --label "feat" + --body "<채워진 템플릿 내용>" ``` + +생성 완료 후 반환된 이슈 URL을 사용자에게 출력한다. diff --git a/.claude/commands/pr.md b/.claude/commands/pr.md index 0d9532d..208dba9 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 템플릿 @@ -46,15 +48,19 @@ ### ✅ 확인 - `빌드 OK` / `테스트 OK` 항목은 사용자가 직접 체크하도록 체크박스로 남겨둔다. -## PR 생성 명령 예시 +## PR 생성 명령 + +사용자 확인 후 아래 명령을 실행한다. ```bash gh pr create \ --title "<타입>: <한글 제목>" \ --body "<채워진 템플릿 내용>" \ - --base develop + --base main ``` +생성 완료 후 반환된 PR URL을 사용자에게 출력한다. + ## 주의사항 - base 브랜치는 기본적으로 `develop`으로 설정한다. `main`으로 보내는 경우 사용자에게 확인한다. From a6f124f40e7b7bb6e0d27cad5805b981a5e9dd1c Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Sat, 30 May 2026 02:25:13 +0900 Subject: [PATCH 2/5] =?UTF-8?q?chore:=20/pr=20=EC=BB=A4=EB=A7=A8=EB=93=9C?= =?UTF-8?q?=20base=20=EB=B8=8C=EB=9E=9C=EC=B9=98=EB=A5=BC=20develop?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EA=B3=A0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/pr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/commands/pr.md b/.claude/commands/pr.md index 208dba9..6671954 100644 --- a/.claude/commands/pr.md +++ b/.claude/commands/pr.md @@ -56,13 +56,13 @@ gh pr create \ --title "<타입>: <한글 제목>" \ --body "<채워진 템플릿 내용>" \ - --base main + --base develop ``` 생성 완료 후 반환된 PR URL을 사용자에게 출력한다. ## 주의사항 -- base 브랜치는 기본적으로 `develop`으로 설정한다. `main`으로 보내는 경우 사용자에게 확인한다. +- base 브랜치는 항상 `develop`으로 설정한다. `main`으로 보내는 경우 반드시 사용자에게 확인한다. - 리뷰어 2명 승인 필요 — PR 생성 후 리뷰어 지정을 안내한다. - 셀프 머지 금지 규칙을 사용자에게 상기시킨다. From f4d5db688e243bbcbbc75f49b4416047fc7783bf Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Sat, 30 May 2026 02:34:33 +0900 Subject: [PATCH 3/5] =?UTF-8?q?chore:=20/pr=20=EC=BB=A4=EB=A7=A8=EB=93=9C?= =?UTF-8?q?=20=EC=A0=9C=EB=AA=A9=20=ED=98=95=EC=8B=9D=EC=9D=84=20[Feat]=20?= =?UTF-8?q?~=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80=20=EC=8A=A4=ED=83=80?= =?UTF-8?q?=EC=9D=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/pr.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.claude/commands/pr.md b/.claude/commands/pr.md index 6671954..485ca5d 100644 --- a/.claude/commands/pr.md +++ b/.claude/commands/pr.md @@ -29,6 +29,13 @@ ## 각 항목 작성 규칙 +### PR 제목 형식 +- `[Feat] ~기능 추가` — 새로운 기능 +- `[Fix] ~버그 수정` — 버그 수정 +- `[Refactor] ~개선` — 리팩토링 +- `[Chore] ~` — 설정, 빌드, 기타 +- `[Docs] ~` — 문서 + ### 🧾 요약 - 이 PR이 무엇을 왜 하는지 한 줄로 작성 - 예: `산 좋아요 토글 API 구현 — 사용자가 관심 산을 저장할 수 있도록` @@ -54,7 +61,7 @@ ```bash gh pr create \ - --title "<타입>: <한글 제목>" \ + --title "[<타입>] <한글 제목>" \ --body "<채워진 템플릿 내용>" \ --base develop ``` From e2a0cdb1370946774fb487aee5d823efc9fabd61 Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Sat, 30 May 2026 02:36:33 +0900 Subject: [PATCH 4/5] =?UTF-8?q?chore:=20/branch=20=EC=BB=A4=EC=8A=A4?= =?UTF-8?q?=ED=85=80=20=EC=8A=AC=EB=9E=98=EC=8B=9C=20=EC=BB=A4=EB=A7=A8?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/branch.md | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .claude/commands/branch.md 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 +``` From 80e3483a304df7a19954154d2cb7a3c4ebad52b1 Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Sat, 30 May 2026 02:40:02 +0900 Subject: [PATCH 5/5] =?UTF-8?q?chore:=20issue/pr=20=EC=BB=A4=EB=A7=A8?= =?UTF-8?q?=EB=93=9C=20=EB=B3=B8=EB=AC=B8=20=EC=A0=84=EB=8B=AC=20=EB=B0=A9?= =?UTF-8?q?=EC=8B=9D=EC=9D=84=20--body-file=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .claude/commands/issue.md | 14 ++++++++++++-- .claude/commands/pr.md | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/.claude/commands/issue.md b/.claude/commands/issue.md index 1905307..a3d8b61 100644 --- a/.claude/commands/issue.md +++ b/.claude/commands/issue.md @@ -69,12 +69,22 @@ ## 이슈 생성 명령 -사용자 확인 후 아래 명령을 실행한다. +사용자 확인 후 아래 순서로 실행한다. +본문은 특수문자·마크다운 이스케이프 오류를 막기 위해 임시 파일로 작성 후 `--body-file`로 전달한다. ```bash +# 1. 본문을 임시 파일에 저장 +cat > /tmp/issue_body.md << 'EOF' +<채워진 템플릿 내용> +EOF + +# 2. 이슈 생성 gh issue create \ --title "<이슈 제목>" \ - --body "<채워진 템플릿 내용>" + --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 485ca5d..b27da64 100644 --- a/.claude/commands/pr.md +++ b/.claude/commands/pr.md @@ -57,13 +57,23 @@ ## PR 생성 명령 -사용자 확인 후 아래 명령을 실행한다. +사용자 확인 후 아래 순서로 실행한다. +본문은 특수문자·마크다운 이스케이프 오류를 막기 위해 임시 파일로 작성 후 `--body-file`로 전달한다. ```bash +# 1. 본문을 임시 파일에 저장 +cat > /tmp/pr_body.md << 'EOF' +<채워진 템플릿 내용> +EOF + +# 2. PR 생성 gh pr create \ --title "[<타입>] <한글 제목>" \ - --body "<채워진 템플릿 내용>" \ + --body-file /tmp/pr_body.md \ --base develop + +# 3. 임시 파일 삭제 +rm /tmp/pr_body.md ``` 생성 완료 후 반환된 PR URL을 사용자에게 출력한다.