---
description: 사용 가능한 설계 산출물을 기반으로 기능에 대한 실행 가능한 의존성 순서의 tasks.md를 생성합니다.
handoffs:
  - label: 일관성 분석
    agent: speckit.analyze
    prompt: 일관성을 위한 프로젝트 분석 실행
    send: true
  - label: 프로젝트 구현
    agent: speckit.implement
    prompt: 단계별로 구현 시작
    send: true
---

## 언어 설정

모든 출력과 사용자와의 대화는 **한국어**로 진행합니다.

## 사용자 입력

```text
$ARGUMENTS
```

입력이 비어있지 않다면 진행하기 전에 **반드시** 사용자 입력을 고려해야 합니다.

## 개요

1. **설정**: 저장소 루트에서 `.specify/scripts/bash/check-prerequisites.sh --json`을 실행하고 FEATURE_DIR과 AVAILABLE_DOCS 목록을 파싱합니다. 모든 경로는 절대 경로여야 합니다. "I'm Groot"와 같이 인수에 작은따옴표가 있는 경우 이스케이프 구문 사용: 예: 'I'\''m Groot' (또는 가능하면 큰따옴표: "I'm Groot").

2. **설계 문서 로드**: FEATURE_DIR에서 읽기:
   - **필수**: plan.md (기술 스택, 라이브러리, 구조), spec.md (우선순위가 있는 사용자 스토리)
   - **선택**: data-model.md (엔티티), contracts/ (API 엔드포인트), research.md (결정), quickstart.md (테스트 시나리오)
   - 참고: 모든 프로젝트에 모든 문서가 있는 것은 아닙니다. 사용 가능한 것을 기반으로 작업을 생성하세요.

3. **작업 생성 워크플로우 실행**:
   - plan.md 로드하고 기술 스택, 라이브러리, 프로젝트 구조 추출
   - spec.md 로드하고 우선순위가 있는 사용자 스토리 추출 (P1, P2, P3 등)
   - data-model.md가 있으면: 엔티티 추출하고 사용자 스토리에 매핑
   - contracts/가 있으면: 엔드포인트를 사용자 스토리에 매핑
   - research.md가 있으면: 설정 작업을 위한 결정 추출
   - 사용자 스토리별로 구성된 작업 생성 (아래 작업 생성 규칙 참조)
   - 사용자 스토리 완료 순서를 보여주는 의존성 그래프 생성
   - 사용자 스토리별 병렬 실행 예시 생성
   - 작업 완성도 검증 (각 사용자 스토리에 필요한 모든 작업이 있고 독립적으로 테스트 가능)

4. **tasks.md 생성**: `.specify/templates/tasks-template.md`를 구조로 사용하고 다음으로 채우기:
   - plan.md의 올바른 기능 이름
   - Phase 1: 설정 작업 (프로젝트 초기화)
   - Phase 2: 기반 작업 (모든 사용자 스토리에 대한 차단 전제조건)
   - Phase 3+: 사용자 스토리당 하나의 단계 (spec.md의 우선순위 순서대로)
   - 각 단계 포함: 스토리 목표, 독립 테스트 기준, 테스트 (요청된 경우), 구현 작업
   - 최종 단계: 마무리 및 교차 관심사
   - 모든 작업은 엄격한 체크리스트 형식을 따라야 함 (아래 작업 생성 규칙 참조)
   - 각 작업에 명확한 파일 경로
   - 스토리 완료 순서를 보여주는 의존성 섹션
   - 스토리별 병렬 실행 예시
   - 구현 전략 섹션 (MVP 우선, 점진적 전달)

5. **보고**: 생성된 tasks.md 경로와 요약 출력:
   - 총 작업 수
   - 사용자 스토리별 작업 수
   - 식별된 병렬 기회
   - 각 스토리의 독립 테스트 기준
   - 제안된 MVP 범위 (일반적으로 사용자 스토리 1만)
   - 형식 검증: 모든 작업이 체크리스트 형식을 따르는지 확인 (체크박스, ID, 레이블, 파일 경로)

작업 생성 컨텍스트: $ARGUMENTS

tasks.md는 즉시 실행 가능해야 합니다 - 각 작업은 LLM이 추가 컨텍스트 없이 완료할 수 있을 정도로 구체적이어야 합니다.

## 작업 생성 규칙

**중요**: 작업은 독립적인 구현과 테스트를 가능하게 하기 위해 사용자 스토리별로 구성되어야 합니다.

**테스트는 선택사항**: 기능 명세서에서 명시적으로 요청되었거나 사용자가 TDD 접근 방식을 요청한 경우에만 테스트 작업을 생성하세요.

### 체크리스트 형식 (필수)

모든 작업은 이 형식을 엄격히 따라야 합니다:

```text
- [ ] [TaskID] [P?] [Story?] 파일 경로가 포함된 설명
```

**형식 구성요소**:

1. **체크박스**: 항상 `- [ ]`로 시작 (마크다운 체크박스)
2. **작업 ID**: 실행 순서의 순차적 번호 (T001, T002, T003...)
3. **[P] 마커**: 작업이 병렬화 가능한 경우에만 포함 (다른 파일, 미완료 작업에 대한 의존성 없음)
4. **[Story] 레이블**: 사용자 스토리 단계 작업에만 필수
   - 형식: [US1], [US2], [US3] 등 (spec.md의 사용자 스토리에 매핑)
   - 설정 단계: 스토리 레이블 없음
   - 기반 단계: 스토리 레이블 없음
   - 사용자 스토리 단계: 스토리 레이블 필수
   - 마무리 단계: 스토리 레이블 없음
5. **설명**: 정확한 파일 경로가 포함된 명확한 동작

**예시**:

- ✅ 올바름: `- [ ] T001 구현 계획에 따라 프로젝트 구조 생성`
- ✅ 올바름: `- [ ] T005 [P] src/middleware/auth.py에 인증 미들웨어 구현`
- ✅ 올바름: `- [ ] T012 [P] [US1] src/models/user.py에 User 모델 생성`
- ✅ 올바름: `- [ ] T014 [US1] src/services/user_service.py에 UserService 구현`
- ❌ 잘못됨: `- [ ] User 모델 생성` (ID와 스토리 레이블 누락)
- ❌ 잘못됨: `T001 [US1] 모델 생성` (체크박스 누락)
- ❌ 잘못됨: `- [ ] [US1] User 모델 생성` (작업 ID 누락)
- ❌ 잘못됨: `- [ ] T001 [US1] 모델 생성` (파일 경로 누락)

### 작업 구성

1. **사용자 스토리 (spec.md)에서** - 주요 구성:
   - 각 사용자 스토리 (P1, P2, P3...)는 자체 단계를 가짐
   - 모든 관련 구성요소를 해당 스토리에 매핑:
     - 해당 스토리에 필요한 모델
     - 해당 스토리에 필요한 서비스
     - 해당 스토리에 필요한 엔드포인트/UI
     - 테스트 요청 시: 해당 스토리에 특정한 테스트
   - 스토리 의존성 표시 (대부분의 스토리는 독립적이어야 함)

2. **계약에서**:
   - 각 계약/엔드포인트 → 서비스하는 사용자 스토리에 매핑
   - 테스트 요청 시: 각 계약 → 해당 스토리 단계의 구현 전 계약 테스트 작업 [P]

3. **데이터 모델에서**:
   - 각 엔티티를 필요로 하는 사용자 스토리에 매핑
   - 엔티티가 여러 스토리에 서비스하는 경우: 가장 빠른 스토리 또는 설정 단계에 배치
   - 관계 → 적절한 스토리 단계의 서비스 레이어 작업

4. **설정/인프라에서**:
   - 공유 인프라 → 설정 단계 (Phase 1)
   - 기반/차단 작업 → 기반 단계 (Phase 2)
   - 스토리별 설정 → 해당 스토리의 단계 내

### 단계 구조

- **Phase 1**: 설정 (프로젝트 초기화)
- **Phase 2**: 기반 (차단 전제조건 - 사용자 스토리 전에 완료해야 함)
- **Phase 3+**: 우선순위 순서의 사용자 스토리 (P1, P2, P3...)
  - 각 스토리 내: 테스트 (요청된 경우) → 모델 → 서비스 → 엔드포인트 → 통합
  - 각 단계는 완전하고 독립적으로 테스트 가능한 증분이어야 함
- **최종 단계**: 마무리 및 교차 관심사
