SDD - Detailed process

TMT

https://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

Image

터미널에서 사용할 AI 에이전트를 선택하라는 메시지가 표시됩니다. 또는 명령어에 직접 지정할 수도 있습니다:

specify init <project_name> --ai claude
specify init <project_name> --ai gemini
specify init <project_name> --ai copilot
# 또는 현재 디렉터리에서:
specify init --here --ai claude

CLI는 Claude Code 또는 Gemini CLI가 설치되어 있는지 확인합니다. 설치되어 있지 않거나, 템플릿만 받고 싶다면 ‎⁠--ignore-agent-tools⁠ 옵션을 사용하세요:

specify init <project_name> --ai claude --ignore-agent-tools

1단계: 프로젝트 부트스트랩

프로젝트 폴더로 이동하여 AI 에이전트를 실행하세요. 예시에서는 ‎⁠claude⁠를 사용합니다.

Image

‎⁠/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.md

2단계: 기능 명세 명확화

기본 명세가 생성되면, 첫 시도에서 제대로 반영되지 않은 요구사항을 명확히 할 수 있습니다. 예를 들어, 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.md

‎⁠research.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.md

Claude Code가 자동으로 구현을 시작합니다.

[!Important] Claude Code는 ‎⁠dotnet⁠ 등 로컬 CLI 명령어를 실행합니다. 사전에 설치되어 있어야 합니다.

구현 단계가 완료되면 Claude Code에게 애플리케이션을 실행해보고, 발생하는 빌드 오류를 해결하도록 요청하세요. 애플리케이션이 실행되지만 런타임 오류가 발생하고, 그 오류가 CLI 로그에서 직접 확인할 수 없는 경우(예: 브라우저 로그에 표시되는 오류), 해당 오류를 복사해서 Claude Code에 붙여넣고 해결을 시도하게 하세요.

Edit this page

On this Page