speckeeper 0.12.0 → 0.13.1

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/cli-contract.yaml CHANGED
@@ -1,9 +1,9 @@
1
1
  # yaml-language-server: $schema=./node_modules/cli-contracts/schemas/cli-contract.schema.json
2
- cliContracts: 0.1.0
2
+ cli_contracts: 0.1.0
3
3
 
4
4
  info:
5
5
  title: speckeeper CLI
6
- version: 0.10.1
6
+ version: 0.13.0
7
7
  description: >-
8
8
  TypeScript-first specification validation framework — validate design
9
9
  consistency, external SSOT integrity, and traceability with type-safe
@@ -13,7 +13,27 @@ info:
13
13
  license:
14
14
  name: MIT
15
15
 
16
- commandSets:
16
+ artifact_slots:
17
+ design-specs:
18
+ direction: read
19
+ description: Design specification files (requirements, architecture)
20
+ config:
21
+ direction: read
22
+ description: speckeeper configuration
23
+ codebase:
24
+ direction: read
25
+ description: Source code for traceability and coverage checks
26
+ external-sources:
27
+ direction: read
28
+ description: External SSOT sources (OpenAPI, DDL, annotations)
29
+ audit-report:
30
+ direction: write
31
+ description: LLM audit and analysis output
32
+ scaffold-output:
33
+ direction: write
34
+ description: Scaffolded specification files
35
+
36
+ command_sets:
17
37
  speckeeper:
18
38
  summary: Requirements and design management framework with TypeScript DSL.
19
39
  executable: speckeeper
@@ -32,7 +52,7 @@ commandSets:
32
52
  description: API key for Anthropic/Claude adapter.
33
53
  sensitive: true
34
54
 
35
- globalOptions:
55
+ global_options:
36
56
  - name: version
37
57
  aliases: [V]
38
58
  description: Print version and exit.
@@ -59,7 +79,7 @@ commandSets:
59
79
  - speckeeper init --format yaml
60
80
 
61
81
  effects:
62
- riskLevel: medium
82
+ risk_level: medium
63
83
  writes:
64
84
  - target: "speckeeper.config.ts, design/ directory"
65
85
  description: "generates config and starter template files"
@@ -73,7 +93,7 @@ commandSets:
73
93
  type: boolean
74
94
  default: false
75
95
  effects:
76
- riskLevel: high
96
+ risk_level: high
77
97
  writes:
78
98
  - target: "existing project files"
79
99
  description: "overwrites existing config and design files"
@@ -82,7 +102,7 @@ commandSets:
82
102
 
83
103
  - name: format
84
104
  description: "Spec data format: ts (default) or yaml."
85
- valueName: format
105
+ value_name: format
86
106
  schema:
87
107
  type: string
88
108
  default: ts
@@ -112,7 +132,7 @@ commandSets:
112
132
  - speckeeper build --verbose
113
133
 
114
134
  effects:
115
- riskLevel: low
135
+ risk_level: low
116
136
  writes:
117
137
  - target: "docs/ directory"
118
138
  description: "generated Markdown documentation files"
@@ -123,7 +143,7 @@ commandSets:
123
143
  - name: config
124
144
  aliases: [c]
125
145
  description: Path to config file.
126
- valueName: path
146
+ value_name: path
127
147
  schema:
128
148
  type: string
129
149
  file:
@@ -134,7 +154,7 @@ commandSets:
134
154
  - name: output
135
155
  aliases: [o]
136
156
  description: Base output directory path.
137
- valueName: path
157
+ value_name: path
138
158
  schema:
139
159
  type: string
140
160
  default: "."
@@ -142,7 +162,7 @@ commandSets:
142
162
  - name: format
143
163
  aliases: [f]
144
164
  description: "Output format: markdown, json, both."
145
- valueName: format
165
+ value_name: format
146
166
  schema:
147
167
  type: string
148
168
  default: both
@@ -192,7 +212,7 @@ commandSets:
192
212
  - name: config
193
213
  aliases: [c]
194
214
  description: Path to config file.
195
- valueName: path
215
+ value_name: path
196
216
  schema:
197
217
  type: string
198
218
  file:
@@ -203,7 +223,7 @@ commandSets:
203
223
  - name: phase
204
224
  aliases: [p]
205
225
  description: "Phase gate to check against: REQ, HLD, LLD, OPS."
206
- valueName: phase
226
+ value_name: phase
207
227
  schema:
208
228
  type: string
209
229
  enum: [REQ, HLD, LLD, OPS]
@@ -224,7 +244,7 @@ commandSets:
224
244
  - name: format
225
245
  aliases: [f]
226
246
  description: "Output format: text, json, github."
227
- valueName: format
247
+ value_name: format
228
248
  schema:
229
249
  type: string
230
250
  default: text
@@ -259,7 +279,7 @@ commandSets:
259
279
  - name: config
260
280
  aliases: [c]
261
281
  description: Path to config file.
262
- valueName: path
282
+ value_name: path
263
283
  schema:
264
284
  type: string
265
285
  file:
@@ -277,7 +297,7 @@ commandSets:
277
297
  - name: format
278
298
  aliases: [f]
279
299
  description: "Output format: text, json, diff."
280
- valueName: format
300
+ value_name: format
281
301
  schema:
282
302
  type: string
283
303
  default: text
@@ -330,7 +350,7 @@ commandSets:
330
350
  - name: config
331
351
  aliases: [c]
332
352
  description: Path to config file.
333
- valueName: path
353
+ value_name: path
334
354
  schema:
335
355
  type: string
336
356
  file:
@@ -382,7 +402,7 @@ commandSets:
382
402
  - speckeeper new entity
383
403
 
384
404
  effects:
385
- riskLevel: low
405
+ risk_level: low
386
406
  writes:
387
407
  - target: "design/ directory"
388
408
  description: "new TypeScript spec file with auto-generated ID"
@@ -402,28 +422,28 @@ commandSets:
402
422
  - name: kind
403
423
  aliases: [k]
404
424
  description: Sub-kind (e.g. functional, non-functional for requirements).
405
- valueName: kind
425
+ value_name: kind
406
426
  schema:
407
427
  type: string
408
428
 
409
429
  - name: name
410
430
  aliases: [n]
411
431
  description: Name of the element.
412
- valueName: name
432
+ value_name: name
413
433
  schema:
414
434
  type: string
415
435
 
416
436
  - name: output
417
437
  aliases: [o]
418
438
  description: Output directory path.
419
- valueName: path
439
+ value_name: path
420
440
  schema:
421
441
  type: string
422
442
 
423
443
  - name: template
424
444
  aliases: [t]
425
445
  description: Path to template file.
426
- valueName: path
446
+ value_name: path
427
447
  schema:
428
448
  type: string
429
449
  file:
@@ -471,7 +491,7 @@ commandSets:
471
491
  - name: config
472
492
  aliases: [c]
473
493
  description: Path to config file.
474
- valueName: path
494
+ value_name: path
475
495
  schema:
476
496
  type: string
477
497
  file:
@@ -482,7 +502,7 @@ commandSets:
482
502
  - name: depth
483
503
  aliases: [d]
484
504
  description: Analysis depth (reference tracking level).
485
- valueName: n
505
+ value_name: n
486
506
  schema:
487
507
  type: integer
488
508
  minimum: 1
@@ -490,7 +510,7 @@ commandSets:
490
510
 
491
511
  - name: direction
492
512
  description: "Analysis direction: upstream, downstream, both."
493
- valueName: direction
513
+ value_name: direction
494
514
  schema:
495
515
  type: string
496
516
  default: both
@@ -499,7 +519,7 @@ commandSets:
499
519
  - name: format
500
520
  aliases: [f]
501
521
  description: "Output format: text, json, mermaid."
502
- valueName: format
522
+ value_name: format
503
523
  schema:
504
524
  type: string
505
525
  default: text
@@ -532,7 +552,7 @@ commandSets:
532
552
  - speckeeper scaffold --source arch.md --format yaml
533
553
 
534
554
  effects:
535
- riskLevel: low
555
+ risk_level: low
536
556
  writes:
537
557
  - target: "design/ directory"
538
558
  description: "generated _models/ and spec data files"
@@ -542,7 +562,7 @@ commandSets:
542
562
  - name: source
543
563
  aliases: [s]
544
564
  description: Path to Markdown file containing Mermaid flowchart.
545
- valueName: path
565
+ value_name: path
546
566
  required: true
547
567
  schema:
548
568
  type: string
@@ -554,7 +574,7 @@ commandSets:
554
574
  - name: output
555
575
  aliases: [o]
556
576
  description: Output directory.
557
- valueName: path
577
+ value_name: path
558
578
  schema:
559
579
  type: string
560
580
  default: design/
@@ -566,7 +586,7 @@ commandSets:
566
586
  type: boolean
567
587
  default: false
568
588
  effects:
569
- riskLevel: medium
589
+ risk_level: medium
570
590
  writes:
571
591
  - target: "existing model and spec files"
572
592
  description: "overwrites existing TypeScript model source files"
@@ -580,7 +600,7 @@ commandSets:
580
600
 
581
601
  - name: format
582
602
  description: "Spec data format: ts (default) or yaml."
583
- valueName: format
603
+ value_name: format
584
604
  schema:
585
605
  type: string
586
606
  default: ts
@@ -598,7 +618,7 @@ commandSets:
598
618
  format: text
599
619
 
600
620
  x-agent:
601
- recommendedBeforeUse:
621
+ recommended_before_use:
602
622
  - "Run with --dry-run first to preview generated files"
603
623
 
604
624
  # ── convert ───────────────────────────────────────
@@ -614,7 +634,7 @@ commandSets:
614
634
  - speckeeper convert design/glossary.ts --dry-run
615
635
 
616
636
  effects:
617
- riskLevel: low
637
+ risk_level: low
618
638
  writes:
619
639
  - target: ".yaml output file"
620
640
  description: "YAML conversion of the TS spec data"
@@ -632,7 +652,7 @@ commandSets:
632
652
  - name: output
633
653
  aliases: [o]
634
654
  description: "Output file path (default: same name with .yaml extension)."
635
- valueName: path
655
+ value_name: path
636
656
  schema:
637
657
  type: string
638
658
  file:
@@ -671,14 +691,14 @@ commandSets:
671
691
 
672
692
  usage:
673
693
  - speckeeper audit-requirements
674
- - speckeeper audit-requirements --adapter gemini --dry-run
694
+ - speckeeper audit-requirements --adapter gemini --show-prompt
675
695
  - speckeeper audit-requirements --report-format json --output audit.json
676
696
 
677
697
  options:
678
698
  - name: config
679
699
  aliases: [c]
680
700
  description: Path to config file.
681
- valueName: path
701
+ value_name: path
682
702
  schema:
683
703
  type: string
684
704
  file:
@@ -689,33 +709,20 @@ commandSets:
689
709
  - name: adapter
690
710
  aliases: [a]
691
711
  description: SDK adapter to use for LLM execution.
692
- valueName: name
712
+ value_name: name
693
713
  schema:
694
714
  type: string
695
715
  enum: [cursor, claude, openai, gemini, mock]
696
716
 
697
717
  - name: model
698
718
  description: LLM model override.
699
- valueName: name
719
+ value_name: name
700
720
  schema:
701
721
  type: string
702
722
 
703
- - name: dry-run
704
- aliases: [n]
705
- description: Output the constructed prompt without calling LLM.
706
- schema:
707
- type: boolean
708
- default: false
709
-
710
- - name: show-prompt
711
- description: Display the constructed LLM prompt on stderr.
712
- schema:
713
- type: boolean
714
- default: false
715
-
716
723
  - name: fail-on
717
724
  description: Minimum severity that causes a non-zero exit.
718
- valueName: level
725
+ value_name: level
719
726
  schema:
720
727
  type: string
721
728
  enum: [warning, error, critical]
@@ -724,7 +731,7 @@ commandSets:
724
731
  - name: output
725
732
  aliases: [o]
726
733
  description: Write result to a file instead of stdout.
727
- valueName: file
734
+ value_name: file
728
735
  schema:
729
736
  type: string
730
737
  file:
@@ -733,7 +740,7 @@ commandSets:
733
740
 
734
741
  - name: report-format
735
742
  description: Output format for the audit report.
736
- valueName: fmt
743
+ value_name: fmt
737
744
  schema:
738
745
  type: string
739
746
  enum: [json, text, yaml]
@@ -775,8 +782,8 @@ commandSets:
775
782
  format: text
776
783
 
777
784
  x-agent:
778
- recommendedBeforeUse:
779
- - "Run with --dry-run first to preview the prompt"
785
+ recommended_before_use:
786
+ - "Run with --show-prompt first to preview the prompt"
780
787
  retryableExitCodes: [12]
781
788
 
782
789
  # ── propose-trace-links ─────────────────────────────
@@ -799,7 +806,7 @@ commandSets:
799
806
  - name: config
800
807
  aliases: [c]
801
808
  description: Path to config file.
802
- valueName: path
809
+ value_name: path
803
810
  schema:
804
811
  type: string
805
812
  file:
@@ -810,33 +817,20 @@ commandSets:
810
817
  - name: adapter
811
818
  aliases: [a]
812
819
  description: SDK adapter to use for LLM execution.
813
- valueName: name
820
+ value_name: name
814
821
  schema:
815
822
  type: string
816
823
  enum: [cursor, claude, openai, gemini, mock]
817
824
 
818
825
  - name: model
819
826
  description: LLM model override.
820
- valueName: name
827
+ value_name: name
821
828
  schema:
822
829
  type: string
823
830
 
824
- - name: dry-run
825
- aliases: [n]
826
- description: Output the constructed prompt without calling LLM.
827
- schema:
828
- type: boolean
829
- default: false
830
-
831
- - name: show-prompt
832
- description: Display the constructed LLM prompt on stderr.
833
- schema:
834
- type: boolean
835
- default: false
836
-
837
831
  - name: fail-on
838
832
  description: Minimum severity that causes a non-zero exit.
839
- valueName: level
833
+ value_name: level
840
834
  schema:
841
835
  type: string
842
836
  enum: [warning, error, critical]
@@ -845,7 +839,7 @@ commandSets:
845
839
  - name: output
846
840
  aliases: [o]
847
841
  description: Write result to a file instead of stdout.
848
- valueName: file
842
+ value_name: file
849
843
  schema:
850
844
  type: string
851
845
  file:
@@ -854,7 +848,7 @@ commandSets:
854
848
 
855
849
  - name: report-format
856
850
  description: Output format for the report.
857
- valueName: fmt
851
+ value_name: fmt
858
852
  schema:
859
853
  type: string
860
854
  enum: [json, text, yaml]
@@ -896,8 +890,8 @@ commandSets:
896
890
  format: text
897
891
 
898
892
  x-agent:
899
- recommendedBeforeUse:
900
- - "Run with --dry-run first to preview the prompt"
893
+ recommended_before_use:
894
+ - "Run with --show-prompt first to preview the prompt"
901
895
  retryableExitCodes: [12]
902
896
 
903
897
  # ── explain-impact ──────────────────────────────────
@@ -928,33 +922,20 @@ commandSets:
928
922
  - name: adapter
929
923
  aliases: [a]
930
924
  description: SDK adapter to use for LLM execution.
931
- valueName: name
925
+ value_name: name
932
926
  schema:
933
927
  type: string
934
928
  enum: [cursor, claude, openai, gemini, mock]
935
929
 
936
930
  - name: model
937
931
  description: LLM model override.
938
- valueName: name
932
+ value_name: name
939
933
  schema:
940
934
  type: string
941
935
 
942
- - name: dry-run
943
- aliases: [n]
944
- description: Output the constructed prompt without calling LLM.
945
- schema:
946
- type: boolean
947
- default: false
948
-
949
- - name: show-prompt
950
- description: Display the constructed LLM prompt on stderr.
951
- schema:
952
- type: boolean
953
- default: false
954
-
955
936
  - name: fail-on
956
937
  description: Minimum severity that causes a non-zero exit.
957
- valueName: level
938
+ value_name: level
958
939
  schema:
959
940
  type: string
960
941
  enum: [warning, error, critical]
@@ -963,7 +944,7 @@ commandSets:
963
944
  - name: output
964
945
  aliases: [o]
965
946
  description: Write result to a file instead of stdout.
966
- valueName: file
947
+ value_name: file
967
948
  schema:
968
949
  type: string
969
950
  file:
@@ -972,7 +953,7 @@ commandSets:
972
953
 
973
954
  - name: report-format
974
955
  description: Output format for the report.
975
- valueName: fmt
956
+ value_name: fmt
976
957
  schema:
977
958
  type: string
978
959
  enum: [json, text, yaml]
@@ -1014,8 +995,8 @@ commandSets:
1014
995
  format: text
1015
996
 
1016
997
  x-agent:
1017
- recommendedBeforeUse:
1018
- - "Run with --dry-run first to preview the prompt"
998
+ recommended_before_use:
999
+ - "Run with --show-prompt first to preview the prompt"
1019
1000
  retryableExitCodes: [12]
1020
1001
 
1021
1002
  # ── propose-acceptance-criteria ─────────────────────
@@ -1032,7 +1013,7 @@ commandSets:
1032
1013
  usage:
1033
1014
  - speckeeper propose-acceptance-criteria
1034
1015
  - speckeeper propose-acceptance-criteria FR-001 FR-002
1035
- - speckeeper propose-acceptance-criteria --adapter gemini --dry-run
1016
+ - speckeeper propose-acceptance-criteria --adapter gemini --show-prompt
1036
1017
 
1037
1018
  arguments:
1038
1019
  - name: specIds
@@ -1048,7 +1029,7 @@ commandSets:
1048
1029
  - name: config
1049
1030
  aliases: [c]
1050
1031
  description: Path to config file.
1051
- valueName: path
1032
+ value_name: path
1052
1033
  schema:
1053
1034
  type: string
1054
1035
  file:
@@ -1059,33 +1040,20 @@ commandSets:
1059
1040
  - name: adapter
1060
1041
  aliases: [a]
1061
1042
  description: SDK adapter to use for LLM execution.
1062
- valueName: name
1043
+ value_name: name
1063
1044
  schema:
1064
1045
  type: string
1065
1046
  enum: [cursor, claude, openai, gemini, mock]
1066
1047
 
1067
1048
  - name: model
1068
1049
  description: LLM model override.
1069
- valueName: name
1050
+ value_name: name
1070
1051
  schema:
1071
1052
  type: string
1072
1053
 
1073
- - name: dry-run
1074
- aliases: [n]
1075
- description: Output the constructed prompt without calling LLM.
1076
- schema:
1077
- type: boolean
1078
- default: false
1079
-
1080
- - name: show-prompt
1081
- description: Display the constructed LLM prompt on stderr.
1082
- schema:
1083
- type: boolean
1084
- default: false
1085
-
1086
1054
  - name: fail-on
1087
1055
  description: Minimum severity that causes a non-zero exit.
1088
- valueName: level
1056
+ value_name: level
1089
1057
  schema:
1090
1058
  type: string
1091
1059
  enum: [warning, error, critical]
@@ -1094,7 +1062,7 @@ commandSets:
1094
1062
  - name: output
1095
1063
  aliases: [o]
1096
1064
  description: Write result to a file instead of stdout.
1097
- valueName: file
1065
+ value_name: file
1098
1066
  schema:
1099
1067
  type: string
1100
1068
  file:
@@ -1103,7 +1071,7 @@ commandSets:
1103
1071
 
1104
1072
  - name: report-format
1105
1073
  description: Output format for the report.
1106
- valueName: fmt
1074
+ value_name: fmt
1107
1075
  schema:
1108
1076
  type: string
1109
1077
  enum: [json, text, yaml]
@@ -1145,8 +1113,8 @@ commandSets:
1145
1113
  format: text
1146
1114
 
1147
1115
  x-agent:
1148
- recommendedBeforeUse:
1149
- - "Run with --dry-run first to preview the prompt"
1116
+ recommended_before_use:
1117
+ - "Run with --show-prompt first to preview the prompt"
1150
1118
  retryableExitCodes: [12]
1151
1119
 
1152
1120
  components: