@anhth2/spec-driven-dev-plugin 0.6.0 → 0.7.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.
Files changed (73) hide show
  1. package/bin/index.js +180 -11
  2. package/commands/debug.md +196 -10
  3. package/commands/debug.tmpl +170 -6
  4. package/commands/define-product.md +31 -5
  5. package/commands/define-product.tmpl +5 -1
  6. package/commands/fix-bug.md +74 -10
  7. package/commands/fix-bug.tmpl +48 -6
  8. package/commands/generate-bdd.md +49 -8
  9. package/commands/generate-bdd.tmpl +23 -4
  10. package/commands/generate-code.md +109 -18
  11. package/commands/generate-code.tmpl +83 -14
  12. package/commands/generate-prd.md +33 -6
  13. package/commands/generate-prd.tmpl +7 -2
  14. package/commands/generate-tech-docs.md +85 -8
  15. package/commands/generate-tech-docs.tmpl +59 -4
  16. package/commands/generate-tests.md +454 -36
  17. package/commands/generate-tests.tmpl +428 -32
  18. package/commands/refine-prd.md +39 -7
  19. package/commands/refine-prd.tmpl +13 -3
  20. package/commands/review-code.md +57 -5
  21. package/commands/review-code.tmpl +31 -1
  22. package/commands/review-context.md +41 -11
  23. package/commands/review-context.tmpl +15 -7
  24. package/commands/review-tech-docs.md +39 -8
  25. package/commands/review-tech-docs.tmpl +13 -4
  26. package/commands/run-tests.md +159 -17
  27. package/commands/run-tests.tmpl +133 -13
  28. package/commands/setup-ai-first.md +61 -3
  29. package/commands/setup-ai-first.tmpl +6 -2
  30. package/commands/smoke-test.md +191 -21
  31. package/commands/smoke-test.tmpl +165 -17
  32. package/commands/validate-traces.md +40 -7
  33. package/commands/validate-traces.tmpl +14 -3
  34. package/core/FRAMEWORK_VERSION +1 -1
  35. package/core/commands/debug.md +196 -10
  36. package/core/commands/define-product.md +31 -5
  37. package/core/commands/fix-bug.md +74 -10
  38. package/core/commands/generate-bdd.md +49 -8
  39. package/core/commands/generate-code.md +109 -18
  40. package/core/commands/generate-prd.md +33 -6
  41. package/core/commands/generate-tech-docs.md +85 -8
  42. package/core/commands/generate-tests.md +454 -36
  43. package/core/commands/refine-prd.md +39 -7
  44. package/core/commands/review-code.md +57 -5
  45. package/core/commands/review-context.md +41 -11
  46. package/core/commands/review-tech-docs.md +39 -8
  47. package/core/commands/run-tests.md +159 -17
  48. package/core/commands/setup-ai-first.md +61 -3
  49. package/core/commands/smoke-test.md +191 -21
  50. package/core/commands/validate-traces.md +40 -7
  51. package/core/skills/code/SKILL.md +29 -6
  52. package/core/skills/debug/SKILL.md +31 -7
  53. package/core/skills/discovery/SKILL.md +25 -3
  54. package/core/skills/prd/SKILL.md +8 -6
  55. package/core/skills/setup-ai-first/SKILL.md +3 -2
  56. package/core/skills/spec/SKILL.md +7 -5
  57. package/core/skills/test/SKILL.md +54 -9
  58. package/core/steps/context-loader.md +22 -1
  59. package/core/steps/gate.md +1 -1
  60. package/core/steps/report-footer.md +3 -2
  61. package/core/steps/spawn-agent.md +3 -1
  62. package/package.json +1 -1
  63. package/skills/code/SKILL.md +29 -6
  64. package/skills/debug/SKILL.md +31 -7
  65. package/skills/discovery/SKILL.md +25 -3
  66. package/skills/prd/SKILL.md +8 -6
  67. package/skills/setup-ai-first/SKILL.md +3 -2
  68. package/skills/spec/SKILL.md +7 -5
  69. package/skills/test/SKILL.md +54 -9
  70. package/steps/context-loader.md +22 -1
  71. package/steps/gate.md +1 -1
  72. package/steps/report-footer.md +3 -2
  73. package/steps/spawn-agent.md +3 -1
@@ -132,6 +132,7 @@ Suggest the logical next command based on workflow phase:
132
132
 
133
133
  | Current command | Suggest next |
134
134
  |-------------------------|-----------------------------------------------|
135
+ | /setup-ai-first | `/define-product` to start your first feature |
135
136
  | /define-product | `/generate-prd {product-definition-file}` |
136
137
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
137
138
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -140,13 +141,13 @@ Suggest the logical next command based on workflow phase:
140
141
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
141
142
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
142
143
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
143
- | /generate-code | `/generate-tests {UC-ID}` |
144
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
144
145
  | /generate-tests | `/run-tests {UC-ID}` |
145
146
  | /run-tests (passing) | `/review-code {UC-ID}` |
146
147
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
147
148
  | /review-code | `/smoke-test {UC-ID}` or create PR |
148
149
  | /smoke-test | Create PR and link to ticket |
149
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
150
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
150
151
  | /fix-bug | Create PR and link to ticket |
151
152
  | /debug | `/fix-bug {ticket-id}` if fix needed |
152
153
 
@@ -43,7 +43,7 @@ Display and wait for response:
43
43
  ```
44
44
  ⚙️ MODEL CHECK
45
45
  ──────────────────────────────────────────────────────────────────
46
- Recommended : claude-opus-4-5 (or claude-opus-4)
46
+ Recommended : claude-opus-4 (or latest Opus model)
47
47
  Why needed : Spec analysis, architecture review, code generation
48
48
  require deep reasoning. Smaller models miss edge cases.
49
49
 
@@ -203,6 +203,7 @@ Suggest the logical next command based on workflow phase:
203
203
 
204
204
  | Current command | Suggest next |
205
205
  |-------------------------|-----------------------------------------------|
206
+ | /setup-ai-first | `/define-product` to start your first feature |
206
207
  | /define-product | `/generate-prd {product-definition-file}` |
207
208
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
208
209
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -211,13 +212,13 @@ Suggest the logical next command based on workflow phase:
211
212
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
212
213
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
213
214
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
214
- | /generate-code | `/generate-tests {UC-ID}` |
215
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
215
216
  | /generate-tests | `/run-tests {UC-ID}` |
216
217
  | /run-tests (passing) | `/review-code {UC-ID}` |
217
218
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
218
219
  | /review-code | `/smoke-test {UC-ID}` or create PR |
219
220
  | /smoke-test | Create PR and link to ticket |
220
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
221
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
221
222
  | /fix-bug | Create PR and link to ticket |
222
223
  | /debug | `/fix-bug {ticket-id}` if fix needed |
223
224
 
@@ -333,6 +334,7 @@ Suggest the logical next command based on workflow phase:
333
334
 
334
335
  | Current command | Suggest next |
335
336
  |-------------------------|-----------------------------------------------|
337
+ | /setup-ai-first | `/define-product` to start your first feature |
336
338
  | /define-product | `/generate-prd {product-definition-file}` |
337
339
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
338
340
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -341,13 +343,13 @@ Suggest the logical next command based on workflow phase:
341
343
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
342
344
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
343
345
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
344
- | /generate-code | `/generate-tests {UC-ID}` |
346
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
345
347
  | /generate-tests | `/run-tests {UC-ID}` |
346
348
  | /run-tests (passing) | `/review-code {UC-ID}` |
347
349
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
348
350
  | /review-code | `/smoke-test {UC-ID}` or create PR |
349
351
  | /smoke-test | Create PR and link to ticket |
350
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
352
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
351
353
  | /fix-bug | Create PR and link to ticket |
352
354
  | /debug | `/fix-bug {ticket-id}` if fix needed |
353
355
 
@@ -43,7 +43,7 @@ Display and wait for response:
43
43
  ```
44
44
  ⚙️ MODEL CHECK
45
45
  ──────────────────────────────────────────────────────────────────
46
- Recommended : claude-opus-4-5 (or claude-opus-4)
46
+ Recommended : claude-opus-4 (or latest Opus model)
47
47
  Why needed : Spec analysis, architecture review, code generation
48
48
  require deep reasoning. Smaller models miss edge cases.
49
49
 
@@ -246,6 +246,7 @@ Suggest the logical next command based on workflow phase:
246
246
 
247
247
  | Current command | Suggest next |
248
248
  |-------------------------|-----------------------------------------------|
249
+ | /setup-ai-first | `/define-product` to start your first feature |
249
250
  | /define-product | `/generate-prd {product-definition-file}` |
250
251
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
251
252
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -254,13 +255,13 @@ Suggest the logical next command based on workflow phase:
254
255
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
255
256
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
256
257
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
257
- | /generate-code | `/generate-tests {UC-ID}` |
258
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
258
259
  | /generate-tests | `/run-tests {UC-ID}` |
259
260
  | /run-tests (passing) | `/review-code {UC-ID}` |
260
261
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
261
262
  | /review-code | `/smoke-test {UC-ID}` or create PR |
262
263
  | /smoke-test | Create PR and link to ticket |
263
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
264
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
264
265
  | /fix-bug | Create PR and link to ticket |
265
266
  | /debug | `/fix-bug {ticket-id}` if fix needed |
266
267
 
@@ -332,7 +333,7 @@ If `paths` section is absent, use these defaults:
332
333
  - `domain_knowledge_dir` = `specs/domain-knowledge`
333
334
  - `business_dictionary` = `specs/domain-knowledge/business-dictionary.md`
334
335
  - `core_entities` = `specs/domain-knowledge/core-entities.md`
335
- - `tech_docs_dir` = `tech-docs`
336
+ - `tech_docs_dir` = `specs/tech-docs`
336
337
  - `trace_dir` = `.trace`
337
338
 
338
339
  If `tech_stack.module` is set, also load `.agent/modules/{module}/stack-profile.yaml` if it exists.
@@ -409,6 +410,26 @@ If the file does not exist → skip silently.
409
410
 
410
411
  ---
411
412
 
413
+ ## Step 6.5 — [PLATFORM] Derive active_module and platform_type
414
+
415
+ Using `tech_stack.module` loaded in Step 1, derive and store two variables for use by all downstream commands:
416
+
417
+ ```
418
+ active_module = tech_stack.module (e.g. "java-spring", "react", "flutter")
419
+ ```
420
+
421
+ | `platform_type` | Modules |
422
+ |---|---|
423
+ | `backend` | `java-spring`, `golang`, `dotnet`, `php-laravel`, `context-engineering` |
424
+ | `web-frontend` | `react`, `nextjs`, `vue`, `nuxt`, `angular` |
425
+ | `mobile` | `flutter`, `react-native`, `ios-swiftui`, `android-compose` |
426
+
427
+ If `tech_stack.module` is blank or not recognized → set `platform_type = "unknown"` and flag as ⚠️ in the Step 7 recap.
428
+
429
+ These two variables (`active_module`, `platform_type`) are the canonical source for all branching logic in commands that need platform-specific behavior (generate-tests, debug, fix-bug, smoke-test).
430
+
431
+ ---
432
+
412
433
  ## Step 7 — [RECAP] Working Memory Recap (anti-lost-in-middle)
413
434
 
414
435
  After loading all context, synthesize and output a compact summary block.
@@ -419,6 +440,7 @@ Output exactly this block:
419
440
  ```
420
441
  [CTX LOADED]
421
442
  Stack : {language} / {framework} / {database}
443
+ Platform : {active_module} ({platform_type})
422
444
  Layers : {layer order from CLAUDE.md §2, e.g., Controller → Facade → Service → Repository}
423
445
  Ticket : {ticket_prefix}-
424
446
  Dict : {loaded — N canonical terms, M banned terms | missing}
@@ -531,6 +553,7 @@ Suggest the logical next command based on workflow phase:
531
553
 
532
554
  | Current command | Suggest next |
533
555
  |-------------------------|-----------------------------------------------|
556
+ | /setup-ai-first | `/define-product` to start your first feature |
534
557
  | /define-product | `/generate-prd {product-definition-file}` |
535
558
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
536
559
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -539,13 +562,13 @@ Suggest the logical next command based on workflow phase:
539
562
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
540
563
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
541
564
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
542
- | /generate-code | `/generate-tests {UC-ID}` |
565
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
543
566
  | /generate-tests | `/run-tests {UC-ID}` |
544
567
  | /run-tests (passing) | `/review-code {UC-ID}` |
545
568
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
546
569
  | /review-code | `/smoke-test {UC-ID}` or create PR |
547
570
  | /smoke-test | Create PR and link to ticket |
548
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
571
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
549
572
  | /fix-bug | Create PR and link to ticket |
550
573
  | /debug | `/fix-bug {ticket-id}` if fix needed |
551
574
 
@@ -620,7 +643,7 @@ If `paths` section is absent, use these defaults:
620
643
  - `domain_knowledge_dir` = `specs/domain-knowledge`
621
644
  - `business_dictionary` = `specs/domain-knowledge/business-dictionary.md`
622
645
  - `core_entities` = `specs/domain-knowledge/core-entities.md`
623
- - `tech_docs_dir` = `tech-docs`
646
+ - `tech_docs_dir` = `specs/tech-docs`
624
647
  - `trace_dir` = `.trace`
625
648
 
626
649
  If `tech_stack.module` is set, also load `.agent/modules/{module}/stack-profile.yaml` if it exists.
@@ -697,6 +720,26 @@ If the file does not exist → skip silently.
697
720
 
698
721
  ---
699
722
 
723
+ ## Step 6.5 — [PLATFORM] Derive active_module and platform_type
724
+
725
+ Using `tech_stack.module` loaded in Step 1, derive and store two variables for use by all downstream commands:
726
+
727
+ ```
728
+ active_module = tech_stack.module (e.g. "java-spring", "react", "flutter")
729
+ ```
730
+
731
+ | `platform_type` | Modules |
732
+ |---|---|
733
+ | `backend` | `java-spring`, `golang`, `dotnet`, `php-laravel`, `context-engineering` |
734
+ | `web-frontend` | `react`, `nextjs`, `vue`, `nuxt`, `angular` |
735
+ | `mobile` | `flutter`, `react-native`, `ios-swiftui`, `android-compose` |
736
+
737
+ If `tech_stack.module` is blank or not recognized → set `platform_type = "unknown"` and flag as ⚠️ in the Step 7 recap.
738
+
739
+ These two variables (`active_module`, `platform_type`) are the canonical source for all branching logic in commands that need platform-specific behavior (generate-tests, debug, fix-bug, smoke-test).
740
+
741
+ ---
742
+
700
743
  ## Step 7 — [RECAP] Working Memory Recap (anti-lost-in-middle)
701
744
 
702
745
  After loading all context, synthesize and output a compact summary block.
@@ -707,6 +750,7 @@ Output exactly this block:
707
750
  ```
708
751
  [CTX LOADED]
709
752
  Stack : {language} / {framework} / {database}
753
+ Platform : {active_module} ({platform_type})
710
754
  Layers : {layer order from CLAUDE.md §2, e.g., Controller → Facade → Service → Repository}
711
755
  Ticket : {ticket_prefix}-
712
756
  Dict : {loaded — N canonical terms, M banned terms | missing}
@@ -834,6 +878,7 @@ Suggest the logical next command based on workflow phase:
834
878
 
835
879
  | Current command | Suggest next |
836
880
  |-------------------------|-----------------------------------------------|
881
+ | /setup-ai-first | `/define-product` to start your first feature |
837
882
  | /define-product | `/generate-prd {product-definition-file}` |
838
883
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
839
884
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -842,13 +887,13 @@ Suggest the logical next command based on workflow phase:
842
887
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
843
888
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
844
889
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
845
- | /generate-code | `/generate-tests {UC-ID}` |
890
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
846
891
  | /generate-tests | `/run-tests {UC-ID}` |
847
892
  | /run-tests (passing) | `/review-code {UC-ID}` |
848
893
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
849
894
  | /review-code | `/smoke-test {UC-ID}` or create PR |
850
895
  | /smoke-test | Create PR and link to ticket |
851
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
896
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
852
897
  | /fix-bug | Create PR and link to ticket |
853
898
  | /debug | `/fix-bug {ticket-id}` if fix needed |
854
899
 
@@ -51,7 +51,7 @@ If `paths` section is absent, use these defaults:
51
51
  - `domain_knowledge_dir` = `specs/domain-knowledge`
52
52
  - `business_dictionary` = `specs/domain-knowledge/business-dictionary.md`
53
53
  - `core_entities` = `specs/domain-knowledge/core-entities.md`
54
- - `tech_docs_dir` = `tech-docs`
54
+ - `tech_docs_dir` = `specs/tech-docs`
55
55
  - `trace_dir` = `.trace`
56
56
 
57
57
  If `tech_stack.module` is set, also load `.agent/modules/{module}/stack-profile.yaml` if it exists.
@@ -128,6 +128,26 @@ If the file does not exist → skip silently.
128
128
 
129
129
  ---
130
130
 
131
+ ## Step 6.5 — [PLATFORM] Derive active_module and platform_type
132
+
133
+ Using `tech_stack.module` loaded in Step 1, derive and store two variables for use by all downstream commands:
134
+
135
+ ```
136
+ active_module = tech_stack.module (e.g. "java-spring", "react", "flutter")
137
+ ```
138
+
139
+ | `platform_type` | Modules |
140
+ |---|---|
141
+ | `backend` | `java-spring`, `golang`, `dotnet`, `php-laravel`, `context-engineering` |
142
+ | `web-frontend` | `react`, `nextjs`, `vue`, `nuxt`, `angular` |
143
+ | `mobile` | `flutter`, `react-native`, `ios-swiftui`, `android-compose` |
144
+
145
+ If `tech_stack.module` is blank or not recognized → set `platform_type = "unknown"` and flag as ⚠️ in the Step 7 recap.
146
+
147
+ These two variables (`active_module`, `platform_type`) are the canonical source for all branching logic in commands that need platform-specific behavior (generate-tests, debug, fix-bug, smoke-test).
148
+
149
+ ---
150
+
131
151
  ## Step 7 — [RECAP] Working Memory Recap (anti-lost-in-middle)
132
152
 
133
153
  After loading all context, synthesize and output a compact summary block.
@@ -138,6 +158,7 @@ Output exactly this block:
138
158
  ```
139
159
  [CTX LOADED]
140
160
  Stack : {language} / {framework} / {database}
161
+ Platform : {active_module} ({platform_type})
141
162
  Layers : {layer order from CLAUDE.md §2, e.g., Controller → Facade → Service → Repository}
142
163
  Ticket : {ticket_prefix}-
143
164
  Dict : {loaded — N canonical terms, M banned terms | missing}
package/steps/gate.md CHANGED
@@ -28,7 +28,7 @@ Display and wait for response:
28
28
  ```
29
29
  ⚙️ MODEL CHECK
30
30
  ──────────────────────────────────────────────────────────────────
31
- Recommended : claude-opus-4-5 (or claude-opus-4)
31
+ Recommended : claude-opus-4 (or latest Opus model)
32
32
  Why needed : Spec analysis, architecture review, code generation
33
33
  require deep reasoning. Smaller models miss edge cases.
34
34
 
@@ -26,6 +26,7 @@ Suggest the logical next command based on workflow phase:
26
26
 
27
27
  | Current command | Suggest next |
28
28
  |-------------------------|-----------------------------------------------|
29
+ | /setup-ai-first | `/define-product` to start your first feature |
29
30
  | /define-product | `/generate-prd {product-definition-file}` |
30
31
  | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
31
32
  | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
@@ -34,13 +35,13 @@ Suggest the logical next command based on workflow phase:
34
35
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
35
36
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
36
37
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
37
- | /generate-code | `/generate-tests {UC-ID}` |
38
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/generate-tests {UC-ID}` |
38
39
  | /generate-tests | `/run-tests {UC-ID}` |
39
40
  | /run-tests (passing) | `/review-code {UC-ID}` |
40
41
  | /run-tests (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
41
42
  | /review-code | `/smoke-test {UC-ID}` or create PR |
42
43
  | /smoke-test | Create PR and link to ticket |
43
- | /validate-traces | `/generate-code {UC-ID}` for gaps |
44
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/generate-tests {UC-ID}`; all OK → create PR |
44
45
  | /fix-bug | Create PR and link to ticket |
45
46
  | /debug | `/fix-bug {ticket-id}` if fix needed |
46
47
 
@@ -72,7 +72,7 @@ Build payload and invoke Agent tool for each UC:
72
72
  ```json
73
73
  {
74
74
  "_agent_mode": true,
75
- "command": "{generate-bdd | generate-code | generate-tests}",
75
+ "command": "generate-bdd",
76
76
  "uc_id": "{TICKET-ID}-UC{N}",
77
77
  "target_file": "{absolute path to PRD or feature file}",
78
78
  "uc_section": { "line_start": {N}, "line_end": {N} },
@@ -80,6 +80,8 @@ Build payload and invoke Agent tool for each UC:
80
80
  }
81
81
  ```
82
82
 
83
+ > **Command scope**: Only `/generate-bdd` initiates orchestration mode. `/generate-code` and `/generate-tests` can run as sub-agents (they respect `_agent_mode: true` from Gate Step 0), but they do not spawn further sub-agents — their scope is already a single UC.
84
+
83
85
  Serialize this JSON and pass as `$ARGUMENTS` when invoking the sub-agent command.
84
86
 
85
87
  ### Step E — Collect and merge results