SDD - Detailed process
TMThttps://github.com/github/spec-kit?tab=readme-ov-file#detailed-process
Specify CLI를 사용하여 프로젝트를 부트스트랩할 수 있습니다. 이 도구는 필요한 아티팩트를 환경에 가져옵니다. 다음 명령어를 실행하세요:
specify init <project_name>
# uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>또는 현재 디렉터리에서 초기화하려면:
specify init --here터미널에서 사용할 AI 에이전트를 선택하라는 메시지가 표시됩니다. 또는 명령어에 직접 지정할 수도 있습니다:
specify init <project_name> --ai claude
specify init <project_name> --ai gemini
specify init <project_name> --ai copilot
# 또는 현재 디렉터리에서:
specify init --here --ai claudeCLI는 Claude Code 또는 Gemini CLI가 설치되어 있는지 확인합니다. 설치되어 있지 않거나, 템플릿만 받고 싶다면 --ignore-agent-tools 옵션을 사용하세요:
specify init <project_name> --ai claude --ignore-agent-tools1단계: 프로젝트 부트스트랩
프로젝트 폴더로 이동하여 AI 에이전트를 실행하세요. 예시에서는 claude를 사용합니다.
/specify, /plan, /tasks 명령어가 보이면 올바르게 설정된 것입니다.
첫 단계는 새로운 프로젝트 스캐폴딩을 만드는 것입니다. /specify 명령어를 사용해 개발하려는 구체적인 요구사항을 입력하세요.
[!IMPORTANT] 무엇을, 왜 만들고자 하는지 최대한 명확하게 작성하세요. 이 단계에서는 기술 스택에 집중하지 마세요.
예시 프롬프트:
Taskify라는 팀 생산성 플랫폼을 개발합니다. 사용자는 프로젝트를 생성하고, 팀원을 추가하며,
작업을 할당하고, 댓글을 남기고, 칸반 스타일의 보드에서 작업을 이동할 수 있어야 합니다. 이 초기 단계에서는
"Create Taskify"라는 기능으로, 여러 사용자가 미리 정의되어 있습니다. 제품 관리자 1명과 엔지니어 4명, 총 5명의 사용자가 있습니다.
샘플 프로젝트 3개를 만듭니다. 각 작업의 상태는 "To Do", "In Progress", "In Review", "Done"과 같은 표준 칸반 컬럼을 사용합니다.
이 애플리케이션에는 로그인 기능이 없습니다. 각 작업 카드에서 상태를 변경할 수 있고, 무제한 댓글을 남길 수 있습니다.
작업 카드에서 유효한 사용자 중 한 명을 할당할 수 있습니다. 앱을 처음 실행하면 5명의 사용자 목록이 표시되고,
사용자를 클릭하면 프로젝트 목록이 보입니다. 프로젝트를 클릭하면 해당 프로젝트의 칸반 보드가 열립니다.
각 컬럼을 볼 수 있고, 카드를 드래그 앤 드롭으로 이동할 수 있습니다. 현재 로그인한 사용자에게 할당된 카드는
다른 카드와 다른 색상으로 표시되어 쉽게 구분할 수 있습니다. 자신이 남긴 댓글은 수정 및 삭제할 수 있지만,
다른 사람이 남긴 댓글은 수정/삭제할 수 없습니다.프롬프트 입력 후 Claude Code가 기획 및 명세 초안 작성 프로세스를 시작합니다. 또한 저장소 설정을 위한 내장 스크립트가 실행됩니다.
이 단계가 완료되면 새로운 브랜치(예: 001-create-taskify)와 specs/001-create-taskify 디렉터리에 명세 파일이 생성됩니다.
생성된 명세에는 사용자 스토리와 기능 요구사항이 포함되어야 합니다.
이 시점에서 프로젝트 폴더 구조는 다음과 비슷해야 합니다:
├── memory
│ ├── constitution.md
│ └── constitution_update_checklist.md
├── scripts
│ ├── check-task-prerequisites.sh
│ ├── common.sh
│ ├── create-new-feature.sh
│ ├── get-feature-paths.sh
│ ├── setup-plan.sh
│ └── update-claude-md.sh
├── specs
│ └── 001-create-taskify
│ └── spec.md
└── templates
├── CLAUDE-template.md
├── plan-template.md
├── spec-template.md
└── tasks-template.md2단계: 기능 명세 명확화
기본 명세가 생성되면, 첫 시도에서 제대로 반영되지 않은 요구사항을 명확히 할 수 있습니다. 예를 들어, Claude Code 세션에서 다음과 같이 입력할 수 있습니다:
각 샘플 프로젝트마다 5~15개의 작업이 무작위로 다양한 상태에 분포되어 있어야 합니다. 각 상태에 최소 1개 이상의 작업이 있어야 합니다.또한 Claude Code에게 검토 및 승인 체크리스트를 검증하도록 요청할 수 있습니다. 다음 프롬프트를 사용할 수 있습니다:
검토 및 승인 체크리스트를 읽고, 명세가 기준을 충족하면 각 항목을 체크하세요. 충족하지 않으면 비워두세요.Claude Code와의 상호작용을 통해 명세를 명확히 하고 질문하는 기회로 삼으세요. 첫 시도를 최종본으로 여기지 마세요.
3단계: 계획 생성
이제 기술 스택 등 구체적인 기술 요구사항을 명시할 수 있습니다. /plan 명령어를 사용해 다음과 같이 입력하세요:
이 프로젝트는 .NET Aspire와 Postgres 데이터베이스를 사용합니다. 프론트엔드는 Blazor 서버로, 드래그 앤 드롭 작업 보드와 실시간 업데이트를 지원해야 합니다. REST API는 projects, tasks, notifications API로 구성합니다.이 단계의 결과로 여러 구현 세부 문서가 생성되며, 디렉터리 구조는 다음과 비슷해집니다:.
├── CLAUDE.md
├── memory
│ ├── constitution.md
│ └── constitution_update_checklist.md
├── scripts
│ ├── check-task-prerequisites.sh
│ ├── common.sh
│ ├── create-new-feature.sh
│ ├── get-feature-paths.sh
│ ├── setup-plan.sh
│ └── update-claude-md.sh
├── specs
│ └── 001-create-taskify
│ ├── contracts
│ │ ├── api-spec.json
│ │ └── signalr-spec.md
│ ├── data-model.md
│ ├── plan.md
│ ├── quickstart.md
│ ├── research.md
│ └── spec.md
└── templates
├── CLAUDE-template.md
├── plan-template.md
├── spec-template.md
└── tasks-template.mdresearch.md 문서를 확인하여 올바른 기술 스택이 사용되었는지 검토하세요. 필요하다면 Claude Code에게 추가 조사를 요청할 수 있습니다.
특히 빠르게 변화하는 기술(.NET Aspire, JS 프레임워크 등)이라면, 다음과 같이 추가 연구를 요청할 수 있습니다:
구현 계획과 세부사항을 검토하여 추가 연구가 필요한 부분을 찾아 research 문서에 구체적인 버전 정보를 추가하고, 각 항목별로 병렬 연구 작업을 생성하세요.Claude Code가 잘못된 방향으로 연구를 진행한다면, 다음과 같이 방향을 잡아줄 수 있습니다:
구현 중 불확실하거나 추가 연구가 필요한 작업 목록을 작성하고, 각 작업별로 별도의 연구 작업을 생성하세요. 일반적인 .NET Aspire 연구는 도움이 되지 않으니, 구체적인 질문 해결에 집중하세요.[!Note] Claude Code가 요청하지 않은 컴포넌트를 추가할 수 있습니다. 변경 이유와 근거를 명확히 하도록 요청하세요.
4단계: 계획 검증
계획이 완성되면 Claude Code에게 누락된 부분이 없는지 검토하도록 하세요. 다음과 같이 요청할 수 있습니다:
구현 계획과 세부 파일을 검토하여, 핵심 구현이나 세부 개선 단계에서 참고할 수 있는 정보가 충분한지 확인하세요.이 과정을 통해 계획을 다듬고, 잠재적인 누락이나 실수를 방지할 수 있습니다. 초기 검토가 끝나면 체크리스트를 다시 확인하도록 하세요.
GitHub CLI가 설치되어 있다면, 현재 브랜치에서 main으로 풀 리퀘스트를 생성하도록 Claude Code에 요청할 수도 있습니다.
[!Note] 구현 전, 과도하게 설계된 부분이 있는지 Claude Code에게 교차 검토를 요청하세요. 과도한 설계가 있다면 해결하도록 하세요. 계획 수립 시 constitution을 반드시 준수해야 합니다.
5단계: 구현
준비가 완료되면 Claude Code에게 구현을 지시하세요(예시 경로 포함):
implement specs/002-create-taskify/plan.mdClaude Code가 자동으로 구현을 시작합니다.
[!Important] Claude Code는 dotnet 등 로컬 CLI 명령어를 실행합니다. 사전에 설치되어 있어야 합니다.
구현 단계가 완료되면 Claude Code에게 애플리케이션을 실행해보고, 발생하는 빌드 오류를 해결하도록 요청하세요. 애플리케이션이 실행되지만 런타임 오류가 발생하고, 그 오류가 CLI 로그에서 직접 확인할 수 없는 경우(예: 브라우저 로그에 표시되는 오류), 해당 오류를 복사해서 Claude Code에 붙여넣고 해결을 시도하게 하세요.