spec-kit 워크플로우
13 Jun 2026 | claudespec-kit 워크플로우
spec-kit은 무작위 프롬프트 대신 구조화된 개발 흐름을 제공함
₩constitution → specify → plan → tasks → implement₩ 순서로 진행하며, 이를 통해 체계적으로 코드 전환이 가능함
speci-kit의 개발 워크플로우는 아래의 5가지 단계로 진행
| 명령어 | 설명 |
|---|---|
| /speckit-constitution | 프로젝트 원칙 수립 |
| /speckit-specify | 요구사항 정의 |
| /speckit-plan | 계획 수립 |
| /speckit-tasks | 작업 분해 |
| /speckit-implement | 구현 |
0. claude 실행
아래 명령어들은 claude CLI 상태에서 호출하는 명령어임
speckit init도 이루어져야 함. 그래야 claude에서 명령어가 생성됨
1. Constitution (프로젝트 원칙 수립)
프로젝트 전체를 관통하는 개발 원칙과 철학을 정의
❯ /speckit-constitution 이 프로젝트는 개인 작업 관리를 위한 웹 기반 Todo 애플리케이션입니다.
핵심 원칙:
- UI는 단순하고 직관적으로 유지 — 불필요한 복잡성 배제
- 직접 구현보다 검증된 라이브러리를 우선 사용
- 백엔드 없이 localStorage로 데이터 저장
- 모바일 우선 반응형 디자인
- 로그인이나 인증 없이 모든 기능 사용 가능
위 명령어를 입력하면 claude가 자세한 문서를 생성해 줌


모든 것을 승인하면 아래와 같은 메시지 나오면서 문서 작성 완료
결과 화면
Constitution 작성 완료
버전: 1.0.0 (최초 제정) 버전 증가 근거: 템플릿에서 최초로 구체적인 내용을 채워 넣은 최초 제정(1.0.0)
확정된 5가지 원칙
| # | 원칙명 | 핵심 규칙 |
|---|---|---|
| I | 단순성 우선 | 불필요한 UI 요소·옵션 금지. 복잡성 도입 시 plan.md에 정당화 기록 필수 |
| II | 라이브러리 우선 | 공통 기능은 반드시 기존 라이브러리 탐색 후 채택. 직접 구현 시 사유 기록 필수 |
| III | LocalStorage-Only | 외부 서버·API 금지. JSON 스키마 버전 필드 포함 권장 |
| IV | 모바일 우선 반응형 | 320px 기준 설계, 터치 타겟 44px 이상, min-width 확장 |
| V | 인증 불필요 | 로그인/OAuth/세션 로직 일절 금지 |
템플릿 검토 결과
- .specify/templates/plan-template.md ✅ Constitution Check 섹션 이미 존재
- .specify/templates/spec-template.md ✅ 인증 요구사항 없음 — 충돌 없음
- .specify/templates/tasks-template.md ✅ 백엔드/인증 태스크 카테고리 불필요
- .specify/templates/commands/ — 디렉토리 없음, 스킵
권장 커밋 메시지
docs: ratify constitution v1.0.0 (Todo App — simplicity, library-first, localStorage, mobile-first, auth-free)
2. Specify (요구사항 정의)
/speckit-specify
다음 기능을 포함하는 웹 기반 Todo 애플리케이션을 만들어주세요:
- 텍스트 입력으로 새 할 일 추가
- 체크박스로 완료/미완료 토글
- 개별 할 일 삭제
- 상태별 필터링: 전체 / 진행 중 / 완료됨
- 남은 할 일 개수 표시
- 페이지 새로고침 후에도 유지되도록 localStorage에 저장
- 완료된 항목 전체 삭제 기능
기술 스택: HTML, 순수 CSS, 순수 JavaScript (프레임워크 없음)
그러면 아래와 같은 결과 화면에 터미널에 출력됨
결과 화면
완료 보고
Feature Directory: specs/001-todo-app Spec File: specs/001-todo-app/spec.md Checklist: specs/001-todo-app/checklists/requirements.md
체크리스트 결과: 전체 통과 ✅
| 항목 | 결과 |
|---|---|
| Content Quality (4개) | ✅ 모두 통과 |
| Requirement Completeness (8개) | ✅ 모두 통과 |
| Feature Readiness (4개) | ✅ 모두 통과 |
| [NEEDS CLARIFICATION] 마커 | 없음 |
정의된 스토리 요약
| 우선순위 | 스토리 | 핵심 가치 |
|---|---|---|
| P1 | 할 일 추가 및 관리 | 추가·완료 토글·삭제 + 남은 개수 표시 |
| P2 | 상태별 필터링 | 전체 / 진행 중 / 완료됨 필터 |
| P3 | 일괄 삭제 & 데이터 영속성 | 완료 항목 전체 삭제 + localStorage 저장 |
주요 결정사항
- Constitution 예외: 사용자가 순수 JS를 명시적으로 요청 → 라이브러리 우선 원칙의 예외로 Assumptions에 기록. /speckit-plan 실행 시 plan.md Complexity Tracking에 정당화 필요.
- 범위 외: 항목 수정(edit) 기능, 데이터 내보내기/가져오기, 다중 사용자/동기화
다음 단계: /speckit-plan 으로 구현 계획을 수립하거나, /speckit-clarify 로 추가 요구사항을 명확히 할 수 있습니다.
3. Plan (계획 수립)
/speckit-plan
요구사항을 바탕으로 Todo 앱의 기술 계획을 작성해주세요.
다음 내용을 포함해주세요:
- 파일 구조 (HTML / CSS / JS)
- Todo 항목의 데이터 모델 (id, text, completed, createdAt)
- localStorage 읽기/쓰기 처리 방식
- 컴포넌트 구분: 입력 영역, 목록, 필터 바, 푸터
- 이벤트 처리 전략 (추가, 토글, 삭제, 필터)
결과 화면
완료 보고
Branch: 001-todo-app Plan File: specs/001-todo-app/plan.md
생성된 아티팩트
| 파일 | 설명 |
|---|---|
| specs/001-todo-app/plan.md | 메인 구현 계획 (이 파일) |
| specs/001-todo-app/research.md | Phase 0 — 7가지 기술 결정 문서 |
| specs/001-todo-app/data-model.md | Phase 1 — TodoItem / AppState 엔티티 정의 |
| specs/001-todo-app/contracts/storage-schema.md | localStorage 계약, UI 이벤트 계약 |
| specs/001-todo-app/quickstart.md | 8개 검증 시나리오 포함 실행 가이드 |
| CLAUDE.md | 에이전트 컨텍스트 → plan.md 경로로 업데이트 |
Constitution Check 결과
- ✅ 원칙 I, III, IV, V — 완전 준수
- ⚠️ 원칙 II — 사용자 명시 요청으로 예외 처리, Complexity Tracking에 기록됨
핵심 설계 결정
- 3파일 구조: index.html + style.css + app.js (빌드 없음)
- IIFE 패턴: 전역 스코프 오염 없이 앱 캡슐화
- 이벤트 위임: 목록 컨테이너에 단일 리스너, data-id로 분기
- 전체 재렌더: 상태 변경 시 innerHTML 교체 (규모 대비 충분)
- localStorage 스키마: todo-app-v1 키, schemaVersion: 1 포함
다음 단계: /speckit-tasks 로 구현 태스크 목록을 생성할 수 있습니다.
4. Tasks (작업 분해)
/speckit-tasks
계획을 작고 실행 가능한 태스크 단위로 분해해주세요.
의존성 순서대로 정렬해주세요 (먼저 해야 할 것부터).
태스크 형식 예시:
- [ ] 기본 구조의 index.html 생성
- [ ] CSS 리셋 및 기본 스타일 추가
- [ ] localStorage 연동 TodoStore 클래스 구현
- [ ] 상태에서 할 일 목록 렌더링
- [ ] 엔터 키로 할 일 추가 처리
- [ ] 완료 토글 처리
- [ ] 할 일 삭제 처리
- [ ] 필터 구현 (전체 / 진행 중 / 완료됨)
- [ ] 푸터에 남은 개수 표시
- [ ] "완료 항목 삭제" 버튼 로직 추가
결과 화면
완료 보고
Tasks File: specs/001-todo-app/tasks.md
태스크 요약
| 페이즈 | 태스크 수 | 내용 |
|---|---|---|
| Phase 1: Setup | 1 | 디렉토리 생성 |
| Phase 2: Foundational | 6 | HTML·CSS·JS 기반, localStorage I/O |
| Phase 3: US1 (P1) | 15 | 추가·토글·삭제·렌더링·이벤트 |
| Phase 4: US2 (P2) | 4 | 필터링 로직 + CSS |
| Phase 5: US3 (P3) | 4 | 일괄 삭제 + 영속성 검증 |
| Phase 6: Polish | 4 | 반응형·빈 상태·수동 검증 |
| 합계 | 34 |
스토리별 독립 테스트 기준
| 스토리 | 검증 시나리오 | 독립 완료 조건 |
|---|---|---|
| US1 (P1) | quickstart.md S1–S4 | 추가·토글·삭제·카운트 동작 |
| US2 (P2) | quickstart.md S5 | 필터 3가지 전환 동작 |
| US3 (P3) | quickstart.md S6–S7 | 완료 삭제 + 새로고침 복원 |
병렬 실행 가능한 태스크
- Foundational: T002+T003, T005+T006+T007 (3개씩 병렬)
- US1 CSS: T010+T011+T012
- US1 JS Mutations: T013+T014+T015
- US2와 US3 전체 페이즈: US1 완료 후 동시 진행 가능
MVP 권장 범위
Phase 1 + Phase 2 + Phase 3 (T001–T022) — US1만으로 이미 완전한 기능을 갖춘 데모 가능.
다음 단계: /speckit-implement 으로 실제 구현을 시작할 수 있습니다.
5. Implement (구현)
/speckit-implement
태스크 목록의 모든 항목을 코드로 구현해주세요.
원칙(constitution)과 요구사항(spec)을 엄격히 따라주세요.
구현 가이드라인:
- 시맨틱 HTML5 요소 사용
- JS는 단일 app.js 파일로 유지
- 외부 JS 라이브러리 사용 금지
- 상태 변경 시마다 localStorage에 즉시 저장
- 완료 전 필터링 기능 정상 동작 확인입력 내용: /speckit-constitution
결과 화면
완료 보고
구현 완료: todo-app/ — 3개 파일, 총 ~1,400줄(HTML 1.4KB / CSS 6.4KB / JS 6.1KB)
완료된 태스크: 34/34 ✅
| 페이즈 | 태스크 | 상태 |
|---|---|---|
| Phase 1: Setup | T001 | ✅ |
| Phase 2: Foundational | T002–T007 | ✅ |
| Phase 3: US1 (P1) — 추가·토글·삭제·카운트 | T008–T022 | ✅ |
| Phase 4: US2 (P2) — 필터링 | T023–T026 | ✅ |
| Phase 5: US3 (P3) — 완료 삭제·영속성 | T027–T030 | ✅ |
| Phase 6: Polish | T031–T034 | ✅ |
구현 하이라이트
- index.html: 시맨틱 HTML5 (<main>, <header>, <footer>, <nav>), 접근성 aria-label + visually-hidden 레이블, defer 스크립트
- style.css: CSS 변수 기반 팔레트, 모바일 우선(320px), 터치 타겟 min-height: 44px, @media (min-width: 768px) 데스크톱 확장
- app.js: IIFE 캡슐화, escapeHtml() XSS 방어, crypto.randomUUID() + 폴백 ID 생성, localStorage try-catch 조용한 실패, 이벤트 위임 패턴
Constitution 준수
| 원칙 | 결과 |
|---|---|
| I. 단순성 우선 | ✅ 3파일, 외부 의존성 0 |
| II. 라이브러리 우선 | ⚠️ 예외(사용자 요청) — plan.md 기록됨 |
| III. LocalStorage-Only | ✅ todo-app-v1 키, 스키마 버전 1 |
| IV. 모바일 우선 | ✅ 320px 기준, 44px 터치 타겟 |
| V. 인증 불필요 | ✅ 즉시 사용 가능 |
브라우저에서 앱이 열렸습니다. quickstart.md S1–S8 시나리오로 수동 검증을 진행해 주세요.
최종 결과
