specweave 0.1.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 (288) hide show
  1. package/INSTALL.md +848 -0
  2. package/LICENSE +21 -0
  3. package/README.md +675 -0
  4. package/SPECWEAVE.md +665 -0
  5. package/bin/install-agents.sh +57 -0
  6. package/bin/install-all.sh +49 -0
  7. package/bin/install-commands.sh +56 -0
  8. package/bin/install-skills.sh +57 -0
  9. package/bin/specweave.js +81 -0
  10. package/dist/adapters/adapter-base.d.ts +50 -0
  11. package/dist/adapters/adapter-base.d.ts.map +1 -0
  12. package/dist/adapters/adapter-base.js +146 -0
  13. package/dist/adapters/adapter-base.js.map +1 -0
  14. package/dist/adapters/adapter-interface.d.ts +108 -0
  15. package/dist/adapters/adapter-interface.d.ts.map +1 -0
  16. package/dist/adapters/adapter-interface.js +9 -0
  17. package/dist/adapters/adapter-interface.js.map +1 -0
  18. package/dist/adapters/claude/adapter.d.ts +54 -0
  19. package/dist/adapters/claude/adapter.d.ts.map +1 -0
  20. package/dist/adapters/claude/adapter.js +184 -0
  21. package/dist/adapters/claude/adapter.js.map +1 -0
  22. package/dist/adapters/copilot/adapter.d.ts +42 -0
  23. package/dist/adapters/copilot/adapter.d.ts.map +1 -0
  24. package/dist/adapters/copilot/adapter.js +239 -0
  25. package/dist/adapters/copilot/adapter.js.map +1 -0
  26. package/dist/adapters/cursor/adapter.d.ts +42 -0
  27. package/dist/adapters/cursor/adapter.d.ts.map +1 -0
  28. package/dist/adapters/cursor/adapter.js +297 -0
  29. package/dist/adapters/cursor/adapter.js.map +1 -0
  30. package/dist/adapters/generic/adapter.d.ts +40 -0
  31. package/dist/adapters/generic/adapter.d.ts.map +1 -0
  32. package/dist/adapters/generic/adapter.js +155 -0
  33. package/dist/adapters/generic/adapter.js.map +1 -0
  34. package/dist/cli/commands/init.d.ts +6 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +247 -0
  37. package/dist/cli/commands/init.js.map +1 -0
  38. package/dist/cli/commands/install.d.ts +7 -0
  39. package/dist/cli/commands/install.d.ts.map +1 -0
  40. package/dist/cli/commands/install.js +160 -0
  41. package/dist/cli/commands/install.js.map +1 -0
  42. package/dist/cli/commands/list.d.ts +6 -0
  43. package/dist/cli/commands/list.d.ts.map +1 -0
  44. package/dist/cli/commands/list.js +154 -0
  45. package/dist/cli/commands/list.js.map +1 -0
  46. package/package.json +90 -0
  47. package/src/adapters/README.md +312 -0
  48. package/src/adapters/adapter-base.ts +146 -0
  49. package/src/adapters/adapter-interface.ts +120 -0
  50. package/src/adapters/claude/README.md +241 -0
  51. package/src/adapters/claude/adapter.ts +157 -0
  52. package/src/adapters/copilot/.github/copilot/instructions.md +376 -0
  53. package/src/adapters/copilot/README.md +200 -0
  54. package/src/adapters/copilot/adapter.ts +210 -0
  55. package/src/adapters/cursor/.cursor/context/docs-context.md +62 -0
  56. package/src/adapters/cursor/.cursor/context/increments-context.md +71 -0
  57. package/src/adapters/cursor/.cursor/context/strategy-context.md +73 -0
  58. package/src/adapters/cursor/.cursor/context/tests-context.md +89 -0
  59. package/src/adapters/cursor/.cursorrules +325 -0
  60. package/src/adapters/cursor/README.md +243 -0
  61. package/src/adapters/cursor/adapter.ts +268 -0
  62. package/src/adapters/generic/README.md +277 -0
  63. package/src/adapters/generic/SPECWEAVE-MANUAL.md +676 -0
  64. package/src/adapters/generic/adapter.ts +159 -0
  65. package/src/adapters/registry.yaml +126 -0
  66. package/src/agents/architect/AGENT.md +416 -0
  67. package/src/agents/devops/AGENT.md +1738 -0
  68. package/src/agents/docs-writer/AGENT.md +239 -0
  69. package/src/agents/performance/AGENT.md +228 -0
  70. package/src/agents/pm/AGENT.md +751 -0
  71. package/src/agents/qa-lead/AGENT.md +150 -0
  72. package/src/agents/security/AGENT.md +179 -0
  73. package/src/agents/sre/AGENT.md +582 -0
  74. package/src/agents/sre/modules/backend-diagnostics.md +481 -0
  75. package/src/agents/sre/modules/database-diagnostics.md +509 -0
  76. package/src/agents/sre/modules/infrastructure.md +561 -0
  77. package/src/agents/sre/modules/monitoring.md +439 -0
  78. package/src/agents/sre/modules/security-incidents.md +421 -0
  79. package/src/agents/sre/modules/ui-diagnostics.md +302 -0
  80. package/src/agents/sre/playbooks/01-high-cpu-usage.md +204 -0
  81. package/src/agents/sre/playbooks/02-database-deadlock.md +241 -0
  82. package/src/agents/sre/playbooks/03-memory-leak.md +252 -0
  83. package/src/agents/sre/playbooks/04-slow-api-response.md +269 -0
  84. package/src/agents/sre/playbooks/05-ddos-attack.md +293 -0
  85. package/src/agents/sre/playbooks/06-disk-full.md +314 -0
  86. package/src/agents/sre/playbooks/07-service-down.md +333 -0
  87. package/src/agents/sre/playbooks/08-data-corruption.md +337 -0
  88. package/src/agents/sre/playbooks/09-cascade-failure.md +430 -0
  89. package/src/agents/sre/playbooks/10-rate-limit-exceeded.md +464 -0
  90. package/src/agents/sre/scripts/health-check.sh +230 -0
  91. package/src/agents/sre/scripts/log-analyzer.py +213 -0
  92. package/src/agents/sre/scripts/metrics-collector.sh +294 -0
  93. package/src/agents/sre/scripts/trace-analyzer.js +257 -0
  94. package/src/agents/sre/templates/incident-report.md +249 -0
  95. package/src/agents/sre/templates/mitigation-plan.md +375 -0
  96. package/src/agents/sre/templates/post-mortem.md +418 -0
  97. package/src/agents/sre/templates/runbook-template.md +412 -0
  98. package/src/agents/tech-lead/AGENT.md +263 -0
  99. package/src/commands/add-tasks.md +176 -0
  100. package/src/commands/close-increment.md +347 -0
  101. package/src/commands/create-increment.md +223 -0
  102. package/src/commands/create-project.md +528 -0
  103. package/src/commands/generate-docs.md +623 -0
  104. package/src/commands/list-increments.md +180 -0
  105. package/src/commands/review-docs.md +331 -0
  106. package/src/commands/start-increment.md +139 -0
  107. package/src/commands/sync-github.md +115 -0
  108. package/src/commands/validate-increment.md +800 -0
  109. package/src/hooks/README.md +252 -0
  110. package/src/hooks/docs-changed.sh +59 -0
  111. package/src/hooks/human-input-required.sh +55 -0
  112. package/src/hooks/post-task-completion.sh +57 -0
  113. package/src/hooks/pre-implementation.sh +47 -0
  114. package/src/skills/ado-sync/README.md +449 -0
  115. package/src/skills/ado-sync/SKILL.md +245 -0
  116. package/src/skills/ado-sync/test-cases/test-1.yaml +9 -0
  117. package/src/skills/ado-sync/test-cases/test-2.yaml +8 -0
  118. package/src/skills/ado-sync/test-cases/test-3.yaml +9 -0
  119. package/src/skills/bmad-method-expert/SKILL.md +628 -0
  120. package/src/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
  121. package/src/skills/bmad-method-expert/scripts/check-setup.js +208 -0
  122. package/src/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
  123. package/src/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
  124. package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +12 -0
  125. package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +12 -0
  126. package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +12 -0
  127. package/src/skills/brownfield-analyzer/SKILL.md +523 -0
  128. package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +48 -0
  129. package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +12 -0
  130. package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +12 -0
  131. package/src/skills/brownfield-onboarder/SKILL.md +625 -0
  132. package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +12 -0
  133. package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +12 -0
  134. package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +12 -0
  135. package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +12 -0
  136. package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +12 -0
  137. package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +12 -0
  138. package/src/skills/context-loader/SKILL.md +734 -0
  139. package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +39 -0
  140. package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +44 -0
  141. package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +45 -0
  142. package/src/skills/context-optimizer/SKILL.md +618 -0
  143. package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +97 -0
  144. package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +109 -0
  145. package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +98 -0
  146. package/src/skills/cost-optimizer/SKILL.md +190 -0
  147. package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +75 -0
  148. package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +52 -0
  149. package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +63 -0
  150. package/src/skills/cost-optimizer/test-results/README.md +46 -0
  151. package/src/skills/design-system-architect/SKILL.md +107 -0
  152. package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +23 -0
  153. package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +24 -0
  154. package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +23 -0
  155. package/src/skills/diagrams-architect/SKILL.md +763 -0
  156. package/src/skills/diagrams-generator/SKILL.md +25 -0
  157. package/src/skills/diagrams-generator/test-cases/test-1.yaml +9 -0
  158. package/src/skills/diagrams-generator/test-cases/test-2.yaml +9 -0
  159. package/src/skills/diagrams-generator/test-cases/test-3.yaml +8 -0
  160. package/src/skills/docs-updater/README.md +48 -0
  161. package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +12 -0
  162. package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +12 -0
  163. package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +12 -0
  164. package/src/skills/dotnet-backend/SKILL.md +250 -0
  165. package/src/skills/e2e-playwright/README.md +506 -0
  166. package/src/skills/e2e-playwright/SKILL.md +457 -0
  167. package/src/skills/e2e-playwright/execute.js +373 -0
  168. package/src/skills/e2e-playwright/lib/utils.js +514 -0
  169. package/src/skills/e2e-playwright/package.json +33 -0
  170. package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +54 -0
  171. package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +64 -0
  172. package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +74 -0
  173. package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +98 -0
  174. package/src/skills/figma-designer/SKILL.md +149 -0
  175. package/src/skills/figma-implementer/SKILL.md +148 -0
  176. package/src/skills/figma-mcp-connector/SKILL.md +136 -0
  177. package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +22 -0
  178. package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +21 -0
  179. package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +18 -0
  180. package/src/skills/figma-to-code/SKILL.md +128 -0
  181. package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +29 -0
  182. package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +27 -0
  183. package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +28 -0
  184. package/src/skills/frontend/SKILL.md +177 -0
  185. package/src/skills/github-sync/SKILL.md +252 -0
  186. package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +12 -0
  187. package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +12 -0
  188. package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +12 -0
  189. package/src/skills/hetzner-provisioner/README.md +308 -0
  190. package/src/skills/hetzner-provisioner/SKILL.md +251 -0
  191. package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +71 -0
  192. package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +85 -0
  193. package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +126 -0
  194. package/src/skills/hetzner-provisioner/test-results/README.md +259 -0
  195. package/src/skills/increment-planner/SKILL.md +889 -0
  196. package/src/skills/increment-planner/scripts/feature-utils.js +250 -0
  197. package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +27 -0
  198. package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +30 -0
  199. package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +24 -0
  200. package/src/skills/increment-quality-judge/SKILL.md +566 -0
  201. package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +95 -0
  202. package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +108 -0
  203. package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +87 -0
  204. package/src/skills/jira-sync/README.md +328 -0
  205. package/src/skills/jira-sync/SKILL.md +209 -0
  206. package/src/skills/jira-sync/test-cases/test-1.yaml +9 -0
  207. package/src/skills/jira-sync/test-cases/test-2.yaml +9 -0
  208. package/src/skills/jira-sync/test-cases/test-3.yaml +10 -0
  209. package/src/skills/nextjs/SKILL.md +176 -0
  210. package/src/skills/nodejs-backend/SKILL.md +181 -0
  211. package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +12 -0
  212. package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +12 -0
  213. package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +12 -0
  214. package/src/skills/python-backend/SKILL.md +226 -0
  215. package/src/skills/role-orchestrator/README.md +197 -0
  216. package/src/skills/role-orchestrator/SKILL.md +1184 -0
  217. package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +98 -0
  218. package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +73 -0
  219. package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +121 -0
  220. package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +145 -0
  221. package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +149 -0
  222. package/src/skills/skill-creator/LICENSE.txt +202 -0
  223. package/src/skills/skill-creator/SKILL.md +209 -0
  224. package/src/skills/skill-creator/scripts/init_skill.py +303 -0
  225. package/src/skills/skill-creator/scripts/package_skill.py +110 -0
  226. package/src/skills/skill-creator/scripts/quick_validate.py +65 -0
  227. package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +12 -0
  228. package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +12 -0
  229. package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +12 -0
  230. package/src/skills/skill-router/SKILL.md +497 -0
  231. package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +33 -0
  232. package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +42 -0
  233. package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +50 -0
  234. package/src/skills/spec-driven-brainstorming/README.md +264 -0
  235. package/src/skills/spec-driven-brainstorming/SKILL.md +439 -0
  236. package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +148 -0
  237. package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +190 -0
  238. package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +233 -0
  239. package/src/skills/spec-driven-debugging/README.md +479 -0
  240. package/src/skills/spec-driven-debugging/SKILL.md +652 -0
  241. package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +212 -0
  242. package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +461 -0
  243. package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +366 -0
  244. package/src/skills/spec-kit-expert/SKILL.md +1012 -0
  245. package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +12 -0
  246. package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +12 -0
  247. package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +12 -0
  248. package/src/skills/specweave-ado-mapper/SKILL.md +501 -0
  249. package/src/skills/specweave-detector/SKILL.md +420 -0
  250. package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +37 -0
  251. package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +37 -0
  252. package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +34 -0
  253. package/src/skills/specweave-jira-mapper/SKILL.md +500 -0
  254. package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +12 -0
  255. package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +12 -0
  256. package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +12 -0
  257. package/src/skills/task-builder/README.md +90 -0
  258. package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +12 -0
  259. package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +12 -0
  260. package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +12 -0
  261. package/src/templates/.env.example +144 -0
  262. package/src/templates/.gitignore.template +81 -0
  263. package/src/templates/CLAUDE.md.template +383 -0
  264. package/src/templates/README.md.template +240 -0
  265. package/src/templates/config.yaml +333 -0
  266. package/src/templates/docs/README.md +124 -0
  267. package/src/templates/docs/adr-template.md +118 -0
  268. package/src/templates/docs/hld-template.md +220 -0
  269. package/src/templates/docs/lld-template.md +580 -0
  270. package/src/templates/docs/prd-template.md +132 -0
  271. package/src/templates/docs/rfc-template.md +229 -0
  272. package/src/templates/docs/runbook-template.md +298 -0
  273. package/src/templates/environments/minimal/.env.production +16 -0
  274. package/src/templates/environments/minimal/README.md +54 -0
  275. package/src/templates/environments/minimal/deploy-production.yml +52 -0
  276. package/src/templates/environments/progressive/.env.qa +28 -0
  277. package/src/templates/environments/progressive/README.md +129 -0
  278. package/src/templates/environments/progressive/deploy-production.yml +93 -0
  279. package/src/templates/environments/progressive/deploy-qa.yml +62 -0
  280. package/src/templates/environments/progressive/deploy-staging.yml +67 -0
  281. package/src/templates/environments/standard/.env.development +20 -0
  282. package/src/templates/environments/standard/.env.production +30 -0
  283. package/src/templates/environments/standard/.env.staging +23 -0
  284. package/src/templates/environments/standard/README.md +97 -0
  285. package/src/templates/environments/standard/deploy-production.yml +68 -0
  286. package/src/templates/environments/standard/deploy-staging.yml +61 -0
  287. package/src/templates/environments/standard/docker-compose.yml +43 -0
  288. package/src/templates/increment-metadata-template.yaml +138 -0
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: "Complex Problem with Ultrathink Mode"
3
+ description: "Handle a complex distributed systems problem using ultrathink for deep reasoning"
4
+ skill: spec-driven-brainstorming
5
+ priority: P2
6
+ estimated_time: "20-30 minutes"
7
+
8
+ input:
9
+ prompt: "I need a distributed task queue with exactly-once delivery guarantees for processing financial transactions"
10
+ context:
11
+ existing_project: false
12
+ complexity: "High"
13
+ domain: "Financial systems"
14
+ requirements:
15
+ - "Exactly-once delivery semantics"
16
+ - "High throughput (10K+ tasks/sec)"
17
+ - "Audit trail for compliance"
18
+ - "Fault tolerance and disaster recovery"
19
+
20
+ expected_output:
21
+ phase_1_understanding:
22
+ questions_asked:
23
+ - "What types of financial transactions?" # payments, transfers, reconciliation
24
+ - "What's your scale and peak load?" # concurrent tasks, daily volume
25
+ - "Compliance requirements?" # SOC2, PCI-DSS, audit logs
26
+ - "Acceptable latency?" # real-time vs batch processing
27
+ - "Budget constraints?" # cloud costs, team size
28
+
29
+ gathered_requirements:
30
+ purpose: "Process payment transactions with guaranteed exactly-once delivery"
31
+ constraints:
32
+ - "Must maintain audit trail for 7 years"
33
+ - "Compliance: PCI-DSS, SOC2"
34
+ - "Peak load: 10K tasks/sec"
35
+ - "Latency: <500ms p99"
36
+ success_criteria:
37
+ - "Zero duplicate transactions"
38
+ - "99.99% uptime SLA"
39
+ - "Complete audit trail"
40
+
41
+ phase_2_tech_stack:
42
+ detected_stack: null # greenfield
43
+
44
+ stack_question_asked: true
45
+
46
+ options_presented:
47
+ - "Go + PostgreSQL" # strong concurrency, SQL for audit
48
+ - "Node.js + Redis + PostgreSQL" # JavaScript ecosystem, Redis for queue
49
+ - "Python + Celery + RabbitMQ + PostgreSQL" # mature queue system
50
+
51
+ user_selection: "Go + PostgreSQL"
52
+
53
+ phase_3_exploration:
54
+ ultrathink_suggested: true
55
+ ultrathink_reason: "Complex distributed systems problem with many trade-offs around consistency, fault tolerance, and exactly-once semantics"
56
+
57
+ thinking_tokens_used: 31999 # full ultrathink budget
58
+
59
+ approaches_proposed: 3
60
+
61
+ approach_1:
62
+ name: "Event Sourcing with Outbox Pattern"
63
+ architecture: "Write events to DB, background processor publishes to queue"
64
+ trade_offs:
65
+ pros:
66
+ - "Exactly-once delivery via DB transactions"
67
+ - "Complete audit trail built-in"
68
+ - "Easy to replay events"
69
+ cons:
70
+ - "Higher latency (dual writes)"
71
+ - "Complex event schema evolution"
72
+ consistency: "Strong (ACID transactions)"
73
+ complexity: "High"
74
+ cost: "Medium (DB I/O intensive)"
75
+
76
+ approach_2:
77
+ name: "Idempotent Task Queue with Distributed Locks"
78
+ architecture: "Redis queue + PostgreSQL state tracking + distributed locks"
79
+ trade_offs:
80
+ pros:
81
+ - "Lower latency (in-memory queue)"
82
+ - "Horizontal scaling easier"
83
+ cons:
84
+ - "Requires careful lock management"
85
+ - "Risk of phantom duplicate if lock expires"
86
+ consistency: "Eventual (with idempotency keys)"
87
+ complexity: "Very High"
88
+ cost: "High (Redis cluster + PostgreSQL)"
89
+
90
+ approach_3:
91
+ name: "Transactional Outbox with Change Data Capture (CDC)"
92
+ architecture: "Write to DB, CDC streams changes to queue"
93
+ trade_offs:
94
+ pros:
95
+ - "Best of both worlds: ACID + async processing"
96
+ - "At-least-once delivery, idempotent consumers for exactly-once effect"
97
+ - "Built-in audit trail"
98
+ cons:
99
+ - "Requires CDC infrastructure (Debezium, Kafka Connect)"
100
+ - "Operational complexity"
101
+ consistency: "Strong write, eventual propagation"
102
+ complexity: "High (infrastructure)"
103
+ cost: "High (Kafka/CDC infrastructure)"
104
+
105
+ user_selection: "Approach 1" # Event Sourcing with Outbox
106
+
107
+ edge_cases_analyzed:
108
+ - "Database connection failure during transaction"
109
+ - "Task processor crashes mid-processing"
110
+ - "Network partition between queue and DB"
111
+ - "Clock skew in distributed environment"
112
+ - "Idempotency key collision"
113
+
114
+ phase_4_design_validation:
115
+ sections_presented:
116
+ - title: "Architecture Overview (Ultrathink Analysis)"
117
+ content: "Event sourcing + outbox pattern ensures exactly-once via DB transactions. Analyzed 5 edge cases for consistency guarantees."
118
+ validated: true
119
+
120
+ - title: "Components (with Fault Tolerance)"
121
+ content: "Event store (PostgreSQL), outbox processor (Go workers), task queue (Redis Streams), dead letter queue for failures"
122
+ validated: true
123
+
124
+ - title: "Data Flow (Transactional Guarantees)"
125
+ content: "Transaction starts → Write event to event_store → Write to outbox → Commit (ACID) → Background worker polls outbox → Publishes to queue → Marks processed"
126
+ validated: true
127
+
128
+ - title: "Exactly-Once Semantics (Implementation)"
129
+ content: "Idempotency keys (UUID v4), transaction boundaries, at-least-once delivery + idempotent consumers = exactly-once effect"
130
+ validated: true
131
+
132
+ - title: "Error Handling & Recovery"
133
+ content: "Retry with exponential backoff, dead letter queue after 3 retries, circuit breaker, health checks"
134
+ validated: true
135
+
136
+ - title: "Audit Trail & Compliance"
137
+ content: "Event sourcing provides complete history, immutable event log, 7-year retention in cold storage (S3 Glacier)"
138
+ validated: true
139
+
140
+ - title: "Testing Strategy (Chaos Engineering)"
141
+ content: "Unit tests (logic), integration tests (DB transactions), E2E tests (full flow), chaos tests (network failures, DB crashes)"
142
+ validated: true
143
+
144
+ - title: "Performance & Scale Analysis"
145
+ content: "Throughput: 10K tasks/sec achievable with 5 workers, latency: p99 <500ms, bottleneck: DB writes (optimize with batching)"
146
+ validated: true
147
+
148
+ design_complete: true
149
+ complexity_justified: true
150
+
151
+ phase_5_specweave_handoff:
152
+ handoff_type: "Full Increment Creation with Architecture Focus"
153
+ skill_invoked: "increment-planner"
154
+
155
+ expected_increment:
156
+ directory: ".specweave/increments/0001-distributed-task-queue/"
157
+ files:
158
+ - "spec.md" # references strategy/distributed-systems/
159
+ - "plan.md" # references architecture/distributed-systems/
160
+ - "tasks.md"
161
+ - "tests.md" # includes chaos engineering tests
162
+ - "context-manifest.yaml"
163
+
164
+ agents_invoked:
165
+ - "pm" # Financial transaction requirements
166
+ - "architect" # Distributed systems design + ADRs
167
+ - "security" # PCI-DSS, audit compliance
168
+ - "qa-lead" # Chaos engineering test strategy
169
+
170
+ validation:
171
+ - "Phase 1: Domain-specific questions asked (financial, compliance)"
172
+ - "Phase 2: Tech stack selection with 3 options"
173
+ - "Phase 3: Ultrathink mode suggested and used"
174
+ - "Phase 3: Edge cases explicitly analyzed"
175
+ - "Phase 3: Consistency models compared (strong vs eventual)"
176
+ - "Phase 4: Design sections include fault tolerance and recovery"
177
+ - "Phase 4: Performance analysis with specific numbers"
178
+ - "Phase 5: Security agent invoked due to compliance needs"
179
+ - "Exactly-once semantics clearly explained"
180
+
181
+ expected_errors: []
182
+
183
+ success_criteria:
184
+ - "Ultrathink mode activated for complex reasoning"
185
+ - "Edge cases thoroughly analyzed"
186
+ - "Consistency guarantees proven"
187
+ - "Compliance requirements addressed"
188
+ - "Performance targets validated"
189
+ - "Ready for production-grade implementation"
190
+ ---
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: "Unclear Requirements with Socratic Questioning"
3
+ description: "Handle vague user input through Socratic questioning to clarify requirements before design"
4
+ skill: spec-driven-brainstorming
5
+ priority: P1
6
+ estimated_time: "15-20 minutes"
7
+
8
+ input:
9
+ prompt: "I want to build something with crypto prices"
10
+ context:
11
+ existing_project: true
12
+ tech_stack: "Unknown (needs detection)"
13
+ requirements_clarity: "Very Low"
14
+ user_goal_clarity: "Unclear"
15
+
16
+ expected_output:
17
+ phase_1_understanding:
18
+ announcement: "I'm using spec-driven brainstorming to refine your idea. Let me understand what you're trying to achieve."
19
+
20
+ socratic_questioning_sequence:
21
+ question_1:
22
+ question: "What's your primary goal with crypto prices?"
23
+ tool_used: "AskUserQuestion"
24
+ options:
25
+ - "Real-time price tracking dashboard"
26
+ - "Price alerts and notifications"
27
+ - "Historical data analysis"
28
+ - "Automated trading bot"
29
+ user_answer: "Real-time price tracking dashboard"
30
+
31
+ question_2:
32
+ question: "Who will use this dashboard?"
33
+ tool_used: "Open-ended" # allowing freeform answer
34
+ user_answer: "Just me and maybe a few friends"
35
+
36
+ question_3:
37
+ question: "How many cryptocurrencies do you want to track?"
38
+ tool_used: "AskUserQuestion"
39
+ options:
40
+ - "Top 10 only (BTC, ETH, etc.)"
41
+ - "Top 100 cryptocurrencies"
42
+ - "Custom watchlist (user-selected)"
43
+ - "All available (1000+)"
44
+ user_answer: "Custom watchlist"
45
+
46
+ question_4:
47
+ question: "What's your update frequency requirement?"
48
+ tool_used: "AskUserQuestion"
49
+ options:
50
+ - "Real-time (every second, WebSocket)" # expensive
51
+ - "Near real-time (every 10-30 seconds, polling)" # balanced
52
+ - "Periodic (every few minutes, cron job)" # cheap
53
+ user_answer: "Near real-time (every 10-30 seconds)"
54
+
55
+ question_5:
56
+ question: "Any budget or hosting constraints?"
57
+ tool_used: "Open-ended"
58
+ user_answer: "Want to keep it cheap, maybe under $20/month"
59
+
60
+ question_6:
61
+ question: "Do you need historical price charts or just current prices?"
62
+ tool_used: "AskUserQuestion"
63
+ options:
64
+ - "Current prices only (simpler)"
65
+ - "Basic charts (1 day, 1 week, 1 month)" # medium complexity
66
+ - "Advanced charts with indicators (candlesticks, RSI, MACD)" # high complexity
67
+ user_answer: "Basic charts"
68
+
69
+ gathered_requirements:
70
+ purpose: "Personal crypto price dashboard with basic charts"
71
+ users: "Personal use (1-5 users)"
72
+ functional_requirements:
73
+ - "Track custom watchlist of cryptocurrencies"
74
+ - "Display current prices with 10-30 second updates"
75
+ - "Show basic charts (1 day, 1 week, 1 month)"
76
+ constraints:
77
+ - "Budget: $20/month or less"
78
+ - "Simple deployment (not enterprise-scale)"
79
+ success_criteria:
80
+ - "Dashboard loads in <2 seconds"
81
+ - "Prices update every 10-30 seconds"
82
+ - "Charts display historical data"
83
+ - "Add/remove cryptos from watchlist"
84
+
85
+ revisit_count: 1 # user revealed new constraint (budget) → re-clarified
86
+ flexibility_demonstrated: true # went back to refine budget impact
87
+
88
+ phase_2_tech_stack:
89
+ detection_attempt:
90
+ files_searched:
91
+ - "package.json"
92
+ - "requirements.txt"
93
+ - "*.csproj"
94
+ found: "package.json"
95
+
96
+ detected_stack:
97
+ framework: "Next.js 14"
98
+ language: "TypeScript"
99
+ database: null # needs to ask
100
+
101
+ database_question:
102
+ question: "Do you have a database set up, or should we use a lightweight option?"
103
+ tool_used: "AskUserQuestion"
104
+ options:
105
+ - "No database (store watchlist in localStorage)" # simplest, no backend needed
106
+ - "SQLite (lightweight, no hosting cost)" # simple, local file
107
+ - "PostgreSQL (more robust, requires hosting)" # production-ready, $5-10/month
108
+ user_answer: "SQLite"
109
+
110
+ skills_activated:
111
+ - "nextjs"
112
+ - "nodejs-backend"
113
+ - "frontend" # for React components
114
+
115
+ phase_3_exploration:
116
+ approaches_proposed: 3
117
+
118
+ approach_1:
119
+ name: "Server-Side Rendering (SSR) with API Polling"
120
+ architecture: "Next.js SSR fetches prices on each request"
121
+ trade_offs:
122
+ pros:
123
+ - "Simple implementation"
124
+ - "No WebSocket complexity"
125
+ - "Works on any hosting (Vercel free tier)"
126
+ cons:
127
+ - "Not truly real-time (page refresh needed)"
128
+ - "Higher API call volume (one per user request)"
129
+ cost: "$0 (Vercel free tier)"
130
+ complexity: "Low"
131
+
132
+ approach_2:
133
+ name: "Client-Side Polling with SWR"
134
+ architecture: "Next.js static + client polls API every 10 seconds"
135
+ trade_offs:
136
+ pros:
137
+ - "Near real-time without WebSockets"
138
+ - "SWR caching reduces API calls"
139
+ - "Static export possible"
140
+ cons:
141
+ - "More client-side logic"
142
+ - "Battery drain on mobile"
143
+ cost: "$0 (Vercel free tier or static hosting)"
144
+ complexity: "Low"
145
+
146
+ approach_3:
147
+ name: "Server-Sent Events (SSE) with Price Streaming"
148
+ architecture: "Backend streams price updates via SSE to clients"
149
+ trade_offs:
150
+ pros:
151
+ - "True push updates (no polling)"
152
+ - "Lower client battery usage"
153
+ - "More efficient than polling"
154
+ cons:
155
+ - "Requires long-lived server connections"
156
+ - "More complex backend"
157
+ - "Not supported on all hosting (Vercel has limits)"
158
+ cost: "$5-10/month (Railway or DigitalOcean)"
159
+ complexity: "Medium"
160
+
161
+ budget_impact_highlighted: true
162
+ user_selection: "Approach 2" # Client-side polling with SWR (fits budget)
163
+
164
+ phase_4_design_validation:
165
+ sections_presented:
166
+ - title: "Architecture Overview"
167
+ content: "Next.js 14 with App Router, client-side polling using SWR for price updates, SQLite for watchlist storage, CoinGecko API (free tier)"
168
+ validated: true
169
+
170
+ - title: "Components"
171
+ content: "Dashboard page (price grid), chart component (recharts), watchlist manager (add/remove), price API route (/api/prices)"
172
+ validated: true
173
+
174
+ - title: "Data Flow"
175
+ content: "User opens dashboard → SWR fetches /api/prices → Backend calls CoinGecko API → Cache for 10s → Return to client → Recharts renders → SWR auto-refetches every 10s"
176
+ validated: true
177
+
178
+ - title: "Error Handling"
179
+ content: "API rate limit → show cached data + warning, network failure → retry 3x with exponential backoff, invalid crypto symbol → show error state"
180
+ validated: true
181
+
182
+ - title: "Testing Strategy"
183
+ content: "Unit tests (price formatting), integration tests (API routes), E2E tests (Playwright: add crypto, view chart, polling works)"
184
+ validated: true
185
+
186
+ - title: "Performance & Cost"
187
+ content: "CoinGecko free tier: 50 calls/min (sufficient), Vercel free tier: unlimited deployments, estimated cost: $0/month"
188
+ validated: true
189
+
190
+ design_complete: true
191
+ budget_constraint_met: true
192
+
193
+ phase_5_specweave_handoff:
194
+ handoff_type: "Quick Increment (Fast Start)" # personal project, not enterprise
195
+
196
+ reason: "Personal project with clear, simple requirements - full documentation can be added incrementally"
197
+
198
+ expected_increment:
199
+ directory: ".specweave/increments/0001-crypto-dashboard/"
200
+ files:
201
+ - "spec.md" # WHAT & WHY (custom watchlist, near real-time, budget-conscious)
202
+ - "plan.md" # HOW (Next.js, SWR polling, SQLite, CoinGecko API)
203
+ - "tasks.md" # implementation checklist
204
+ - "tests.md" # E2E with Playwright (dashboard loads, prices update, chart renders)
205
+ - "context-manifest.yaml" # minimal context (nextjs, frontend skills)
206
+
207
+ agents_invoked:
208
+ - "pm" # minimal (personal project)
209
+ - "qa-lead" # E2E test strategy
210
+
211
+ validation:
212
+ - "Phase 1: Socratic questioning sequence (at least 5 questions)"
213
+ - "Phase 1: Requirements gathered incrementally through dialogue"
214
+ - "Phase 1: Demonstrated flexibility (revisited earlier question when new constraint revealed)"
215
+ - "Phase 2: Tech stack detected from existing files"
216
+ - "Phase 2: Database option asked separately"
217
+ - "Phase 3: Budget impact explicitly highlighted in approaches"
218
+ - "Phase 3: Cost estimates provided for each approach"
219
+ - "Phase 4: Budget constraint validated in performance section"
220
+ - "Phase 5: Quick increment chosen (appropriate for personal project)"
221
+ - "AskUserQuestion used for structured choices"
222
+ - "Open-ended questions used for context gathering"
223
+ - "ONE question at a time in Phase 1"
224
+
225
+ expected_errors: []
226
+
227
+ success_criteria:
228
+ - "Vague input clarified through questioning"
229
+ - "Requirements extracted from dialogue"
230
+ - "Budget constraint met ($0/month vs $20/month budget)"
231
+ - "Appropriate handoff type chosen (quick vs full)"
232
+ - "Design ready for implementation"
233
+ ---