@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,358 @@
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
+ {{include:steps/gate.md}}
7
+
8
+ *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.*
9
+
10
+ ---
11
+
12
+ ## Precondition Check
13
+
14
+ Check if already set up:
15
+ - 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)"
16
+ - N → stop
17
+ - Y → continue (existing files will be preserved — each step will offer merge/skip)
18
+ - If only `specs/` exists or only partial setup detected → continue normally (safe to re-run)
19
+
20
+ ## Step 0.5 — Project Type
21
+
22
+ Ask the user:
23
+
24
+ ```
25
+ What type of project is this?
26
+ 1. Single-service — one codebase, one platform (standard setup)
27
+ 2. Umbrella repo — this repo contains multiple service submodules (microservices / multi-app)
28
+ 3. PO Spec repo — docs only, no runnable code (PRD + design-spec only)
29
+ ```
30
+
31
+ Store the answer as `project_type`. Default to `1` if user does not answer.
32
+
33
+ Based on answer:
34
+
35
+ **project_type = 1 (Single-service):** Continue standard setup below.
36
+
37
+ **project_type = 2 (Umbrella):** Ask two follow-up questions:
38
+ - "Path to spec submodule (e.g. `free-trial-specs`)? Press Enter to skip."
39
+ - "List services as `domain:module` pairs, comma-separated
40
+ (e.g. `user:java-spring,order:java-spring`). Press Enter to skip."
41
+
42
+ Then:
43
+ - 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}/`)
44
+ - Create only: `.trace/`, `.agent/review/` at umbrella level
45
+ *(Unless user explicitly asks to create the full structure)*
46
+ - Generate `.agent/project-context.yaml` in umbrella mode with the services and spec_source provided
47
+ - Skip creating `CLAUDE.md` (umbrella has no single tech stack)
48
+ - After setup, remind: "Open each service submodule separately in Claude Code to install the framework there if needed."
49
+
50
+ **project_type = 3 (PO Spec repo):**
51
+ - Create base dirs: `specs/product-definition/`, `specs/domain-knowledge/`, `feedback/`, `.agent/review/`
52
+ - 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
53
+ - Skip: `.trace/` (per-service, lives beside code in each service submodule)
54
+ - Generate minimal `CLAUDE.md` with only §1 (project overview) and §7 (git conventions)
55
+ - 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
56
+ - Inform:
57
+ - Commands for PO repo: `/define-product`, `/generate-prd`, `/review-context`, `/generate-design-spec`
58
+ - **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.
59
+ - Recommended PRD frontmatter:
60
+ ```
61
+ @trace.domain: {domain} ← must match a key in dev team's services config
62
+ @trace.id: {TICKET-ID}
63
+ @trace.status: draft | approved
64
+ ```
65
+
66
+ ## Step 1 — Create Directory Structure
67
+
68
+ Create these directories (skip if they exist):
69
+
70
+ ```
71
+ {project-root}/
72
+ ├── specs/
73
+ │ ├── product-definition/ ← Output of /define-product
74
+ │ └── domain-knowledge/ ← business dictionary & domain context
75
+ ├── .trace/ ← .trace/{domain}/{prd-slug}/{UC-ID}.tsv
76
+ └── .agent/
77
+ └── review/
78
+ ```
79
+
80
+ **Feature-package layout** — per-feature spec artifacts are NOT pre-created. Each generate
81
+ command creates its own folder on demand under `specs/{domain}/{prd-slug}/`:
82
+
83
+ ```
84
+ specs/{domain}/{prd-slug}/
85
+ ├── prd.md ← /generate-prd
86
+ ├── bdd/ ← /generate-bdd (.feature files)
87
+ ├── tech-docs/ ← /generate-tech-docs
88
+ └── design-spec/ ← /generate-design-spec (FE/App platforms only)
89
+ ```
90
+
91
+ *Which base dirs to create varies by `project_type` set in Step 0.5:*
92
+
93
+ | project_type | Create | Skip |
94
+ |---|---|---|
95
+ | **1 — Single-service** | Base structure above (`specs/product-definition/`, `specs/domain-knowledge/`, `.trace/`, `.agent/review/`) | per-feature folders (created on demand) |
96
+ | **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/`** |
97
+ | **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) |
98
+
99
+ ## Step 2 — Create CLAUDE.md
100
+
101
+ *Skip this step entirely if `project_type = 2` (Umbrella) — umbrella has no single tech stack.*
102
+ *For `project_type = 3` (PO Spec repo) — create a minimal CLAUDE.md with only §1 (project overview) and §7 (git conventions). Skip §2–§6.*
103
+
104
+ Check if `CLAUDE.md` exists:
105
+ - Yes → ask "Merge template or skip?"
106
+ - No → create from the template below
107
+
108
+ After creating, instruct: "Open CLAUDE.md and fill in the `{{PLACEHOLDER}}` values with your project information."
109
+
110
+ ### CLAUDE.md Template
111
+
112
+ ```
113
+ # §1. Project Overview
114
+ Project: {{PROJECT_NAME}}
115
+ Language: {{LANGUAGE}}
116
+ Framework: {{FRAMEWORK}}
117
+ Build: {{BUILD_COMMAND}}
118
+ Test: {{TEST_COMMAND}}
119
+ Domains: {{COMMA_SEPARATED_DOMAINS}}
120
+
121
+ # §2. Architecture
122
+ layers: "{{LAYER_STACK}}"
123
+ # Example: Controller → Facade → Service → Repository
124
+ rules:
125
+ - "Controllers must not contain business logic"
126
+ - "Services own transaction boundaries"
127
+
128
+ # §3. Coding Standards
129
+ naming:
130
+ classes: "{{NAMING_CONVENTION}}"
131
+ methods: "{{METHOD_CONVENTION}}"
132
+ response_wrapper: "{{WRAPPER}}"
133
+ forbidden:
134
+ - "Magic numbers"
135
+ - "Debug print statements"
136
+
137
+ # §4. Traceability
138
+ # Every controller method must be tagged:
139
+ # @trace.implements={UC-ID}-{SC-ID}
140
+ # @trace.source=specs/{domain}/{prd-slug}/bdd/{UC-ID}.feature ← adjust if specs_dir differs in .agent/project-context.yaml
141
+ # Tests must be tagged:
142
+ # @trace.verifies={UC-ID}
143
+
144
+ # §5. Error Handling
145
+ not_found: "{{NOT_FOUND_EXCEPTION}}"
146
+ http_codes: { get: 200, create: 201, not_found: 404, validation: 400 }
147
+
148
+ # §6. Build & Test
149
+ build_command: "{{BUILD_COMMAND}}"
150
+ test_command: "{{TEST_COMMAND}}"
151
+ run_command: "{{RUN_COMMAND}}"
152
+
153
+ # §7. Git Conventions
154
+ branch_feature: "feature/{{TICKET_PREFIX}}-{N}-{slug}"
155
+ commit_feature: "feat({{TICKET_PREFIX}}-{N}): {description}"
156
+ ```
157
+
158
+ ## Step 3 — Create project-context.yaml
159
+
160
+ *For `project_type = 2` (Umbrella):*
161
+ - *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.*
162
+ - *If not yet generated → ask: "Spec submodule path?" and "Services (domain:module pairs)?" then generate umbrella config (see Step 0.5 for format).*
163
+
164
+ Create `.agent/project-context.yaml` using `.agent/templates/project-context.yaml` as the source template.
165
+
166
+ 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."
167
+
168
+ ## Step 4 — Create business-dictionary.md
169
+
170
+ *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/`.*
171
+
172
+
173
+ Create `specs/domain-knowledge/business-dictionary.md` if it does not exist:
174
+
175
+ ```markdown
176
+ # Business Dictionary — {{PROJECT_NAME}}
177
+
178
+ > Canonical terminology for this project. All PRDs, BDD specs, and code must follow these terms.
179
+ > Managed by: PO / SA team.
180
+
181
+ ## Canonical Terms
182
+
183
+ | Canonical Term | Description / Context |
184
+ |----------------|----------------------|
185
+ | {Term} | {Short description, usage scope} |
186
+
187
+ ## Banned Terms
188
+
189
+ | ❌ Do NOT use | ✅ Use instead | Reason |
190
+ |---------------|-------------------|--------|
191
+ | {banned} | {canonical} | {why} |
192
+
193
+ ## Status / Enum Registry
194
+
195
+ | Entity | Field | Allowed Values |
196
+ |--------|---------|--------------------|
197
+ | {Entity} | status | {value1, value2} |
198
+ ```
199
+
200
+ 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."
201
+
202
+ ## Step 5 — Create core-entities.md
203
+
204
+ Create `specs/domain-knowledge/core-entities.md` if it does not exist:
205
+
206
+ ```markdown
207
+ # Core Entities — {{PROJECT_NAME}}
208
+
209
+ > Machine-readable entity glossary for AI-assisted development.
210
+ > Loaded by all commands so AI knows your domain model without reading source code.
211
+ > Managed by: Tech Lead / Architect.
212
+ >
213
+ > HOW TO USE:
214
+ > - Add one `## Entity: {Name}` section per domain entity (aggregate root, value object, etc.)
215
+ > - Keep field descriptions concise — this is a REFERENCE, not API docs
216
+ > - Update this file whenever you add/rename fields or change business invariants
217
+
218
+ ---
219
+
220
+ ## Entity: {EntityName}
221
+
222
+ **Purpose**: {1-2 sentences — what this entity represents and why it exists in the domain}
223
+ **Domain**: {domain}
224
+ **Storage**: {e.g., `orders` table in PostgreSQL | `orders` collection in MongoDB}
225
+ **Owner service**: {service/module that owns this entity}
226
+
227
+ | Field | Type | Nullable | Description |
228
+ |--------------|---------|----------|-------------------------------------|
229
+ | id | UUID | No | Primary key |
230
+ | {field_name} | {type} | Yes/No | {short description} |
231
+ | status | Enum | No | See Status Registry in business-dictionary.md |
232
+
233
+ **Business invariants:**
234
+ - {Rule 1: e.g., "status can only transition: PENDING → ACTIVE → CLOSED"}
235
+ - {Rule 2: e.g., "total must equal sum of line items"}
236
+
237
+ **Relationships:**
238
+ - `{EntityA}` 1:N `{EntityB}` — {one sentence description}
239
+ - `{EntityA}` N:N `{EntityC}` via `{junction_table}` — {description}
240
+
241
+ ---
242
+
243
+ ## Entity: {AnotherEntity}
244
+
245
+ *(Add more entities following the same pattern above)*
246
+ ```
247
+
248
+ 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."
249
+
250
+ ## Step 6 — Install VS Code Extension (Recommended)
251
+
252
+ Recommend the user install the **Spec Driven Docs Tools** VS Code extension — it provides Review Board + Living Documentation panels that integrate with this workflow.
253
+
254
+ ```bash
255
+ code --install-extension SpecDrivenDocsTools.spec-driven-docs-tool
256
+ ```
257
+
258
+ Or: VS Code → `Ctrl+Shift+P` → **"Extensions: Install from Marketplace"** → search **Spec Driven Docs Tools**.
259
+
260
+ **What it does:**
261
+ - 📋 **Review Board** — visual UI to review findings from `/refine-prd`, `/review-context`, `/review-tech-docs`
262
+ - 📊 **Living Documentation** — traceability dashboard driven by `.trace/*.tsv`
263
+
264
+ ## Step 7 — Verify
265
+
266
+ Checklist varies by `project_type`:
267
+
268
+ **project_type = 1 (Single-service):**
269
+ - [ ] `specs/` exists
270
+ - [ ] `specs/product-definition/` exists
271
+ - [ ] `specs/domain-knowledge/` exists
272
+ - [ ] `.trace/` exists
273
+ *(per-feature `specs/{domain}/{prd-slug}/` folders are created on demand — not checked here)*
274
+ - [ ] `.agent/project-context.yaml` exists
275
+ - [ ] `CLAUDE.md` exists
276
+ - [ ] `specs/domain-knowledge/business-dictionary.md` exists
277
+ - [ ] `specs/domain-knowledge/core-entities.md` exists
278
+
279
+ **project_type = 2 (Umbrella):**
280
+ - [ ] `.agent/project-context.yaml` exists with `setup.mode: umbrella`
281
+ - [ ] `services` section has at least one entry with correct domain keys
282
+ - [ ] `spec_source` path exists (e.g., `my-project-specs/` directory is present)
283
+ - [ ] `.agent/review/` exists
284
+ - [ ] Spec submodule initialized: `git submodule status` shows no `-` prefix
285
+
286
+ **project_type = 3 (PO Spec repo):**
287
+ - [ ] `specs/product-definition/` exists
288
+ - [ ] `specs/domain-knowledge/` exists
289
+ - [ ] `feedback/` exists
290
+ *(per-feature `specs/{domain}/{prd-slug}/` folders are created on demand — not checked here)*
291
+ - [ ] `.agent/review/` exists
292
+ - [ ] `.agent/project-context.yaml` exists
293
+ - [ ] `CLAUDE.md` exists (minimal)
294
+ - [ ] `specs/domain-knowledge/business-dictionary.md` exists
295
+ - [ ] `specs/domain-knowledge/core-entities.md` exists
296
+
297
+ ## Output
298
+
299
+ {{include:steps/report-footer.md}}
300
+
301
+ ```
302
+ /setup-ai-first Complete ✅
303
+ ```
304
+
305
+ Output varies by `project_type`:
306
+
307
+ **Single-service:**
308
+ ```
309
+ Next:
310
+ 1. Fill CLAUDE.md (replace {{PLACEHOLDER}} values)
311
+ 2. Fill .agent/project-context.yaml
312
+ 3. Fill specs/domain-knowledge/business-dictionary.md
313
+ 4. Fill specs/domain-knowledge/core-entities.md
314
+ 5. git add and commit those 4 files
315
+ 6. Install VS Code extension:
316
+ code --install-extension SpecDrivenDocsTools.spec-driven-docs-tool
317
+ 7. /define-product to start your first feature
318
+ ```
319
+
320
+ **Umbrella:**
321
+ ```
322
+ Next:
323
+ 1. Review .agent/project-context.yaml:
324
+ - Update services[].path to match actual submodule directory names
325
+ - Update services domain keys to match @trace.domain in your PRD files
326
+ - Confirm spec_source path is correct
327
+
328
+ 2. Run /sync — one command that handles everything else:
329
+ /sync
330
+ → git pull + submodule init + spec submodule update
331
+ → Auto-create .agent/project-context.yaml for each service submodule
332
+ (detects module from pom.xml / go.mod / package.json / pubspec.yaml etc.)
333
+ → Sync Living Docs panel
334
+ → Refresh spec-manifest.yaml
335
+
336
+ 3. Start generating:
337
+ /generate-bdd {spec_source}/specs/{domain}/{prd-slug}/prd.md
338
+ ```
339
+
340
+ **PO Spec repo:**
341
+ ```
342
+ Next:
343
+ 1. Fill .agent/project-context.yaml:
344
+ - domains: [list all business domains — these become @trace.domain values in PRDs]
345
+ - project.name, project.description
346
+ 2. Fill specs/domain-knowledge/business-dictionary.md ← canonical terms
347
+ 3. Fill specs/domain-knowledge/core-entities.md ← entity glossary
348
+ 4. git add and commit those files
349
+ 5. Install VS Code extension:
350
+ code --install-extension SpecDrivenDocsTools.spec-driven-docs-tool
351
+ 6. /define-product to start your first feature
352
+
353
+ ⚠️ Dev team handoff reminder:
354
+ - Each PRD must have @trace.domain matching one of your domains list
355
+ - When dev team sets up their umbrella repo, they map these domain names
356
+ to service submodule paths in their project-context.yaml services section
357
+ - Share domain names with dev team before they configure their umbrellas
358
+ ```