# Start Task

> 작업 시작. Use when (1) "랜드 #123 작업 진행", (2) "#45 시작하자", (3) "이슈 작업 시작해줘". 이슈 상태 변경 + 브랜치 생성 + Draft PR.

- Skill: `majiayu000/start-task-3` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/start-task-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/start-task-3/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/start-task-3

---


> **시스템 메시지**: `[SEMO] Skill: start-task 호출`

# start-task Skill

> 작업 시작 자동화

## Purpose

GitHub 이슈 작업을 시작하기 위한 전체 프로세스를 자동화합니다:
1. 이슈 정보 조회
2. GitHub Projects 상태 → "작업중" 변경
3. Feature 브랜치 생성
4. Draft PR 생성
5. SDD 프로세스 안내

## Input Parsing

```text
"랜드 #123 작업 진행하자"
→ repo: cm-land, issue: 123

"오피스 #45 시작"
→ repo: cm-office, issue: 45

"#123 작업 시작"
→ repo: (현재 디렉토리에서 추론), issue: 123
```

### 레포 별칭

| 별칭 | 실제 레포 |
|------|----------|
| 랜드 | cm-land |
| 오피스 | cm-office |
| 코어 | core-backend |
| 스몰 | cm-small |

## Workflow

### Step 1: 이슈 정보 조회

```bash
# 이슈 상세 정보 조회
gh issue view 123 --repo semicolon-devteam/cm-land --json title,body,labels,assignees,projectItems
```

### Step 2: 상태 변경 (GitHub Projects)

```bash
# Project Item ID 조회
ITEM_ID=$(gh api graphql -f query='
query {
  repository(owner: "semicolon-devteam", name: "cm-land") {
    issue(number: 123) {
      projectItems(first: 1) {
        nodes {
          id
          project {
            id
          }
        }
      }
    }
  }
}' --jq '.data.repository.issue.projectItems.nodes[0].id')

# Status 필드 ID와 "작업중" 옵션 ID 조회
PROJECT_ID=$(gh api graphql -f query='...' --jq '...')
STATUS_FIELD_ID=$(gh api graphql -f query='...' --jq '...')
IN_PROGRESS_ID=$(gh api graphql -f query='...' --jq '...')

# 상태 변경
gh api graphql -f query='
mutation {
  updateProjectV2ItemFieldValue(
    input: {
      projectId: "'$PROJECT_ID'"
      itemId: "'$ITEM_ID'"
      fieldId: "'$STATUS_FIELD_ID'"
      value: { singleSelectOptionId: "'$IN_PROGRESS_ID'" }
    }
  ) {
    projectV2Item { id }
  }
}
'
```

### Step 3: Feature 브랜치 생성

```bash
# 이슈 제목에서 slug 생성
SLUG=$(echo "로그인 페이지 구현" | tr ' ' '-' | tr '[:upper:]' '[:lower:]')

# 브랜치 생성
git checkout -b feature/123-${SLUG}

# 원격에 푸시
git push -u origin feature/123-${SLUG}
```

### Step 4: Draft PR 생성

```bash
gh pr create \
  --repo semicolon-devteam/cm-land \
  --title "[Draft] #123 로그인 페이지 구현" \
  --body "$(cat <<'EOF'
## 관련 이슈
closes #123

## 변경 사항
- [ ] 작업 진행 중

## 체크리스트
- [ ] Spec 작성 완료
- [ ] 구현 완료
- [ ] 테스트 통과
- [ ] 리뷰 요청

---
🤖 Generated by SEMO (eng/nextjs)
EOF
)" \
  --draft
```

### Step 5: 다음 단계 선택지 제시 (NON-NEGOTIABLE)

> **🔴 CRITICAL**: 작업 환경 세팅 완료 후 **반드시** 다음 단계 선택지를 제시합니다.

```markdown
## 🚀 작업 환경 준비 완료!

다음 단계를 선택해주세요:

| 옵션 | 적합한 경우 | 키워드 |
|------|------------|--------|
| **A. SDD 전체** (권장) | 새 기능, 복잡한 로직, AC 필요 | "스펙부터 시작" |
| **B. 바로 구현** | 명확한 요구사항, 간단한 기능 | "구현 시작" |
| **C. Fast-track** | 오타/스타일 수정, 3파일 이하 | "패스트트랙" |

**선택하세요**: A, B, 또는 C
```

### 선택지별 라우팅

| 선택 | 라우팅 대상 | 동작 |
|------|------------|------|
| A | `skill:spec` | SDD Phase 1-3 시작 |
| B | `implementation-master` | ADD Phase 4 바로 시작 (v0.0.x부터) |
| C | `skill:fast-track` | 간소화된 수정 프로세스 |

### 자동 권장 기준

| 이슈 라벨 | 권장 옵션 |
|----------|----------|
| `feature`, `enhancement` | A (SDD 전체) |
| `bug`, `hotfix` | B 또는 C |
| `typo`, `style` | C (Fast-track) |

## Output Format

```markdown
## 작업 시작: cm-land #123

### 이슈 정보

| 항목 | 내용 |
|------|------|
| **제목** | 로그인 페이지 구현 |
| **라벨** | feature, frontend |
| **담당자** | @reus |

### 완료된 작업

✅ GitHub Projects 상태 → "작업중" 변경
✅ 브랜치 생성: `feature/123-로그인-페이지-구현`
✅ Draft PR 생성: #150

### 🚀 다음 단계 선택

| 옵션 | 적합한 경우 | 키워드 |
|------|------------|--------|
| **A. SDD 전체** (권장) | 새 기능, 복잡한 로직 | "스펙부터 시작" |
| **B. 바로 구현** | 명확한 요구사항 | "구현 시작" |
| **C. Fast-track** | 경미한 수정 | "패스트트랙" |

**선택하세요**: A, B, 또는 C
```

## Expected Output

```markdown
[SEMO] Skill: start-task 호출

## 작업 시작: cm-land #123

### 이슈 정보

| 항목 | 내용 |
|------|------|
| **제목** | 로그인 페이지 구현 |
| **라벨** | feature |
| **담당자** | @reus |

### 완료된 작업

✅ 상태 변경: 대기중 → 작업중
✅ 브랜치: `feature/123-로그인-페이지-구현`
✅ Draft PR: #150

### 🚀 다음 단계 선택

| 옵션 | 적합한 경우 | 키워드 |
|------|------------|--------|
| **A. SDD 전체** (권장) | 새 기능, 복잡한 로직 | "스펙부터 시작" |
| **B. 바로 구현** | 명확한 요구사항 | "구현 시작" |
| **C. Fast-track** | 경미한 수정 | "패스트트랙" |

💡 **라벨 기반 권장**: `feature` 라벨 → **A. SDD 전체** 권장

**선택하세요**: A, B, 또는 C

[SEMO] Skill: start-task 완료
```

## Error Handling

### 이슈를 찾을 수 없는 경우

```markdown
❌ cm-land에서 #123 이슈를 찾을 수 없습니다.

확인사항:
- 이슈 번호가 올바른가요?
- 레포 이름이 올바른가요? (랜드 = cm-land)
- 이슈가 Open 상태인가요?
```

### 이미 작업중인 경우

```markdown
⚠️ #123은 이미 "작업중" 상태입니다.

현재 상태:
- 브랜치: feature/123-로그인-페이지-구현 (존재함)
- PR: #150 (Draft)

계속 진행하시겠습니까?
```

## References

- [eng/nextjs CLAUDE.md](../../CLAUDE.md)
- [git-workflow Skill](../git-workflow/SKILL.md)
- [implement Skill](../implement/SKILL.md)
- [spec Skill](../spec/SKILL.md)

