Spec-Driven Development (SDD) - Standalone
Overview
명세가 코드를 생성하는 개발 방법론. 별도 설치 없이 Claude가 직접 워크플로우를 실행한다.
핵심 원칙: 명세(WHAT & WHY) → 계획(HOW) → 태스크(실행 단위) → 구현(코드)
When to Use
사용 시점:
- •새 프로젝트/기능 개발 시작
- •체계적인 요구사항 관리 필요
- •외부 도구 설치 없이 SDD 적용
사용하지 말 것:
- •간단한 버그 수정, 한 줄 변경
Quick Reference
| 단계 | 명령 | 출력 |
|---|---|---|
| 1. 명세 | "specify: [기능 설명]" | .sdd/specs/NNN-feature/spec.md |
| 2. 계획 | "plan: [기술 스택]" | plan.md, data-model.md |
| 3. 태스크 | "tasks" | tasks.md |
| 4. 구현 | "implement" | 소스 코드 |
Core Workflow
사용자가 다음 키워드로 요청하면 해당 단계를 실행한다:
code
"specify: 사진 앨범 정리 앱" → 명세 생성 "plan: React + SQLite" → 계획 생성 "tasks" → 태스크 분해 "implement" → 구현 실행
Phase 1: Specify (명세 작성)
트리거: specify: 또는 "명세 작성", "기능 정의"
실행 절차
- •
.sdd/specs/디렉토리 확인/생성 - •기존 specs 스캔하여 다음 번호 결정 (001, 002, ...)
- •기능명에서 branch-name 생성 (예: "photo-albums")
- •디렉토리 생성:
.sdd/specs/NNN-feature-name/ - •
spec.md작성 (템플릿 참조: @templates/spec-template.md)
핵심 규칙
- •WHAT(무엇)과 WHY(왜)만 기술
- •HOW(어떻게)는 금지 - 기술 스택, API 구조, 구현 방식 언급 안함
- •각 User Story는 독립적으로 테스트 가능해야 함
- •우선순위 필수: P1(핵심) → P2 → P3...
출력 구조
code
.sdd/specs/001-photo-albums/
├── spec.md # 기능 명세
└── checklists/
└── requirements.md
spec.md 필수 섹션
markdown
# Feature Specification: [기능명] ## User Scenarios & Testing ### User Story 1 - [제목] (Priority: P1) - 설명, 우선순위 이유 - Independent Test: 독립 테스트 방법 - Acceptance Scenarios: Given-When-Then ## Requirements ### Functional Requirements - FR-001: System MUST [구체적 기능] - [NEEDS CLARIFICATION: 불명확한 부분] ## Success Criteria - SC-001: [측정 가능한 지표]
Phase 2: Plan (계획 수립)
트리거: plan: 또는 "계획 수립", "기술 설계"
실행 절차
- •현재 feature의
spec.md읽기 - •사용자 입력에서 기술 스택 추출
- •
plan.md작성 (템플릿 참조: @templates/plan-template.md) - •
data-model.md생성 (엔티티, 관계) - •
contracts/디렉토리에 API 명세 (필요시)
출력 구조
code
.sdd/specs/001-photo-albums/
├── spec.md
├── plan.md # 구현 계획
├── data-model.md # 데이터 모델
├── research.md # 기술 조사 (선택)
└── contracts/
└── api-spec.json
plan.md 필수 섹션
markdown
# Implementation Plan: [기능명] ## Summary [spec에서 추출한 요구사항 + 기술 접근법] ## Technical Context - Language/Version: [예: Python 3.11] - Primary Dependencies: [예: FastAPI] - Storage: [예: SQLite] - Testing: [예: pytest] ## Project Structure src/ ├── models/ ├── services/ └── api/ tests/ └── ...
Phase 3: Tasks (태스크 분해)
트리거: tasks 또는 "태스크 생성", "작업 분해"
실행 절차
- •
spec.md에서 User Stories 추출 (우선순위 포함) - •
plan.md에서 기술 구조 추출 - •
data-model.md에서 엔티티 추출 (있으면) - •User Story별로 태스크 그룹화
- •
tasks.md생성 (템플릿 참조: @templates/tasks-template.md)
태스크 형식
markdown
- [ ] T001 프로젝트 구조 생성 - [ ] T002 [P] 의존성 설치 - [ ] T003 [P] [US1] User 모델 생성 in src/models/user.py - [ ] T004 [US1] UserService 구현 in src/services/user.py
- •
[P]: 병렬 실행 가능 - •
[US1]: User Story 1 소속
Phase 구조
markdown
## Phase 1: Setup ## Phase 2: Foundational (모든 User Story 전제조건) ## Phase 3: User Story 1 (P1) 🎯 MVP ## Phase 4: User Story 2 (P2) ## Phase N: Polish & Cross-Cutting
Phase 4: Implement (구현)
트리거: implement 또는 "구현 시작"
실행 절차
- •
tasks.md읽기 - •Phase 순서대로 실행
- •각 태스크 완료 시
[X]로 표시 - •체크포인트에서 검증
Superpowers 연동
tasks.md → Superpowers Plan 변환
tasks 단계 완료 후 다음 옵션 제시:
code
✅ tasks.md가 생성되었습니다. 다음 단계를 선택하세요: ┌─────────────────────────────────────────────────────────────┐ │ A) 직접 구현 시작 (implement) │ │ B) Superpowers Plan으로 변환 후 /execute-plan 실행 (권장) │ │ C) 계획만 저장하고 나중에 실행 │ └─────────────────────────────────────────────────────────────┘
B 선택 시 변환
docs/plans/YYYY-MM-DD-feature-implementation.md 생성:
markdown
# Implementation Plan: [Feature Name] ## Overview [spec.md에서 추출한 기능 요약] ## Tasks ### Batch 1: Setup - [ ] T001: 프로젝트 구조 생성 - [ ] T002: 의존성 설치 ### Batch 2: Core (User Story 1) - [ ] T003: [P] User 모델 생성 - [ ] T004: UserService 구현 ## Review Checkpoints - Batch 1 완료 후: 프로젝트 빌드 확인 - Batch 2 완료 후: US1 독립 테스트 통과 확인
그 후 안내:
code
📋 Superpowers plan이 생성되었습니다: docs/plans/YYYY-MM-DD-feature-implementation.md 실행하려면: /superpowers:execute-plan
Directory Structure
code
project/ ├── .sdd/ # SDD 워킹 디렉토리 │ └── specs/ │ └── 001-feature/ │ ├── spec.md │ ├── plan.md │ ├── tasks.md │ ├── data-model.md │ └── contracts/ ├── docs/plans/ # Superpowers plans ├── src/ # 소스 코드 └── tests/ # 테스트
Common Mistakes
| 실수 | 해결책 |
|---|---|
| specify에 기술 언급 | WHAT/WHY만, 기술은 plan에서 |
| User Story 독립성 없음 | 각 Story는 단독 테스트 가능해야 |
| tasks 없이 implement | 반드시 tasks → implement 순서 |
| 우선순위 없는 Story | P1, P2, P3 필수 지정 |
Integration Workflow
Superpowers와 함께 사용 (권장)
code
1. /superpowers:brainstorm → 아이디어 정제
↓
2. specify: [기능 설명] → 명세 작성
↓
3. plan: [기술 스택] → 계획 수립
↓
4. tasks (→ B 선택) → Superpowers plan 변환
↓
5. /superpowers:execute-plan → 배치별 실행 + 리뷰
File References
템플릿 파일 (필요시 참조):
- •@templates/spec-template.md
- •@templates/plan-template.md
- •@templates/tasks-template.md