1---2name: task-register3description: 하이퍼-워터폴 작업에서 아직 GitHub Issue가 없는 신규 타스크를 등록한다. 열린 milestone과 기존 label을 조회해 후보를 고르고, 이슈 생성 전 작업지시자 확인을 받은 뒤 GitHub Issue 번호를 만든다. 이슈 생성 후 브랜치/오늘할일/수행계획서는 task-start 절차로 넘긴다.4---56# 하이퍼-워터폴 이슈 등록78## 트리거910- 작업지시자가 "이 작업 이슈 등록", "새 타스크 생성", "이슈부터 만들어줘"처럼 GitHub Issue 생성을 명시한 경우11- 작업지시자가 본 SKILL을 직접 호출한 경우1213## 사전 조건1415- 아직 이슈 번호가 없는 작업16- 작업 목적, 배경, 범위가 최소한 초안 수준으로 정리됨17- 현재 사용자 자격 증명으로 `gh` CLI 인증 완료18- 가능하면 GitHub Issue Form `.github/ISSUE_TEMPLATE/task.yml` 또는 프레임워크 원본 `templates/.github/ISSUE_TEMPLATE/task.yml`을 읽을 수 있음19- 이슈 생성 전 제목, 본문, milestone, label 초안을 작업지시자에게 확인받을 수 있음2021## 절차22231. 중복 이슈 확인24 ```bash25 gh issue list --repo {REPO_SLUG} --state all \26 --search "{작업 키워드}" \27 --limit 20 \28 --json number,title,state,milestone,labels,url29 ```30 - 실질적으로 같은 열린 이슈가 있으면 새 이슈를 만들지 말고 기존 이슈 사용 여부를 확인한다.31 - 닫힌 이슈가 같은 주제를 다뤘다면 새 이슈 본문 참고 항목에 링크한다.322. 열린 milestone 목록 확인33 ```bash34 gh api repos/{REPO_SLUG}/milestones \35 --jq '.[] | {number,title,state,description,open_issues,closed_issues}'36 ```37 - 조회 결과의 `title`, `state`, `description`을 기준으로 판단한다.38 - 기억하고 있는 과거 milestone 목록이나 버전 매핑을 기준으로 단정하지 않는다.393. 기존 label 목록 확인40 ```bash41 gh api repos/{REPO_SLUG}/labels --paginate \42 --jq '.[] | {name,description,color}'43 ```44 - 조회 결과의 `name`, `description`을 기준으로 판단한다.45 - 기억하고 있는 과거 label 목록을 기준으로 단정하지 않는다.464. milestone 후보 선택47 - 열린 milestone만 후보로 사용한다.48 - 작업 목적, 범위, 대상 컴포넌트, 릴리스 단계가 조회된 milestone의 `title`/`description`과 가장 잘 맞는지 비교한다.49 - 후보가 명확하면 milestone 제목과 선택 이유를 기록한다.50 - 후보가 2개 이상이면 2~3개 후보와 각각의 이유를 작업지시자에게 제시하고 확인받는다.51 - 적합한 열린 milestone이 없거나 설명이 부족하면 임의 선택하지 말고 작업지시자에게 확인한다.525. label 후보 선택53 - 조회된 기존 label만 후보로 사용한다.54 - 작업 성격이 label의 `name`/`description`과 명확히 대응할 때만 선택한다.55 - label은 기본적으로 `type label 1개 + area label 1~2개 + kind/status label 0~1개`로 제한한다.56 - type label은 `bug`, `documentation`, `enhancement`, `duplicate`, `question` 등 작업 성격을 나타내는 label 중 1개를 우선 고른다.57 - `area:*` label은 영향을 받는 모든 영역이 아니라 주 작업 소유 영역 기준으로 고른다.58 - `kind:*` label은 `kind:architecture`, `kind:automation`, `kind:regression`, `kind:verification`, `kind:follow-up`처럼 처리 방식이나 맥락을 실제로 구분할 때만 붙인다.59 - 일반 이슈는 2~4개 label을 권장한다.60 - 5개 이상 label이 필요하면 이슈 초안에 예외 사유를 적고 작업지시자 확인을 받는다.61 - 후보가 명확하면 label 이름과 선택 이유를 기록한다.62 - 적합한 label이 없거나 애매하면 label 없이 생성하거나 작업지시자에게 확인한다.63 - 새 label은 만들지 않는다.646. 이슈 초안 작성65 - 제목: 작업 단위가 드러나는 한 문장66 - 본문은 GitHub Issue Form `.github/ISSUE_TEMPLATE/task.yml`을 우선 기준으로 작성한다.67 - 프레임워크 저장소에서 적용 저장소용 원본을 확인해야 하면 `templates/.github/ISSUE_TEMPLATE/task.yml`을 참조한다.68 - `gh issue create`는 Issue Form UI를 실행하지 않으므로, Form의 입력 항목을 아래 Markdown 섹션으로 변환해 본문을 만든다.69 - Issue Form 기준 섹션:70 - 배경71 - 목표72 - 범위 - 포함73 - 범위 - 제외74 - 수용 기준75 - 검증 기준76 - 참고77 - 마일스톤과 label 후보78 - Issue Form을 읽을 수 없는 경우에만 fallback으로 위 섹션 목록을 사용한다.79 - milestone: live 조회 결과에서 고른 열린 milestone 1개와 선택 이유80 - label: live 조회 결과에서 고른 기존 label 0개 이상과 선택 이유81 - label 선택 이유는 type/area/kind 기준으로 나누어 적고, 5개 이상이면 예외 사유를 별도로 적는다.827. 이슈 생성 전 승인 요청83 - 작업지시자에게 제목, 본문, milestone, label 초안과 선택 이유를 보여준다.84 - 작업지시자가 같은 스레드에서 생성 승인을 명시하기 전에는 `gh issue create`를 실행하지 않는다.858. 승인 후 이슈 생성86 ```bash87 gh issue create --repo {REPO_SLUG} \88 --title "{제목}" \89 --body "{본문}" \90 --milestone "{milestone}" \91 --label "{label}"92 ```93 - label이 여러 개면 `--label documentation --label enhancement`처럼 반복한다.94 - label을 쓰지 않기로 했으면 `--label` 옵션을 생략한다.959. 생성 결과 확인96 ```bash97 gh issue view {N} --repo {REPO_SLUG} \98 --json number,title,state,milestone,labels,url99 ```10010. 작업지시자에게 생성된 이슈 번호와 URL을 보고하고 `task-start` 진입 승인 요청101102## 검증103104- 생성된 이슈가 `OPEN` 상태여야 한다.105- milestone이 비어 있지 않고 live 조회 결과에 있던 열린 milestone이어야 한다.106- label은 초안에서 승인된 기존 label만 붙어 있어야 한다.107- 일반 이슈 label은 2~4개 권장 범위인지 확인한다.108- 5개 이상 label이면 승인된 예외 사유가 생성 결과 보고에 포함되어야 한다.109- `area:*` label은 주 작업 소유 영역 기준으로 선택되어야 한다.110- 이슈 본문이 `.github/ISSUE_TEMPLATE/task.yml`의 필수 입력에 대응하는 배경, 목표, 포함 범위, 제외 범위, 수용 기준, 검증 기준을 채워야 한다.111- 생성 결과 보고에 issue number, URL, milestone, label, 선택 이유가 포함되어야 한다.112113## 절대 하지 말 것114115- 작업지시자 승인 없이 `gh issue create` 실행116- 새 milestone 또는 새 label 생성117- 닫힌 milestone을 임의로 사용118- 이슈 생성 후 승인 없이 `task-start`까지 이어서 실행119- 이 Skill 안에서 브랜치 생성, 오늘할일 갱신, 수행계획서 작성120121## 호출 방법122123- Codex: `$task-register` 또는 `/skills` 메뉴에서 `task-register` 선택124- Claude Code: `/task-register`