specweave 0.1.9 → 0.3.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 (293) hide show
  1. package/CLAUDE.md +600 -0
  2. package/README.md +245 -81
  3. package/bin/install-all.sh +1 -1
  4. package/bin/install-commands.sh +3 -3
  5. package/bin/specweave.js +39 -9
  6. package/dist/adapters/adapter-base.d.ts +1 -1
  7. package/dist/adapters/adapter-base.d.ts.map +1 -1
  8. package/dist/adapters/adapter-base.js +6 -41
  9. package/dist/adapters/adapter-base.js.map +1 -1
  10. package/dist/adapters/adapter-interface.js +1 -2
  11. package/dist/adapters/adapter-interface.js.map +1 -1
  12. package/dist/adapters/adapter-loader.d.ts +86 -0
  13. package/dist/adapters/adapter-loader.d.ts.map +1 -0
  14. package/dist/adapters/adapter-loader.js +216 -0
  15. package/dist/adapters/adapter-loader.js.map +1 -0
  16. package/dist/adapters/agents-md-generator.d.ts +48 -0
  17. package/dist/adapters/agents-md-generator.d.ts.map +1 -0
  18. package/dist/adapters/agents-md-generator.js +132 -0
  19. package/dist/adapters/agents-md-generator.js.map +1 -0
  20. package/dist/adapters/claude/adapter.d.ts +2 -2
  21. package/dist/adapters/claude/adapter.d.ts.map +1 -1
  22. package/dist/adapters/claude/adapter.js +5 -42
  23. package/dist/adapters/claude/adapter.js.map +1 -1
  24. package/dist/adapters/claude-md-generator.d.ts +78 -0
  25. package/dist/adapters/claude-md-generator.d.ts.map +1 -0
  26. package/dist/adapters/claude-md-generator.js +246 -0
  27. package/dist/adapters/claude-md-generator.js.map +1 -0
  28. package/dist/adapters/codex/adapter.d.ts +50 -0
  29. package/dist/adapters/codex/adapter.d.ts.map +1 -0
  30. package/dist/adapters/codex/adapter.js +316 -0
  31. package/dist/adapters/codex/adapter.js.map +1 -0
  32. package/dist/adapters/copilot/adapter.d.ts +10 -9
  33. package/dist/adapters/copilot/adapter.d.ts.map +1 -1
  34. package/dist/adapters/copilot/adapter.js +35 -100
  35. package/dist/adapters/copilot/adapter.js.map +1 -1
  36. package/dist/adapters/cursor/adapter.d.ts +8 -6
  37. package/dist/adapters/cursor/adapter.d.ts.map +1 -1
  38. package/dist/adapters/cursor/adapter.js +47 -130
  39. package/dist/adapters/cursor/adapter.js.map +1 -1
  40. package/dist/adapters/doc-generator.d.ts +69 -0
  41. package/dist/adapters/doc-generator.d.ts.map +1 -0
  42. package/dist/adapters/doc-generator.js +247 -0
  43. package/dist/adapters/doc-generator.js.map +1 -0
  44. package/dist/adapters/gemini/adapter.d.ts +50 -0
  45. package/dist/adapters/gemini/adapter.d.ts.map +1 -0
  46. package/dist/adapters/gemini/adapter.js +281 -0
  47. package/dist/adapters/gemini/adapter.js.map +1 -0
  48. package/dist/adapters/generic/adapter.d.ts +7 -4
  49. package/dist/adapters/generic/adapter.d.ts.map +1 -1
  50. package/dist/adapters/generic/adapter.js +60 -59
  51. package/dist/adapters/generic/adapter.js.map +1 -1
  52. package/dist/cli/commands/init.d.ts +3 -1
  53. package/dist/cli/commands/init.d.ts.map +1 -1
  54. package/dist/cli/commands/init.js +272 -170
  55. package/dist/cli/commands/init.js.map +1 -1
  56. package/dist/cli/commands/install.d.ts.map +1 -1
  57. package/dist/cli/commands/install.js +22 -58
  58. package/dist/cli/commands/install.js.map +1 -1
  59. package/dist/cli/commands/list.d.ts.map +1 -1
  60. package/dist/cli/commands/list.js +27 -64
  61. package/dist/cli/commands/list.js.map +1 -1
  62. package/dist/core/credentials-manager.d.ts +90 -0
  63. package/dist/core/credentials-manager.d.ts.map +1 -0
  64. package/dist/core/credentials-manager.js +271 -0
  65. package/dist/core/credentials-manager.js.map +1 -0
  66. package/dist/core/project-structure-detector.d.ts +92 -0
  67. package/dist/core/project-structure-detector.d.ts.map +1 -0
  68. package/dist/core/project-structure-detector.js +289 -0
  69. package/dist/core/project-structure-detector.js.map +1 -0
  70. package/dist/core/rfc-generator-v2.d.ts +149 -0
  71. package/dist/core/rfc-generator-v2.d.ts.map +1 -0
  72. package/dist/core/rfc-generator-v2.js +399 -0
  73. package/dist/core/rfc-generator-v2.js.map +1 -0
  74. package/dist/core/rfc-generator.d.ts +147 -0
  75. package/dist/core/rfc-generator.d.ts.map +1 -0
  76. package/dist/core/rfc-generator.js +434 -0
  77. package/dist/core/rfc-generator.js.map +1 -0
  78. package/dist/integrations/ado/ado-client.d.ts +123 -0
  79. package/dist/integrations/ado/ado-client.d.ts.map +1 -0
  80. package/dist/integrations/ado/ado-client.js +398 -0
  81. package/dist/integrations/ado/ado-client.js.map +1 -0
  82. package/dist/integrations/jira/jira-client.d.ts +139 -0
  83. package/dist/integrations/jira/jira-client.d.ts.map +1 -0
  84. package/dist/integrations/jira/jira-client.js +386 -0
  85. package/dist/integrations/jira/jira-client.js.map +1 -0
  86. package/dist/integrations/jira/jira-incremental-mapper.d.ts +75 -0
  87. package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
  88. package/dist/integrations/jira/jira-incremental-mapper.js +474 -0
  89. package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -0
  90. package/dist/integrations/jira/jira-mapper.d.ts +105 -0
  91. package/dist/integrations/jira/jira-mapper.d.ts.map +1 -0
  92. package/dist/integrations/jira/jira-mapper.js +494 -0
  93. package/dist/integrations/jira/jira-mapper.js.map +1 -0
  94. package/dist/testing/test-generator.d.ts +117 -0
  95. package/dist/testing/test-generator.d.ts.map +1 -0
  96. package/dist/testing/test-generator.js +370 -0
  97. package/dist/testing/test-generator.js.map +1 -0
  98. package/dist/utils/auto-install.d.ts +3 -0
  99. package/dist/utils/auto-install.d.ts.map +1 -1
  100. package/dist/utils/auto-install.js +16 -82
  101. package/dist/utils/auto-install.js.map +1 -1
  102. package/dist/utils/esm-helpers.d.ts +50 -0
  103. package/dist/utils/esm-helpers.d.ts.map +1 -0
  104. package/dist/utils/esm-helpers.js +57 -0
  105. package/dist/utils/esm-helpers.js.map +1 -0
  106. package/package.json +16 -7
  107. package/src/adapters/README.md +1 -2
  108. package/src/adapters/adapter-base.ts +6 -3
  109. package/src/adapters/adapter-loader.ts +261 -0
  110. package/src/adapters/agents-md-generator.ts +162 -0
  111. package/src/adapters/claude/README.md +6 -14
  112. package/src/adapters/claude/adapter.ts +4 -4
  113. package/src/adapters/claude-md-generator.ts +311 -0
  114. package/src/adapters/codex/README.md +105 -0
  115. package/src/adapters/codex/adapter.ts +333 -0
  116. package/src/adapters/copilot/adapter.ts +36 -65
  117. package/src/adapters/cursor/README.md +0 -2
  118. package/src/adapters/cursor/adapter.ts +46 -92
  119. package/src/adapters/doc-generator.ts +331 -0
  120. package/src/adapters/gemini/README.md +97 -0
  121. package/src/adapters/gemini/adapter.ts +298 -0
  122. package/src/adapters/generic/adapter.ts +61 -57
  123. package/src/adapters/registry.yaml +86 -25
  124. package/src/agents/devops/AGENT.md +16 -18
  125. package/src/agents/docs-writer/AGENT.md +2 -2
  126. package/src/agents/pm/AGENT.md +1 -50
  127. package/src/commands/README.md +134 -111
  128. package/src/commands/{build.md → specweave.do.md} +141 -69
  129. package/src/commands/{done.md → specweave.done.md} +3 -3
  130. package/src/commands/{inc.md → specweave.inc.md} +4 -4
  131. package/src/commands/{increment.md → specweave.increment.md} +143 -76
  132. package/src/commands/specweave.md +430 -0
  133. package/src/commands/specweave.next.md +495 -0
  134. package/src/commands/{progress.md → specweave.progress.md} +12 -12
  135. package/src/commands/specweave.sync-docs.md +665 -0
  136. package/src/commands/specweave.sync-github.md +269 -0
  137. package/src/commands/specweave.sync-jira.md +197 -0
  138. package/src/commands/{validate.md → specweave.validate.md} +4 -4
  139. package/src/hooks/README.md +19 -29
  140. package/src/hooks/post-task-completion.sh +25 -30
  141. package/src/skills/ado-sync/README.md +1 -36
  142. package/src/skills/bmad-method-expert/SKILL.md +1 -3
  143. package/src/skills/brownfield-analyzer/SKILL.md +429 -23
  144. package/src/skills/brownfield-onboarder/SKILL.md +221 -8
  145. package/src/skills/context-loader/SKILL.md +239 -617
  146. package/src/skills/context-optimizer/SKILL.md +0 -30
  147. package/src/skills/github-sync/SKILL.md +1 -19
  148. package/src/skills/increment-planner/SKILL.md +64 -18
  149. package/src/skills/increment-quality-judge/SKILL.md +1 -36
  150. package/src/skills/jira-sync/README.md +1 -38
  151. package/src/skills/role-orchestrator/README.md +1 -22
  152. package/src/skills/role-orchestrator/SKILL.md +1 -59
  153. package/src/skills/skill-router/SKILL.md +0 -18
  154. package/src/skills/spec-kit-expert/SKILL.md +1 -3
  155. package/src/skills/specweave-detector/SKILL.md +225 -275
  156. package/src/skills/task-builder/README.md +1 -7
  157. package/src/templates/AGENTS.md.template +334 -0
  158. package/src/templates/CLAUDE.md.template +131 -298
  159. package/src/templates/README.md.template +115 -23
  160. package/src/templates/environments/minimal/README.md +0 -1
  161. package/INSTALL.md +0 -848
  162. package/SPECWEAVE.md +0 -743
  163. package/src/adapters/copilot/.github/copilot/instructions.md +0 -376
  164. package/src/adapters/cursor/.cursorrules +0 -325
  165. package/src/adapters/generic/SPECWEAVE-MANUAL.md +0 -676
  166. package/src/commands/create-project.md +0 -528
  167. package/src/commands/generate-docs.md +0 -623
  168. package/src/commands/review-docs.md +0 -331
  169. package/src/commands/sync-github.md +0 -115
  170. package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
  171. package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
  172. package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
  173. package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
  174. package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
  175. package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
  176. package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
  177. package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
  178. package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
  179. package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
  180. package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
  181. package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
  182. package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
  183. package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
  184. package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
  185. package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
  186. package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
  187. package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
  188. package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
  189. package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
  190. package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
  191. package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
  192. package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
  193. package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
  194. package/src/skills/cost-optimizer/test-results/README.md +0 -46
  195. package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
  196. package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
  197. package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
  198. package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
  199. package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
  200. package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
  201. package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
  202. package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
  203. package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
  204. package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
  205. package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
  206. package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
  207. package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
  208. package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
  209. package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
  210. package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
  211. package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
  212. package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
  213. package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
  214. package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
  215. package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
  216. package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
  217. package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
  218. package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
  219. package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
  220. package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
  221. package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
  222. package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
  223. package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
  224. package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
  225. package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
  226. package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
  227. package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
  228. package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
  229. package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
  230. package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
  231. package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
  232. package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
  233. package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
  234. package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
  235. package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
  236. package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
  237. package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
  238. package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
  239. package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
  240. package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
  241. package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
  242. package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
  243. package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
  244. package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
  245. package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
  246. package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
  247. package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
  248. package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
  249. package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
  250. package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
  251. package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
  252. package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
  253. package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
  254. package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
  255. package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
  256. package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
  257. package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
  258. package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
  259. package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
  260. package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
  261. package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
  262. package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
  263. package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
  264. package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
  265. package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
  266. package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
  267. package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
  268. package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
  269. package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
  270. package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
  271. package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
  272. package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
  273. package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
  274. package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
  275. package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
  276. package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
  277. package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
  278. package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
  279. package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
  280. package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
  281. package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
  282. package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
  283. package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
  284. package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
  285. package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
  286. package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
  287. package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
  288. package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
  289. package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
  290. package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
  291. package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
  292. package/src/templates/config.yaml +0 -351
  293. /package/src/commands/{list-increments.md → specweave.list-increments.md} +0 -0
@@ -1,331 +0,0 @@
1
- ---
2
- name: review-docs
3
- description: Review strategic documentation before implementation (PM analysis, architecture, ADRs, infrastructure, security, testing)
4
- ---
5
-
6
- # Review Strategic Documentation
7
-
8
- You are presenting strategic documentation for user review before implementation begins.
9
-
10
- ## Steps:
11
-
12
- 1. **Detect current increment**:
13
- - Look for most recent or in-progress increment in `.specweave/increments/`
14
- - Or ask: "Which increment would you like to review? (001, 002, 003, etc.)"
15
-
16
- 2. **Read all strategic documentation**:
17
- - spec.md (user stories, requirements)
18
- - pm-analysis.md (if exists)
19
- - architecture.md, ADRs in `.specweave/docs/architecture/`, `.specweave/docs/decisions/`
20
- - infrastructure.md (if exists)
21
- - security.md (if exists)
22
- - test-strategy.md (if exists)
23
-
24
- 3. **Present comprehensive summary**:
25
-
26
- ## Review Format:
27
-
28
- ```
29
- ═══════════════════════════════════════════════════════
30
- 📋 Strategic Documentation Review
31
- ═══════════════════════════════════════════════════════
32
-
33
- Increment: 003-event-booking-saas
34
- Title: Event Booking SaaS Platform
35
- Priority: P1
36
- Status: Planned
37
-
38
- ───────────────────────────────────────────────────────
39
- ✅ PRODUCT STRATEGY (pm-analysis.md)
40
- ───────────────────────────────────────────────────────
41
-
42
- User Personas:
43
- 1. Barber Shop Owner (primary)
44
- - Needs: Easy booking management, reduce no-shows
45
- - Pain points: Manual scheduling, phone tag
46
-
47
- 2. Customer (secondary)
48
- - Needs: Quick booking, reminders
49
- - Pain points: Calling during business hours
50
-
51
- Business Model:
52
- - Revenue: Subscription ($29/month per business)
53
- - Alternative: 3% commission per booking
54
- - Target: 100 businesses in Year 1 ($34k ARR)
55
-
56
- Feature Prioritization:
57
- P1 (MVP):
58
- - Booking calendar
59
- - SMS/Email notifications
60
- - Payment processing
61
-
62
- P2 (Post-launch):
63
- - Recurring bookings
64
- - Multiple staff members
65
- - Analytics dashboard
66
-
67
- Success Metrics:
68
- - Bookings per business: 50+/month
69
- - No-show reduction: 30%
70
- - Customer satisfaction: 4.5+/5
71
-
72
- ───────────────────────────────────────────────────────
73
- ✅ SYSTEM ARCHITECTURE (architecture.md)
74
- ───────────────────────────────────────────────────────
75
-
76
- **IMPORTANT**: Architecture adapts to YOUR detected tech stack!
77
-
78
- Tech Stack (detected from .specweave/config.yaml or project files):
79
- Frontend: {detected-frontend} (e.g., NextJS, React, Vue, Angular, Svelte)
80
- Backend: {detected-backend} (e.g., Django, FastAPI, Express, Spring Boot, Gin)
81
- Database: {specified-database} (e.g., PostgreSQL, MySQL, MongoDB, SQLite)
82
- ORM: {detected-orm} (e.g., Prisma, Django ORM, SQLAlchemy, Hibernate, GORM)
83
- UI: {specified-ui} (e.g., Tailwind, Material UI, Bootstrap, Chakra)
84
- Auth: {specified-auth} (e.g., NextAuth, Django Auth, Passport, JWT, Auth0)
85
- Payments: {specified-payments} (e.g., Stripe, PayPal, Square)
86
-
87
- System Design:
88
- [Mermaid diagram showing architecture using YOUR framework]
89
-
90
- Example for TypeScript/NextJS:
91
- User → NextJS (SSR) → API Routes → Prisma → PostgreSQL
92
-
93
- Example for Python/Django:
94
- User → Django (Templates) → Views → Django ORM → PostgreSQL
95
-
96
- Example for Go/Gin:
97
- User → Gin API → Handlers → GORM → PostgreSQL
98
-
99
- (Architecture diagram adapts to YOUR detected stack)
100
-
101
- Data Models:
102
- - User (auth, profile)
103
- - Business (shop details)
104
- - Service (haircut, massage, etc.)
105
- - Booking (appointment)
106
- - Payment (transaction)
107
-
108
- API Design:
109
- - POST /api/bookings/create
110
- - GET /api/bookings/:id
111
- - PUT /api/bookings/:id/cancel
112
- - GET /api/availability
113
-
114
- Scalability:
115
- - Handles 10,000 users
116
- - 1,000 concurrent bookings/day
117
- - Redis caching for availability queries
118
- - Database indexing on booking_date, business_id
119
-
120
- ───────────────────────────────────────────────────────
121
- ✅ ARCHITECTURE DECISIONS (ADRs)
122
- ───────────────────────────────────────────────────────
123
-
124
- **ADRs are framework-specific and adapt to YOUR project**
125
-
126
- Example ADRs for TypeScript/NextJS project:
127
- ADR 001: NextJS over separate React + API
128
- - Reason: Simplified deployment, SSR benefits
129
- - Trade-off: Less separation of concerns
130
-
131
- Example ADRs for Python/Django project:
132
- ADR 001: Django monolith over microservices
133
- - Reason: Faster development, easier deployment for MVP
134
- - Trade-off: Harder to scale individual components
135
-
136
- Example ADRs for Go/Gin project:
137
- ADR 001: Gin over Echo
138
- - Reason: Better performance, larger community
139
- - Trade-off: Less built-in middleware
140
-
141
- Platform Decision (adapts to user preference):
142
- ADR 00X: {Platform} over {Alternative}
143
- - Reason: Cost, performance, or developer familiarity
144
- - Examples: Hetzner ($12/mo), Vercel ($20/mo), AWS ($25/mo), self-hosted
145
-
146
- Database Decision (adapts to use case):
147
- ADR 00X: {Database} over {Alternative}
148
- - Reason: ACID compliance, scaling needs, or data structure
149
- - Examples: PostgreSQL (relational), MongoDB (document), Redis (cache)
150
-
151
- ───────────────────────────────────────────────────────
152
- ✅ INFRASTRUCTURE (infrastructure.md)
153
- ───────────────────────────────────────────────────────
154
-
155
- **Infrastructure adapts to chosen platform**
156
-
157
- Platform: {detected-platform} (e.g., Hetzner, AWS, Vercel, self-hosted)
158
-
159
- Example for Hetzner Cloud:
160
- Resources:
161
- - CX21 instance (2 vCPU, 4GB RAM): $6.90/month
162
- - Managed Postgres (2GB): $5.00/month
163
- - Total: ~$12/month
164
-
165
- Example for AWS:
166
- Resources:
167
- - t3.small EC2 (2 vCPU, 2GB RAM): $15/month
168
- - RDS PostgreSQL (db.t3.micro): $12/month
169
- - Total: ~$27/month
170
-
171
- Example for Vercel:
172
- Resources:
173
- - Hobby tier (for small projects): $20/month
174
- - Pro tier (for production): $20/month
175
- - Database (Neon/PlanetScale): $0-10/month
176
-
177
- Deployment:
178
- - Docker containers
179
- - GitHub Actions CI/CD
180
- - Blue-green deployment
181
- - Automated backups (daily)
182
-
183
- Monitoring:
184
- - Uptime Kuma (self-hosted)
185
- - Error tracking: Sentry (free tier)
186
- - Analytics: Plausible (self-hosted)
187
-
188
- DNS & SSL:
189
- - Cloudflare (free tier)
190
- - Let's Encrypt (auto-renewal)
191
-
192
- ───────────────────────────────────────────────────────
193
- ✅ SECURITY (security.md)
194
- ───────────────────────────────────────────────────────
195
-
196
- **Security strategy adapts to YOUR framework**
197
-
198
- Authentication (framework-specific):
199
- - TypeScript/NextJS: NextAuth.js with credentials + OAuth
200
- - Python/Django: Django Auth with Allauth
201
- - Go/Gin: JWT tokens with middleware
202
- - Java/Spring: Spring Security with OAuth2
203
-
204
- Providers: Google, GitHub, Email magic links (framework-agnostic)
205
- Session management: JWT or session cookies (framework-dependent)
206
-
207
- Authorization (framework-specific):
208
- - TypeScript/Prisma: Row-level security in PostgreSQL
209
- - Python/Django: Django permissions + object-level permissions
210
- - Go/GORM: Middleware-based access control
211
- - Java/Spring: Spring Security annotations
212
-
213
- Business logic:
214
- - Businesses can only access their own data
215
- - Customers can only see their own bookings
216
-
217
- Data Protection (framework-agnostic):
218
- - GDPR compliant
219
- - Data encryption at rest (database-level)
220
- - HTTPS only (enforced)
221
- - PII data: minimal collection
222
-
223
- Payment Security (framework-agnostic):
224
- - Stripe (PCI-DSS compliant)
225
- - No card data stored locally
226
- - Webhook signature verification (framework-specific implementation)
227
-
228
- ───────────────────────────────────────────────────────
229
- ✅ TEST STRATEGY (test-strategy.md)
230
- ───────────────────────────────────────────────────────
231
-
232
- Test Pyramid:
233
- E2E Tests (10%): Playwright
234
- - Complete booking flow
235
- - Payment flow
236
- - Cancellation flow
237
-
238
- Integration Tests (30%): Jest + Testing Library
239
- - API endpoints
240
- - Database queries
241
- - External service mocks (Stripe, Vonage)
242
-
243
- Unit Tests (60%): Jest
244
- - Business logic
245
- - Utilities
246
- - Validation functions
247
-
248
- Coverage Target: 80%
249
-
250
- Critical Paths (E2E):
251
- 1. Business signup → Create service → Receive booking
252
- 2. Customer booking → Payment → Confirmation
253
- 3. Cancellation → Refund
254
-
255
- Performance Tests:
256
- - 100 concurrent bookings
257
- - Response time <200ms (p95)
258
- - Database query optimization
259
-
260
- ───────────────────────────────────────────────────────
261
- 💰 COST ESTIMATE
262
- ───────────────────────────────────────────────────────
263
-
264
- Infrastructure: $12/month
265
- External Services:
266
- - Stripe: 2.9% + $0.30 per transaction
267
- - Resend: $20/month (10k emails)
268
- - Vonage: $10/month (~2k SMS)
269
-
270
- Total Monthly: $42/month (at 100 businesses)
271
-
272
- Revenue: $2,900/month (100 businesses * $29)
273
- Profit: $2,858/month (98% margin)
274
-
275
- ───────────────────────────────────────────────────────
276
- ⏱️ IMPLEMENTATION ESTIMATE
277
- ───────────────────────────────────────────────────────
278
-
279
- Total Tasks: 42
280
- Estimated Time: 3-4 weeks (1 developer)
281
-
282
- Phases:
283
- Week 1: Infrastructure + Backend (Tasks T001-T020)
284
- Week 2: Frontend (Tasks T021-T035)
285
- Week 3: Testing (Tasks T036-T040)
286
- Week 4: Deployment + Polish (Tasks T041-T042)
287
-
288
- ═══════════════════════════════════════════════════════
289
-
290
- Do you approve this plan?
291
-
292
- Options:
293
- ✅ "approve" - Start creating tasks.md
294
- ⚠️ "changes needed" - Request specific updates
295
- 📋 "questions" - Ask clarifying questions
296
- 🔄 "regenerate" - Regenerate strategic analysis
297
-
298
- ───────────────────────────────────────────────────────
299
- ```
300
-
301
- ## After User Approval:
302
-
303
- If user approves:
304
- ```
305
- ✅ Strategic documentation approved
306
-
307
- Next steps:
308
- 1. Creating tasks.md with task-builder skill...
309
- 2. Breaking down into 42 implementation tasks...
310
- 3. Estimated completion: [date]
311
-
312
- Once tasks.md is ready:
313
- - Type "start implementation" to begin Task T001
314
- - Or review tasks first with: cat .specweave/increments/0003-event-booking-saas/tasks.md
315
- ```
316
-
317
- If user requests changes:
318
- ```
319
- What would you like to change?
320
- 1. Architecture (tech stack, design)
321
- 2. Infrastructure (platform, cost)
322
- 3. Features (scope, priorities)
323
- 4. Security approach
324
- 5. Other
325
- ```
326
-
327
- Then run appropriate agents again and re-present.
328
-
329
- ---
330
-
331
- **Important**: This command is critical for ensuring user approval before starting costly implementation work.
@@ -1,115 +0,0 @@
1
- ---
2
- name: sync-github
3
- description: Sync SpecWeave increment to GitHub issues with checkable subtasks
4
- ---
5
-
6
- # Sync Increment to GitHub
7
-
8
- You are syncing a SpecWeave increment to GitHub issues.
9
-
10
- ## Steps:
11
-
12
- 1. **Detect current increment** or ask user which to sync:
13
- - Look in `.specweave/increments/` for most recent or in-progress increment
14
- - Or ask: "Which increment would you like to sync? (001, 002, etc.)"
15
-
16
- 2. **Read increment files**:
17
- - spec.md (user stories, acceptance tests)
18
- - tasks.md (implementation tasks)
19
- - Optional: pm-analysis.md, architecture.md, etc.
20
-
21
- 3. **Use github-sync skill** to:
22
- - Create GitHub issue with title: `[Increment ###] [Title]`
23
- - Add overview from spec.md
24
- - Add user stories as checkable subtasks (GitHub task list)
25
- - Add tasks as nested checklist
26
- - Add labels: `specweave`, `priority:P1/P2/P3`, `status:planned/in-progress/completed`
27
- - Add links back to `.specweave/increments/` files
28
-
29
- 4. **Store GitHub issue number**:
30
- - Update increment frontmatter with `github_issue: #123`
31
- - This enables bidirectional sync
32
-
33
- ## GitHub Issue Format:
34
-
35
- ```markdown
36
- # [Increment ###] Title
37
-
38
- ## Overview
39
- [From spec.md]
40
-
41
- ## Business Value
42
- [From spec.md if exists]
43
-
44
- ## User Stories
45
-
46
- - [ ] **US1**: [Title] (P1)
47
- - Acceptance test 1
48
- - Acceptance test 2
49
- - [ ] **US2**: [Title] (P2)
50
- - Acceptance test 1
51
-
52
- ## Implementation Tasks
53
-
54
- ### Phase 1: [Phase Name]
55
- - [ ] **T001**: [Task description]
56
- - [ ] **T002**: [Task description]
57
-
58
- ### Phase 2: [Phase Name]
59
- - [ ] **T010**: [Task description]
60
-
61
- ## Documentation
62
-
63
- - [Specification](.specweave/increments/####-name/spec.md)
64
- - [Tasks](.specweave/increments/####-name/tasks.md)
65
- - [Architecture](.specweave/docs/architecture/) (if applicable)
66
-
67
- ## Dependencies
68
-
69
- - Depends on: #[issue-number] (if applicable)
70
-
71
- ## Success Criteria
72
-
73
- [From spec.md]
74
-
75
- ---
76
- *Created by SpecWeave - [Learn more](https://github.com/specweave/specweave)*
77
- ```
78
-
79
- ## Output to User:
80
-
81
- After syncing, tell user:
82
-
83
- ```
84
- ✅ Synced increment 002-role-based-agents to GitHub
85
-
86
- Issue: #15
87
- URL: https://github.com/[user]/[repo]/issues/15
88
-
89
- 📋 Contains:
90
- - 6 user stories
91
- - 17 tasks
92
- - Links to all documentation
93
-
94
- The issue will automatically update when you mark tasks complete.
95
-
96
- To update manually: /sync-github
97
- ```
98
-
99
- ## Bidirectional Sync
100
-
101
- If the increment already has `github_issue` in frontmatter:
102
- - Update existing issue instead of creating new one
103
- - Sync status changes (completed tasks, etc.)
104
- - Add comment with updates
105
-
106
- ## Error Handling
107
-
108
- - If not in a git repository: "Error: Not a git repository. Initialize git first."
109
- - If no GitHub credentials: "Error: GitHub credentials not configured. Set GITHUB_TOKEN."
110
- - If increment not found: "Error: Increment not found. Use /create-increment first."
111
-
112
- ---
113
-
114
- **Important**: This command requires the `github-sync` skill to be installed.
115
- If not found, suggest: `npx specweave install github-sync`
@@ -1,9 +0,0 @@
1
- ---
2
- name: "Detect ADO Sync Request"
3
- description: "Tests if ado-sync skill activates for Azure DevOps sync"
4
- input:
5
- prompt: "Sync increment 0001 to Azure DevOps"
6
- expected_output:
7
- skill_activated: true
8
- agent_invoked: "specweave-ado-mapper"
9
- ---
@@ -1,8 +0,0 @@
1
- ---
2
- name: "Ask for Area Path"
3
- description: "Tests if ado-sync asks for Area Path when exporting"
4
- input:
5
- prompt: "Export to ADO"
6
- expected_output:
7
- area_path_prompt: true
8
- ---
@@ -1,9 +0,0 @@
1
- ---
2
- name: "Handle ADO API Errors"
3
- description: "Tests error handling for ADO authentication failures"
4
- input:
5
- prompt: "Sync to ADO"
6
- ado_configured: false
7
- expected_output:
8
- error: "ADO PAT not configured"
9
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,48 +0,0 @@
1
- ---
2
- name: "Basic Brownfield Analysis"
3
- description: "Tests if brownfield-analyzer can scan a simple project and classify documents"
4
- input:
5
- prompt: "Analyze the project at /sample/project with docs/ and wiki/ folders"
6
- files:
7
- - path: "/sample/project/docs/requirements.md"
8
- content: |
9
- # Product Requirements
10
- ## User Story
11
- As a user, I want to log in so I can access my account.
12
- ## Acceptance Criteria
13
- - User can log in with email and password
14
- - path: "/sample/project/docs/architecture.md"
15
- content: |
16
- # System Architecture
17
- ## Components
18
- - API Gateway
19
- - Auth Service
20
- - Database
21
- - path: "/sample/project/wiki/runbook.md"
22
- content: |
23
- # API Server Runbook
24
- ## Procedures
25
- ### Restart Service
26
- 1. Stop service
27
- 2. Wait 30 seconds
28
- 3. Start service
29
- expected_output:
30
- type: "analysis_report"
31
- contains:
32
- - "Brownfield Analysis Report"
33
- - "PRD candidates: 1"
34
- - "HLD candidates: 1"
35
- - "Runbook candidates: 1"
36
- - "docs/requirements.md → docs/internal/strategy/prd-"
37
- - "docs/architecture.md → docs/internal/architecture/hld-"
38
- - "wiki/runbook.md → docs/internal/operations/runbook-"
39
- validation:
40
- - "Report generated successfully"
41
- - "All 3 documents classified correctly"
42
- - "Migration plan included"
43
- - "Effort estimate provided"
44
- success_criteria:
45
- - "Analysis report contains all sections"
46
- - "Document classifications are correct"
47
- - "Migration plan is actionable"
48
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for brownfield-analyzer"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for brownfield-analyzer"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: "Placeholder Test"
3
- description: "TODO: Add actual test case for this skill"
4
- input:
5
- prompt: "Test prompt"
6
- expected_output:
7
- type: "validation"
8
- validation:
9
- - "Placeholder validation"
10
- success_criteria:
11
- - "Test passes"
12
- ---