sdd-tool 0.6.2 → 0.7.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 +181 -130
- package/dist/cli/index.js +1243 -47
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## 개요
|
|
11
11
|
|
|
12
|
-
SDD Tool은 **Claude Code**와 함께 사용하도록 설계된 명세 기반 개발(Spec-Driven Development) CLI입니다.
|
|
12
|
+
SDD Tool은 **Claude Code**와 함께 사용하도록 설계된 명세 기반 개발(Spec-Driven Development) CLI입니다. **슬래시 커맨드**를 통해 AI와 대화하며 명세를 작성하고, 코드를 구현합니다.
|
|
13
13
|
|
|
14
14
|
### 핵심 개념
|
|
15
15
|
|
|
@@ -29,50 +29,129 @@ npm install -g sdd-tool
|
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
##
|
|
33
|
-
|
|
34
|
-
SDD Tool은 Claude Code의 슬래시 커맨드와 통합되어, AI와 대화하며 명세 기반 개발을 진행합니다.
|
|
35
|
-
|
|
36
|
-
### Step 1: 프로젝트 초기화
|
|
32
|
+
## 빠른 시작
|
|
37
33
|
|
|
38
34
|
```bash
|
|
35
|
+
# 1. 프로젝트 초기화 (슬래시 커맨드 26개 자동 생성)
|
|
39
36
|
sdd init
|
|
40
|
-
```
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- `.claude/commands/` - **26개의 슬래시 커맨드** 자동 생성
|
|
38
|
+
# 2. Claude Code 실행
|
|
39
|
+
claude
|
|
45
40
|
|
|
46
|
-
|
|
41
|
+
# 3. 슬래시 커맨드로 워크플로우 시작
|
|
42
|
+
/sdd.start
|
|
43
|
+
```
|
|
47
44
|
|
|
48
|
-
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 전체 워크플로우
|
|
49
48
|
|
|
50
|
-
```bash
|
|
51
|
-
claude
|
|
52
49
|
```
|
|
50
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
51
|
+
│ SDD 슬래시 커맨드 워크플로우 │
|
|
52
|
+
├─────────────────────────────────────────────────────────────┤
|
|
53
|
+
│ │
|
|
54
|
+
│ 1. /sdd.start → 워크플로우 시작 │
|
|
55
|
+
│ │ │
|
|
56
|
+
│ ▼ │
|
|
57
|
+
│ 2. /sdd.constitution → 프로젝트 원칙 정의 │
|
|
58
|
+
│ │ │
|
|
59
|
+
│ ▼ │
|
|
60
|
+
│ 3. /sdd.new → 기능 명세 작성 (spec.md) │
|
|
61
|
+
│ │ │
|
|
62
|
+
│ ▼ │
|
|
63
|
+
│ 4. /sdd.plan → 구현 계획 수립 (plan.md) │
|
|
64
|
+
│ │ │
|
|
65
|
+
│ ▼ │
|
|
66
|
+
│ 5. /sdd.tasks → 작업 분해 (tasks.md) │
|
|
67
|
+
│ │ │
|
|
68
|
+
│ ▼ │
|
|
69
|
+
│ 6. /sdd.prepare → 서브에이전트/스킬 점검 │
|
|
70
|
+
│ │ │
|
|
71
|
+
│ ▼ │
|
|
72
|
+
│ 7. /sdd.implement → 순차적 구현 │
|
|
73
|
+
│ │ │
|
|
74
|
+
│ ▼ │
|
|
75
|
+
│ 8. /sdd.validate → 명세 검증 │
|
|
76
|
+
│ │
|
|
77
|
+
└─────────────────────────────────────────────────────────────┘
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 슬래시 커맨드 (26개)
|
|
83
|
+
|
|
84
|
+
`sdd init` 실행 시 `.claude/commands/`에 자동 생성됩니다.
|
|
85
|
+
|
|
86
|
+
### 핵심 워크플로우
|
|
87
|
+
|
|
88
|
+
| 커맨드 | 설명 | 사용 예시 |
|
|
89
|
+
|--------|------|----------|
|
|
90
|
+
| `/sdd.start` | 통합 진입점 | `/sdd.start` |
|
|
91
|
+
| `/sdd.constitution` | 프로젝트 원칙 관리 | `/sdd.constitution React 기반 할일 앱` |
|
|
92
|
+
| `/sdd.new` | 새 기능 명세 작성 | `/sdd.new 사용자 인증 기능` |
|
|
93
|
+
| `/sdd.plan` | 구현 계획 작성 | `/sdd.plan` |
|
|
94
|
+
| `/sdd.tasks` | 작업 분해 | `/sdd.tasks` |
|
|
95
|
+
| `/sdd.prepare` | 서브에이전트/스킬 점검 | `/sdd.prepare` |
|
|
96
|
+
| `/sdd.implement` | 순차적 구현 | `/sdd.implement` |
|
|
97
|
+
| `/sdd.validate` | 스펙 검증 | `/sdd.validate` |
|
|
98
|
+
|
|
99
|
+
### 변경 관리
|
|
100
|
+
|
|
101
|
+
| 커맨드 | 설명 |
|
|
102
|
+
|--------|------|
|
|
103
|
+
| `/sdd.change` | 기존 스펙 변경 제안 |
|
|
104
|
+
| `/sdd.impact` | 변경 영향도 분석 |
|
|
105
|
+
| `/sdd.transition` | new ↔ change 워크플로우 전환 |
|
|
106
|
+
|
|
107
|
+
### 분석 및 품질
|
|
108
|
+
|
|
109
|
+
| 커맨드 | 설명 |
|
|
110
|
+
|--------|------|
|
|
111
|
+
| `/sdd.analyze` | 요청 분석 및 규모 판단 |
|
|
112
|
+
| `/sdd.quality` | 스펙 품질 점수 산출 |
|
|
113
|
+
| `/sdd.report` | 프로젝트 리포트 생성 |
|
|
114
|
+
| `/sdd.search` | 스펙 검색 |
|
|
115
|
+
| `/sdd.status` | 프로젝트 상태 확인 |
|
|
116
|
+
| `/sdd.list` | 항목 목록 조회 |
|
|
117
|
+
|
|
118
|
+
### 문서 생성
|
|
53
119
|
|
|
54
|
-
|
|
120
|
+
| 커맨드 | 설명 |
|
|
121
|
+
|--------|------|
|
|
122
|
+
| `/sdd.research` | 기술 리서치 문서 |
|
|
123
|
+
| `/sdd.data-model` | 데이터 모델 문서 |
|
|
124
|
+
| `/sdd.guide` | 워크플로우 가이드 |
|
|
55
125
|
|
|
56
|
-
|
|
126
|
+
### 운영
|
|
127
|
+
|
|
128
|
+
| 커맨드 | 설명 |
|
|
129
|
+
|--------|------|
|
|
130
|
+
| `/sdd.chat` | 대화형 SDD 어시스턴트 |
|
|
131
|
+
| `/sdd.watch` | 파일 감시 모드 |
|
|
132
|
+
| `/sdd.migrate` | 외부 도구에서 마이그레이션 |
|
|
133
|
+
| `/sdd.cicd` | CI/CD 설정 |
|
|
134
|
+
| `/sdd.prompt` | 프롬프트 출력 |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 워크플로우 상세
|
|
139
|
+
|
|
140
|
+
### Step 1: /sdd.start
|
|
141
|
+
|
|
142
|
+
프로젝트 상태를 분석하고 다음 작업을 안내합니다:
|
|
57
143
|
|
|
58
144
|
```
|
|
59
145
|
/sdd.start
|
|
60
146
|
```
|
|
61
147
|
|
|
62
|
-
AI가 프로젝트 상태를 분석하고, 다음 작업을 안내합니다:
|
|
63
148
|
- 신규 프로젝트: Constitution 작성 권장
|
|
64
149
|
- 기존 프로젝트: 워크플로우 선택 메뉴 제공
|
|
65
150
|
|
|
66
|
-
### Step
|
|
151
|
+
### Step 2: /sdd.constitution
|
|
67
152
|
|
|
68
153
|
프로젝트의 핵심 원칙을 정의합니다:
|
|
69
154
|
|
|
70
|
-
```
|
|
71
|
-
/sdd.constitution
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
신규 프로젝트의 경우, 프로젝트 설명을 함께 입력할 수 있습니다:
|
|
75
|
-
|
|
76
155
|
```
|
|
77
156
|
/sdd.constitution React 기반 할일 관리 앱
|
|
78
157
|
```
|
|
@@ -82,108 +161,99 @@ AI가 `.sdd/constitution.md`를 분석하고, 프로젝트 원칙 작성을 도
|
|
|
82
161
|
- 기술 원칙 (Technical Principles)
|
|
83
162
|
- 금지 사항 (Forbidden)
|
|
84
163
|
|
|
85
|
-
### Step
|
|
164
|
+
### Step 3: /sdd.new
|
|
86
165
|
|
|
87
166
|
기능 명세를 AI와 함께 작성합니다:
|
|
88
167
|
|
|
89
168
|
```
|
|
90
|
-
/sdd.new
|
|
169
|
+
/sdd.new 사용자 인증 기능
|
|
91
170
|
```
|
|
92
171
|
|
|
93
|
-
|
|
172
|
+
AI가 대화를 통해 다음을 생성합니다:
|
|
173
|
+
- `spec.md` - 기능 명세 (RFC 2119 + GIVEN-WHEN-THEN)
|
|
174
|
+
|
|
175
|
+
### Step 4: /sdd.plan
|
|
176
|
+
|
|
177
|
+
구현 계획을 수립합니다:
|
|
94
178
|
|
|
95
179
|
```
|
|
96
|
-
/sdd.
|
|
180
|
+
/sdd.plan
|
|
97
181
|
```
|
|
98
182
|
|
|
99
|
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
- `tasks.md` - 작업 분해
|
|
183
|
+
- 기술 결정사항과 근거
|
|
184
|
+
- 구현 단계(Phase) 정의
|
|
185
|
+
- 리스크 분석 및 완화 전략
|
|
103
186
|
|
|
104
|
-
### Step
|
|
187
|
+
### Step 5: /sdd.tasks
|
|
105
188
|
|
|
106
|
-
|
|
189
|
+
작업을 실행 가능한 단위로 분해합니다:
|
|
107
190
|
|
|
108
191
|
```
|
|
109
|
-
/sdd.
|
|
192
|
+
/sdd.tasks
|
|
110
193
|
```
|
|
111
194
|
|
|
112
|
-
|
|
195
|
+
- 각 작업은 2-4시간 내 완료 가능한 크기
|
|
196
|
+
- 작업 간 의존성 표시
|
|
197
|
+
- 우선순위: HIGH(🔴), MEDIUM(🟡), LOW(🟢)
|
|
113
198
|
|
|
114
|
-
|
|
199
|
+
### Step 6: /sdd.prepare
|
|
115
200
|
|
|
116
|
-
|
|
201
|
+
구현에 필요한 Claude Code 도구를 점검합니다:
|
|
117
202
|
|
|
118
203
|
```
|
|
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
|
-
└─────────────────────────────────────────────────────────────┘
|
|
204
|
+
/sdd.prepare
|
|
130
205
|
```
|
|
131
206
|
|
|
132
|
-
|
|
207
|
+
**기능:**
|
|
208
|
+
- tasks.md 분석하여 필요한 도구 자동 감지
|
|
209
|
+
- 서브에이전트 (`.claude/agents/`) 존재 여부 확인
|
|
210
|
+
- 스킬 (`.claude/skills/`) 존재 여부 확인
|
|
211
|
+
- 누락된 도구 자동 생성
|
|
133
212
|
|
|
134
|
-
|
|
213
|
+
**감지 대상:**
|
|
135
214
|
|
|
136
|
-
|
|
215
|
+
| 키워드 | 서브에이전트 | 스킬 |
|
|
216
|
+
|--------|-------------|------|
|
|
217
|
+
| 테스트, test | test-runner | test |
|
|
218
|
+
| api, rest | api-scaffold | gen-api |
|
|
219
|
+
| component | component-gen | gen-component |
|
|
220
|
+
| database | - | db-migrate |
|
|
221
|
+
| 문서, doc | - | gen-doc |
|
|
222
|
+
| review | code-reviewer | review |
|
|
137
223
|
|
|
138
|
-
|
|
224
|
+
**CLI에서도 사용 가능:**
|
|
139
225
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
| `/sdd.plan` | 구현 계획 작성 | 명세 작성 후 |
|
|
146
|
-
| `/sdd.tasks` | 작업 분해 | 계획 수립 후 |
|
|
147
|
-
| `/sdd.implement` | 순차적 구현 | 작업 분해 후 |
|
|
148
|
-
| `/sdd.validate` | 스펙 검증 | 작성/수정 후 |
|
|
226
|
+
```bash
|
|
227
|
+
sdd prepare user-auth # 대화형
|
|
228
|
+
sdd prepare user-auth --dry-run # 미리보기
|
|
229
|
+
sdd prepare user-auth --auto-approve # 자동 생성
|
|
230
|
+
```
|
|
149
231
|
|
|
150
|
-
###
|
|
232
|
+
### Step 7: /sdd.implement
|
|
151
233
|
|
|
152
|
-
|
|
153
|
-
|--------|------|
|
|
154
|
-
| `/sdd.change` | 기존 스펙 변경 제안 |
|
|
155
|
-
| `/sdd.impact` | 변경 영향도 분석 |
|
|
156
|
-
| `/sdd.transition` | new ↔ change 워크플로우 전환 |
|
|
234
|
+
작업 목록을 기반으로 순차적 구현:
|
|
157
235
|
|
|
158
|
-
|
|
236
|
+
```
|
|
237
|
+
/sdd.implement
|
|
238
|
+
```
|
|
159
239
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
| `/sdd.search` | 스펙 검색 |
|
|
166
|
-
| `/sdd.status` | 프로젝트 상태 확인 |
|
|
240
|
+
AI가 tasks.md를 읽고, TDD 방식으로 구현을 안내합니다:
|
|
241
|
+
1. 작업 상태를 "진행 중"으로 변경
|
|
242
|
+
2. 테스트 작성
|
|
243
|
+
3. 코드 구현
|
|
244
|
+
4. 작업 상태를 "완료"로 변경
|
|
167
245
|
|
|
168
|
-
###
|
|
246
|
+
### Step 8: /sdd.validate
|
|
169
247
|
|
|
170
|
-
|
|
171
|
-
|--------|------|
|
|
172
|
-
| `/sdd.research` | 기술 리서치 문서 |
|
|
173
|
-
| `/sdd.data-model` | 데이터 모델 문서 |
|
|
174
|
-
| `/sdd.guide` | 워크플로우 가이드 |
|
|
175
|
-
| `/sdd.prepare` | 환경 준비 가이드 |
|
|
248
|
+
명세 검증:
|
|
176
249
|
|
|
177
|
-
|
|
250
|
+
```
|
|
251
|
+
/sdd.validate
|
|
252
|
+
```
|
|
178
253
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
| `/sdd.list` | 항목 목록 조회 |
|
|
183
|
-
| `/sdd.watch` | 파일 감시 모드 |
|
|
184
|
-
| `/sdd.migrate` | 외부 도구에서 마이그레이션 |
|
|
185
|
-
| `/sdd.cicd` | CI/CD 설정 |
|
|
186
|
-
| `/sdd.prompt` | 프롬프트 출력 |
|
|
254
|
+
- RFC 2119 키워드 사용 여부
|
|
255
|
+
- GIVEN-WHEN-THEN 형식 준수
|
|
256
|
+
- 메타데이터 필수 필드 확인
|
|
187
257
|
|
|
188
258
|
---
|
|
189
259
|
|
|
@@ -269,6 +339,7 @@ sdd list # 목록 조회
|
|
|
269
339
|
```bash
|
|
270
340
|
sdd new <name> # 새 기능 생성
|
|
271
341
|
sdd new <name> --all # spec + plan + tasks 모두 생성
|
|
342
|
+
sdd prepare <name> # 서브에이전트/스킬 점검
|
|
272
343
|
```
|
|
273
344
|
|
|
274
345
|
### 변경 관리
|
|
@@ -283,42 +354,13 @@ sdd impact <feature> # 영향도 분석
|
|
|
283
354
|
|
|
284
355
|
```bash
|
|
285
356
|
sdd quality # 품질 분석
|
|
286
|
-
sdd quality --min-score 70 # 최소 점수 기준
|
|
287
357
|
sdd report # 리포트 생성
|
|
288
358
|
sdd search <query> # 스펙 검색
|
|
289
359
|
```
|
|
290
360
|
|
|
291
|
-
### 운영
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
sdd watch # 파일 감시
|
|
295
|
-
sdd migrate detect # 외부 도구 감지
|
|
296
|
-
sdd cicd setup # CI/CD 설정
|
|
297
|
-
```
|
|
298
|
-
|
|
299
361
|
---
|
|
300
362
|
|
|
301
|
-
##
|
|
302
|
-
|
|
303
|
-
### GitHub Actions
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
sdd cicd setup github
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
### Git Hooks
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
sdd cicd hooks
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
커밋 전 자동으로 스펙 검증이 실행됩니다.
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## 디렉토리 구조
|
|
320
|
-
|
|
321
|
-
`sdd init` 실행 후 생성되는 구조:
|
|
363
|
+
## Claude Code 도구 구조
|
|
322
364
|
|
|
323
365
|
```
|
|
324
366
|
your-project/
|
|
@@ -329,16 +371,25 @@ your-project/
|
|
|
329
371
|
│ │ └── feature-name/
|
|
330
372
|
│ │ ├── spec.md
|
|
331
373
|
│ │ ├── plan.md
|
|
332
|
-
│ │
|
|
374
|
+
│ │ ├── tasks.md
|
|
375
|
+
│ │ └── prepare.md # 도구 점검 결과
|
|
333
376
|
│ ├── changes/ # 변경 제안
|
|
334
|
-
│
|
|
335
|
-
│
|
|
377
|
+
│ └── archive/ # 완료된 변경
|
|
378
|
+
│
|
|
336
379
|
└── .claude/
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
380
|
+
├── commands/ # 슬래시 커맨드 (26개)
|
|
381
|
+
│ ├── sdd.start.md
|
|
382
|
+
│ ├── sdd.new.md
|
|
383
|
+
│ ├── sdd.prepare.md
|
|
384
|
+
│ └── ...
|
|
385
|
+
├── agents/ # 서브에이전트
|
|
386
|
+
│ ├── test-runner.md
|
|
387
|
+
│ └── api-scaffold.md
|
|
388
|
+
└── skills/ # 스킬
|
|
389
|
+
├── test/
|
|
390
|
+
│ └── SKILL.md
|
|
391
|
+
└── gen-api/
|
|
392
|
+
└── SKILL.md
|
|
342
393
|
```
|
|
343
394
|
|
|
344
395
|
---
|