speckeeper 0.10.1 → 0.11.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 +1 -0
- package/cli-contract.yaml +206 -208
- package/dist/cli.js +1316 -80
- package/dist/cli.js.map +1 -1
- package/dist/{config-api-CLVjdgIP.d.ts → config-api-coyCX1SB.d.ts} +21 -1
- package/dist/dsl/index.d.ts +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +75 -3
- package/dist/index.js.map +1 -1
- package/docs/cli-reference.md +107 -154
- package/docs/design/cli-commands.md +36 -0
- package/docs/design/functional-requirements.md +101 -3
- package/docs/design/nonfunctional-requirements.md +3 -3
- package/docs/design/test-refs.md +26 -0
- package/package.json +3 -3
package/docs/cli-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
TypeScript-first specification validation framework — validate design consistency, external SSOT integrity, and traceability with type-safe TypeScript DSL. Supports design lint, external source checks (OpenAPI, DDL, annotations), drift detection, impact analysis, and scaffolding from Mermaid flowcharts.
|
|
4
4
|
|
|
5
|
-
**Version:** 0.10.
|
|
5
|
+
**Version:** 0.10.1
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
|
|
@@ -15,6 +15,7 @@ TypeScript-first specification validation framework — validate design consiste
|
|
|
15
15
|
- [new](#speckeeper-new)
|
|
16
16
|
- [impact](#speckeeper-impact)
|
|
17
17
|
- [scaffold](#speckeeper-scaffold)
|
|
18
|
+
- [convert](#speckeeper-convert)
|
|
18
19
|
- [audit-requirements](#speckeeper-audit-requirements)
|
|
19
20
|
- [propose-trace-links](#speckeeper-propose-trace-links)
|
|
20
21
|
- [explain-impact](#speckeeper-explain-impact)
|
|
@@ -33,6 +34,15 @@ Requirements and design management framework with TypeScript DSL.
|
|
|
33
34
|
| `--version` | -V | No | | Print version and exit. |
|
|
34
35
|
| `--help` | -h | No | | Show help and exit. |
|
|
35
36
|
|
|
37
|
+
### Environment Variables
|
|
38
|
+
|
|
39
|
+
| Variable | Description |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `CURSOR_API_KEY` | API key for Cursor SDK adapter. |
|
|
42
|
+
| `GEMINI_API_KEY` | API key for Gemini adapter. |
|
|
43
|
+
| `OPENAI_API_KEY` | API key for OpenAI adapter. |
|
|
44
|
+
| `ANTHROPIC_API_KEY` | API key for Anthropic/Claude adapter. |
|
|
45
|
+
|
|
36
46
|
### init
|
|
37
47
|
|
|
38
48
|
Initialize a new speckeeper project with starter templates.
|
|
@@ -47,12 +57,16 @@ speckeeper init
|
|
|
47
57
|
```
|
|
48
58
|
speckeeper init --force
|
|
49
59
|
```
|
|
60
|
+
```
|
|
61
|
+
speckeeper init --format yaml
|
|
62
|
+
```
|
|
50
63
|
|
|
51
64
|
#### Options
|
|
52
65
|
|
|
53
66
|
| Option | Aliases | Required | Default | Description |
|
|
54
67
|
|---|---|---|---|---|
|
|
55
68
|
| `--force` | -F | No | `false` | Overwrite existing files. |
|
|
69
|
+
| `--format` | | No | `"ts"` | Spec data format: ts (default) or yaml. |
|
|
56
70
|
|
|
57
71
|
#### Exit Codes
|
|
58
72
|
|
|
@@ -64,25 +78,13 @@ speckeeper init --force
|
|
|
64
78
|
|
|
65
79
|
- **stderr:** format=`text`
|
|
66
80
|
|
|
67
|
-
#### Extensions
|
|
68
|
-
|
|
69
|
-
```yaml
|
|
70
|
-
x-agent:
|
|
71
|
-
riskLevel: medium
|
|
72
|
-
requiresConfirmation: true
|
|
73
|
-
idempotent: false
|
|
74
|
-
sideEffects:
|
|
75
|
-
- file_write
|
|
76
|
-
sideEffectNote: Creates config file and design/ directory structure. With --force, overwrites existing files.
|
|
77
|
-
```
|
|
78
|
-
|
|
79
81
|
---
|
|
80
82
|
|
|
81
83
|
### build
|
|
82
84
|
|
|
83
85
|
Generate docs/ and specs/ from TypeScript models.
|
|
84
86
|
|
|
85
|
-
Loads the design TypeScript models and generates machine-readable specs/ output and optionally human-readable docs/ output. Supports markdown, JSON, or both formats.
|
|
87
|
+
Loads the design TypeScript models and generates machine-readable specs/ output and optionally human-readable docs/ output. Supports markdown, JSON, or both formats.
|
|
86
88
|
|
|
87
89
|
**Usage:**
|
|
88
90
|
|
|
@@ -93,7 +95,7 @@ speckeeper build
|
|
|
93
95
|
speckeeper build --format json --output ./out
|
|
94
96
|
```
|
|
95
97
|
```
|
|
96
|
-
speckeeper build --
|
|
98
|
+
speckeeper build --verbose
|
|
97
99
|
```
|
|
98
100
|
|
|
99
101
|
#### Options
|
|
@@ -116,25 +118,13 @@ speckeeper build --watch --verbose
|
|
|
116
118
|
|
|
117
119
|
- **stderr:** format=`text`
|
|
118
120
|
|
|
119
|
-
#### Extensions
|
|
120
|
-
|
|
121
|
-
```yaml
|
|
122
|
-
x-agent:
|
|
123
|
-
riskLevel: low
|
|
124
|
-
requiresConfirmation: false
|
|
125
|
-
idempotent: true
|
|
126
|
-
sideEffects:
|
|
127
|
-
- file_write
|
|
128
|
-
sideEffectNote: When --watch is used, the process runs indefinitely and is unsuitable for non-interactive agent invocation. Always writes generated files to docs/ and specs/.
|
|
129
|
-
```
|
|
130
|
-
|
|
131
121
|
---
|
|
132
122
|
|
|
133
123
|
### lint
|
|
134
124
|
|
|
135
125
|
Check design integrity (ID duplicates, references, layer violations, etc.).
|
|
136
126
|
|
|
137
|
-
Validates design models for structural integrity. Checks include ID uniqueness, ID naming conventions, reference integrity, circular dependency detection, phase gate enforcement, and custom model-specific lint rules.
|
|
127
|
+
Validates design models for structural integrity. Checks include ID uniqueness, ID naming conventions, reference integrity, circular dependency detection, phase gate enforcement, and custom model-specific lint rules.
|
|
138
128
|
|
|
139
129
|
**Usage:**
|
|
140
130
|
|
|
@@ -145,7 +135,7 @@ speckeeper lint
|
|
|
145
135
|
speckeeper lint --strict --format github
|
|
146
136
|
```
|
|
147
137
|
```
|
|
148
|
-
speckeeper lint --phase HLD
|
|
138
|
+
speckeeper lint --phase HLD
|
|
149
139
|
```
|
|
150
140
|
|
|
151
141
|
#### Options
|
|
@@ -155,12 +145,12 @@ speckeeper lint --phase HLD --fix
|
|
|
155
145
|
| `--config` | -c | No | | Path to config file. |
|
|
156
146
|
| `--phase` | -p | No | | Phase gate to check against: REQ, HLD, LLD, OPS. |
|
|
157
147
|
| `--strict` | -s | No | `false` | Treat warnings as errors. |
|
|
158
|
-
| `--fix` | | No | `false` | Attempt to fix auto-fixable issues. |
|
|
148
|
+
| `--fix` | | No | `false` | Attempt to fix auto-fixable issues (not yet implemented). |
|
|
159
149
|
| `--format` | -f | No | `"text"` | Output format: text, json, github. |
|
|
160
150
|
|
|
161
151
|
#### Exit Codes
|
|
162
152
|
|
|
163
|
-
**Exit 0:** No lint issues found
|
|
153
|
+
**Exit 0:** No lint issues found.
|
|
164
154
|
|
|
165
155
|
- **stdout:** format=`{options.format}`
|
|
166
156
|
|
|
@@ -172,13 +162,7 @@ speckeeper lint --phase HLD --fix
|
|
|
172
162
|
|
|
173
163
|
```yaml
|
|
174
164
|
x-agent:
|
|
175
|
-
riskLevel: low
|
|
176
|
-
requiresConfirmation: false
|
|
177
165
|
idempotent: true
|
|
178
|
-
sideEffects:
|
|
179
|
-
- file_write
|
|
180
|
-
sideEffectNote: file_write applies only when --fix is provided. Without --fix the command is read-only.
|
|
181
|
-
safeDryRunOption: Omit --fix to run in read-only mode.
|
|
182
166
|
```
|
|
183
167
|
|
|
184
168
|
---
|
|
@@ -187,7 +171,7 @@ x-agent:
|
|
|
187
171
|
|
|
188
172
|
Check if generated files have been manually edited.
|
|
189
173
|
|
|
190
|
-
Compares generated files against their expected content to detect manual edits (drift). Useful for CI pipelines to ensure generated docs/ files stay in sync with model definitions.
|
|
174
|
+
Compares generated files against their expected content to detect manual edits (drift). Useful for CI pipelines to ensure generated docs/ files stay in sync with model definitions.
|
|
191
175
|
|
|
192
176
|
**Usage:**
|
|
193
177
|
|
|
@@ -197,26 +181,23 @@ speckeeper drift
|
|
|
197
181
|
```
|
|
198
182
|
speckeeper drift --fail-on-drift
|
|
199
183
|
```
|
|
200
|
-
```
|
|
201
|
-
speckeeper drift --update --format diff
|
|
202
|
-
```
|
|
203
184
|
|
|
204
185
|
#### Options
|
|
205
186
|
|
|
206
187
|
| Option | Aliases | Required | Default | Description |
|
|
207
188
|
|---|---|---|---|---|
|
|
208
189
|
| `--config` | -c | No | | Path to config file. |
|
|
209
|
-
| `--update` | -u | No | `false` | Auto-update if differences are found. |
|
|
190
|
+
| `--update` | -u | No | `false` | Auto-update if differences are found (not yet implemented). |
|
|
210
191
|
| `--format` | -f | No | `"text"` | Output format: text, json, diff. |
|
|
211
192
|
| `--fail-on-drift` | | No | `false` | Exit with code 1 if drift is detected (for CI). |
|
|
212
193
|
|
|
213
194
|
#### Exit Codes
|
|
214
195
|
|
|
215
|
-
**Exit 0:** No drift detected
|
|
196
|
+
**Exit 0:** No drift detected.
|
|
216
197
|
|
|
217
198
|
- **stdout:** format=`{options.format}`
|
|
218
199
|
|
|
219
|
-
**Exit 1:** Drift detected (with --fail-on-drift)
|
|
200
|
+
**Exit 1:** Drift detected (with --fail-on-drift).
|
|
220
201
|
|
|
221
202
|
- **stdout:** format=`{options.format}`
|
|
222
203
|
|
|
@@ -224,13 +205,7 @@ speckeeper drift --update --format diff
|
|
|
224
205
|
|
|
225
206
|
```yaml
|
|
226
207
|
x-agent:
|
|
227
|
-
riskLevel: medium
|
|
228
|
-
requiresConfirmation: true
|
|
229
208
|
idempotent: true
|
|
230
|
-
sideEffects:
|
|
231
|
-
- file_write
|
|
232
|
-
sideEffectNote: file_write applies only when --update is provided. Without --update the command is read-only.
|
|
233
|
-
safeDryRunOption: Omit --update to run in read-only mode.
|
|
234
209
|
```
|
|
235
210
|
|
|
236
211
|
---
|
|
@@ -239,7 +214,7 @@ x-agent:
|
|
|
239
214
|
|
|
240
215
|
Check external SSOT conformance (including custom models).
|
|
241
216
|
|
|
242
|
-
Validates specifications against actual implementation artifacts using a global source scan. Performs existence checks
|
|
217
|
+
Validates specifications against actual implementation artifacts using a global source scan. Performs existence checks, optional structural checks (via deep validation), and optional type checks. Sources include OpenAPI, DDL, annotations, and custom scanners.
|
|
243
218
|
|
|
244
219
|
**Usage:**
|
|
245
220
|
|
|
@@ -252,15 +227,12 @@ speckeeper check external-ssot --verbose
|
|
|
252
227
|
```
|
|
253
228
|
speckeeper check test --coverage
|
|
254
229
|
```
|
|
255
|
-
```
|
|
256
|
-
speckeeper check openapi --strict
|
|
257
|
-
```
|
|
258
230
|
|
|
259
231
|
#### Arguments
|
|
260
232
|
|
|
261
233
|
| Name | Required | Description |
|
|
262
234
|
|---|---|---|
|
|
263
|
-
| `type` | No | Type of check to run. Filters sources by type.
|
|
235
|
+
| `type` | No | Type of check to run. Filters sources by type. |
|
|
264
236
|
|
|
265
237
|
#### Options
|
|
266
238
|
|
|
@@ -268,29 +240,24 @@ speckeeper check openapi --strict
|
|
|
268
240
|
|---|---|---|---|---|
|
|
269
241
|
| `--config` | -c | No | | Path to config file. |
|
|
270
242
|
| `--strict` | | No | `false` | Treat warnings as errors. |
|
|
271
|
-
| `--verbose` | -v | No | `false` | Show detailed output
|
|
243
|
+
| `--verbose` | -v | No | `false` | Show detailed output. |
|
|
272
244
|
| `--coverage` | | No | `false` | Check if all testable acceptance criteria are covered by TestRefs. |
|
|
273
|
-
| `--format` | -f | No | `"text"` | Output format: text, json, github. |
|
|
274
245
|
|
|
275
246
|
#### Exit Codes
|
|
276
247
|
|
|
277
|
-
**Exit 0:** All checks passed
|
|
248
|
+
**Exit 0:** All checks passed.
|
|
278
249
|
|
|
279
|
-
- **stdout:** format=`
|
|
250
|
+
- **stdout:** format=`text`
|
|
280
251
|
|
|
281
|
-
**Exit 1:** Check failures found
|
|
252
|
+
**Exit 1:** Check failures found.
|
|
282
253
|
|
|
283
|
-
- **stdout:** format=`
|
|
254
|
+
- **stdout:** format=`text`
|
|
284
255
|
|
|
285
256
|
#### Extensions
|
|
286
257
|
|
|
287
258
|
```yaml
|
|
288
259
|
x-agent:
|
|
289
|
-
riskLevel: low
|
|
290
|
-
requiresConfirmation: false
|
|
291
260
|
idempotent: true
|
|
292
|
-
sideEffects:
|
|
293
|
-
|
|
294
261
|
```
|
|
295
262
|
|
|
296
263
|
---
|
|
@@ -299,7 +266,7 @@ x-agent:
|
|
|
299
266
|
|
|
300
267
|
Create a new element with auto-generated ID.
|
|
301
268
|
|
|
302
|
-
Generates a new design element file with a unique auto-generated ID based on the model's ID prefix and existing elements.
|
|
269
|
+
Generates a new design element file with a unique auto-generated ID based on the model's ID prefix and existing elements.
|
|
303
270
|
|
|
304
271
|
**Usage:**
|
|
305
272
|
|
|
@@ -307,17 +274,14 @@ Generates a new design element file with a unique auto-generated ID based on the
|
|
|
307
274
|
speckeeper new requirement --name "User Authentication"
|
|
308
275
|
```
|
|
309
276
|
```
|
|
310
|
-
speckeeper new entity
|
|
311
|
-
```
|
|
312
|
-
```
|
|
313
|
-
speckeeper new usecase --template custom-template.ts
|
|
277
|
+
speckeeper new entity
|
|
314
278
|
```
|
|
315
279
|
|
|
316
280
|
#### Arguments
|
|
317
281
|
|
|
318
282
|
| Name | Required | Description |
|
|
319
283
|
|---|---|---|
|
|
320
|
-
| `type` | Yes | Element type to create
|
|
284
|
+
| `type` | Yes | Element type to create. |
|
|
321
285
|
|
|
322
286
|
#### Options
|
|
323
287
|
|
|
@@ -327,38 +291,25 @@ speckeeper new usecase --template custom-template.ts
|
|
|
327
291
|
| `--name` | -n | No | | Name of the element. |
|
|
328
292
|
| `--output` | -o | No | | Output directory path. |
|
|
329
293
|
| `--template` | -t | No | | Path to template file. |
|
|
330
|
-
| `--dry-run` | | No | `false` | Preview generated file content
|
|
294
|
+
| `--dry-run` | | No | `false` | Preview generated file content without writing. |
|
|
331
295
|
|
|
332
296
|
#### Exit Codes
|
|
333
297
|
|
|
334
|
-
**Exit 0:** Element file created (or previewed with --dry-run)
|
|
298
|
+
**Exit 0:** Element file created (or previewed with --dry-run).
|
|
335
299
|
|
|
336
300
|
- **stdout:** format=`text`
|
|
337
301
|
|
|
338
|
-
**Exit 1:** Creation failed
|
|
302
|
+
**Exit 1:** Creation failed.
|
|
339
303
|
|
|
340
304
|
- **stderr:** format=`text`
|
|
341
305
|
|
|
342
|
-
#### Extensions
|
|
343
|
-
|
|
344
|
-
```yaml
|
|
345
|
-
x-agent:
|
|
346
|
-
riskLevel: low
|
|
347
|
-
requiresConfirmation: false
|
|
348
|
-
idempotent: false
|
|
349
|
-
sideEffects:
|
|
350
|
-
- file_write
|
|
351
|
-
sideEffectNote: Creates a new TypeScript spec file with auto-generated ID. With --dry-run, only previews the generated content without writing.
|
|
352
|
-
safeDryRunOption: --dry-run
|
|
353
|
-
```
|
|
354
|
-
|
|
355
306
|
---
|
|
356
307
|
|
|
357
308
|
### impact
|
|
358
309
|
|
|
359
310
|
Analyze impact of changes to an ID.
|
|
360
311
|
|
|
361
|
-
Performs change impact analysis by traversing the relation graph starting from the specified spec ID.
|
|
312
|
+
Performs change impact analysis by traversing the relation graph starting from the specified spec ID.
|
|
362
313
|
|
|
363
314
|
**Usage:**
|
|
364
315
|
|
|
@@ -366,7 +317,7 @@ Performs change impact analysis by traversing the relation graph starting from t
|
|
|
366
317
|
speckeeper impact FR-001
|
|
367
318
|
```
|
|
368
319
|
```
|
|
369
|
-
speckeeper impact ENT-ORDER --
|
|
320
|
+
speckeeper impact ENT-ORDER --depth 5
|
|
370
321
|
```
|
|
371
322
|
```
|
|
372
323
|
speckeeper impact COMP-AUTH --format mermaid
|
|
@@ -376,7 +327,7 @@ speckeeper impact COMP-AUTH --format mermaid
|
|
|
376
327
|
|
|
377
328
|
| Name | Required | Description |
|
|
378
329
|
|---|---|---|
|
|
379
|
-
| `id` | Yes | Spec ID to analyze (e.g. REQ-001, ENT-ORDER
|
|
330
|
+
| `id` | Yes | Spec ID to analyze (e.g. REQ-001, ENT-ORDER). |
|
|
380
331
|
|
|
381
332
|
#### Options
|
|
382
333
|
|
|
@@ -389,7 +340,7 @@ speckeeper impact COMP-AUTH --format mermaid
|
|
|
389
340
|
|
|
390
341
|
#### Exit Codes
|
|
391
342
|
|
|
392
|
-
**Exit 0:** Impact analysis completed
|
|
343
|
+
**Exit 0:** Impact analysis completed.
|
|
393
344
|
|
|
394
345
|
- **stdout:** format=`{options.format}`
|
|
395
346
|
|
|
@@ -401,11 +352,7 @@ speckeeper impact COMP-AUTH --format mermaid
|
|
|
401
352
|
|
|
402
353
|
```yaml
|
|
403
354
|
x-agent:
|
|
404
|
-
riskLevel: low
|
|
405
|
-
requiresConfirmation: false
|
|
406
355
|
idempotent: true
|
|
407
|
-
sideEffects:
|
|
408
|
-
|
|
409
356
|
```
|
|
410
357
|
|
|
411
358
|
---
|
|
@@ -414,7 +361,7 @@ x-agent:
|
|
|
414
361
|
|
|
415
362
|
Generate _models/ from a Mermaid flowchart definition.
|
|
416
363
|
|
|
417
|
-
Parses a Mermaid flowchart from a Markdown file and generates TypeScript model classes, spec data files, and an index file
|
|
364
|
+
Parses a Mermaid flowchart from a Markdown file and generates TypeScript model classes, spec data files, and an index file.
|
|
418
365
|
|
|
419
366
|
**Usage:**
|
|
420
367
|
|
|
@@ -427,6 +374,9 @@ speckeeper scaffold --source flow.md --output design/ --force
|
|
|
427
374
|
```
|
|
428
375
|
speckeeper scaffold --source arch.md --dry-run
|
|
429
376
|
```
|
|
377
|
+
```
|
|
378
|
+
speckeeper scaffold --source arch.md --format yaml
|
|
379
|
+
```
|
|
430
380
|
|
|
431
381
|
#### Options
|
|
432
382
|
|
|
@@ -436,14 +386,15 @@ speckeeper scaffold --source arch.md --dry-run
|
|
|
436
386
|
| `--output` | -o | No | `"design/"` | Output directory. |
|
|
437
387
|
| `--force` | -F | No | `false` | Overwrite existing files. |
|
|
438
388
|
| `--dry-run` | | No | `false` | Preview generated files without writing. |
|
|
389
|
+
| `--format` | | No | `"ts"` | Spec data format: ts (default) or yaml. |
|
|
439
390
|
|
|
440
391
|
#### Exit Codes
|
|
441
392
|
|
|
442
|
-
**Exit 0:** Model files generated (or previewed with --dry-run)
|
|
393
|
+
**Exit 0:** Model files generated (or previewed with --dry-run).
|
|
443
394
|
|
|
444
395
|
- **stdout:** format=`text`
|
|
445
396
|
|
|
446
|
-
**Exit 1:** Scaffold failed
|
|
397
|
+
**Exit 1:** Scaffold failed.
|
|
447
398
|
|
|
448
399
|
- **stderr:** format=`text`
|
|
449
400
|
|
|
@@ -451,14 +402,52 @@ speckeeper scaffold --source arch.md --dry-run
|
|
|
451
402
|
|
|
452
403
|
```yaml
|
|
453
404
|
x-agent:
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
405
|
+
recommendedBeforeUse:
|
|
406
|
+
- Run with --dry-run first to preview generated files
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
### convert
|
|
412
|
+
|
|
413
|
+
Convert a TS spec data file to YAML format.
|
|
414
|
+
|
|
415
|
+
Reads a TypeScript spec data file that exports a SpecModule via defineSpecs(), extracts model IDs and spec data, and writes the equivalent YAML file. Supports --dry-run for preview.
|
|
416
|
+
|
|
417
|
+
**Usage:**
|
|
418
|
+
|
|
419
|
+
```
|
|
420
|
+
speckeeper convert design/glossary.ts
|
|
421
|
+
```
|
|
422
|
+
```
|
|
423
|
+
speckeeper convert design/requirements.ts --output reqs.yaml
|
|
424
|
+
```
|
|
461
425
|
```
|
|
426
|
+
speckeeper convert design/glossary.ts --dry-run
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
#### Arguments
|
|
430
|
+
|
|
431
|
+
| Name | Required | Description |
|
|
432
|
+
|---|---|---|
|
|
433
|
+
| `file` | Yes | Path to TS spec data file. |
|
|
434
|
+
|
|
435
|
+
#### Options
|
|
436
|
+
|
|
437
|
+
| Option | Aliases | Required | Default | Description |
|
|
438
|
+
|---|---|---|---|---|
|
|
439
|
+
| `--output` | -o | No | | Output file path (default: same name with .yaml extension). |
|
|
440
|
+
| `--dry-run` | -n | No | `false` | Preview conversion without writing. |
|
|
441
|
+
|
|
442
|
+
#### Exit Codes
|
|
443
|
+
|
|
444
|
+
**Exit 0:** Conversion completed (or previewed with --dry-run).
|
|
445
|
+
|
|
446
|
+
- **stdout:** format=`text`
|
|
447
|
+
|
|
448
|
+
**Exit 1:** Conversion failed (file not found, invalid module, or write error).
|
|
449
|
+
|
|
450
|
+
- **stderr:** format=`text`
|
|
462
451
|
|
|
463
452
|
---
|
|
464
453
|
|
|
@@ -466,7 +455,7 @@ x-agent:
|
|
|
466
455
|
|
|
467
456
|
Run LLM-based requirement quality audit.
|
|
468
457
|
|
|
469
|
-
Performs semantic analysis of design specs using LLM to identify quality issues that static lint cannot detect.
|
|
458
|
+
Performs semantic analysis of design specs using LLM to identify quality issues that static lint cannot detect.
|
|
470
459
|
|
|
471
460
|
**Usage:**
|
|
472
461
|
|
|
@@ -523,15 +512,8 @@ speckeeper audit-requirements --report-format json --output audit.json
|
|
|
523
512
|
|
|
524
513
|
```yaml
|
|
525
514
|
x-agent:
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
idempotent: true
|
|
529
|
-
sideEffects:
|
|
530
|
-
- network
|
|
531
|
-
- file_write
|
|
532
|
-
sideEffectNote: Network calls to LLM provider when adapter is not mock. Filesystem write when --output is specified. Exit 10 = valid output with blocking findings (stdout contains result). Exit 11 = missing runtime dependency (non-retryable).
|
|
533
|
-
safeDryRunOption: --dry-run
|
|
534
|
-
expectedDurationMs: 120000
|
|
515
|
+
recommendedBeforeUse:
|
|
516
|
+
- Run with --dry-run first to preview the prompt
|
|
535
517
|
retryableExitCodes:
|
|
536
518
|
- 12
|
|
537
519
|
```
|
|
@@ -542,7 +524,7 @@ x-agent:
|
|
|
542
524
|
|
|
543
525
|
LLM-based traceability link proposal.
|
|
544
526
|
|
|
545
|
-
Analyzes spec definitions and external source scan results to propose candidate traceability links
|
|
527
|
+
Analyzes spec definitions and external source scan results to propose candidate traceability links.
|
|
546
528
|
|
|
547
529
|
**Usage:**
|
|
548
530
|
|
|
@@ -552,9 +534,6 @@ speckeeper propose-trace-links
|
|
|
552
534
|
```
|
|
553
535
|
speckeeper propose-trace-links --adapter claude --report-format json
|
|
554
536
|
```
|
|
555
|
-
```
|
|
556
|
-
speckeeper propose-trace-links --dry-run
|
|
557
|
-
```
|
|
558
537
|
|
|
559
538
|
#### Options
|
|
560
539
|
|
|
@@ -599,15 +578,8 @@ speckeeper propose-trace-links --dry-run
|
|
|
599
578
|
|
|
600
579
|
```yaml
|
|
601
580
|
x-agent:
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
idempotent: true
|
|
605
|
-
sideEffects:
|
|
606
|
-
- network
|
|
607
|
-
- file_write
|
|
608
|
-
sideEffectNote: Network calls to LLM provider when adapter is not mock. Filesystem write when --output is specified. Exit 10 = valid output with blocking findings (stdout contains result). Exit 11 = missing runtime dependency (non-retryable).
|
|
609
|
-
safeDryRunOption: --dry-run
|
|
610
|
-
expectedDurationMs: 120000
|
|
581
|
+
recommendedBeforeUse:
|
|
582
|
+
- Run with --dry-run first to preview the prompt
|
|
611
583
|
retryableExitCodes:
|
|
612
584
|
- 12
|
|
613
585
|
```
|
|
@@ -618,7 +590,7 @@ x-agent:
|
|
|
618
590
|
|
|
619
591
|
LLM-based explanation of impact analysis output.
|
|
620
592
|
|
|
621
|
-
Reads JSON output from speckeeper impact on stdin and generates a human-readable explanation
|
|
593
|
+
Reads JSON output from speckeeper impact on stdin and generates a human-readable explanation.
|
|
622
594
|
|
|
623
595
|
**Usage:**
|
|
624
596
|
|
|
@@ -633,7 +605,6 @@ speckeeper impact ENT-ORDER --format json | speckeeper explain-impact --adapter
|
|
|
633
605
|
|
|
634
606
|
| Option | Aliases | Required | Default | Description |
|
|
635
607
|
|---|---|---|---|---|
|
|
636
|
-
| `--config` | -c | No | | Path to config file. |
|
|
637
608
|
| `--adapter` | -a | No | | SDK adapter to use for LLM execution. |
|
|
638
609
|
| `--model` | | No | | LLM model override. |
|
|
639
610
|
| `--dry-run` | -n | No | `false` | Output the constructed prompt without calling LLM. |
|
|
@@ -652,11 +623,7 @@ speckeeper impact ENT-ORDER --format json | speckeeper explain-impact --adapter
|
|
|
652
623
|
|
|
653
624
|
- **stderr:** format=`text`
|
|
654
625
|
|
|
655
|
-
**Exit 2:**
|
|
656
|
-
|
|
657
|
-
- **stderr:** format=`text`
|
|
658
|
-
|
|
659
|
-
**Exit 3:** No input on stdin.
|
|
626
|
+
**Exit 2:** No input on stdin.
|
|
660
627
|
|
|
661
628
|
- **stderr:** format=`text`
|
|
662
629
|
|
|
@@ -676,15 +643,8 @@ speckeeper impact ENT-ORDER --format json | speckeeper explain-impact --adapter
|
|
|
676
643
|
|
|
677
644
|
```yaml
|
|
678
645
|
x-agent:
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
idempotent: true
|
|
682
|
-
sideEffects:
|
|
683
|
-
- network
|
|
684
|
-
- file_write
|
|
685
|
-
sideEffectNote: Network calls to LLM provider when adapter is not mock. Filesystem write when --output is specified. Exit 10 = valid output with blocking findings (stdout contains result). Exit 11 = missing runtime dependency (non-retryable).
|
|
686
|
-
safeDryRunOption: --dry-run
|
|
687
|
-
expectedDurationMs: 120000
|
|
646
|
+
recommendedBeforeUse:
|
|
647
|
+
- Run with --dry-run first to preview the prompt
|
|
688
648
|
retryableExitCodes:
|
|
689
649
|
- 12
|
|
690
650
|
```
|
|
@@ -695,7 +655,7 @@ x-agent:
|
|
|
695
655
|
|
|
696
656
|
LLM-based acceptance criteria proposal.
|
|
697
657
|
|
|
698
|
-
Analyzes design specs and proposes testable acceptance criteria
|
|
658
|
+
Analyzes design specs and proposes testable acceptance criteria.
|
|
699
659
|
|
|
700
660
|
**Usage:**
|
|
701
661
|
|
|
@@ -758,15 +718,8 @@ speckeeper propose-acceptance-criteria --adapter gemini --dry-run
|
|
|
758
718
|
|
|
759
719
|
```yaml
|
|
760
720
|
x-agent:
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
idempotent: true
|
|
764
|
-
sideEffects:
|
|
765
|
-
- network
|
|
766
|
-
- file_write
|
|
767
|
-
sideEffectNote: Network calls to LLM provider when adapter is not mock. Filesystem write when --output is specified. Exit 10 = valid output with blocking findings (stdout contains result). Exit 11 = missing runtime dependency (non-retryable).
|
|
768
|
-
safeDryRunOption: --dry-run
|
|
769
|
-
expectedDurationMs: 120000
|
|
721
|
+
recommendedBeforeUse:
|
|
722
|
+
- Run with --dry-run first to preview the prompt
|
|
770
723
|
retryableExitCodes:
|
|
771
724
|
- 12
|
|
772
725
|
```
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
| propose-trace-links | Propose candidate traceability links between specs with confidence scores and rationale |
|
|
14
14
|
| explain-impact | Translate impact analysis JSON (from stdin) into human-readable explanation for PM/executive audiences |
|
|
15
15
|
| propose-acceptance-criteria | Propose testable acceptance criteria in Given/When/Then format for specified specs |
|
|
16
|
+
| convert | Convert a TS spec data file to YAML format |
|
|
16
17
|
| impact | Analyze the change impact scope of a specified ID |
|
|
17
18
|
|
|
18
19
|
---
|
|
@@ -474,6 +475,41 @@ speckeeper propose-acceptance-criteria --adapter gemini --dry-run
|
|
|
474
475
|
|
|
475
476
|
---
|
|
476
477
|
|
|
478
|
+
## CMD-CONVERT: convert
|
|
479
|
+
|
|
480
|
+
Convert a TS spec data file to YAML format
|
|
481
|
+
|
|
482
|
+
### Usage
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
speckeeper convert [options]
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Parameters
|
|
489
|
+
|
|
490
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
491
|
+
|------|------|------|----------|---------|-------------|
|
|
492
|
+
| <file> | argument | path | ✓ | - | Path to TS spec data file |
|
|
493
|
+
| -o, --output | option | path | | - | Output file path (default: same name with .yaml extension) |
|
|
494
|
+
| -n, --dry-run | option | boolean | | false | Preview conversion without writing |
|
|
495
|
+
|
|
496
|
+
### Examples
|
|
497
|
+
|
|
498
|
+
```bash
|
|
499
|
+
speckeeper convert design/glossary.ts
|
|
500
|
+
speckeeper convert design/requirements.ts --output reqs.yaml
|
|
501
|
+
speckeeper convert design/glossary.ts --dry-run
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Exit Codes
|
|
505
|
+
|
|
506
|
+
| Code | Description |
|
|
507
|
+
|------|-------------|
|
|
508
|
+
| 0 | Conversion successful |
|
|
509
|
+
| 1 | Conversion error |
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
477
513
|
## CMD-IMPACT: impact
|
|
478
514
|
|
|
479
515
|
Analyze the change impact scope of a specified ID
|