GitHub Spec Kit은 코드와 상호작용하는 AI 에이전트 및 모델 개발자를 위한 명세(spec) 모음입니다. 이 명세들은 AI 에이전트가 파일 시스템과 상호작용하고, 명령을 실행하며, 사용자와 소통하는 방식에 대한 모범 사례(best practice)를 정의합니다.

이러한 표준을 채택함으로써, 우리는 AI 에이전트 개발 생태계가 더욱 강력하고 상호 운용 가능하도록 만들 수 있습니다.

원문: https://github.com/github/spec-kit (Translated by Google Gemini) (2025-09-17 기준)


🤔 명세 기반 개발이란 무엇입니까?#

명세 기반 개발은 전통적인 소프트웨어 개발의 판도를 뒤집습니다. 수십 년 동안 코드가 왕이었습니다 — 명세는 코딩이라는 “진짜 작업"이 시작되면 만들어졌다가 버려지는 비계(scaffolding)에 불과했습니다. 명세 기반 개발은 이를 변화시킵니다: 명세가 실행 가능해지며, 단지 구현을 안내하는 것을 넘어 직접 작동하는 구현체를 생성합니다.

⚡ 시작하기#

1. Specify 설치#

사용 중인 코딩 에이전트에 따라 프로젝트를 초기화합니다.

uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

2. 명세 생성#

/specify 명령을 사용하여 만들고 싶은 것을 설명합니다. 기술 스택이 아닌 무엇을(what), 왜(why) 에 집중하세요.

/specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.

3. 기술 구현 계획 수립#

/plan 명령을 사용하여 기술 스택과 아키텍처 선택사항을 제공합니다.

/plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.

4. 분해 및 구현#

/tasks를 사용하여 실행 가능한 작업 목록을 생성한 다음, 에이전트에게 기능 구현을 요청합니다.

자세한 단계별 지침은 종합 가이드를 참조하세요.

📽️ 영상 개요#

Spec Kit이 실제로 작동하는 모습을 보고 싶으신가요? 영상 개요를 시청하세요!

🔧 Specify CLI 참조#

specify 명령은 다음 옵션을 지원합니다.

명령어#

명령어 설명
init 최신 템플릿으로 새 Specify 프로젝트를 초기화합니다.
check 설치된 도구들(git, claude, gemini, code/code-insiders, cursor-agent)을 확인합니다.

specify init 인자 & 옵션#

인자/옵션 타입 설명
<project-name> 인자 새 프로젝트 디렉터리의 이름입니다 (--here 사용 시 선택 사항).
--ai 옵션 사용할 AI 어시스턴트: claude, gemini, copilot, 또는 cursor.
--script 옵션 사용할 스크립트 변형: sh (bash/zsh) 또는 ps (PowerShell).
--ignore-agent-tools 플래그 Claude Code와 같은 AI 에이전트 도구 확인을 건너뜁니다.
--no-git 플래그 git 저장소 초기화를 건너뜁니다.
--here 플래그 새 디렉터리를 만드는 대신 현재 디렉터리에 프로젝트를 초기화합니다.
--skip-tls 플래그 SSL/TLS 검증을 건너뜁니다 (권장하지 않음).
--debug 플래그 문제 해결을 위한 상세 디버그 출력을 활성화합니다.

📚 핵심 철학#

명세 기반 개발은 다음을 강조하는 구조화된 프로세스입니다.

  • 명세가 “어떻게“보다 “무엇을” 먼저 정의하는 의도 기반 개발(Intent-driven development)
  • 가드레일과 조직적 원칙을 사용한 풍부한 명세 생성(Rich specification creation)
  • 프롬프트로부터 한 번에 코드를 생성하는 것이 아닌 다단계 정제(Multi-step refinement)
  • 명세 해석을 위한 고급 AI 모델 능력에 대한 높은 의존성(Heavy reliance)

🌟 개발 단계#

단계 초점 주요 활동
0-to-1 개발 (“그린필드”) 처음부터 생성 <ul><li>높은 수준의 요구사항에서 시작</li><li>명세 생성</li><li>구현 단계 계획</li><li>프로덕션 수준의 애플리케이션 구축</li></ul>
창의적 탐색 병렬 구현 <ul><li>다양한 솔루션 탐색</li><li>여러 기술 스택 및 아키텍처 지원</li><li>UX 패턴 실험</li></ul>
반복적 개선 (“브라운필드”) 브라운필드 현대화 <ul><li>반복적으로 기능 추가</li><li>레거시 시스템 현대화</li><li>프로세스 조정</li></ul>

🎯 실험적 목표#

저희의 연구 및 실험은 다음에 초점을 맞추고 있습니다.

기술 독립성#

  • 다양한 기술 스택을 사용하여 애플리케이션 생성
  • 명세 기반 개발이 특정 기술, 프로그래밍 언어 또는 프레임워크에 얽매이지 않는 프로세스라는 가설 검증

엔터프라이즈 제약 조건#

  • 미션 크리티컬 애플리케이션 개발 시연
  • 조직적 제약 조건(클라우드 제공자, 기술 스택, 엔지니어링 관행) 통합
  • 엔터프라이즈 디자인 시스템 및 규정 준수 요구사항 지원

사용자 중심 개발#

  • 다양한 사용자 집단과 선호도에 맞는 애플리케이션 구축
  • 다양한 개발 접근 방식(바이브 코딩부터 AI 네이티브 개발까지) 지원

창의적 및 반복적 프로세스#

  • 병렬 구현 탐색 개념 검증
  • 강력한 반복적 기능 개발 워크플로우 제공
  • 업그레이드 및 현대화 작업을 처리하도록 프로세스 확장

🔧 사전 요구사항#