2025년 9월 GitHub은 Spec Kit이라는 새로운 개발 방식을 발표했다.
핵심은 단순하다:
“코드를 먼저 짜고 거기에 의미를 붙이는 게 아니라,
스펙을 먼저 명확히 정의하고, 그 스펙을 기반으로 AI 에이전트가 코드를 생성하는 방식으로 전환하자.”
AI 기반 코딩이 보편화되면서 생기는 문맥(shared context) 문제를 해결하려는 시도이며, GitHub Spec Kit은 이를 실무에서 일관되게 적용할 수 있는 툴킷이다.
AI 에이전트는 코드를 잘 짜지만, 다음 문제를 자주 만든다:
즉, “무엇을 만들고 왜 만드는가”가 명확하지 않으면
AI는 문제를 더 심각하게 악화시킨다.
스펙 → 코드 로 방향을 바꿔야 한다
코드는 한번 작성되면 강력한 제약이 된다.
그래서 스펙 없이 바로 코드부터 작성하면:
→ 즉, 코드를 기반으로 협업·의사결정하는 방식은 한계
SDD는 이 문제를 해결하기 위한 개발 문화이다.
SDD는 다음과 다르다:
기술적 결정의 ‘이유’를 명확하게 만들고,
이를 살아있는(living) 문서로 유지하는 것.
SDD는 다음을 해결한다:
Spec Kit은 SDD를 실제로 실천하게 해주는 도구이며 구성은 두 가지:
프로젝트를 SDD 구조로 자동 셋업해주는 CLI
설치 예시:
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
실행 후 선택하게 되는 항목:
CLI가 하는 일:
.specify/ 폴더 생성.github/prompts/ (에이전트별 프롬프트 생성)Spec Kit은 아래 구조를 생성한다:
.github/
prompts/
plan.prompt.md
specify.prompt.md
tasks.prompt.md
.specify/
memory/
constitution.md
constitution_update_checklist.md
scripts/
powershell/
check-task-prerequisites.ps1
...
templates/
spec-template.md
plan-template.md
tasks-template.md
agent-file-template.md
spec-template.md→ "무엇을 만들 것인가" 정의 (기능 요구사항 중심)
plan-template.md→ "어떻게 만들 것인가" 정의 (기술 스택, 구조, 데이터 계약)
tasks-template.md→ 계획을 실행 가능한 작업 단위로 분해
constitution.md→ 프로젝트의 불변 원칙(Non-negotiable rules)
(예: 테스트 커버리지 규칙, CLI 우선 규칙 등)
SDD의 핵심은 “의사결정의 기준”을 명문화하고
AI 에이전트가 이를 준수하도록 만드는 것.
GitHub Spec Kit은 에이전트가 직접 프롬프트를 만들어두었기 때문에
다음 세 가지 명령어만 사용하면 된다.
/specify무엇을 만들까? 왜 필요한가?
기술적 구현 내용은 배제됨
(기술 선택은 /plan 단계)
/plan기능을 어떻게 만들 것인가?
이 단계는 constitution.md를 기반으로 제한된다.
예:
"프론트는 React만 사용한다"
"테스트는 Vitest로 작성해야 한다"
/tasks계획을 작업 단위로 분해
/specify 실행 → 스펙 파일 생성→ 리뷰 및 수정
/plan 실행 → 기술 계획 파일 생성→ 리뷰 및 수정
/tasks 실행 → 실행 가능한 태스크 목록 생성→ 리뷰 후 에이전트에게 구현 요청
이후:
코드 기반 컨텍스트 제공만으로는 모델 비용 폭발 → 비효율
에이전트는 markdown 기반 구조적 문서 입력을 잘 처리함
예:
“동일 스펙으로 Rust 버전 + Go 버전 2가지 만들어줘”
(SDD의 핵심 가치)
GitHub Spec Kit은 단순한 템플릿 툴이 아니다.
“AI 기반 개발 시대에 필요한 팀 공유 컨텍스트 관리 방식”을 정착시키는 도구이다.
새로운 기능 하나 만들 때도,
버그를 수정할 때도,
코드보다 스펙이 먼저여야 한다.
Spec Kit은 이 원칙을
VSCode, GitHub, AI 에이전트 환경에 직접 녹여낸 SDD 실천 도구이다.