@edupia-tutor/spec-driven-docs 0.14.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 (339) hide show
  1. package/bin/build.js +230 -0
  2. package/bin/index.js +598 -0
  3. package/commands/debug.md +830 -0
  4. package/commands/debug.tmpl +257 -0
  5. package/commands/define-product.md +652 -0
  6. package/commands/define-product.tmpl +158 -0
  7. package/commands/dev-gen-test.md +1010 -0
  8. package/commands/dev-gen-test.tmpl +490 -0
  9. package/commands/dev-run-test.md +744 -0
  10. package/commands/dev-run-test.tmpl +224 -0
  11. package/commands/dev-smoke-test.md +711 -0
  12. package/commands/dev-smoke-test.tmpl +217 -0
  13. package/commands/fix-bug.md +744 -0
  14. package/commands/fix-bug.tmpl +171 -0
  15. package/commands/generate-bdd.md +1054 -0
  16. package/commands/generate-bdd.tmpl +534 -0
  17. package/commands/generate-code.md +869 -0
  18. package/commands/generate-code.tmpl +349 -0
  19. package/commands/generate-design-spec.md +958 -0
  20. package/commands/generate-design-spec.tmpl +464 -0
  21. package/commands/generate-prd.md +748 -0
  22. package/commands/generate-prd.tmpl +254 -0
  23. package/commands/generate-spec-manifest.md +658 -0
  24. package/commands/generate-spec-manifest.tmpl +164 -0
  25. package/commands/generate-tech-docs.md +849 -0
  26. package/commands/generate-tech-docs.tmpl +355 -0
  27. package/commands/learn.md +636 -0
  28. package/commands/learn.tmpl +63 -0
  29. package/commands/map-testids.md +575 -0
  30. package/commands/map-testids.tmpl +81 -0
  31. package/commands/propose-scenario.md +623 -0
  32. package/commands/propose-scenario.tmpl +129 -0
  33. package/commands/qc-analyze.md +580 -0
  34. package/commands/qc-analyze.tmpl +86 -0
  35. package/commands/qc-design-test.md +562 -0
  36. package/commands/qc-design-test.tmpl +68 -0
  37. package/commands/qc-plan.md +543 -0
  38. package/commands/qc-plan.tmpl +49 -0
  39. package/commands/qc-report.md +554 -0
  40. package/commands/qc-report.tmpl +60 -0
  41. package/commands/qc-review.md +547 -0
  42. package/commands/qc-review.tmpl +53 -0
  43. package/commands/qc-run-test.md +604 -0
  44. package/commands/qc-run-test.tmpl +84 -0
  45. package/commands/refine-prd.md +772 -0
  46. package/commands/refine-prd.tmpl +140 -0
  47. package/commands/report-bug.md +639 -0
  48. package/commands/report-bug.tmpl +145 -0
  49. package/commands/review-code.md +677 -0
  50. package/commands/review-code.tmpl +104 -0
  51. package/commands/review-context.md +1047 -0
  52. package/commands/review-context.tmpl +415 -0
  53. package/commands/review-tech-docs.md +811 -0
  54. package/commands/review-tech-docs.tmpl +317 -0
  55. package/commands/setup-ai-first.md +545 -0
  56. package/commands/setup-ai-first.tmpl +358 -0
  57. package/commands/sync.md +451 -0
  58. package/commands/sync.tmpl +351 -0
  59. package/commands/update-framework.md +251 -0
  60. package/commands/update-framework.tmpl +151 -0
  61. package/commands/validate-traces.md +842 -0
  62. package/commands/validate-traces.tmpl +348 -0
  63. package/core/FRAMEWORK_VERSION +1 -0
  64. package/core/commands/debug.md +830 -0
  65. package/core/commands/define-product.md +652 -0
  66. package/core/commands/dev-gen-test.md +1010 -0
  67. package/core/commands/dev-run-test.md +744 -0
  68. package/core/commands/dev-smoke-test.md +711 -0
  69. package/core/commands/fix-bug.md +744 -0
  70. package/core/commands/generate-bdd.md +1054 -0
  71. package/core/commands/generate-code.md +869 -0
  72. package/core/commands/generate-design-spec.md +958 -0
  73. package/core/commands/generate-prd.md +748 -0
  74. package/core/commands/generate-spec-manifest.md +658 -0
  75. package/core/commands/generate-tech-docs.md +849 -0
  76. package/core/commands/learn.md +636 -0
  77. package/core/commands/map-testids.md +575 -0
  78. package/core/commands/propose-scenario.md +623 -0
  79. package/core/commands/qc-analyze.md +580 -0
  80. package/core/commands/qc-design-test.md +562 -0
  81. package/core/commands/qc-plan.md +543 -0
  82. package/core/commands/qc-report.md +554 -0
  83. package/core/commands/qc-review.md +547 -0
  84. package/core/commands/qc-run-test.md +604 -0
  85. package/core/commands/refine-prd.md +772 -0
  86. package/core/commands/report-bug.md +639 -0
  87. package/core/commands/review-code.md +677 -0
  88. package/core/commands/review-context.md +1047 -0
  89. package/core/commands/review-tech-docs.md +811 -0
  90. package/core/commands/setup-ai-first.md +545 -0
  91. package/core/commands/sync.md +451 -0
  92. package/core/commands/update-framework.md +251 -0
  93. package/core/commands/validate-traces.md +842 -0
  94. package/core/hooks/data-guard.js +141 -0
  95. package/core/hooks/settings.json +18 -0
  96. package/core/modules/android-compose/module.yaml +13 -0
  97. package/core/modules/android-compose/stack-profile.yaml +57 -0
  98. package/core/modules/angular/architecture-snippets/component-patterns.md +187 -0
  99. package/core/modules/angular/module.yaml +6 -0
  100. package/core/modules/angular/stack-profile.yaml +38 -0
  101. package/core/modules/context-engineering/architecture-snippets/context-design.md +119 -0
  102. package/core/modules/context-engineering/module.yaml +9 -0
  103. package/core/modules/context-engineering/stack-profile.yaml +61 -0
  104. package/core/modules/dotnet/architecture-snippets/clean-arch.md +160 -0
  105. package/core/modules/dotnet/module.yaml +6 -0
  106. package/core/modules/dotnet/stack-profile.yaml +50 -0
  107. package/core/modules/flutter/module.yaml +14 -0
  108. package/core/modules/flutter/stack-profile.yaml +59 -0
  109. package/core/modules/golang/architecture-snippets/domain-layout.md +283 -0
  110. package/core/modules/golang/module.yaml +6 -0
  111. package/core/modules/golang/stack-profile.yaml +40 -0
  112. package/core/modules/ios-swiftui/module.yaml +13 -0
  113. package/core/modules/ios-swiftui/stack-profile.yaml +55 -0
  114. package/core/modules/java-spring/architecture-snippets/layered-arch.md +201 -0
  115. package/core/modules/java-spring/module.yaml +15 -0
  116. package/core/modules/java-spring/stack-profile.yaml +28 -0
  117. package/core/modules/nextjs/architecture-snippets/app-router-patterns.md +269 -0
  118. package/core/modules/nextjs/module.yaml +14 -0
  119. package/core/modules/nextjs/stack-profile.yaml +74 -0
  120. package/core/modules/nuxt/module.yaml +14 -0
  121. package/core/modules/nuxt/stack-profile.yaml +58 -0
  122. package/core/modules/php-laravel/architecture-snippets/service-repository.md +302 -0
  123. package/core/modules/php-laravel/module.yaml +15 -0
  124. package/core/modules/php-laravel/stack-profile.yaml +56 -0
  125. package/core/modules/qc-playwright/stack-profile.yaml +66 -0
  126. package/core/modules/react/architecture-snippets/hooks-query-patterns.md +254 -0
  127. package/core/modules/react/module.yaml +14 -0
  128. package/core/modules/react/stack-profile.yaml +63 -0
  129. package/core/modules/react-native/module.yaml +14 -0
  130. package/core/modules/react-native/stack-profile.yaml +56 -0
  131. package/core/modules/vue/module.yaml +14 -0
  132. package/core/modules/vue/stack-profile.yaml +65 -0
  133. package/core/rules/data-protection.md +80 -0
  134. package/core/rules/workflow.md +44 -0
  135. package/core/skills/code/SKILL.md +770 -0
  136. package/core/skills/debug/SKILL.md +869 -0
  137. package/core/skills/design-spec/SKILL.md +589 -0
  138. package/core/skills/discovery/SKILL.md +554 -0
  139. package/core/skills/prd/SKILL.md +562 -0
  140. package/core/skills/qc/qa-analyst/DOC_GAPS.template.md +63 -0
  141. package/core/skills/qc/qa-analyst/acceptance-criteria.md +60 -0
  142. package/core/skills/qc/qa-analyst/business-rules.md +59 -0
  143. package/core/skills/qc/qa-analyst/data-flow.md +64 -0
  144. package/core/skills/qc/qa-analyst/spec-breakdown.md +61 -0
  145. package/core/skills/qc/qa-designer/e2e/journey.md +41 -0
  146. package/core/skills/qc/qa-designer/exploratory/charter.md +68 -0
  147. package/core/skills/qc/qa-designer/exploratory/explore-to-functional.md +43 -0
  148. package/core/skills/qc/qa-designer/functional/api.md +45 -0
  149. package/core/skills/qc/qa-designer/functional/gui-feature.md +46 -0
  150. package/core/skills/qc/qa-designer/functional/gui-screen.md +52 -0
  151. package/core/skills/qc/qa-designer/integration/api.md +42 -0
  152. package/core/skills/qc/qa-designer/integration/db.md +39 -0
  153. package/core/skills/qc/qa-designer/integration/gui.md +40 -0
  154. package/core/skills/qc/qa-designer/integration/kafka.md +40 -0
  155. package/core/skills/qc/qa-designer/non-functional.md +40 -0
  156. package/core/skills/qc/qa-planner/test-plan.md +120 -0
  157. package/core/skills/qc/qa-reviewer/script/e2e.md +87 -0
  158. package/core/skills/qc/qa-reviewer/script/exploratory.md +45 -0
  159. package/core/skills/qc/qa-reviewer/script/functional.md +101 -0
  160. package/core/skills/qc/qa-reviewer/script/integration.md +91 -0
  161. package/core/skills/qc/qa-reviewer/script/non-functional.md +126 -0
  162. package/core/skills/qc/qa-reviewer/test-case/e2e.md +73 -0
  163. package/core/skills/qc/qa-reviewer/test-case/exploratory.md +43 -0
  164. package/core/skills/qc/qa-reviewer/test-case/functional.md +76 -0
  165. package/core/skills/qc/qa-reviewer/test-case/integration.md +69 -0
  166. package/core/skills/qc/qa-reviewer/test-case/non-functional.md +73 -0
  167. package/core/skills/qc/qa-runner/e2e.md +49 -0
  168. package/core/skills/qc/qa-runner/exploratory/session.md +36 -0
  169. package/core/skills/qc/qa-runner/functional/api.md +35 -0
  170. package/core/skills/qc/qa-runner/functional/gui-feature.md +51 -0
  171. package/core/skills/qc/qa-runner/functional/gui-screen.md +55 -0
  172. package/core/skills/qc/qa-runner/integration.md +47 -0
  173. package/core/skills/qc/qa-runner/non-functional.md +49 -0
  174. package/core/skills/qc/qa-runner/report/report.md +37 -0
  175. package/core/skills/setup-ai-first/SKILL.md +216 -0
  176. package/core/skills/spec/SKILL.md +461 -0
  177. package/core/skills/test/SKILL.md +1297 -0
  178. package/core/steps/capture-lesson.md +79 -0
  179. package/core/steps/context-loader.md +307 -0
  180. package/core/steps/gate.md +87 -0
  181. package/core/steps/report-footer.md +100 -0
  182. package/core/steps/review-fanout.md +138 -0
  183. package/core/steps/spawn-agent.md +124 -0
  184. package/core/steps/trace-mirror.md +26 -0
  185. package/core/templates/architecture.template.md +113 -0
  186. package/core/templates/design-spec.template.md +217 -0
  187. package/core/templates/feature.template +259 -0
  188. package/core/templates/platform-guide.template.md +145 -0
  189. package/core/templates/prd.template.md +327 -0
  190. package/core/templates/product-definition.template.md +168 -0
  191. package/core/templates/project-context.yaml +161 -0
  192. package/docs/01-getting-started/README.md +19 -0
  193. package/docs/01-getting-started/core-concepts.md +102 -0
  194. package/docs/01-getting-started/installation.md +156 -0
  195. package/docs/01-getting-started/quickstart.md +85 -0
  196. package/docs/02-guides/README.md +26 -0
  197. package/docs/02-guides/developer/README.md +46 -0
  198. package/docs/02-guides/developer/bdd-and-trace.md +125 -0
  199. package/docs/02-guides/developer/commands.md +76 -0
  200. package/docs/02-guides/developer/pr-checklist.md +15 -0
  201. package/docs/02-guides/developer/scenarios.md +460 -0
  202. package/docs/02-guides/developer/workflow.md +121 -0
  203. package/docs/02-guides/product-owner/README.md +79 -0
  204. package/docs/02-guides/product-owner/commands.md +30 -0
  205. package/docs/02-guides/product-owner/handoff-checklist.md +42 -0
  206. package/docs/02-guides/product-owner/prd-writing-rules.md +45 -0
  207. package/docs/02-guides/product-owner/scenarios.md +436 -0
  208. package/docs/02-guides/tester/README.md +75 -0
  209. package/docs/02-guides/tester/bug-reporting.md +117 -0
  210. package/docs/02-guides/tester/qc-automation.md +165 -0
  211. package/docs/02-guides/tester/reading-specs.md +79 -0
  212. package/docs/02-guides/tester/scenarios.md +186 -0
  213. package/docs/02-guides/tester/spec-manifest.md +130 -0
  214. package/docs/02-guides/tester/test-checklist.md +31 -0
  215. package/docs/02-guides/tester/workflow.md +77 -0
  216. package/docs/03-concepts/README.md +19 -0
  217. package/docs/03-concepts/architecture.md +248 -0
  218. package/docs/03-concepts/pipeline.md +274 -0
  219. package/docs/03-concepts/traceability.md +149 -0
  220. package/docs/04-operations/README.md +33 -0
  221. package/docs/04-operations/bug-flow.md +362 -0
  222. package/docs/04-operations/publishing.md +137 -0
  223. package/docs/04-operations/sync-and-update.md +522 -0
  224. package/docs/05-reference/README.md +32 -0
  225. package/docs/05-reference/command-cheatsheet.md +147 -0
  226. package/docs/05-reference/commands.md +232 -0
  227. package/docs/05-reference/modules.md +110 -0
  228. package/docs/05-reference/trace-schema.md +153 -0
  229. package/docs/README.md +49 -0
  230. package/hooks/data-guard.js +141 -0
  231. package/hooks/settings.json +18 -0
  232. package/modules/android-compose/module.yaml +13 -0
  233. package/modules/android-compose/stack-profile.yaml +57 -0
  234. package/modules/angular/architecture-snippets/component-patterns.md +187 -0
  235. package/modules/angular/module.yaml +6 -0
  236. package/modules/angular/stack-profile.yaml +38 -0
  237. package/modules/context-engineering/architecture-snippets/context-design.md +119 -0
  238. package/modules/context-engineering/module.yaml +9 -0
  239. package/modules/context-engineering/stack-profile.yaml +61 -0
  240. package/modules/dotnet/architecture-snippets/clean-arch.md +160 -0
  241. package/modules/dotnet/module.yaml +6 -0
  242. package/modules/dotnet/stack-profile.yaml +50 -0
  243. package/modules/flutter/module.yaml +14 -0
  244. package/modules/flutter/stack-profile.yaml +59 -0
  245. package/modules/golang/architecture-snippets/domain-layout.md +283 -0
  246. package/modules/golang/module.yaml +6 -0
  247. package/modules/golang/stack-profile.yaml +40 -0
  248. package/modules/ios-swiftui/module.yaml +13 -0
  249. package/modules/ios-swiftui/stack-profile.yaml +55 -0
  250. package/modules/java-spring/architecture-snippets/layered-arch.md +201 -0
  251. package/modules/java-spring/module.yaml +15 -0
  252. package/modules/java-spring/stack-profile.yaml +28 -0
  253. package/modules/nextjs/architecture-snippets/app-router-patterns.md +269 -0
  254. package/modules/nextjs/module.yaml +14 -0
  255. package/modules/nextjs/stack-profile.yaml +74 -0
  256. package/modules/nuxt/module.yaml +14 -0
  257. package/modules/nuxt/stack-profile.yaml +58 -0
  258. package/modules/php-laravel/architecture-snippets/service-repository.md +302 -0
  259. package/modules/php-laravel/module.yaml +15 -0
  260. package/modules/php-laravel/stack-profile.yaml +56 -0
  261. package/modules/qc-playwright/stack-profile.yaml +66 -0
  262. package/modules/react/architecture-snippets/hooks-query-patterns.md +254 -0
  263. package/modules/react/module.yaml +14 -0
  264. package/modules/react/stack-profile.yaml +63 -0
  265. package/modules/react-native/module.yaml +14 -0
  266. package/modules/react-native/stack-profile.yaml +56 -0
  267. package/modules/vue/module.yaml +14 -0
  268. package/modules/vue/stack-profile.yaml +65 -0
  269. package/package.json +49 -0
  270. package/rules/data-protection.md +80 -0
  271. package/rules/workflow.md +44 -0
  272. package/scripts/init.sh +49 -0
  273. package/scripts/migrate-specs.js +256 -0
  274. package/scripts/upgrade.sh +94 -0
  275. package/skills/code/SKILL.md +770 -0
  276. package/skills/code/SKILL.tmpl +176 -0
  277. package/skills/debug/SKILL.md +869 -0
  278. package/skills/debug/SKILL.tmpl +262 -0
  279. package/skills/design-spec/SKILL.md +589 -0
  280. package/skills/design-spec/SKILL.tmpl +95 -0
  281. package/skills/discovery/SKILL.md +554 -0
  282. package/skills/discovery/SKILL.tmpl +147 -0
  283. package/skills/prd/SKILL.md +562 -0
  284. package/skills/prd/SKILL.tmpl +188 -0
  285. package/skills/qc/qa-analyst/DOC_GAPS.template.md +63 -0
  286. package/skills/qc/qa-analyst/acceptance-criteria.md +60 -0
  287. package/skills/qc/qa-analyst/business-rules.md +59 -0
  288. package/skills/qc/qa-analyst/data-flow.md +64 -0
  289. package/skills/qc/qa-analyst/spec-breakdown.md +61 -0
  290. package/skills/qc/qa-designer/e2e/journey.md +41 -0
  291. package/skills/qc/qa-designer/exploratory/charter.md +68 -0
  292. package/skills/qc/qa-designer/exploratory/explore-to-functional.md +43 -0
  293. package/skills/qc/qa-designer/functional/api.md +45 -0
  294. package/skills/qc/qa-designer/functional/gui-feature.md +46 -0
  295. package/skills/qc/qa-designer/functional/gui-screen.md +52 -0
  296. package/skills/qc/qa-designer/integration/api.md +42 -0
  297. package/skills/qc/qa-designer/integration/db.md +39 -0
  298. package/skills/qc/qa-designer/integration/gui.md +40 -0
  299. package/skills/qc/qa-designer/integration/kafka.md +40 -0
  300. package/skills/qc/qa-designer/non-functional.md +40 -0
  301. package/skills/qc/qa-planner/test-plan.md +120 -0
  302. package/skills/qc/qa-reviewer/script/e2e.md +87 -0
  303. package/skills/qc/qa-reviewer/script/exploratory.md +45 -0
  304. package/skills/qc/qa-reviewer/script/functional.md +101 -0
  305. package/skills/qc/qa-reviewer/script/integration.md +91 -0
  306. package/skills/qc/qa-reviewer/script/non-functional.md +126 -0
  307. package/skills/qc/qa-reviewer/test-case/e2e.md +73 -0
  308. package/skills/qc/qa-reviewer/test-case/exploratory.md +43 -0
  309. package/skills/qc/qa-reviewer/test-case/functional.md +76 -0
  310. package/skills/qc/qa-reviewer/test-case/integration.md +69 -0
  311. package/skills/qc/qa-reviewer/test-case/non-functional.md +73 -0
  312. package/skills/qc/qa-runner/e2e.md +49 -0
  313. package/skills/qc/qa-runner/exploratory/session.md +36 -0
  314. package/skills/qc/qa-runner/functional/api.md +35 -0
  315. package/skills/qc/qa-runner/functional/gui-feature.md +51 -0
  316. package/skills/qc/qa-runner/functional/gui-screen.md +55 -0
  317. package/skills/qc/qa-runner/integration.md +47 -0
  318. package/skills/qc/qa-runner/non-functional.md +49 -0
  319. package/skills/qc/qa-runner/report/report.md +37 -0
  320. package/skills/setup-ai-first/SKILL.md +216 -0
  321. package/skills/setup-ai-first/SKILL.tmpl +116 -0
  322. package/skills/spec/SKILL.md +461 -0
  323. package/skills/spec/SKILL.tmpl +174 -0
  324. package/skills/test/SKILL.md +1297 -0
  325. package/skills/test/SKILL.tmpl +296 -0
  326. package/steps/capture-lesson.md +79 -0
  327. package/steps/context-loader.md +307 -0
  328. package/steps/gate.md +87 -0
  329. package/steps/report-footer.md +100 -0
  330. package/steps/review-fanout.md +138 -0
  331. package/steps/spawn-agent.md +124 -0
  332. package/steps/trace-mirror.md +26 -0
  333. package/templates/architecture.template.md +113 -0
  334. package/templates/design-spec.template.md +217 -0
  335. package/templates/feature.template +259 -0
  336. package/templates/platform-guide.template.md +145 -0
  337. package/templates/prd.template.md +327 -0
  338. package/templates/product-definition.template.md +168 -0
  339. package/templates/project-context.yaml +161 -0
@@ -0,0 +1,545 @@
1
+ # /setup-ai-first — Initialize Spec-Driven Docs in a Project
2
+
3
+ Walk the user through a one-time setup that creates all required directories, installs CLAUDE.md, and verifies the environment.
4
+
5
+ ## Gate
6
+ # Gate — Universal Entry Procedure
7
+
8
+ Every command must execute this gate before proceeding with its specific logic.
9
+
10
+ ## Step 0 — Sub-Agent Mode Check
11
+
12
+ Before anything else, check if `$ARGUMENTS` is a JSON payload from an orchestrator:
13
+
14
+ 1. Attempt to parse `$ARGUMENTS` as JSON.
15
+ 2. If it parses successfully **and** contains `"_agent_mode": true`:
16
+ - **Skip Steps 1, 2, and 3 of this Gate entirely.**
17
+ - Set target file = `payload.target_file`
18
+ - Set loaded context = `payload.context` (do NOT run context-loader.md)
19
+ - Set UC scope = `payload.uc_id` (process only this UC)
20
+ - Set line range = `payload.uc_section` (read only that PRD section)
21
+ - Proceed directly to the command-specific logic.
22
+ 3. If `$ARGUMENTS` is not JSON or `_agent_mode` is absent → continue to Step 1 (normal mode).
23
+
24
+ ## Step 0-B — Model Check
25
+
26
+ *Skip this step if `_agent_mode: true` (sub-agent — orchestrator already validated).*
27
+
28
+ Complex generation and review commands require strong reasoning.
29
+ Using a smaller model risks missed edge cases, incomplete spec analysis, and architecture violations.
30
+
31
+ Display and wait for response:
32
+
33
+ ```
34
+ ⚙️ MODEL CHECK
35
+ ──────────────────────────────────────────────────────────────────
36
+ Recommended : claude-opus-4 (or latest Opus model)
37
+ Why needed : Spec analysis, architecture review, code generation
38
+ require deep reasoning. Smaller models miss edge cases.
39
+
40
+ To switch in Claude Code:
41
+ • Settings → Model → select "claude-opus"
42
+ • or: /model → choose claude-opus
43
+
44
+ Running on claude-opus?
45
+ Y — yes, on claude-opus → proceed
46
+ S — skip check (I accept lower quality risk with current model)
47
+ ──────────────────────────────────────────────────────────────────
48
+ ```
49
+
50
+ - "Y" → proceed to Step 1.
51
+ - "S" → proceed to Step 1 (user accepts risk, add ⚠️ to final report).
52
+ - "N" or anything else → **STOP.** Output: "Please switch to claude-opus, then re-run this command."
53
+
54
+ ## Step 1 — Resolve Target File
55
+
56
+ 1. If `$ARGUMENTS` is provided and points to an existing file → use it directly as the target.
57
+ 2. If `$ARGUMENTS` is a **bare UC-ID / ticket ID / partial name** (no path) → resolve it to a file by globbing the feature-package layout. The `{prd-slug}` is **not known yet**, so use a `*` wildcard for that segment, and a recursive `**` under `bdd/` so the platform subfolders (`bdd/web/`, `bdd/app/`, `bdd/system/`) are all covered:
58
+ - **BDD commands** (target is a `.feature`): `{specs_dir}/{domain}/*/bdd/**/{UC-ID}*.feature` — or `{specs_dir}/*/*/bdd/**/{UC-ID}*.feature` if the domain is also unknown. If a platform/scope is implied by the command (e.g. a system tech-doc needs the `system/` BDD), prefer the match under that platform subfolder.
59
+ - **PRD commands** (target is `prd.md`): `{specs_dir}/{domain}/*/prd.md` (match the feature folder whose id corresponds), else `{specs_dir}/*/*/prd.md`.
60
+ - **tech-docs commands**: `{specs_dir}/{domain}/*/tech-docs/{UC-ID}*-tech-design*.md`.
61
+ - **design-spec commands**: `{specs_dir}/{domain}/*/design-spec/{TICKET-ID}*.md`.
62
+
63
+ Once a file matches: set it as the target **and** record `domain` + `prd_slug` from its path (per the extraction rule in `context-loader.md` Step 1 — `prd_slug` = first segment after `{specs_dir}/{domain}/`). Every path the command later reads or writes (sibling BDD/tech-docs/design-spec/trace) uses **that resolved `prd_slug`**, so all artifacts stay in one feature package. If several files match (e.g. multiple platforms), pick per the command's platform/scope or list them and ask.
64
+ 3. If `$ARGUMENTS` is empty or no match found:
65
+ - List files in the relevant directory for this command (e.g., `specs/*/*/prd.md` for PRD commands, `specs/*/*/bdd/**/*.feature` for BDD commands).
66
+ - Present the list to the user and ask: "Which file do you want to work with? (Enter number or filename)"
67
+ - Wait for user selection before continuing.
68
+
69
+ ## Step 2 — Execute Context Loader
70
+
71
+ Load all project context by following the procedure in `steps/context-loader.md`.
72
+ Store all loaded context in memory for use throughout this command session.
73
+
74
+ ## Step 3 — CHECKPOINT
75
+
76
+ After completing Steps 1 and 2, display a summary and wait for confirmation:
77
+
78
+ ```
79
+ CHECKPOINT
80
+ -----------
81
+ Target : {resolved file path}
82
+ Project : {project.name from project-context.yaml}
83
+ Tech stack : {language} / {framework}
84
+ Module : {module if set, else "not configured"}
85
+ Domains : {comma-separated domain list}
86
+
87
+ Proceed? (Y/N)
88
+ ```
89
+
90
+ Wait for explicit "Y" or "N" from the user before continuing.
91
+ - "Y" → proceed to the command-specific steps below.
92
+ - "N" → stop and ask what the user wants to change.
93
+
94
+
95
+ *Note: For this command — **skip Gate Steps 1, 2, and 3** (there is no input file and no project context yet). Only run Step 0-B (model check). The project root is the **current working directory**. Proceed directly to the Precondition Check below.*
96
+
97
+ ---
98
+
99
+ ## Precondition Check
100
+
101
+ Check if already set up:
102
+ - If `CLAUDE.md` **and** `.agent/project-context.yaml` both exist → ask: "This project is already initialized. Re-run setup to regenerate config files? (Y/N)"
103
+ - N → stop
104
+ - Y → continue (existing files will be preserved — each step will offer merge/skip)
105
+ - If only `specs/` exists or only partial setup detected → continue normally (safe to re-run)
106
+
107
+ ## Step 0.5 — Project Type
108
+
109
+ Ask the user:
110
+
111
+ ```
112
+ What type of project is this?
113
+ 1. Single-service — one codebase, one platform (standard setup)
114
+ 2. Umbrella repo — this repo contains multiple service submodules (microservices / multi-app)
115
+ 3. PO Spec repo — docs only, no runnable code (PRD + design-spec only)
116
+ ```
117
+
118
+ Store the answer as `project_type`. Default to `1` if user does not answer.
119
+
120
+ Based on answer:
121
+
122
+ **project_type = 1 (Single-service):** Continue standard setup below.
123
+
124
+ **project_type = 2 (Umbrella):** Ask two follow-up questions:
125
+ - "Path to spec submodule (e.g. `free-trial-specs`)? Press Enter to skip."
126
+ - "List services as `domain:module` pairs, comma-separated
127
+ (e.g. `user:java-spring,order:java-spring`). Press Enter to skip."
128
+
129
+ Then:
130
+ - Skip creating any `specs/` artifacts (all specs — PRD, BDD, tech-docs, design-spec — live in the spec submodule under the feature-package layout `specs/{domain}/{prd-slug}/`)
131
+ - Create only: `.trace/`, `.agent/review/` at umbrella level
132
+ *(Unless user explicitly asks to create the full structure)*
133
+ - Generate `.agent/project-context.yaml` in umbrella mode with the services and spec_source provided
134
+ - Skip creating `CLAUDE.md` (umbrella has no single tech stack)
135
+ - After setup, remind: "Open each service submodule separately in Claude Code to install the framework there if needed."
136
+
137
+ **project_type = 3 (PO Spec repo):**
138
+ - Create base dirs: `specs/product-definition/`, `specs/domain-knowledge/`, `feedback/`, `.agent/review/`
139
+ - Per-feature artifacts (`specs/{domain}/{prd-slug}/{prd.md, bdd/, tech-docs/, design-spec/}`) are created on demand by the generate commands — do NOT pre-create them
140
+ - Skip: `.trace/` (per-service, lives beside code in each service submodule)
141
+ - Generate minimal `CLAUDE.md` with only §1 (project overview) and §7 (git conventions)
142
+ - Ask the user: **"List your business domains (e.g. auth, payment, loyalty):"** — store as domain list for `project-context.yaml` and remind PO these names must be used consistently as `@trace.domain` in every PRD
143
+ - Inform:
144
+ - Commands for PO repo: `/define-product`, `/generate-prd`, `/review-context`, `/generate-design-spec`
145
+ - **Critical for dev team handoff:** Every PRD must have `@trace.domain: {domain}` in its frontmatter. Dev team uses this to route generated BDD/code to the correct service submodule. Inconsistent domain names will break routing.
146
+ - Recommended PRD frontmatter:
147
+ ```
148
+ @trace.domain: {domain} ← must match a key in dev team's services config
149
+ @trace.id: {TICKET-ID}
150
+ @trace.status: draft | approved
151
+ ```
152
+
153
+ ## Step 1 — Create Directory Structure
154
+
155
+ Create these directories (skip if they exist):
156
+
157
+ ```
158
+ {project-root}/
159
+ ├── specs/
160
+ │ ├── product-definition/ ← Output of /define-product
161
+ │ └── domain-knowledge/ ← business dictionary & domain context
162
+ ├── .trace/ ← .trace/{domain}/{prd-slug}/{UC-ID}.tsv
163
+ └── .agent/
164
+ └── review/
165
+ ```
166
+
167
+ **Feature-package layout** — per-feature spec artifacts are NOT pre-created. Each generate
168
+ command creates its own folder on demand under `specs/{domain}/{prd-slug}/`:
169
+
170
+ ```
171
+ specs/{domain}/{prd-slug}/
172
+ ├── prd.md ← /generate-prd
173
+ ├── bdd/ ← /generate-bdd (.feature files)
174
+ ├── tech-docs/ ← /generate-tech-docs
175
+ └── design-spec/ ← /generate-design-spec (FE/App platforms only)
176
+ ```
177
+
178
+ *Which base dirs to create varies by `project_type` set in Step 0.5:*
179
+
180
+ | project_type | Create | Skip |
181
+ |---|---|---|
182
+ | **1 — Single-service** | Base structure above (`specs/product-definition/`, `specs/domain-knowledge/`, `.trace/`, `.agent/review/`) | per-feature folders (created on demand) |
183
+ | **2 — Umbrella** | `.trace/` + `.agent/review/` only (at umbrella root) | Everything else — **all specs live in the spec submodule (`spec_source`)** under `specs/{domain}/{prd-slug}/`; service submodules hold only **code + `.trace/`** |
184
+ | **3 — PO Spec repo** | `specs/product-definition/`, `specs/domain-knowledge/`, **`feedback/`**, `.agent/review/` (per-feature `specs/{domain}/{prd-slug}/` folders created on demand) | `.trace/` (per-service, lives beside code in each service submodule) |
185
+
186
+ ## Step 2 — Create CLAUDE.md
187
+
188
+ *Skip this step entirely if `project_type = 2` (Umbrella) — umbrella has no single tech stack.*
189
+ *For `project_type = 3` (PO Spec repo) — create a minimal CLAUDE.md with only §1 (project overview) and §7 (git conventions). Skip §2–§6.*
190
+
191
+ Check if `CLAUDE.md` exists:
192
+ - Yes → ask "Merge template or skip?"
193
+ - No → create from the template below
194
+
195
+ After creating, instruct: "Open CLAUDE.md and fill in the `{{PLACEHOLDER}}` values with your project information."
196
+
197
+ ### CLAUDE.md Template
198
+
199
+ ```
200
+ # §1. Project Overview
201
+ Project: {{PROJECT_NAME}}
202
+ Language: {{LANGUAGE}}
203
+ Framework: {{FRAMEWORK}}
204
+ Build: {{BUILD_COMMAND}}
205
+ Test: {{TEST_COMMAND}}
206
+ Domains: {{COMMA_SEPARATED_DOMAINS}}
207
+
208
+ # §2. Architecture
209
+ layers: "{{LAYER_STACK}}"
210
+ # Example: Controller → Facade → Service → Repository
211
+ rules:
212
+ - "Controllers must not contain business logic"
213
+ - "Services own transaction boundaries"
214
+
215
+ # §3. Coding Standards
216
+ naming:
217
+ classes: "{{NAMING_CONVENTION}}"
218
+ methods: "{{METHOD_CONVENTION}}"
219
+ response_wrapper: "{{WRAPPER}}"
220
+ forbidden:
221
+ - "Magic numbers"
222
+ - "Debug print statements"
223
+
224
+ # §4. Traceability
225
+ # Every controller method must be tagged:
226
+ # @trace.implements={UC-ID}-{SC-ID}
227
+ # @trace.source=specs/{domain}/{prd-slug}/bdd/{UC-ID}.feature ← adjust if specs_dir differs in .agent/project-context.yaml
228
+ # Tests must be tagged:
229
+ # @trace.verifies={UC-ID}
230
+
231
+ # §5. Error Handling
232
+ not_found: "{{NOT_FOUND_EXCEPTION}}"
233
+ http_codes: { get: 200, create: 201, not_found: 404, validation: 400 }
234
+
235
+ # §6. Build & Test
236
+ build_command: "{{BUILD_COMMAND}}"
237
+ test_command: "{{TEST_COMMAND}}"
238
+ run_command: "{{RUN_COMMAND}}"
239
+
240
+ # §7. Git Conventions
241
+ branch_feature: "feature/{{TICKET_PREFIX}}-{N}-{slug}"
242
+ commit_feature: "feat({{TICKET_PREFIX}}-{N}): {description}"
243
+ ```
244
+
245
+ ## Step 3 — Create project-context.yaml
246
+
247
+ *For `project_type = 2` (Umbrella):*
248
+ - *If `.agent/project-context.yaml` was already generated by `--init --umbrella` → open it and verify/edit the `services` section (domain keys, paths, modules). Skip template copy below.*
249
+ - *If not yet generated → ask: "Spec submodule path?" and "Services (domain:module pairs)?" then generate umbrella config (see Step 0.5 for format).*
250
+
251
+ Create `.agent/project-context.yaml` using `.agent/templates/project-context.yaml` as the source template.
252
+
253
+ Copy the template and instruct: "Open `.agent/project-context.yaml` and fill in all `{{PLACEHOLDER}}` values. The `paths` section is pre-configured with sensible defaults — adjust if your project uses different directory names."
254
+
255
+ ## Step 4 — Create business-dictionary.md
256
+
257
+ *Skip Steps 4 and 5 if `project_type = 2` (Umbrella) — business dictionary and core entities live in the spec submodule and are managed by the PO team. Dev team reads them from `{spec_source}/specs/domain-knowledge/`.*
258
+
259
+
260
+ Create `specs/domain-knowledge/business-dictionary.md` if it does not exist:
261
+
262
+ ```markdown
263
+ # Business Dictionary — {{PROJECT_NAME}}
264
+
265
+ > Canonical terminology for this project. All PRDs, BDD specs, and code must follow these terms.
266
+ > Managed by: PO / SA team.
267
+
268
+ ## Canonical Terms
269
+
270
+ | Canonical Term | Description / Context |
271
+ |----------------|----------------------|
272
+ | {Term} | {Short description, usage scope} |
273
+
274
+ ## Banned Terms
275
+
276
+ | ❌ Do NOT use | ✅ Use instead | Reason |
277
+ |---------------|-------------------|--------|
278
+ | {banned} | {canonical} | {why} |
279
+
280
+ ## Status / Enum Registry
281
+
282
+ | Entity | Field | Allowed Values |
283
+ |--------|---------|--------------------|
284
+ | {Entity} | status | {value1, value2} |
285
+ ```
286
+
287
+ Instruct: "Open `specs/domain-knowledge/business-dictionary.md` and add your project terminology. This file will be read by all commands to enforce consistent naming."
288
+
289
+ ## Step 5 — Create core-entities.md
290
+
291
+ Create `specs/domain-knowledge/core-entities.md` if it does not exist:
292
+
293
+ ```markdown
294
+ # Core Entities — {{PROJECT_NAME}}
295
+
296
+ > Machine-readable entity glossary for AI-assisted development.
297
+ > Loaded by all commands so AI knows your domain model without reading source code.
298
+ > Managed by: Tech Lead / Architect.
299
+ >
300
+ > HOW TO USE:
301
+ > - Add one `## Entity: {Name}` section per domain entity (aggregate root, value object, etc.)
302
+ > - Keep field descriptions concise — this is a REFERENCE, not API docs
303
+ > - Update this file whenever you add/rename fields or change business invariants
304
+
305
+ ---
306
+
307
+ ## Entity: {EntityName}
308
+
309
+ **Purpose**: {1-2 sentences — what this entity represents and why it exists in the domain}
310
+ **Domain**: {domain}
311
+ **Storage**: {e.g., `orders` table in PostgreSQL | `orders` collection in MongoDB}
312
+ **Owner service**: {service/module that owns this entity}
313
+
314
+ | Field | Type | Nullable | Description |
315
+ |--------------|---------|----------|-------------------------------------|
316
+ | id | UUID | No | Primary key |
317
+ | {field_name} | {type} | Yes/No | {short description} |
318
+ | status | Enum | No | See Status Registry in business-dictionary.md |
319
+
320
+ **Business invariants:**
321
+ - {Rule 1: e.g., "status can only transition: PENDING → ACTIVE → CLOSED"}
322
+ - {Rule 2: e.g., "total must equal sum of line items"}
323
+
324
+ **Relationships:**
325
+ - `{EntityA}` 1:N `{EntityB}` — {one sentence description}
326
+ - `{EntityA}` N:N `{EntityC}` via `{junction_table}` — {description}
327
+
328
+ ---
329
+
330
+ ## Entity: {AnotherEntity}
331
+
332
+ *(Add more entities following the same pattern above)*
333
+ ```
334
+
335
+ Instruct: "Open `specs/domain-knowledge/core-entities.md` and define your key domain entities. Start with aggregate roots. This file is loaded by every AI command — good definitions here save significant back-and-forth during code generation."
336
+
337
+ ## Step 6 — Install VS Code Extension (Recommended)
338
+
339
+ Recommend the user install the **Spec Driven Docs Tools** VS Code extension — it provides Review Board + Living Documentation panels that integrate with this workflow.
340
+
341
+ ```bash
342
+ code --install-extension SpecDrivenDocsTools.spec-driven-docs-tool
343
+ ```
344
+
345
+ Or: VS Code → `Ctrl+Shift+P` → **"Extensions: Install from Marketplace"** → search **Spec Driven Docs Tools**.
346
+
347
+ **What it does:**
348
+ - 📋 **Review Board** — visual UI to review findings from `/refine-prd`, `/review-context`, `/review-tech-docs`
349
+ - 📊 **Living Documentation** — traceability dashboard driven by `.trace/*.tsv`
350
+
351
+ ## Step 7 — Verify
352
+
353
+ Checklist varies by `project_type`:
354
+
355
+ **project_type = 1 (Single-service):**
356
+ - [ ] `specs/` exists
357
+ - [ ] `specs/product-definition/` exists
358
+ - [ ] `specs/domain-knowledge/` exists
359
+ - [ ] `.trace/` exists
360
+ *(per-feature `specs/{domain}/{prd-slug}/` folders are created on demand — not checked here)*
361
+ - [ ] `.agent/project-context.yaml` exists
362
+ - [ ] `CLAUDE.md` exists
363
+ - [ ] `specs/domain-knowledge/business-dictionary.md` exists
364
+ - [ ] `specs/domain-knowledge/core-entities.md` exists
365
+
366
+ **project_type = 2 (Umbrella):**
367
+ - [ ] `.agent/project-context.yaml` exists with `setup.mode: umbrella`
368
+ - [ ] `services` section has at least one entry with correct domain keys
369
+ - [ ] `spec_source` path exists (e.g., `my-project-specs/` directory is present)
370
+ - [ ] `.agent/review/` exists
371
+ - [ ] Spec submodule initialized: `git submodule status` shows no `-` prefix
372
+
373
+ **project_type = 3 (PO Spec repo):**
374
+ - [ ] `specs/product-definition/` exists
375
+ - [ ] `specs/domain-knowledge/` exists
376
+ - [ ] `feedback/` exists
377
+ *(per-feature `specs/{domain}/{prd-slug}/` folders are created on demand — not checked here)*
378
+ - [ ] `.agent/review/` exists
379
+ - [ ] `.agent/project-context.yaml` exists
380
+ - [ ] `CLAUDE.md` exists (minimal)
381
+ - [ ] `specs/domain-knowledge/business-dictionary.md` exists
382
+ - [ ] `specs/domain-knowledge/core-entities.md` exists
383
+
384
+ ## Output
385
+
386
+ # Report Footer — Standard Command Output Format
387
+
388
+ Every command report must end with this standard footer section.
389
+
390
+ ## Status Badge
391
+
392
+ Choose one based on outcome:
393
+ - `✅ Complete` — all steps succeeded, no issues found
394
+ - `❌ Failed` — command could not complete due to a blocking error
395
+ - `⚠️ Warnings` — completed with non-blocking issues that should be reviewed
396
+
397
+ ## Output Artifacts
398
+
399
+ List every file created or modified by this command:
400
+ ```
401
+ Output Artifacts:
402
+ {created|updated} {file-path} ({brief description})
403
+ {created|updated} {file-path} ({brief description})
404
+ ```
405
+
406
+ If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
407
+
408
+ ## Pipeline Position
409
+
410
+ Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
411
+ so the user always sees where this command sits in the end-to-end flow:
412
+
413
+ ```
414
+ Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
415
+ ```
416
+
417
+ Find the current command in this phase legend and mark **its** phase in the map above:
418
+
419
+ | Phase | Commands |
420
+ |-------|----------|
421
+ | Discovery | `/define-product` |
422
+ | PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
423
+ | Design Spec | `/generate-design-spec` |
424
+ | BDD | `/generate-bdd` · `/review-context` (BDD) |
425
+ | Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
426
+ | Code | `/generate-code` · `/review-code` |
427
+ | Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
428
+ | QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
429
+ | Trace Audit | `/validate-traces` |
430
+
431
+ For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
432
+ `Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
433
+
434
+ **Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
435
+ `/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
436
+ **omit the Pipeline line entirely** for these (do not force-fit them onto the map).
437
+
438
+ ## Next Command Suggestion
439
+
440
+ Suggest the logical next command based on workflow phase:
441
+
442
+ | Current command | Suggest next |
443
+ |-------------------------|-----------------------------------------------|
444
+ | /setup-ai-first | `/define-product` to start your first feature |
445
+ | /define-product | `/generate-prd {product-definition-file}` |
446
+ | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
447
+ | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
448
+ | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (then BDD after sign-off); BE: `/generate-bdd {prd-file}` directly; fix PRD if NEEDS_FIX |
449
+ | /generate-design-spec | Designer review → Figma links confirmed → PO + Designer sign-off → `/generate-bdd {prd-file}` |
450
+ | /generate-bdd | `/review-context {feature-file}` to verify coverage |
451
+ | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
452
+ | /qc-analyze | `/qc-plan {UC-ID}` (resolve 🔴 blocker gaps first) |
453
+ | /qc-plan | `/qc-design-test {UC-ID}` |
454
+ | /qc-design-test | `/qc-review {UC-ID}` (test-case review) |
455
+ | /qc-review (test-case) | `/qc-run-test {UC-ID}` if APPROVED; fix TCs if NEEDS_FIX |
456
+ | /qc-run-test | `/qc-report {UC-ID}` then `/qc-review {UC-ID}` (script review) |
457
+ | /qc-review (script) | `/qc-report {UC-ID}` then create PR if APPROVED |
458
+ | /qc-report | `/validate-traces {UC-ID}` to refresh Living Docs (qc_status) |
459
+ | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
460
+ | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
461
+ | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/dev-gen-test {UC-ID}` |
462
+ | /dev-gen-test | `/dev-run-test {UC-ID}` |
463
+ | /dev-run-test (passing) | `/review-code {UC-ID}` |
464
+ | /dev-run-test (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
465
+ | /review-code | `/dev-smoke-test {UC-ID}` or create PR |
466
+ | /dev-smoke-test | Create PR and link to ticket |
467
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/dev-gen-test {UC-ID}`; all OK → create PR |
468
+ | /fix-bug | Create PR and link to ticket |
469
+ | /debug | `/fix-bug {ticket-id}` if fix needed |
470
+ | /report-bug | Send to dev (`/fix-bug {BUG-ID}`); if coverage gap → `/propose-scenario {UC-ID}` |
471
+ | /propose-scenario | Notify PO/Dev to review the proposal in `feedback/bdd-proposals/` |
472
+ | /learn | Continue working — lesson applies on next command |
473
+ | /sync | `/validate-traces` for full coverage; act on any `📥 tester feedback` surfaced |
474
+ | /update-framework | Review `git diff .agent/`, commit; `/sync` for project content |
475
+
476
+ Format the footer as:
477
+ ```
478
+ ---
479
+ Status : {badge}
480
+ {Output Artifacts block}
481
+ Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
482
+ (review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
483
+ Next : {suggested command with example arguments}
484
+ ```
485
+ *(Omit the `Pipeline` line for cross-cutting commands listed above.)*
486
+
487
+
488
+ ```
489
+ /setup-ai-first Complete ✅
490
+ ```
491
+
492
+ Output varies by `project_type`:
493
+
494
+ **Single-service:**
495
+ ```
496
+ Next:
497
+ 1. Fill CLAUDE.md (replace {{PLACEHOLDER}} values)
498
+ 2. Fill .agent/project-context.yaml
499
+ 3. Fill specs/domain-knowledge/business-dictionary.md
500
+ 4. Fill specs/domain-knowledge/core-entities.md
501
+ 5. git add and commit those 4 files
502
+ 6. Install VS Code extension:
503
+ code --install-extension SpecDrivenDocsTools.spec-driven-docs-tool
504
+ 7. /define-product to start your first feature
505
+ ```
506
+
507
+ **Umbrella:**
508
+ ```
509
+ Next:
510
+ 1. Review .agent/project-context.yaml:
511
+ - Update services[].path to match actual submodule directory names
512
+ - Update services domain keys to match @trace.domain in your PRD files
513
+ - Confirm spec_source path is correct
514
+
515
+ 2. Run /sync — one command that handles everything else:
516
+ /sync
517
+ → git pull + submodule init + spec submodule update
518
+ → Auto-create .agent/project-context.yaml for each service submodule
519
+ (detects module from pom.xml / go.mod / package.json / pubspec.yaml etc.)
520
+ → Sync Living Docs panel
521
+ → Refresh spec-manifest.yaml
522
+
523
+ 3. Start generating:
524
+ /generate-bdd {spec_source}/specs/{domain}/{prd-slug}/prd.md
525
+ ```
526
+
527
+ **PO Spec repo:**
528
+ ```
529
+ Next:
530
+ 1. Fill .agent/project-context.yaml:
531
+ - domains: [list all business domains — these become @trace.domain values in PRDs]
532
+ - project.name, project.description
533
+ 2. Fill specs/domain-knowledge/business-dictionary.md ← canonical terms
534
+ 3. Fill specs/domain-knowledge/core-entities.md ← entity glossary
535
+ 4. git add and commit those files
536
+ 5. Install VS Code extension:
537
+ code --install-extension SpecDrivenDocsTools.spec-driven-docs-tool
538
+ 6. /define-product to start your first feature
539
+
540
+ ⚠️ Dev team handoff reminder:
541
+ - Each PRD must have @trace.domain matching one of your domains list
542
+ - When dev team sets up their umbrella repo, they map these domain names
543
+ to service submodule paths in their project-context.yaml services section
544
+ - Share domain names with dev team before they configure their umbrellas
545
+ ```