sdd-tool 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -511
- package/package.json +76 -76
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SDD Tool
|
|
2
2
|
|
|
3
|
-
**Spec-Driven Development CLI** - 명세 기반
|
|
3
|
+
**Spec-Driven Development CLI** - AI와 함께하는 명세 기반 개발 도구
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/sdd-tool)
|
|
6
6
|
[](https://nodejs.org/)
|
|
@@ -9,668 +9,352 @@
|
|
|
9
9
|
|
|
10
10
|
## 개요
|
|
11
11
|
|
|
12
|
-
SDD Tool은
|
|
12
|
+
SDD Tool은 **Claude Code**와 함께 사용하도록 설계된 명세 기반 개발(Spec-Driven Development) CLI입니다. 슬래시 커맨드를 통해 AI와 대화하며 명세를 작성하고, 코드를 구현합니다.
|
|
13
13
|
|
|
14
14
|
### 핵심 개념
|
|
15
15
|
|
|
16
16
|
- **명세 우선**: 코드 작성 전 명세 작성
|
|
17
|
-
- **
|
|
17
|
+
- **AI 협업**: Claude Code 슬래시 커맨드로 워크플로우 자동화
|
|
18
|
+
- **RFC 2119 키워드**: SHALL, MUST, SHOULD, MAY로 요구사항 명확화
|
|
18
19
|
- **GIVEN-WHEN-THEN**: 시나리오 기반 요구사항 정의
|
|
19
|
-
- **델타 시스템**: ADDED, MODIFIED, REMOVED로 변경 추적
|
|
20
20
|
- **헌법(Constitution)**: 프로젝트 핵심 원칙 정의
|
|
21
21
|
|
|
22
|
+
---
|
|
23
|
+
|
|
22
24
|
## 설치
|
|
23
25
|
|
|
24
26
|
```bash
|
|
25
|
-
# npm
|
|
26
27
|
npm install -g sdd-tool
|
|
27
|
-
|
|
28
|
-
# pnpm
|
|
29
|
-
pnpm add -g sdd-tool
|
|
30
|
-
|
|
31
|
-
# 또는 로컬에서 실행
|
|
32
|
-
git clone https://github.com/JakeB-5/sdd-tool.git
|
|
33
|
-
cd sdd-tool
|
|
34
|
-
pnpm install
|
|
35
|
-
pnpm run build
|
|
36
28
|
```
|
|
37
29
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# 1. 프로젝트 초기화
|
|
42
|
-
sdd init
|
|
43
|
-
|
|
44
|
-
# 2. 워크플로우 시작 (통합 진입점)
|
|
45
|
-
sdd start
|
|
46
|
-
|
|
47
|
-
# 3. 새 기능 생성
|
|
48
|
-
sdd new user-auth --title "사용자 인증" --all
|
|
49
|
-
|
|
50
|
-
# 4. 스펙 검증
|
|
51
|
-
sdd validate
|
|
52
|
-
|
|
53
|
-
# 5. 프로젝트 상태 확인
|
|
54
|
-
sdd status
|
|
55
|
-
```
|
|
30
|
+
---
|
|
56
31
|
|
|
57
|
-
##
|
|
32
|
+
## Claude Code와 함께 시작하기
|
|
58
33
|
|
|
59
|
-
|
|
34
|
+
SDD Tool은 Claude Code의 슬래시 커맨드와 통합되어, AI와 대화하며 명세 기반 개발을 진행합니다.
|
|
60
35
|
|
|
61
|
-
|
|
36
|
+
### Step 1: 프로젝트 초기화
|
|
62
37
|
|
|
63
38
|
```bash
|
|
64
|
-
sdd init
|
|
65
|
-
sdd init --force # 기존 파일 덮어쓰기
|
|
39
|
+
sdd init
|
|
66
40
|
```
|
|
67
41
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
├── constitution.md # 프로젝트 헌법 (핵심 원칙)
|
|
72
|
-
├── AGENTS.md # AI 워크플로우 가이드
|
|
73
|
-
├── specs/ # 기능 명세
|
|
74
|
-
├── changes/ # 변경 제안
|
|
75
|
-
├── archive/ # 완료된 변경
|
|
76
|
-
└── templates/ # 템플릿 파일
|
|
77
|
-
.claude/
|
|
78
|
-
└── commands/ # Claude 슬래시 커맨드
|
|
79
|
-
```
|
|
42
|
+
이 명령은 다음을 생성합니다:
|
|
43
|
+
- `.sdd/` - 명세 디렉토리 (constitution.md, specs/, changes/)
|
|
44
|
+
- `.claude/commands/` - **26개의 슬래시 커맨드** 자동 생성
|
|
80
45
|
|
|
81
|
-
###
|
|
46
|
+
### Step 2: Claude Code 실행
|
|
82
47
|
|
|
83
|
-
|
|
48
|
+
프로젝트 디렉토리에서 Claude Code를 실행합니다:
|
|
84
49
|
|
|
85
50
|
```bash
|
|
86
|
-
|
|
87
|
-
sdd start --status # 상태만 표시
|
|
88
|
-
sdd start --workflow new-feature # 특정 워크플로우 시작
|
|
89
|
-
sdd start --workflow change-spec # 변경 워크플로우
|
|
51
|
+
claude
|
|
90
52
|
```
|
|
91
53
|
|
|
92
|
-
###
|
|
93
|
-
|
|
94
|
-
새로운 기능을 생성합니다.
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# 기본 사용
|
|
98
|
-
sdd new <feature-name>
|
|
54
|
+
### Step 3: 워크플로우 시작
|
|
99
55
|
|
|
100
|
-
|
|
101
|
-
sdd new auth --title "인증 기능" --description "사용자 인증"
|
|
102
|
-
sdd new auth --all # spec, plan, tasks, checklist 모두 생성
|
|
103
|
-
sdd new auth --numbered # 자동 번호 부여 (feature/001-auth)
|
|
104
|
-
sdd new auth --no-branch # Git 브랜치 생성 안 함
|
|
56
|
+
Claude Code에서 슬래시 커맨드를 입력합니다:
|
|
105
57
|
|
|
106
|
-
# 서브커맨드
|
|
107
|
-
sdd new plan <feature> # 구현 계획 생성
|
|
108
|
-
sdd new tasks <feature> # 작업 분해 생성
|
|
109
|
-
sdd new checklist # 워크플로우 체크리스트 생성
|
|
110
|
-
sdd new counter # 기능 번호 카운터 관리
|
|
111
|
-
sdd new counter --peek # 다음 번호 확인
|
|
112
|
-
sdd new counter --history # 생성 이력
|
|
113
|
-
sdd new counter --set <n> # 번호 설정
|
|
114
58
|
```
|
|
115
|
-
|
|
116
|
-
### `sdd validate`
|
|
117
|
-
|
|
118
|
-
스펙 파일의 형식을 검증합니다.
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
sdd validate # 전체 검증
|
|
122
|
-
sdd validate path/to/spec.md # 특정 파일 검증
|
|
123
|
-
sdd validate --strict # 엄격 모드 (경고도 에러)
|
|
124
|
-
sdd validate --check-links # 참조 링크 유효성 검사
|
|
125
|
-
sdd validate --constitution # Constitution 위반 검사 (기본값)
|
|
126
|
-
sdd validate --no-constitution # Constitution 검사 스킵
|
|
127
|
-
sdd validate --quiet # 조용한 모드
|
|
59
|
+
/sdd.start
|
|
128
60
|
```
|
|
129
61
|
|
|
130
|
-
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
- GIVEN-WHEN-THEN 시나리오 포함
|
|
134
|
-
- 참조 링크 유효성 (--check-links)
|
|
135
|
-
- Constitution 원칙 위반 (--constitution)
|
|
62
|
+
AI가 프로젝트 상태를 분석하고, 다음 작업을 안내합니다:
|
|
63
|
+
- 신규 프로젝트: Constitution 작성 권장
|
|
64
|
+
- 기존 프로젝트: 워크플로우 선택 메뉴 제공
|
|
136
65
|
|
|
137
|
-
###
|
|
66
|
+
### Step 4: Constitution(헌법) 작성
|
|
138
67
|
|
|
139
|
-
|
|
68
|
+
프로젝트의 핵심 원칙을 정의합니다:
|
|
140
69
|
|
|
141
|
-
```bash
|
|
142
|
-
sdd constitution # Constitution 표시
|
|
143
|
-
sdd constitution show # Constitution 내용 표시
|
|
144
|
-
sdd constitution version # 버전만 표시
|
|
145
|
-
sdd constitution validate # 형식 검증
|
|
146
|
-
sdd constitution history # 변경 이력 조회
|
|
147
|
-
sdd constitution bump # 버전 업데이트
|
|
148
|
-
sdd constitution bump --major # 주요 변경 (원칙 삭제 등)
|
|
149
|
-
sdd constitution bump --minor # 기능 추가
|
|
150
|
-
sdd constitution bump --patch # 문구 수정
|
|
151
70
|
```
|
|
152
|
-
|
|
153
|
-
### `sdd change`
|
|
154
|
-
|
|
155
|
-
변경 제안을 생성하고 관리합니다.
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
sdd change # 새 변경 제안 생성
|
|
159
|
-
sdd change -t "제목" # 제목과 함께 생성
|
|
160
|
-
sdd change -l # 진행 중인 변경 목록
|
|
161
|
-
sdd change <id> # 특정 변경 조회
|
|
162
|
-
sdd change diff <id> # 변경 내용 diff
|
|
163
|
-
sdd change validate <id> # 변경 제안 검증
|
|
164
|
-
sdd change apply <id> # 변경 적용
|
|
165
|
-
sdd change archive <id> # 변경 아카이브
|
|
71
|
+
/sdd.constitution
|
|
166
72
|
```
|
|
167
73
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
스펙 변경의 영향도를 분석합니다.
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
# 기본 영향도 분석
|
|
174
|
-
sdd impact <feature> # 특정 기능 영향도 분석
|
|
175
|
-
sdd impact <feature> --graph # 의존성 그래프 출력 (Mermaid)
|
|
176
|
-
sdd impact <feature> --json # JSON 형식 출력
|
|
74
|
+
신규 프로젝트의 경우, 프로젝트 설명을 함께 입력할 수 있습니다:
|
|
177
75
|
|
|
178
|
-
# 코드 영향도 분석
|
|
179
|
-
sdd impact <feature> --code # 스펙 변경이 코드에 미치는 영향 분석
|
|
180
|
-
sdd impact <feature> --code --json # JSON 형식
|
|
181
|
-
|
|
182
|
-
# 리포트 및 변경 분석
|
|
183
|
-
sdd impact report # 전체 프로젝트 리포트
|
|
184
|
-
sdd impact report --json # JSON 형식 리포트
|
|
185
|
-
sdd impact change <id> # 변경 제안 영향도 분석
|
|
186
|
-
|
|
187
|
-
# What-if 시뮬레이션
|
|
188
|
-
sdd impact simulate <feature> <proposal> # 변경 전 영향도 예측
|
|
189
|
-
sdd impact simulate auth change-001 # 예시
|
|
190
76
|
```
|
|
191
|
-
|
|
192
|
-
코드 영향도 분석은 다음 방법으로 스펙-코드 연결을 탐지합니다:
|
|
193
|
-
- 주석 참조: `// spec: feature-id`, `/* spec: feature-id */`, `@spec feature-id`
|
|
194
|
-
- 파일명/디렉토리명 매칭: `auth.ts` ↔ `auth` 스펙
|
|
195
|
-
- 매핑 설정: `.sdd/code-mapping.json` 파일 사용
|
|
196
|
-
|
|
197
|
-
### `sdd transition`
|
|
198
|
-
|
|
199
|
-
워크플로우 간 전환을 수행합니다.
|
|
200
|
-
|
|
201
|
-
```bash
|
|
202
|
-
sdd transition new-to-change <spec-id> # new → change 전환
|
|
203
|
-
sdd transition change-to-new <change-id> # change → new 전환
|
|
204
|
-
sdd transition guide # 전환 가이드
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### `sdd watch`
|
|
208
|
-
|
|
209
|
-
스펙 파일 변경을 실시간으로 감시합니다.
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
sdd watch # 기본 실행 (자동 검증 포함)
|
|
213
|
-
sdd watch --no-validate # 자동 검증 비활성화
|
|
214
|
-
sdd watch --impact # 영향도 분석 포함
|
|
215
|
-
sdd watch --quiet # 성공 시 출력 생략
|
|
216
|
-
sdd watch --debounce 1000 # 디바운스 시간 설정 (ms)
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
Ctrl+C로 종료 시 세션 통계가 표시됩니다.
|
|
220
|
-
|
|
221
|
-
### `sdd quality`
|
|
222
|
-
|
|
223
|
-
스펙 품질을 분석하고 점수를 산출합니다.
|
|
224
|
-
|
|
225
|
-
```bash
|
|
226
|
-
sdd quality # 전체 프로젝트 분석
|
|
227
|
-
sdd quality <feature> # 개별 스펙 분석
|
|
228
|
-
sdd quality --all # 전체 분석 (명시적)
|
|
229
|
-
sdd quality --json # JSON 형식 출력
|
|
230
|
-
sdd quality --min-score 70 # 최소 점수 기준 (미달 시 에러)
|
|
77
|
+
/sdd.constitution React 기반 할일 관리 앱
|
|
231
78
|
```
|
|
232
79
|
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
- 의존성 명시
|
|
238
|
-
- 구조 완성도 (제목/설명/목표/범위 등)
|
|
239
|
-
- Constitution 버전 참조
|
|
240
|
-
- 내부 링크 무결성
|
|
241
|
-
- 메타데이터 완성도
|
|
242
|
-
|
|
243
|
-
등급: A (90%+), B (80%+), C (70%+), D (60%+), F (<60%)
|
|
80
|
+
AI가 `.sdd/constitution.md`를 분석하고, 프로젝트 원칙 작성을 도와줍니다:
|
|
81
|
+
- 핵심 원칙 (Core Principles)
|
|
82
|
+
- 기술 원칙 (Technical Principles)
|
|
83
|
+
- 금지 사항 (Forbidden)
|
|
244
84
|
|
|
245
|
-
###
|
|
85
|
+
### Step 5: 새 기능 명세 작성
|
|
246
86
|
|
|
247
|
-
|
|
87
|
+
기능 명세를 AI와 함께 작성합니다:
|
|
248
88
|
|
|
249
|
-
```bash
|
|
250
|
-
sdd report # HTML 리포트 (기본)
|
|
251
|
-
sdd report --format markdown # Markdown 형식
|
|
252
|
-
sdd report --format json # JSON 형식
|
|
253
|
-
sdd report -o report.html # 출력 경로 지정
|
|
254
|
-
sdd report --title "My Report" # 리포트 제목 설정
|
|
255
|
-
sdd report --no-quality # 품질 분석 제외
|
|
256
|
-
sdd report --no-validation # 검증 결과 제외
|
|
257
89
|
```
|
|
258
|
-
|
|
259
|
-
### `sdd search`
|
|
260
|
-
|
|
261
|
-
스펙을 검색합니다.
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
sdd search <query> # 키워드로 검색
|
|
265
|
-
sdd search auth # "auth" 포함 스펙 검색
|
|
266
|
-
sdd search --status draft # 상태별 필터링
|
|
267
|
-
sdd search --phase phase-1 # 페이즈별 필터링
|
|
268
|
-
sdd search --type spec # 타입별 필터링 (spec, change)
|
|
269
|
-
sdd search --json # JSON 형식 출력
|
|
270
|
-
sdd search --limit 10 # 결과 수 제한
|
|
90
|
+
/sdd.new
|
|
271
91
|
```
|
|
272
92
|
|
|
273
|
-
|
|
274
|
-
- 스펙 제목 및 내용
|
|
275
|
-
- 요구사항 텍스트
|
|
276
|
-
- 시나리오 (GIVEN-WHEN-THEN)
|
|
277
|
-
- 메타데이터 (id, status, phase)
|
|
278
|
-
|
|
279
|
-
### `sdd migrate`
|
|
280
|
-
|
|
281
|
-
기존 문서나 외부 SDD 도구에서 마이그레이션합니다.
|
|
93
|
+
필요한 기능을 함께 입력하면 AI가 바로 명세 작성을 시작합니다:
|
|
282
94
|
|
|
283
|
-
```bash
|
|
284
|
-
# 문서 마이그레이션
|
|
285
|
-
sdd migrate docs <source> # 문서 마이그레이션
|
|
286
|
-
sdd migrate analyze <file> # 문서 분석
|
|
287
|
-
sdd migrate scan [dir] # 디렉토리 스캔
|
|
288
|
-
|
|
289
|
-
# 외부 도구 감지 및 마이그레이션
|
|
290
|
-
sdd migrate detect # 외부 SDD 도구 감지
|
|
291
|
-
sdd migrate openspec [source] # OpenSpec에서 마이그레이션
|
|
292
|
-
sdd migrate speckit [source] # Spec Kit에서 마이그레이션
|
|
293
|
-
sdd migrate openspec --dry-run # 미리보기 모드
|
|
294
|
-
sdd migrate speckit --overwrite # 기존 스펙 덮어쓰기
|
|
295
95
|
```
|
|
296
|
-
|
|
297
|
-
지원 외부 도구:
|
|
298
|
-
- **OpenSpec**: `openspec/` 디렉토리, AGENTS.md, specs/changes 구조
|
|
299
|
-
- **Spec Kit**: `.specify/` 디렉토리, memory/constitution.md
|
|
300
|
-
|
|
301
|
-
### `sdd cicd`
|
|
302
|
-
|
|
303
|
-
CI/CD 파이프라인을 설정합니다.
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
sdd cicd setup # GitHub Actions 설정
|
|
307
|
-
sdd cicd setup gitlab # GitLab CI 설정
|
|
308
|
-
sdd cicd setup all # 모든 플랫폼 설정
|
|
309
|
-
sdd cicd hooks # Git hooks 설정
|
|
310
|
-
sdd cicd check # CI 검증 실행
|
|
96
|
+
/sdd.new 사용자 인증 기능
|
|
311
97
|
```
|
|
312
98
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
99
|
+
AI가 대화를 통해 다음을 생성합니다:
|
|
100
|
+
- `spec.md` - 기능 명세 (RFC 2119 + GIVEN-WHEN-THEN)
|
|
101
|
+
- `plan.md` - 구현 계획
|
|
102
|
+
- `tasks.md` - 작업 분해
|
|
316
103
|
|
|
317
|
-
|
|
318
|
-
sdd status # 기본 상태
|
|
319
|
-
sdd status --verbose # 상세 정보
|
|
320
|
-
sdd status --json # JSON 형식
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
### `sdd list`
|
|
104
|
+
### Step 6: 구현 진행
|
|
324
105
|
|
|
325
|
-
|
|
106
|
+
작업 목록을 기반으로 순차적 구현:
|
|
326
107
|
|
|
327
|
-
```bash
|
|
328
|
-
sdd list # 전체 요약
|
|
329
|
-
sdd list features # 기능 목록
|
|
330
|
-
sdd list changes # 변경 목록
|
|
331
|
-
sdd list specs # 스펙 파일 목록
|
|
332
|
-
sdd list templates # 템플릿 목록
|
|
333
108
|
```
|
|
334
|
-
|
|
335
|
-
### `sdd prompt`
|
|
336
|
-
|
|
337
|
-
AI 도구용 슬래시 커맨드 프롬프트를 출력합니다.
|
|
338
|
-
|
|
339
|
-
```bash
|
|
340
|
-
sdd prompt # 사용 가능한 명령어 목록
|
|
341
|
-
sdd prompt --list # 명령어 목록
|
|
342
|
-
sdd prompt new # /sdd.new 프롬프트
|
|
343
|
-
sdd prompt change # /sdd.change 프롬프트
|
|
109
|
+
/sdd.implement
|
|
344
110
|
```
|
|
345
111
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
### 신규 기능 개발
|
|
112
|
+
AI가 tasks.md를 읽고, TDD 방식으로 구현을 안내합니다.
|
|
349
113
|
|
|
350
|
-
|
|
351
|
-
1. sdd start # 워크플로우 시작
|
|
352
|
-
2. sdd new <feature> --all # 기능 생성 (spec, plan, tasks)
|
|
353
|
-
3. spec.md 작성 # 요구사항 정의
|
|
354
|
-
4. sdd validate # 명세 검증
|
|
355
|
-
5. plan.md 작성 # 구현 계획
|
|
356
|
-
6. tasks.md 기반 구현 # 작업별 구현
|
|
357
|
-
7. sdd change archive # 완료 후 아카이브
|
|
358
|
-
```
|
|
114
|
+
---
|
|
359
115
|
|
|
360
|
-
|
|
116
|
+
## 전체 워크플로우 예시
|
|
361
117
|
|
|
362
118
|
```
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
119
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
120
|
+
│ 1. sdd init → 프로젝트 초기화 │
|
|
121
|
+
│ 2. claude → Claude Code 실행 │
|
|
122
|
+
│ 3. /sdd.start → 워크플로우 시작 │
|
|
123
|
+
│ 4. /sdd.constitution → 프로젝트 원칙 정의 │
|
|
124
|
+
│ 5. /sdd.new → 기능 명세 작성 │
|
|
125
|
+
│ 6. /sdd.plan → 구현 계획 수립 │
|
|
126
|
+
│ 7. /sdd.tasks → 작업 분해 │
|
|
127
|
+
│ 8. /sdd.implement → 순차적 구현 │
|
|
128
|
+
│ 9. /sdd.validate → 명세 검증 │
|
|
129
|
+
└─────────────────────────────────────────────────────────────┘
|
|
369
130
|
```
|
|
370
131
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
작업 중 워크플로우를 변경해야 할 때:
|
|
374
|
-
|
|
375
|
-
```
|
|
376
|
-
# 새 기능 → 변경 제안 (기존 스펙과 중복 발견 시)
|
|
377
|
-
sdd transition new-to-change <spec-id>
|
|
132
|
+
---
|
|
378
133
|
|
|
379
|
-
|
|
380
|
-
sdd transition change-to-new <change-id>
|
|
381
|
-
```
|
|
134
|
+
## 슬래시 커맨드 (26개)
|
|
382
135
|
|
|
383
|
-
|
|
136
|
+
`sdd init` 실행 시 `.claude/commands/`에 자동 생성됩니다.
|
|
384
137
|
|
|
385
|
-
|
|
138
|
+
### 핵심 워크플로우
|
|
386
139
|
|
|
387
|
-
|
|
140
|
+
| 커맨드 | 설명 | 사용 시점 |
|
|
141
|
+
|--------|------|----------|
|
|
142
|
+
| `/sdd.start` | 통합 진입점 | 작업 시작 시 |
|
|
143
|
+
| `/sdd.constitution` | 프로젝트 원칙 관리 | 프로젝트 초기 설정 |
|
|
144
|
+
| `/sdd.new` | 새 기능 명세 작성 | 새 기능 개발 시 |
|
|
145
|
+
| `/sdd.plan` | 구현 계획 작성 | 명세 작성 후 |
|
|
146
|
+
| `/sdd.tasks` | 작업 분해 | 계획 수립 후 |
|
|
147
|
+
| `/sdd.implement` | 순차적 구현 | 작업 분해 후 |
|
|
148
|
+
| `/sdd.validate` | 스펙 검증 | 작성/수정 후 |
|
|
388
149
|
|
|
389
|
-
|
|
150
|
+
### 변경 관리
|
|
390
151
|
|
|
391
152
|
| 커맨드 | 설명 |
|
|
392
153
|
|--------|------|
|
|
393
|
-
| `/sdd.
|
|
394
|
-
| `/sdd.
|
|
395
|
-
| `/sdd.
|
|
396
|
-
| `/sdd.tasks` | 작업 분해 |
|
|
397
|
-
| `/sdd.implement` | 순차적 구현 진행 |
|
|
398
|
-
| `/sdd.validate` | 스펙 형식 검증 |
|
|
399
|
-
| `/sdd.status` | 프로젝트 상태 확인 |
|
|
400
|
-
| `/sdd.change` | 변경 제안 작성 |
|
|
401
|
-
| `/sdd.constitution` | Constitution 관리 |
|
|
402
|
-
| `/sdd.transition` | 워크플로우 전환 |
|
|
154
|
+
| `/sdd.change` | 기존 스펙 변경 제안 |
|
|
155
|
+
| `/sdd.impact` | 변경 영향도 분석 |
|
|
156
|
+
| `/sdd.transition` | new ↔ change 워크플로우 전환 |
|
|
403
157
|
|
|
404
|
-
|
|
158
|
+
### 분석 및 품질
|
|
405
159
|
|
|
406
160
|
| 커맨드 | 설명 |
|
|
407
161
|
|--------|------|
|
|
408
162
|
| `/sdd.analyze` | 요청 분석 및 규모 판단 |
|
|
409
|
-
| `/sdd.
|
|
410
|
-
| `/sdd.
|
|
411
|
-
| `/sdd.report` | 리포트 생성 |
|
|
163
|
+
| `/sdd.quality` | 스펙 품질 점수 산출 |
|
|
164
|
+
| `/sdd.report` | 프로젝트 리포트 생성 |
|
|
412
165
|
| `/sdd.search` | 스펙 검색 |
|
|
166
|
+
| `/sdd.status` | 프로젝트 상태 확인 |
|
|
413
167
|
|
|
414
|
-
|
|
168
|
+
### 문서 생성
|
|
415
169
|
|
|
416
170
|
| 커맨드 | 설명 |
|
|
417
171
|
|--------|------|
|
|
418
|
-
| `/sdd.research` | 기술 리서치 문서
|
|
419
|
-
| `/sdd.data-model` | 데이터 모델 문서
|
|
420
|
-
| `/sdd.guide` |
|
|
172
|
+
| `/sdd.research` | 기술 리서치 문서 |
|
|
173
|
+
| `/sdd.data-model` | 데이터 모델 문서 |
|
|
174
|
+
| `/sdd.guide` | 워크플로우 가이드 |
|
|
421
175
|
| `/sdd.prepare` | 환경 준비 가이드 |
|
|
422
176
|
|
|
423
|
-
|
|
177
|
+
### 운영
|
|
424
178
|
|
|
425
179
|
| 커맨드 | 설명 |
|
|
426
180
|
|--------|------|
|
|
427
181
|
| `/sdd.chat` | 대화형 SDD 어시스턴트 |
|
|
428
182
|
| `/sdd.list` | 항목 목록 조회 |
|
|
429
183
|
| `/sdd.watch` | 파일 감시 모드 |
|
|
430
|
-
| `/sdd.migrate` | 마이그레이션 |
|
|
184
|
+
| `/sdd.migrate` | 외부 도구에서 마이그레이션 |
|
|
431
185
|
| `/sdd.cicd` | CI/CD 설정 |
|
|
432
186
|
| `/sdd.prompt` | 프롬프트 출력 |
|
|
433
187
|
|
|
434
|
-
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 대화형 모드: /sdd.chat
|
|
435
191
|
|
|
436
|
-
|
|
192
|
+
자연어로 SDD 작업을 수행할 수 있습니다:
|
|
437
193
|
|
|
438
194
|
```
|
|
439
|
-
/sdd.
|
|
440
|
-
/sdd.new # 새 기능 명세 작성 시작
|
|
441
|
-
/sdd.chat # 대화형 모드로 SDD 작업
|
|
195
|
+
/sdd.chat
|
|
442
196
|
```
|
|
443
197
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
2. **새 기능 개발**
|
|
454
|
-
```
|
|
455
|
-
/sdd.new
|
|
456
|
-
→ 기능명과 설명 입력
|
|
457
|
-
→ spec.md 자동 생성 및 작성 안내
|
|
458
|
-
```
|
|
198
|
+
예시 대화:
|
|
199
|
+
```
|
|
200
|
+
You: 사용자 인증 기능을 만들고 싶어
|
|
201
|
+
AI: 사용자 인증 기능의 명세를 작성해 드릴게요. 먼저 몇 가지 질문이 있습니다...
|
|
202
|
+
1. 어떤 인증 방식을 사용하시나요? (JWT, 세션, OAuth)
|
|
203
|
+
2. 소셜 로그인이 필요한가요?
|
|
204
|
+
...
|
|
205
|
+
```
|
|
459
206
|
|
|
460
|
-
|
|
461
|
-
```
|
|
462
|
-
/sdd.transition
|
|
463
|
-
→ new ↔ change 워크플로우 전환
|
|
464
|
-
→ 전환 가이드 제공
|
|
465
|
-
```
|
|
207
|
+
---
|
|
466
208
|
|
|
467
209
|
## 스펙 파일 형식
|
|
468
210
|
|
|
469
|
-
### spec.md
|
|
211
|
+
### spec.md 예시
|
|
470
212
|
|
|
471
213
|
```markdown
|
|
472
214
|
---
|
|
473
|
-
id:
|
|
474
|
-
title: "
|
|
215
|
+
id: user-auth
|
|
216
|
+
title: "사용자 인증"
|
|
475
217
|
status: draft
|
|
476
|
-
created: 2025-12-
|
|
218
|
+
created: 2025-12-24
|
|
477
219
|
constitution_version: 1.0.0
|
|
478
|
-
depends: null
|
|
479
220
|
---
|
|
480
221
|
|
|
481
|
-
#
|
|
222
|
+
# 사용자 인증
|
|
482
223
|
|
|
483
|
-
>
|
|
484
|
-
|
|
485
|
-
---
|
|
224
|
+
> JWT 기반 사용자 인증 시스템
|
|
486
225
|
|
|
487
226
|
## 요구사항
|
|
488
227
|
|
|
489
|
-
### REQ-01:
|
|
490
|
-
|
|
491
|
-
- 시스템은 [기능]을 지원해야 한다(SHALL)
|
|
492
|
-
- 응답 시간은 1초 이내여야 한다(SHOULD)
|
|
228
|
+
### REQ-01: 로그인
|
|
493
229
|
|
|
494
|
-
|
|
230
|
+
- 시스템은 이메일/비밀번호 로그인을 지원해야 한다(SHALL)
|
|
231
|
+
- 로그인 실패 시 구체적인 에러 메시지를 반환해야 한다(SHOULD)
|
|
495
232
|
|
|
496
233
|
## 시나리오
|
|
497
234
|
|
|
498
|
-
### Scenario 1:
|
|
235
|
+
### Scenario 1: 성공적인 로그인
|
|
499
236
|
|
|
500
|
-
- **GIVEN** 유효한
|
|
501
|
-
- **WHEN**
|
|
502
|
-
- **THEN**
|
|
237
|
+
- **GIVEN** 유효한 사용자 계정이 있을 때
|
|
238
|
+
- **WHEN** 올바른 이메일과 비밀번호로 로그인하면
|
|
239
|
+
- **THEN** JWT 토큰이 반환된다
|
|
240
|
+
- **AND** 토큰 만료 시간이 설정된다
|
|
503
241
|
```
|
|
504
242
|
|
|
505
243
|
### RFC 2119 키워드
|
|
506
244
|
|
|
507
|
-
| 키워드 | 의미 |
|
|
508
|
-
|
|
509
|
-
| **SHALL** / **MUST** | 절대 필수 |
|
|
510
|
-
| **SHOULD** | 권장 (예외
|
|
511
|
-
| **MAY** | 선택적 |
|
|
512
|
-
| **SHALL NOT** | 절대 금지 |
|
|
245
|
+
| 키워드 | 의미 |
|
|
246
|
+
|--------|------|
|
|
247
|
+
| **SHALL** / **MUST** | 절대 필수 |
|
|
248
|
+
| **SHOULD** | 권장 (예외 허용) |
|
|
249
|
+
| **MAY** | 선택적 |
|
|
250
|
+
| **SHALL NOT** | 절대 금지 |
|
|
251
|
+
|
|
252
|
+
---
|
|
513
253
|
|
|
514
|
-
##
|
|
254
|
+
## CLI 명령어
|
|
515
255
|
|
|
516
|
-
|
|
256
|
+
슬래시 커맨드 외에 터미널에서 직접 사용할 수 있는 명령어들입니다.
|
|
257
|
+
|
|
258
|
+
### 기본 명령어
|
|
517
259
|
|
|
518
260
|
```bash
|
|
519
|
-
sdd
|
|
520
|
-
|
|
261
|
+
sdd init # 프로젝트 초기화
|
|
262
|
+
sdd validate # 스펙 검증
|
|
263
|
+
sdd status # 상태 확인
|
|
264
|
+
sdd list # 목록 조회
|
|
521
265
|
```
|
|
522
266
|
|
|
523
|
-
###
|
|
267
|
+
### 기능 개발
|
|
524
268
|
|
|
525
269
|
```bash
|
|
526
|
-
sdd
|
|
527
|
-
#
|
|
270
|
+
sdd new <name> # 새 기능 생성
|
|
271
|
+
sdd new <name> --all # spec + plan + tasks 모두 생성
|
|
528
272
|
```
|
|
529
273
|
|
|
530
|
-
###
|
|
274
|
+
### 변경 관리
|
|
531
275
|
|
|
532
276
|
```bash
|
|
533
|
-
sdd
|
|
534
|
-
#
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
### 코드 매핑 설정
|
|
540
|
-
|
|
541
|
-
`.sdd/code-mapping.json` 파일을 사용하여 스펙과 코드 파일 간의 명시적 매핑을 정의할 수 있습니다:
|
|
542
|
-
|
|
543
|
-
```json
|
|
544
|
-
{
|
|
545
|
-
"version": "1.0.0",
|
|
546
|
-
"mappings": [
|
|
547
|
-
{
|
|
548
|
-
"specId": "user-auth",
|
|
549
|
-
"files": [
|
|
550
|
-
"src/core/auth.ts",
|
|
551
|
-
"src/services/auth-service.ts"
|
|
552
|
-
],
|
|
553
|
-
"directories": [
|
|
554
|
-
"src/auth/"
|
|
555
|
-
]
|
|
556
|
-
},
|
|
557
|
-
{
|
|
558
|
-
"specId": "payment",
|
|
559
|
-
"files": [
|
|
560
|
-
"src/payment/handler.ts"
|
|
561
|
-
]
|
|
562
|
-
}
|
|
563
|
-
],
|
|
564
|
-
"patterns": {
|
|
565
|
-
"include": ["src/**/*.ts"],
|
|
566
|
-
"exclude": ["**/*.test.ts", "**/*.spec.ts"]
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
```
|
|
570
|
-
|
|
571
|
-
### Constitution 위반 검증
|
|
572
|
-
|
|
573
|
-
스펙이 Constitution에 정의된 원칙을 위반하는지 자동으로 검사합니다:
|
|
277
|
+
sdd change # 변경 제안 생성
|
|
278
|
+
sdd change apply <id> # 변경 적용
|
|
279
|
+
sdd impact <feature> # 영향도 분석
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### 품질 및 분석
|
|
574
283
|
|
|
575
284
|
```bash
|
|
576
|
-
#
|
|
577
|
-
sdd
|
|
285
|
+
sdd quality # 품질 분석
|
|
286
|
+
sdd quality --min-score 70 # 최소 점수 기준
|
|
287
|
+
sdd report # 리포트 생성
|
|
288
|
+
sdd search <query> # 스펙 검색
|
|
289
|
+
```
|
|
578
290
|
|
|
579
|
-
|
|
580
|
-
|
|
291
|
+
### 운영
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
sdd watch # 파일 감시
|
|
295
|
+
sdd migrate detect # 외부 도구 감지
|
|
296
|
+
sdd cicd setup # CI/CD 설정
|
|
581
297
|
```
|
|
582
298
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## CI/CD 통합
|
|
302
|
+
|
|
303
|
+
### GitHub Actions
|
|
586
304
|
|
|
587
|
-
|
|
305
|
+
```bash
|
|
306
|
+
sdd cicd setup github
|
|
307
|
+
```
|
|
588
308
|
|
|
589
|
-
|
|
309
|
+
### Git Hooks
|
|
590
310
|
|
|
591
311
|
```bash
|
|
592
|
-
sdd
|
|
312
|
+
sdd cicd hooks
|
|
593
313
|
```
|
|
594
314
|
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
315
|
+
커밋 전 자동으로 스펙 검증이 실행됩니다.
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## 디렉토리 구조
|
|
320
|
+
|
|
321
|
+
`sdd init` 실행 후 생성되는 구조:
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
your-project/
|
|
325
|
+
├── .sdd/
|
|
326
|
+
│ ├── constitution.md # 프로젝트 헌법
|
|
327
|
+
│ ├── AGENTS.md # AI 워크플로우 가이드
|
|
328
|
+
│ ├── specs/ # 기능 명세
|
|
329
|
+
│ │ └── feature-name/
|
|
330
|
+
│ │ ├── spec.md
|
|
331
|
+
│ │ ├── plan.md
|
|
332
|
+
│ │ └── tasks.md
|
|
333
|
+
│ ├── changes/ # 변경 제안
|
|
334
|
+
│ ├── archive/ # 완료된 변경
|
|
335
|
+
│ └── templates/ # 템플릿
|
|
336
|
+
└── .claude/
|
|
337
|
+
└── commands/ # 슬래시 커맨드 (26개)
|
|
338
|
+
├── sdd.start.md
|
|
339
|
+
├── sdd.new.md
|
|
340
|
+
├── sdd.constitution.md
|
|
341
|
+
└── ...
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
600
345
|
|
|
601
346
|
## 개발
|
|
602
347
|
|
|
603
348
|
```bash
|
|
604
|
-
|
|
349
|
+
git clone https://github.com/JakeB-5/sdd-tool.git
|
|
350
|
+
cd sdd-tool
|
|
605
351
|
pnpm install
|
|
606
|
-
|
|
607
|
-
# 빌드
|
|
608
352
|
pnpm run build
|
|
609
|
-
|
|
610
|
-
# 개발 모드 (watch)
|
|
611
|
-
pnpm run dev
|
|
612
|
-
|
|
613
|
-
# 테스트
|
|
614
|
-
pnpm test # watch 모드
|
|
615
|
-
pnpm run test:run # 단일 실행
|
|
616
|
-
pnpm run test:coverage # 커버리지
|
|
617
|
-
|
|
618
|
-
# 린트
|
|
619
|
-
pnpm run lint
|
|
620
|
-
|
|
621
|
-
# 타입 체크
|
|
622
|
-
pnpm run typecheck
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
### 프로젝트 구조
|
|
626
|
-
|
|
627
|
-
```
|
|
628
|
-
sdd-tool/
|
|
629
|
-
├── bin/ # CLI 진입점
|
|
630
|
-
│ └── sdd.js
|
|
631
|
-
├── src/
|
|
632
|
-
│ ├── cli/ # CLI 명령어
|
|
633
|
-
│ │ ├── commands/
|
|
634
|
-
│ │ │ ├── init.ts
|
|
635
|
-
│ │ │ ├── new.ts
|
|
636
|
-
│ │ │ ├── validate.ts
|
|
637
|
-
│ │ │ ├── change.ts
|
|
638
|
-
│ │ │ ├── impact.ts
|
|
639
|
-
│ │ │ ├── status.ts
|
|
640
|
-
│ │ │ ├── list.ts
|
|
641
|
-
│ │ │ ├── prompt.ts
|
|
642
|
-
│ │ │ ├── constitution.ts
|
|
643
|
-
│ │ │ ├── start.ts
|
|
644
|
-
│ │ │ ├── transition.ts
|
|
645
|
-
│ │ │ ├── migrate.ts
|
|
646
|
-
│ │ │ ├── cicd.ts
|
|
647
|
-
│ │ │ ├── watch.ts
|
|
648
|
-
│ │ │ ├── quality.ts
|
|
649
|
-
│ │ │ ├── report.ts
|
|
650
|
-
│ │ │ └── search.ts
|
|
651
|
-
│ │ └── index.ts
|
|
652
|
-
│ ├── core/ # 핵심 로직
|
|
653
|
-
│ │ ├── spec/ # 스펙 파서/검증
|
|
654
|
-
│ │ ├── constitution/ # 헌법 시스템
|
|
655
|
-
│ │ ├── change/ # 변경 워크플로우
|
|
656
|
-
│ │ ├── impact/ # 영향도 분석
|
|
657
|
-
│ │ ├── new/ # 신규 기능 워크플로우
|
|
658
|
-
│ │ ├── watch/ # 파일 감시
|
|
659
|
-
│ │ ├── quality/ # 품질 분석
|
|
660
|
-
│ │ ├── report/ # 리포트 생성
|
|
661
|
-
│ │ ├── search/ # 스펙 검색
|
|
662
|
-
│ │ └── migrate/ # 마이그레이션
|
|
663
|
-
│ ├── generators/ # 파일 생성기
|
|
664
|
-
│ ├── prompts/ # 슬래시 커맨드
|
|
665
|
-
│ ├── errors/ # 에러 처리
|
|
666
|
-
│ ├── utils/ # 유틸리티
|
|
667
|
-
│ └── types/ # 타입 정의
|
|
668
|
-
├── templates/ # 기본 템플릿
|
|
669
|
-
└── tests/ # 테스트
|
|
670
|
-
├── unit/
|
|
671
|
-
└── integration/
|
|
353
|
+
pnpm test
|
|
672
354
|
```
|
|
673
355
|
|
|
356
|
+
---
|
|
357
|
+
|
|
674
358
|
## 라이선스
|
|
675
359
|
|
|
676
360
|
MIT License
|
package/package.json
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "sdd-tool",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "Unified Spec-Driven Development CLI - AI-first specification workflow",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"sdd": "bin/sdd.js"
|
|
8
|
-
},
|
|
9
|
-
"main": "./dist/index.js",
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
|
-
"exports": {
|
|
12
|
-
".": {
|
|
13
|
-
"types": "./dist/index.d.ts",
|
|
14
|
-
"import": "./dist/index.js"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"build": "tsup",
|
|
19
|
-
"dev": "tsup --watch",
|
|
20
|
-
"test": "vitest",
|
|
21
|
-
"test:run": "vitest run",
|
|
22
|
-
"test:coverage": "vitest run --coverage",
|
|
23
|
-
"lint": "eslint src/",
|
|
24
|
-
"typecheck": "tsc --noEmit",
|
|
25
|
-
"prepublishOnly": "npm run build && npm run test:run"
|
|
26
|
-
},
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/JakeB-5/sdd-tool.git"
|
|
30
|
-
},
|
|
31
|
-
"homepage": "https://github.com/JakeB-5/sdd-tool#readme",
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/JakeB-5/sdd-tool/issues"
|
|
34
|
-
},
|
|
35
|
-
"author": "JakeB-5",
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"chalk": "^5.3.0",
|
|
38
|
-
"chokidar": "^5.0.0",
|
|
39
|
-
"commander": "^12.1.0",
|
|
40
|
-
"gray-matter": "^4.0.3",
|
|
41
|
-
"zod": "^3.23.8"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {
|
|
44
|
-
"@types/node": "^20.17.10",
|
|
45
|
-
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
|
46
|
-
"@typescript-eslint/parser": "^8.18.0",
|
|
47
|
-
"@vitest/coverage-v8": "^2.1.8",
|
|
48
|
-
"eslint": "^9.16.0",
|
|
49
|
-
"tsup": "^8.3.5",
|
|
50
|
-
"typescript": "^5.7.2",
|
|
51
|
-
"vitest": "^2.1.8"
|
|
52
|
-
},
|
|
53
|
-
"engines": {
|
|
54
|
-
"node": ">=20.0.0"
|
|
55
|
-
},
|
|
56
|
-
"packageManager": "pnpm@9.15.1",
|
|
57
|
-
"files": [
|
|
58
|
-
"dist",
|
|
59
|
-
"bin",
|
|
60
|
-
"templates",
|
|
61
|
-
"README.md",
|
|
62
|
-
"LICENSE"
|
|
63
|
-
],
|
|
64
|
-
"keywords": [
|
|
65
|
-
"sdd",
|
|
66
|
-
"spec-driven-development",
|
|
67
|
-
"specification",
|
|
68
|
-
"cli",
|
|
69
|
-
"ai",
|
|
70
|
-
"workflow",
|
|
71
|
-
"rfc2119",
|
|
72
|
-
"given-when-then",
|
|
73
|
-
"bdd"
|
|
74
|
-
],
|
|
75
|
-
"license": "MIT"
|
|
76
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "sdd-tool",
|
|
3
|
+
"version": "0.6.2",
|
|
4
|
+
"description": "Unified Spec-Driven Development CLI - AI-first specification workflow",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"sdd": "bin/sdd.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsup",
|
|
19
|
+
"dev": "tsup --watch",
|
|
20
|
+
"test": "vitest",
|
|
21
|
+
"test:run": "vitest run",
|
|
22
|
+
"test:coverage": "vitest run --coverage",
|
|
23
|
+
"lint": "eslint src/",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"prepublishOnly": "npm run build && npm run test:run"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/JakeB-5/sdd-tool.git"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/JakeB-5/sdd-tool#readme",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/JakeB-5/sdd-tool/issues"
|
|
34
|
+
},
|
|
35
|
+
"author": "JakeB-5",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"chalk": "^5.3.0",
|
|
38
|
+
"chokidar": "^5.0.0",
|
|
39
|
+
"commander": "^12.1.0",
|
|
40
|
+
"gray-matter": "^4.0.3",
|
|
41
|
+
"zod": "^3.23.8"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/node": "^20.17.10",
|
|
45
|
+
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
|
46
|
+
"@typescript-eslint/parser": "^8.18.0",
|
|
47
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
48
|
+
"eslint": "^9.16.0",
|
|
49
|
+
"tsup": "^8.3.5",
|
|
50
|
+
"typescript": "^5.7.2",
|
|
51
|
+
"vitest": "^2.1.8"
|
|
52
|
+
},
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=20.0.0"
|
|
55
|
+
},
|
|
56
|
+
"packageManager": "pnpm@9.15.1",
|
|
57
|
+
"files": [
|
|
58
|
+
"dist",
|
|
59
|
+
"bin",
|
|
60
|
+
"templates",
|
|
61
|
+
"README.md",
|
|
62
|
+
"LICENSE"
|
|
63
|
+
],
|
|
64
|
+
"keywords": [
|
|
65
|
+
"sdd",
|
|
66
|
+
"spec-driven-development",
|
|
67
|
+
"specification",
|
|
68
|
+
"cli",
|
|
69
|
+
"ai",
|
|
70
|
+
"workflow",
|
|
71
|
+
"rfc2119",
|
|
72
|
+
"given-when-then",
|
|
73
|
+
"bdd"
|
|
74
|
+
],
|
|
75
|
+
"license": "MIT"
|
|
76
|
+
}
|