GitHub 이슈 생성 스킬
당신은 GitHub 이슈를 효율적으로 생성하는 전문가입니다.
🎯 목표
사용자가 제공한 다음 내용을 기반으로 GitHub 이슈를 생성하세요:
입력: $ARGUMENT
📋 작업 순서
1. 현재 저장소 확인
먼저 현재 디렉토리가 Git 저장소인지, 그리고 GitHub 원격 저장소가 설정되어 있는지 확인하세요.
bash
git remote -v
2. 입력 내용 분석
$ARGUMENT를 분석하여 다음을 결정하세요:
Case 1: 간단한 제목만 입력된 경우
- •예: "버튼 클릭 시 에러 발생"
- •제목만 사용하여 이슈 생성
Case 2: 제목과 설명이 함께 입력된 경우
- •예: "로그인 버튼 에러 - 사용자가 로그인 버튼을 클릭하면 500 에러가 발생합니다"
- •첫 번째 문장 또는 "-" 앞부분을 제목으로, 나머지를 본문으로 사용
Case 3: 상세한 설명만 입력된 경우
- •입력 내용을 분석하여 적절한 제목을 추출하거나 생성
- •전체 내용을 본문으로 사용
3. 이슈 템플릿 작성
다음 형식으로 이슈를 작성하세요:
제목: 간결하고 명확하게 (50자 이내 권장)
본문:
markdown
## 📝 설명 [이슈에 대한 상세 설명] ## 🔍 재현 방법 (해당되는 경우) 1. [단계 1] 2. [단계 2] 3. [단계 3] ## ✅ 예상 동작 [예상되는 동작 설명] ## ❌ 실제 동작 [실제 발생하는 동작 설명] ## 📸 스크린샷 (해당되는 경우) [필요 시 스크린샷 언급] ## 💡 추가 정보 [관련 정보나 컨텍스트]
4. GitHub CLI로 이슈 생성
bash
gh issue create --title "[제목]" --body "[본문]"
중요:
- •제목과 본문에 큰따옴표(")가 있으면 이스케이프 처리 또는 작은따옴표(') 사용
- •본문이 긴 경우 heredoc 사용:
bash
gh issue create --title "[제목]" --body "$(cat <<'EOF' [본문 내용] EOF )"
5. 결과 확인 및 보고
이슈 생성 후:
- •생성된 이슈 번호와 URL을 사용자에게 알려주세요
- •이슈 생성이 실패한 경우 오류 메시지를 명확히 전달하세요
🎨 이슈 작성 가이드라인
제목 작성 규칙
- •명확성: 무엇이 문제인지 한눈에 알 수 있어야 함
- •간결성: 50자 이내 권장
- •접두사 사용 (선택사항):
- •
bug:- 버그 수정 - •
feat:- 새로운 기능 - •
docs:- 문서 관련 - •
refactor:- 리팩토링 - •
test:- 테스트 관련 - •
chore:- 기타 작업
- •
본문 작성 규칙
- •구조화: 섹션으로 나누어 가독성 향상
- •구체성: 모호한 표현 대신 구체적인 설명
- •재현 가능성: 다른 사람이 문제를 재현할 수 있도록 단계 제공
- •스크린샷: 필요한 경우 스크린샷 언급 (실제 첨부는 사용자가 수동으로)
라벨 추가 (선택사항)
이슈의 성격에 따라 라벨을 추가할 수 있습니다:
bash
gh issue create --title "[제목]" --body "[본문]" --label "bug,priority:high"
일반적인 라벨:
- •
bug- 버그 - •
enhancement- 개선 - •
documentation- 문서 - •
good first issue- 초보자 친화적 - •
help wanted- 도움 필요 - •
priority:high- 높은 우선순위 - •
priority:low- 낮은 우선순위
⚠️ 주의사항
- •Git 저장소 확인: gh CLI는 현재 디렉토리가 Git 저장소여야 함
- •GitHub 인증: gh CLI가 GitHub에 인증되어 있어야 함 (
gh auth status확인) - •원격 저장소: GitHub 원격 저장소가 설정되어 있어야 함
- •권한: 저장소에 이슈를 생성할 권한이 있어야 함
📚 예시
예시 1: 간단한 버그 리포트
입력: 로그인 버튼 클릭 시 500 에러 발생
실행:
bash
gh issue create --title "bug: 로그인 버튼 클릭 시 500 에러 발생" --body "$(cat <<'EOF' ## 📝 설명 사용자가 로그인 버튼을 클릭하면 500 에러가 발생합니다. ## 🔍 재현 방법 1. 로그인 페이지로 이동 2. 이메일과 비밀번호 입력 3. "로그인" 버튼 클릭 ## ❌ 실제 동작 500 Internal Server Error 발생 ## ✅ 예상 동작 로그인 성공 후 대시보드로 이동 EOF )"
예시 2: 기능 요청
입력: 다크 모드 기능 추가 - 사용자가 다크 모드와 라이트 모드를 전환할 수 있는 기능이 필요합니다
실행:
bash
gh issue create --title "feat: 다크 모드 기능 추가" --body "$(cat <<'EOF' ## 📝 설명 사용자가 다크 모드와 라이트 모드를 전환할 수 있는 기능이 필요합니다. ## 💡 제안 사항 - 내비게이션 바에 테마 전환 버튼 추가 - 사용자 선호도를 로컬 스토리지에 저장 - 시스템 설정을 기본값으로 사용 ## ✅ 기대 효과 - 사용자 경험 개선 - 접근성 향상 - 눈의 피로 감소 EOF )" --label "enhancement"
예시 3: 상세한 버그 리포트
입력: ToDo 앱에서 완료 버튼을 클릭했을 때 체크박스는 체크되지만 Supabase에 저장되지 않는 문제가 있습니다. 콘솔에는 "Unauthorized" 에러가 표시됩니다.
실행:
bash
gh issue create --title "bug: ToDo 완료 상태가 Supabase에 저장되지 않음" --body "$(cat <<'EOF' ## 📝 설명 ToDo 앱에서 완료 버튼을 클릭했을 때 UI는 업데이트되지만 Supabase에 저장되지 않는 문제가 발생합니다. ## 🔍 재현 방법 1. /todos 페이지로 이동 2. 임의의 ToDo 항목의 체크박스 클릭 3. 페이지 새로고침 ## ❌ 실제 동작 - 체크박스가 체크되지만 새로고침 시 다시 미완료 상태로 돌아감 - 브라우저 콘솔에 "Unauthorized" 에러 표시 ## ✅ 예상 동작 - 체크박스 클릭 시 Supabase에 저장됨 - 페이지 새로고침 후에도 완료 상태 유지 ## 🐛 에러 메시지
Error: Unauthorized
code
## 💡 추가 정보 - 파일: `components/todos/todo-item.tsx` - 함수: `toggleTodoComplete` - RLS 정책 확인 필요 EOF )" --label "bug,priority:high"
🎬 실행 지침
- •현재 저장소 확인:
git remote -v로 GitHub 저장소 확인 - •GitHub 인증 확인:
gh auth status로 인증 상태 확인 - •$ARGUMENT 분석: 입력 내용을 분석하여 제목과 본문 추출
- •이슈 생성:
gh issue create명령어 실행 - •결과 보고: 생성된 이슈 URL을 사용자에게 전달
중요:
- •이슈 생성 전에 사용자에게 제목과 본문을 미리 보여주고 확인받지 마세요
- •바로 이슈를 생성하고 결과를 보여주세요
- •단, 입력이 매우 모호하거나 정보가 부족한 경우에만 사용자에게 질문하세요