sdd-pipeline 1.1.0 → 1.2.0
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 +376 -378
- package/lib/bundle/.claude/commands/sdd-tasks.md +1 -1
- package/lib/bundle/skills/sdd-cook/SKILL.md +289 -144
- package/lib/bundle/skills/sdd-cook/references/intent-detection.md +67 -0
- package/lib/bundle/skills/sdd-cook/references/subagent-patterns.md +352 -0
- package/lib/bundle/skills/sdd-cook/references/task-execution.md +44 -23
- package/lib/bundle/skills/sdd-cook/references/workflow-steps.md +215 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,378 +1,376 @@
|
|
|
1
|
-
# XDM Method — Spec-Driven Development Pipeline
|
|
2
|
-
|
|
3
|
-
**Spec-Driven Development pipeline for Claude Code CLI.** Transforms raw feature requests into validated, shipped code through a self-correcting converge loop.
|
|
4
|
-
|
|
5
|
-
## Quick Start
|
|
6
|
-
|
|
7
|
-
```powershell
|
|
8
|
-
# 1. Install globally (once)
|
|
9
|
-
npm install -g sdd-pipeline
|
|
10
|
-
|
|
11
|
-
# 2. Navigate to your project
|
|
12
|
-
cd my-project
|
|
13
|
-
|
|
14
|
-
# 3. Initialize pipeline
|
|
15
|
-
sdd init
|
|
16
|
-
|
|
17
|
-
# 4. Start with a feature
|
|
18
|
-
sdd
|
|
19
|
-
|
|
20
|
-
# 5. Use Claude Code for full pipeline
|
|
21
|
-
/sdd
|
|
22
|
-
/sdd
|
|
23
|
-
/
|
|
24
|
-
|
|
25
|
-
# 6. Validate
|
|
26
|
-
pwsh run-converge.ps1 -Url 'http://localhost:3000' -Strict
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
│ ├──
|
|
41
|
-
│
|
|
42
|
-
│
|
|
43
|
-
│
|
|
44
|
-
│ └──
|
|
45
|
-
│ ├──
|
|
46
|
-
│ └──
|
|
47
|
-
│
|
|
48
|
-
├── .
|
|
49
|
-
|
|
50
|
-
└── .
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
├── /sdd
|
|
69
|
-
├── /
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
|
80
|
-
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
|
94
|
-
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
|
105
|
-
|
|
106
|
-
| `/sdd
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
sdd
|
|
114
|
-
sdd
|
|
115
|
-
|
|
116
|
-
#
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Usage Examples
|
|
125
|
-
|
|
126
|
-
### Example 1: Landing Page
|
|
127
|
-
|
|
128
|
-
```powershell
|
|
129
|
-
cd my-saas-project
|
|
130
|
-
|
|
131
|
-
# Initialize
|
|
132
|
-
sdd init
|
|
133
|
-
|
|
134
|
-
# Start with feature description
|
|
135
|
-
sdd
|
|
136
|
-
|
|
137
|
-
#
|
|
138
|
-
/sdd
|
|
139
|
-
|
|
140
|
-
# Break into tasks
|
|
141
|
-
/sdd
|
|
142
|
-
|
|
143
|
-
# Implement
|
|
144
|
-
/sdd
|
|
145
|
-
/sdd
|
|
146
|
-
/sdd
|
|
147
|
-
|
|
148
|
-
# Validate (with dev server running)
|
|
149
|
-
/sdd
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Example 2: API Feature
|
|
153
|
-
|
|
154
|
-
```powershell
|
|
155
|
-
cd my-api-project
|
|
156
|
-
sdd init
|
|
157
|
-
|
|
158
|
-
# Set domain to API
|
|
159
|
-
# Edit .sdd/config.json: set project.domain = "api"
|
|
160
|
-
|
|
161
|
-
sdd
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
/sdd
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
|
|
178
|
-
#
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
|
191
|
-
|
|
192
|
-
|
|
|
193
|
-
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
|
204
|
-
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
├──
|
|
228
|
-
├── T-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
|
249
|
-
|
|
250
|
-
| `
|
|
251
|
-
| `
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
|
262
|
-
|
|
263
|
-
|
|
|
264
|
-
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
├── .
|
|
280
|
-
├──
|
|
281
|
-
├── .
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
├──
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
-
|
|
298
|
-
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
├── .
|
|
325
|
-
├──
|
|
326
|
-
├──
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
│ └──
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
|
347
|
-
|
|
348
|
-
|
|
|
349
|
-
|
|
|
350
|
-
|
|
|
351
|
-
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
- **
|
|
360
|
-
- **
|
|
361
|
-
- **
|
|
362
|
-
- **
|
|
363
|
-
- **
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
|
372
|
-
|
|
373
|
-
| `docs/
|
|
374
|
-
| `docs/
|
|
375
|
-
| `docs/
|
|
376
|
-
| `docs/
|
|
377
|
-
| `docs/deployment-guide.md` | Deployment instructions |
|
|
378
|
-
| `docs/project-roadmap.md` | Future plans |
|
|
1
|
+
# XDM Method — Spec-Driven Development Pipeline
|
|
2
|
+
|
|
3
|
+
**Spec-Driven Development pipeline for Claude Code CLI.** Transforms raw feature requests into validated, shipped code through a self-correcting converge loop.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```powershell
|
|
8
|
+
# 1. Install globally (once)
|
|
9
|
+
npm install -g sdd-pipeline
|
|
10
|
+
|
|
11
|
+
# 2. Navigate to your project
|
|
12
|
+
cd my-project
|
|
13
|
+
|
|
14
|
+
# 3. Initialize pipeline
|
|
15
|
+
claude "/sdd init"
|
|
16
|
+
|
|
17
|
+
# 4. Start with a feature (interactive 9-question interview)
|
|
18
|
+
claude "/sdd-bmad landing page for my SaaS"
|
|
19
|
+
|
|
20
|
+
# 5. Use Claude Code for full pipeline
|
|
21
|
+
claude "/sdd-spec" # Generate SPEC.md
|
|
22
|
+
claude "/sdd-tasks" # Generate tasks
|
|
23
|
+
claude "/sdd-cook" # Implement tasks
|
|
24
|
+
|
|
25
|
+
# 6. Validate
|
|
26
|
+
pwsh run-converge.ps1 -Url 'http://localhost:3000' -Strict
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> **Important:** Always use `claude "/sdd-<cmd>"` format for interactive commands.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Output Directory Structure
|
|
34
|
+
|
|
35
|
+
All generated artifacts are organized in the `sdd/` directory (v1.1.0+):
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
project/
|
|
39
|
+
├── sdd/ # All generated artifacts
|
|
40
|
+
│ ├── brief.md # Phase 0: BMAD brief
|
|
41
|
+
│ ├── SPEC.md # Phase 2: Specification
|
|
42
|
+
│ ├── PLAN.md # Phase 3: Implementation plan
|
|
43
|
+
│ ├── tasks/ # Phase 3: Task directories
|
|
44
|
+
│ │ └── task-260829-1700-feature/
|
|
45
|
+
│ │ ├── MASTER-TASKS.md
|
|
46
|
+
│ │ └── T-001-*.md
|
|
47
|
+
│ └── converge/ # Phase 5: Validation reports
|
|
48
|
+
│ ├── validation.md # Full project converge
|
|
49
|
+
│ └── task-T-001/
|
|
50
|
+
│ └── report.md # Per-task converge
|
|
51
|
+
├── .sdd/config.json # Pipeline state & config
|
|
52
|
+
├── templates/ # SDD templates
|
|
53
|
+
└── .claude/commands/ # Claude Code commands
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Key features:**
|
|
57
|
+
- All artifacts in one place (`sdd/`)
|
|
58
|
+
- Easy cleanup: delete `sdd/` to reset
|
|
59
|
+
- Configurable via `.sdd/config.json`
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Pipeline Phases
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Raw Idea
|
|
67
|
+
│
|
|
68
|
+
├── claude "/sdd-bmad" → sdd/brief.md (Phase 0)
|
|
69
|
+
├── claude "/sdd-spec" → sdd/SPEC.md (Phase 2)
|
|
70
|
+
├── claude "/sdd-tasks" → sdd/tasks/ (Phase 3)
|
|
71
|
+
├── claude "/sdd-cook" → Implementation (Phase 4)
|
|
72
|
+
│
|
|
73
|
+
└── claude "/sdd-converge" → sdd/converge/ (Phase 5)
|
|
74
|
+
│
|
|
75
|
+
├── PASS → Merge / Deploy
|
|
76
|
+
└── FAIL → Fix → Re-enter
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
| Phase | Command | Output | Gate |
|
|
80
|
+
|-------|---------|--------|------|
|
|
81
|
+
| 0 | `claude "/sdd-bmad <desc>"` | `sdd/brief.md` | None |
|
|
82
|
+
| 2 | `claude "/sdd-spec"` | `sdd/SPEC.md` | Requires `sdd/brief.md` + confidence ≥20 |
|
|
83
|
+
| 3 | `claude "/sdd-tasks"` | `sdd/tasks/task-*/` | Requires `sdd/SPEC.md` |
|
|
84
|
+
| 4 | `claude "/sdd-cook"` | Code | Requires task files |
|
|
85
|
+
| 5 | `pwsh run-converge.ps1` | `sdd/converge/` | All phases |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Commands Reference
|
|
90
|
+
|
|
91
|
+
### Core Pipeline Commands
|
|
92
|
+
|
|
93
|
+
| Command | Phase | Output | Description |
|
|
94
|
+
|---------|-------|--------|-------------|
|
|
95
|
+
| `claude "/sdd init"` | — | `.sdd/`, `templates/`, `sdd/` | Initialize SDD pipeline. Creates directory structure. Run once per project. |
|
|
96
|
+
| `claude "/sdd-bmad <desc>"` | 0 | `sdd/brief.md` | Interactive brainstorm. Asks 9 discovery questions, generates confidence-scored brief. |
|
|
97
|
+
| `claude "/sdd-spec"` | 2 | `sdd/SPEC.md` | Generate SPEC.md from brief. Validates confidence ≥20/100 + expiry check. |
|
|
98
|
+
| `claude "/sdd-tasks"` | 3 | `sdd/tasks/task-*/` | Break SPEC.md into tasks (≤2 hours each). Creates MASTER-TASKS.md + T-XXX-*.md files. |
|
|
99
|
+
| `claude "/sdd-cook"` | 4 | Code | Execute tasks. Args: `[--all \| --task T-XXX]`. |
|
|
100
|
+
| `claude "/sdd-converge"` | 5 | `sdd/converge/` | Validate implementation. Self-correcting loop. |
|
|
101
|
+
|
|
102
|
+
### Utility Commands
|
|
103
|
+
|
|
104
|
+
| Command | Description |
|
|
105
|
+
|---------|-------------|
|
|
106
|
+
| `/sdd status` | Show pipeline phase status. Displays current phase, completed phases, next command. |
|
|
107
|
+
| `/sdd check <file>` | Real-time validation. Check file(s) against SPEC.md clauses ([SC-xxx], [AC-xxx]). |
|
|
108
|
+
| `/sdd task-status T-XXX <status>` | Update task status. Args: `pending \| in-progress \| completed`. |
|
|
109
|
+
|
|
110
|
+
### Shell CLI (npm global)
|
|
111
|
+
|
|
112
|
+
```powershell
|
|
113
|
+
sdd init # Initialize pipeline
|
|
114
|
+
sdd bmad <desc> # Non-interactive brief (low confidence)
|
|
115
|
+
sdd status # Show pipeline status
|
|
116
|
+
sdd help # Show help
|
|
117
|
+
|
|
118
|
+
# For interactive commands, use Claude Code
|
|
119
|
+
claude "/sdd bmad <desc>" # Interactive 9-question interview
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Usage Examples
|
|
125
|
+
|
|
126
|
+
### Example 1: Landing Page
|
|
127
|
+
|
|
128
|
+
```powershell
|
|
129
|
+
cd my-saas-project
|
|
130
|
+
|
|
131
|
+
# Initialize
|
|
132
|
+
claude "/sdd init"
|
|
133
|
+
|
|
134
|
+
# Start with feature description (interactive)
|
|
135
|
+
claude "/sdd-bmad landing page for my SaaS product"
|
|
136
|
+
|
|
137
|
+
# Generate SPEC.md
|
|
138
|
+
claude "/sdd-spec"
|
|
139
|
+
|
|
140
|
+
# Break into tasks
|
|
141
|
+
claude "/sdd-tasks"
|
|
142
|
+
|
|
143
|
+
# Implement tasks
|
|
144
|
+
claude "/sdd-cook --task T-001"
|
|
145
|
+
claude "/sdd-cook --task T-002"
|
|
146
|
+
claude "/sdd-cook --task T-003"
|
|
147
|
+
|
|
148
|
+
# Validate (with dev server running)
|
|
149
|
+
claude "/sdd-converge"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Example 2: API Feature
|
|
153
|
+
|
|
154
|
+
```powershell
|
|
155
|
+
cd my-api-project
|
|
156
|
+
claude "/sdd init"
|
|
157
|
+
|
|
158
|
+
# Set domain to API
|
|
159
|
+
# Edit .sdd/config.json: set project.domain = "api"
|
|
160
|
+
|
|
161
|
+
claude "/sdd-bmad user authentication with JWT tokens"
|
|
162
|
+
claude "/sdd-spec"
|
|
163
|
+
claude "/sdd-tasks"
|
|
164
|
+
claude "/sdd-cook --all"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Example 3: Real-Time Validation
|
|
168
|
+
|
|
169
|
+
```powershell
|
|
170
|
+
# During implementation, check your work
|
|
171
|
+
claude "/sdd check src/components/Button.tsx"
|
|
172
|
+
|
|
173
|
+
# Result:
|
|
174
|
+
# ✅ SC-001: "Start Free Trial" found
|
|
175
|
+
# ✅ SC-COLOR-001: #22c55e found
|
|
176
|
+
# ❌ SC-002: "Get Started" NOT FOUND
|
|
177
|
+
|
|
178
|
+
# Fix the issue, then continue
|
|
179
|
+
claude "/sdd-cook --task T-002"
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Phase Gates
|
|
185
|
+
|
|
186
|
+
Phase gates enforce deliberate progress. Commands fail if prerequisites are missing:
|
|
187
|
+
|
|
188
|
+
| Command | Gate | If Missing |
|
|
189
|
+
|---------|------|------------|
|
|
190
|
+
| `claude "/sdd-spec"` | sdd/brief.md | ERROR: Phase 0 not complete. Run `claude "/sdd-bmad"` first. |
|
|
191
|
+
| `claude "/sdd-spec"` | Confidence ≥20 | WARNING: Confidence is Weak. Spec may be incomplete. |
|
|
192
|
+
| `claude "/sdd-tasks"` | sdd/SPEC.md | ERROR: SPEC.md not found. Run `claude "/sdd-spec"` first. |
|
|
193
|
+
| `claude "/sdd-converge"` | All artifacts | ERROR: Missing artifacts. Run full pipeline first. |
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## BMAD Confidence Score
|
|
198
|
+
|
|
199
|
+
BMAD calculates a 0-100 confidence score before generating SPEC.md:
|
|
200
|
+
|
|
201
|
+
| Score | Level | Action |
|
|
202
|
+
|-------|-------|--------|
|
|
203
|
+
| <20 | None | `claude "/sdd-spec"` BLOCKED. Re-run BMAD with more detail. |
|
|
204
|
+
| 20-49 | Weak | WARNING. Proceed with caution — spec may need iteration. |
|
|
205
|
+
| 50-69 | Medium | Acceptable. Answer more questions for better spec. |
|
|
206
|
+
| ≥70 | Strong | Full confidence. Proceed to spec. |
|
|
207
|
+
|
|
208
|
+
**Scoring factors:**
|
|
209
|
+
- Input quality (0-30 pts) — more detail = higher score
|
|
210
|
+
- Interview completion (0-30 pts) — more answers = higher score
|
|
211
|
+
- Problem clarity (0-20 pts) — specific, measurable = higher score
|
|
212
|
+
- Technical awareness (0-20 pts) — stack/integration detail = higher score
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Task Format
|
|
217
|
+
|
|
218
|
+
Each task in MASTER-TASKS.md:
|
|
219
|
+
- Takes ≤2 hours
|
|
220
|
+
- Independently verifiable
|
|
221
|
+
- Has frontmatter with `depends_on`, `spec_sections`
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
task-260829-1657-landing-page/
|
|
225
|
+
├── MASTER-TASKS.md # Task index, phases, status
|
|
226
|
+
├── T-001-html-structure.md
|
|
227
|
+
├── T-002-mobile-css.md
|
|
228
|
+
├── T-003-desktop-css.md
|
|
229
|
+
└── ...
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Extension System
|
|
235
|
+
|
|
236
|
+
Domain-specific templates activate via `.sdd/config.json`:
|
|
237
|
+
|
|
238
|
+
```json
|
|
239
|
+
{
|
|
240
|
+
"project": {
|
|
241
|
+
"domain": "frontend"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
| Domain | Adds |
|
|
247
|
+
|--------|------|
|
|
248
|
+
| `general` | Base pipeline only |
|
|
249
|
+
| `api` | OpenAPI spec, endpoint validation, API checklist |
|
|
250
|
+
| `frontend` | Design system prompts, Lighthouse targets, UX checklist |
|
|
251
|
+
| `backend` | Data models, security requirements, backend checklist |
|
|
252
|
+
|
|
253
|
+
Extensions are **additive** — base pipeline always works.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Security
|
|
258
|
+
|
|
259
|
+
| Layer | Protection |
|
|
260
|
+
|-------|-----------|
|
|
261
|
+
| Input | Sanitize regex blocks prompt injection patterns |
|
|
262
|
+
| URL | SSRF prevention — blocks private IPs, localhost |
|
|
263
|
+
| npm | `--ignore-scripts` on global installs |
|
|
264
|
+
| GitHub Actions | Least-privilege permissions block |
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Architecture
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
Two Interfaces (same logic):
|
|
272
|
+
|
|
273
|
+
Shell CLI: sdd bmad "feature" → bin/sdd.js
|
|
274
|
+
Claude Code: /sdd bmad "feature" → .claude/commands/sdd.md
|
|
275
|
+
|
|
276
|
+
Pipeline files:
|
|
277
|
+
├── .sdd/config.json # Phase tracking, template versions
|
|
278
|
+
├── templates/ # SDD artifact templates
|
|
279
|
+
├── .claude/commands/ # Claude Code slash commands
|
|
280
|
+
├── commands/ # Standalone CLI scripts
|
|
281
|
+
├── run-converge.ps1 # Converge automation
|
|
282
|
+
└── extensions/ # Domain-specific (api/frontend/backend)
|
|
283
|
+
|
|
284
|
+
npm package (sdd-pipeline):
|
|
285
|
+
├── bin/sdd.js # CLI entry
|
|
286
|
+
├── lib/init.js # Extract pipeline
|
|
287
|
+
├── lib/bmad/ # BMAD orchestrator (8 modules)
|
|
288
|
+
└── lib/bundle/ # 31 pipeline files for distribution
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Requirements
|
|
294
|
+
|
|
295
|
+
- Windows 11 + PowerShell (primary), Bash (fallback)
|
|
296
|
+
- Git 2.52+
|
|
297
|
+
- Node.js 18+ + npm 9+
|
|
298
|
+
- Claude Code CLI (`npx @anthropic-ai/claude-code`)
|
|
299
|
+
|
|
300
|
+
## CI/CD
|
|
301
|
+
|
|
302
|
+
GitHub Actions workflow runs converge on push/PR:
|
|
303
|
+
|
|
304
|
+
```yaml
|
|
305
|
+
on: [push, pull_request]
|
|
306
|
+
jobs:
|
|
307
|
+
converge:
|
|
308
|
+
runs-on: windows-latest
|
|
309
|
+
steps:
|
|
310
|
+
- uses: actions/checkout@v4
|
|
311
|
+
- run: pwsh run-converge.ps1 -Url '${{ env.DEV_URL }}' -Strict
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
On failure: artifacts uploaded + GitHub Issue created with fix recommendations.
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## File Structure
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
project/
|
|
322
|
+
├── .sdd/config.json # Pipeline state
|
|
323
|
+
├── BMAD-brief.md # Phase 0 output
|
|
324
|
+
├── SPEC.md # Phase 2 output
|
|
325
|
+
├── task-*/ # Phase 3 output
|
|
326
|
+
│ ├── MASTER-TASKS.md
|
|
327
|
+
│ └── T-XXX-*.md
|
|
328
|
+
├── converge/ # Phase 5 output
|
|
329
|
+
│ └── validation.md
|
|
330
|
+
└── .claude/commands/ # SDD commands
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
## Status
|
|
334
|
+
|
|
335
|
+
```powershell
|
|
336
|
+
sdd status # Quick status (npm package)
|
|
337
|
+
pwsh commands/sdd-status.ps1 --Verify # Full verification
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## npm Package
|
|
343
|
+
|
|
344
|
+
| Field | Value |
|
|
345
|
+
|-------|-------|
|
|
346
|
+
| Name | `sdd-pipeline` |
|
|
347
|
+
| Version | `1.1.0` |
|
|
348
|
+
| Registry | npmjs.com |
|
|
349
|
+
| CLI command | `sdd` |
|
|
350
|
+
| Claude Code command | `/sdd` |
|
|
351
|
+
| Install | `npm install -g sdd-pipeline` |
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Key Features
|
|
356
|
+
|
|
357
|
+
- **Phase gates** — `/sdd spec` fails if BMAD-brief.md missing — no bypass
|
|
358
|
+
- **Confidence scoring** — BMAD quantifies spec readiness before implementation
|
|
359
|
+
- **Problem-first** — Solution→problem inversion surfaces actual user needs
|
|
360
|
+
- **Self-correcting converge** — Loop back to appropriate phase on failure
|
|
361
|
+
- **Domain extensions** — API, frontend, backend — set via config
|
|
362
|
+
- **SSRF protection** — URL validation blocks private IPs, localhost
|
|
363
|
+
- **GitHub Actions CI** — Runs converge on push/PR, creates Issue on failure
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Documentation
|
|
368
|
+
|
|
369
|
+
| Document | Purpose |
|
|
370
|
+
|----------|---------|
|
|
371
|
+
| `docs/project-overview-pdr.md` | Project overview, problem statement, solution |
|
|
372
|
+
| `docs/system-architecture.md` | System architecture, component map, CI/CD flow |
|
|
373
|
+
| `docs/spec-pipeline-synthesis.md` | Full pipeline specification (1,200+ lines) |
|
|
374
|
+
| `docs/codebase-summary.md` | Codebase overview, file inventory, key contracts |
|
|
375
|
+
| `docs/deployment-guide.md` | Deployment instructions |
|
|
376
|
+
| `docs/project-roadmap.md` | Future plans |
|