제품 변경을 계획할 때, 현재 시스템의 제약(constraint)을 3개 관점에서 발견하고 정리하여 판단을 돕는 도구입니다.
(Sprint Kit은 Ontology-as-Code 구조로 설계된 Knowledge-Based Design 프로젝트입니다. 도메인 엔티티, 상태 전이, 제약 관계를 코드로 정의하고, 이 정의를 기반으로 제품 변경 과정을 자동 검증합니다.)
사용자는 제품 전문가(PO)입니다. 방향을 결정하고, 화면(Surface)을 확인하며, 각 제약에 대해 어떻게 처리할지 선택합니다. 기술적인 분석과 구현 명세 생성은 시스템이 수행합니다.
npm install sprint-kit제품 변경은 "이렇게 바꾸고 싶다"에서 시작하지만, 실제로 진행하면 기존 시스템과 충돌하는 지점이 나타납니다. 예를 들어:
- Experience(사용자 경험): 새 화면을 추가하면 기존 화면의 흐름이 끊어지는 경우
- Code(코드): 변경에 필요한 데이터가 현재 API에서 제공되지 않는 경우
- Policy(정책): 이용약관이나 사업 규칙과 충돌하는 경우
Sprint Kit은 이런 충돌(constraint)을 소스 코드, 정책 문서, 디자인 시스템에서 미리 찾아내고, PO가 각각에 대해 "반영한다(inject) / 보류한다(defer) / 무시한다(override)"를 결정할 수 있도록 정리합니다.
(Brief 또는 대화) → Exploration → Align → Draft → Compile → Pre-Apply Review → PRD → PRD Review → Apply → Validate → Close
| 단계 | 하는 일 | 누가 결정하나 |
|---|---|---|
| Start | 목표를 말하거나, Brief를 작성합니다. Brief 없이 대화만으로도 시작할 수 있습니다 | PO가 시작 |
| Exploration | sprint-kit이 현재 서비스 상태를 설명하고, 옵션을 제시하며, 대화를 통해 요구사항을 함께 구체화합니다. 6개 Phase(목적→영역→현재 상태→시나리오→가정 검증→범위)를 거칩니다 | PO + sprint-kit 공동 |
| Align | Exploration 결과로 Align Packet을 생성하여 방향과 범위를 확정합니다 | PO가 방향 승인 |
| Draft | 화면 모형(Surface)을 만들고, PO가 확인합니다. 확정 후 상세 제약을 발견하여 Draft Packet으로 각 제약의 처리 방법을 묻습니다 | PO가 각 제약을 결정 |
| Compile | PO의 결정을 바탕으로 구현 명세(Build Spec), 변경 파일 목록(delta-set), 검증 계획(validation-plan)을 자동 생성합니다 | 시스템이 자동 생성 |
| Pre-Apply Review | 구현 전에 정책 정합성, 기존 기능 정합성, 작동 로직을 검증합니다 (적합성 축) | 에이전트 + PO 확인 |
| PRD | scope 전체 과정의 결정을 하나의 문서(14개 섹션)로 통합합니다 | 시스템이 자동 생성 |
| PRD Review | 8개 독립 관점에서 PRD의 내부 일관성과 PO 판단 충분성을 검증합니다 (품질 + 판단적합성 축) | 에이전트 패널 |
| Apply | 생성된 명세에 따라 실제 코드를 수정합니다 | Builder가 실행 |
| Validate | 검증 계획의 시나리오를 실행하여 구현이 올바른지 확인합니다 | Builder가 실행 |
| 명령어 | 시점 | 하는 일 |
|---|---|---|
/start |
시작할 때 | 대화 또는 Brief로 시작합니다. Exploration을 거쳐 Align Packet이 생성됩니다 |
/align |
Align Packet을 받았을 때 | 방향과 범위를 승인/수정/거절합니다 |
/draft |
방향이 확정된 후 | 화면 모형을 확인하고, 각 제약에 대해 결정합니다. 이후 자동으로 Compile까지 진행됩니다 |
Sprint Kit이 제약을 찾는 3개 관점입니다.
| 관점 | 무엇을 보는가 | 예시 |
|---|---|---|
| Experience | 사용자가 보고 만지는 것 | 화면 배치 충돌, 누락된 흐름, 디자인 규격 위반 |
| Code | 시스템이 실행하는 것 | DB 스키마 부재, API 호환성, 상태 전이 누락 |
| Policy | 규칙이 제약하는 것 | 이용약관 충돌, 사업 규칙 모순, 규제 요건 |
발견된 각 제약에 대해 PO가 선택합니다:
| 결정 | 의미 | 예시 |
|---|---|---|
| inject | 이 제약을 구현에 반영합니다 | "노쇼 후 재신청 화면을 추가합니다" |
| defer | 이번에는 보류하고 다음에 처리합니다 | "정규 수강생 화면 변경은 다음 scope에서" |
| override | 알고 있지만 의도적으로 무시합니다 | "이 규격 차이는 허용합니다" |
| clarify | 외부 확인이 필요합니다 | "법무팀에 약관 적용 여부를 확인해야 합니다" |
Sprint Kit이 생성하는 주요 문서입니다.
| 산출물 | 언제 생성되나 | 내용 |
|---|---|---|
| Align Packet | /start 완료 시 |
요청(to-be) vs 현재 상태(as-is) + 충돌 지점 정리 |
| Surface | /draft 진행 중 |
화면 모형 (브라우저에서 확인 가능) |
| Draft Packet | Surface 확정 후 | 각 제약별 상황 설명 + 선택지 + 추천 |
| Build Spec | Compile 완료 시 | 구현 항목, 변경 파일 목록, 검증 계획 |
| PRD | Compile 완료 시 | scope 전체 과정에서 축적된 정보를 하나의 문서로 통합 |
| Exploration Log | Exploration 중 | 대화 전문 — 왜 그렇게 결정했는가의 맥락 기록 |
PRD는 scope의 모든 결정을 통합하는 최종 산출물입니다. PRD의 무결성은 3개 축에서 검증됩니다.
| 축 | 질문 | 담당 |
|---|---|---|
| 적합성 (Conformance) | 외부 기준(정책, brownfield)과 부합하는가? | Pre-Apply Review |
| 품질 (Quality) | 내부적으로 일관되고 완전한가? | PRD 다관점 리뷰 |
| 판단 적합성 (Judgment Fitness) | PO가 올바른 판단을 위한 충분한 정보가 있는가? | PRD 다관점 리뷰 |
PRD 다관점 리뷰는 8개 독립 관점에서 동시에 검증한 후, Philosopher가 종합합니다.
| 관점 | 무엇을 검증하나 |
|---|---|
| Logic | constraint 결정 간 논리적 모순 |
| Structure | 14개 섹션 완전성, 추적 체인 반영 |
| Dependency | brownfield 의존성 정합 |
| Semantics | 용어 일관성, brief↔PRD 의미 정확성 |
| Pragmatics | Builder 실행 가능성, PO 판단 충분성 |
| Evolution | 구현 후 확장성 위험 |
| Coverage | constraint 커버리지, 결정 누락 |
| Conciseness | 과잉 명세, 중복 |
리뷰에서 해소되지 않는 문제가 발견되면(gap_found), constraint 재결정 → 재compile → 재PRD → 재review 사이클을 거칩니다.
Compile이 생성하는 구현 명세가 올바른지 자동으로 검증합니다. PO가 별도로 조치할 필요는 없습니다.
| 검증 단계 | 하는 일 | 문제 발견 시 |
|---|---|---|
| L1 | 모든 제약이 구현 명세에 빠짐없이 포함되었는지 확인 | 자동 재시도 |
| L2 | 각 결정(inject/defer/override)이 올바르게 반영되었는지 확인 | 자동 재시도 |
| L3 | 미검증 가정, 정책 변경 필요, 불변 제약 미커버 등을 경고 | 경고만 (진행 가능) |
Sprint Kit은 AI 코딩 에이전트와 함께 동작합니다.
| 도구 | 상태 |
|---|---|
| Claude Code | 사용 가능 (hooks, skills, MCP 내장) |
| Codex (OpenAI) | 계획 중 |
| Cursor | 계획 중 |
핵심 워크플로우는 도구에 독립적입니다. 도구별로 달라지는 것은 에이전트 프로토콜 문서와 hook 설정뿐입니다.
.sprint-kit.yaml 파일에 프로젝트의 소스를 등록합니다.
target_stack:
framework: "Next.js 15"
styling: "Tailwind CSS v3 + CVA"
default_sources:
- type: github-tarball
url: https://github.com/org/app
description: 앱 소스코드
usage_hint: context
- type: add-dir
path: ./sources
description: 디자인 가이드, 이용약관
usage_hint: context
- type: mcp
provider: clickhouse
description: 사용자 행동 이벤트 분석
usage_hint: contextusage_hint는 소스를 언제 읽을지 제어합니다:
grounding_only(기본값) — Align 단계에서 1회 스캔context— Surface 생성과 Compile 시에도 다시 읽음full— 모든 단계에서 항상 참조
소스 유형: add-dir(로컬), github-tarball(GitHub), figma-mcp(Figma), obsidian-vault(Obsidian), mcp(MCP 서버 — ClickHouse 등 외부 데이터 소스)
온톨로지 bundle을 명시하려면 add-dir 또는 github-tarball source에 content_role: ontology_bundle를 지정합니다.
default_sources:
- type: github-tarball
url: https://github.com/org/domain-assets
ref: main
content_role: ontology_bundle
ontology_files:
code_mapping: ontology/code-mapping.yaml
behavior: ontology/behavior.yaml
model: ontology/model.yamlontology_files는 nested path override입니다. 생략하면 source 내부에서 exact filename(code-mapping.yaml, behavior.yaml, model.yaml)을 탐색합니다.
src/ 시스템 코드 (kernel, commands, scanners, compilers, renderers 등)
docs/ 런타임 문서 (에이전트 프로토콜, ontology-map)
domains/ 검증 도메인 문서 (prd-integrity 등)
dev-docs/ 개발 문서 (spec, design, guide, deprecated)
scripts/ 도구 스크립트 (ontology-map 생성, 의존 방향 검증 등)
scopes/ scope 작업 공간 (프로젝트별로 생성)
sources/ 로컬 참고 자료 (디자인 가이드, 이용약관 등)
.sprint-kit.yaml 프로젝트 설정 (소스 목록, 기술 스택)
| 문서 | 내용 |
|---|---|
docs/agent-protocol/ |
에이전트 실행 프로토콜 (start, align, draft, prd-review, exploration, ontology-generate) |
docs/ontology-map.md |
자동 생성 타입 맵 (npm run ontology-map) |
| 문서 | 내용 |
|---|---|
dev-docs/spec/blueprint.md |
시스템 정의 — 상태 기계, 모듈 구조, 신뢰 모델 |
dev-docs/spec/architecture.md |
시스템 설계, 데이터 흐름, 저장 구조 |
dev-docs/spec/event-state-contract.md |
이벤트 분류, 상태 전이 매트릭스 |
dev-docs/spec/constraint-discovery.md |
3개 관점 탐색, 제약 생명주기 |
dev-docs/spec/build-spec-compile.md |
Build Spec 구조, Compile Defense 규칙 (L1/L2/L3) |
dev-docs/design/ |
설계 제안서 (Adaptive Align, 온톨로지 기반 제약 발견, RLM 심층 분석) |
v1.0.0에서 추가된 기능입니다. 도메인 온톨로지(YAML 파일)가 소스에 포함되어 있으면, grounding 단계에서 ontology bundle을 준비하고 이후 ontology-guided code selection에 사용할 수 있습니다.
| 관점 | 수집 대상 |
|---|---|
| Semantics | 도메인 용어가 정의된 코드 위치 |
| Dependency | 변경 대상 엔티티의 의존 관계 |
| Logic | 상태 전이, 조건 분기, 비즈니스 규칙 |
| Structure | API 엔드포인트, 스키마, 설정 파일 |
| Pragmatics | 실제 사용 패턴, 호출 빈도 |
| Evolution | 변경 이력, 확장 가능성 |
이 기능은 선택적입니다. 온톨로지 소스가 없으면 기존 방식(3개 관점 소스 스캔)으로 동작합니다.
권장 계약:
content_role: ontology_bundle로 ontology source를 명시합니다.- 필요하면
ontology_files로 YAML 상대 경로를 지정합니다. github-tarball은 재현성을 위해ref지정이 권장됩니다.- explicit declaration이 없으면 ontology bundle 준비를 수행하지 않습니다.
코드베이스에서 도메인 온톨로지 YAML을 자동 생성하는 2단계 파이프라인입니다.
| 단계 | 하는 일 | 성격 |
|---|---|---|
| Stage 1 | 코드에서 엔티티, enum, 상태 전이, 관계, 정책 상수를 추출 | 결정론적 (코드) |
| Stage 2 | 추출된 구조에 비즈니스 의미를 부여하여 YAML 완성 | 비결정론적 (LLM) |
Stage 1은 6가지 진입점(HTTP, 스케줄러, 이벤트 리스너, 메시지 컨슈머, 배치, main) + 서비스 보조 진입점에서 출발하여, 호출 그래프를 추적하며 도메인 구조를 수집합니다. Stage 2는 에이전트 프로토콜(docs/agent-protocol/ontology-generate.md)에 따라 의미를 부여합니다.
기존 수작업 온톨로지가 있으면 자동 생성을 건너뜁니다. Stage 2가 실패해도 Stage 1의 코드 별칭만으로 불완전 YAML이 생성됩니다 (graceful degradation).
- 소스 파일 61개, 테스트 47파일 1,124건
- 상태 15개 (
exploring포함), 이벤트 46종, Compile Defense 규칙 16개 + PRD Review 8관점 - 온톨로지 소비 파이프라인 4단계 (index → query → resolve → collect)
- 온톨로지 생성 파이프라인 2단계 (Stage 1: 구조 추출, Stage 2: 의미 부여)
ISC