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,497 @@
1
+ ---
2
+ name: skill-router
3
+ description: Intelligent routing system that parses ambiguous user requests and routes them to appropriate SpecWeave skills with >90% accuracy. Acts as the "traffic controller" for all skill invocations. Activates when user intent is unclear or when multiple skills could handle a request. Keywords: route, clarify, ambiguous, which skill, help me decide.
4
+ ---
5
+
6
+ # Skill Router - Intelligent Request Routing
7
+
8
+ ## Purpose
9
+
10
+ The skill-router is SpecWeave's **intelligent routing system** that:
11
+ 1. Parses ambiguous or complex user requests
12
+ 2. Determines which skill(s) should handle the request
13
+ 3. Routes with >90% accuracy (target from constitution)
14
+ 4. Learns from user feedback to improve routing
15
+ 5. Handles multi-skill orchestration
16
+
17
+ ## When to Activate
18
+
19
+ This skill activates when:
20
+ - User request is ambiguous ("Help me with payments")
21
+ - Multiple skills could handle the request
22
+ - specweave-detector needs clarification
23
+ - User explicitly asks "which skill should I use?"
24
+ - Request parsing confidence is <90%
25
+
26
+ ## Routing Algorithm
27
+
28
+ ### Phase 1: Intent Classification
29
+
30
+ ```typescript
31
+ interface UserIntent {
32
+ primary_action: 'create' | 'plan' | 'implement' | 'test' | 'document' | 'analyze' | 'sync' | 'optimize';
33
+ domain: string[]; // ['payment', 'authentication', 'api']
34
+ complexity: 'simple' | 'moderate' | 'complex';
35
+ scope: 'greenfield' | 'brownfield' | 'unknown';
36
+ confidence: number; // 0.0 to 1.0
37
+ }
38
+ ```
39
+
40
+ **Intent Extraction Examples**:
41
+
42
+ | User Says | Primary Action | Domain | Complexity | Confidence |
43
+ |-----------|---------------|--------|------------|-----------|
44
+ | "Add Stripe payments" | create | ['payment', 'stripe'] | moderate | 0.95 |
45
+ | "Help with auth" | unknown | ['authentication'] | unknown | 0.40 |
46
+ | "Build a SaaS" | create | ['saas', 'product'] | complex | 0.85 |
47
+ | "Optimize slow queries" | optimize | ['performance', 'database'] | moderate | 0.90 |
48
+ | "Document the API" | document | ['api', 'documentation'] | simple | 0.98 |
49
+
50
+ ### Phase 2: Skill Mapping
51
+
52
+ ```typescript
53
+ const skillMap = {
54
+ // Core planning and specification
55
+ 'create + spec': 'spec-author',
56
+ 'create + plan': 'increment-planner',
57
+ 'create + architecture': 'architect-agent',
58
+
59
+ // Implementation
60
+ 'implement + nodejs': 'nodejs-backend',
61
+ 'implement + python': 'python-backend',
62
+ 'implement + dotnet': 'dotnet-backend',
63
+ 'implement + frontend': 'frontend-agent',
64
+
65
+ // Testing and quality
66
+ 'test + e2e': 'playwright-tester',
67
+ 'test + unit': 'qa-engineer',
68
+ 'analyze + quality': 'qa-lead-agent',
69
+
70
+ // Operations
71
+ 'deploy + infrastructure': 'devops-agent',
72
+ 'optimize + performance': 'performance-agent',
73
+ 'secure + security': 'security-agent',
74
+
75
+ // Sync and integration
76
+ 'sync + jira': 'jira-sync',
77
+ 'sync + ado': 'ado-sync',
78
+ 'sync + github': 'github-sync',
79
+
80
+ // Documentation
81
+ 'document + code': 'docs-writer-agent',
82
+ 'update + docs': 'docs-updater',
83
+
84
+ // Analysis
85
+ 'analyze + brownfield': 'brownfield-analyzer',
86
+ 'analyze + code': 'tech-lead-agent',
87
+
88
+ // Orchestration
89
+ 'complex + multi-role': 'role-orchestrator',
90
+ 'create + tasks': 'task-builder'
91
+ };
92
+ ```
93
+
94
+ ### Phase 3: Confidence Assessment
95
+
96
+ ```typescript
97
+ function assessConfidence(intent: UserIntent, matchedSkills: string[]): RoutingDecision {
98
+ let confidence = 0.0;
99
+
100
+ // Single skill match with high intent confidence
101
+ if (matchedSkills.length === 1 && intent.confidence > 0.85) {
102
+ confidence = intent.confidence;
103
+ }
104
+
105
+ // Multiple skills but clear priority
106
+ else if (matchedSkills.length > 1) {
107
+ const prioritySkill = determinePriority(matchedSkills, intent);
108
+ confidence = 0.7; // Multi-skill always has some ambiguity
109
+ }
110
+
111
+ // No clear match
112
+ else {
113
+ confidence = 0.3;
114
+ }
115
+
116
+ return {
117
+ skill: matchedSkills[0] || 'unknown',
118
+ confidence,
119
+ alternatives: matchedSkills.slice(1),
120
+ needsClarification: confidence < 0.90
121
+ };
122
+ }
123
+ ```
124
+
125
+ ### Phase 4: Clarification (if needed)
126
+
127
+ When confidence < 0.90, ask user for clarification:
128
+
129
+ ```markdown
130
+ Your request: "Help me with authentication"
131
+
132
+ I can route this to several skills. What would you like to do?
133
+
134
+ 1. **Create specification** - Define authentication requirements (spec-author)
135
+ 2. **Plan implementation** - Design auth architecture (architect-agent)
136
+ 3. **Implement auth** - Build authentication system (backend skill)
137
+ 4. **Secure existing auth** - Security review and hardening (security-agent)
138
+ 5. **Test authentication** - E2E auth testing (playwright-tester)
139
+
140
+ Please select (1-5) or describe in more detail.
141
+ ```
142
+
143
+ ## Routing Workflows
144
+
145
+ ### Simple Routing (High Confidence)
146
+
147
+ ```
148
+ User: "Create a feature plan for payment processing"
149
+
150
+ skill-router analyzes:
151
+ Primary action: create + plan
152
+ Domain: payment
153
+ Complexity: moderate
154
+ Confidence: 0.95
155
+
156
+ Route to: increment-planner (direct)
157
+
158
+ No clarification needed
159
+ ```
160
+
161
+ ### Ambiguous Routing (Low Confidence)
162
+
163
+ ```
164
+ User: "Help with payments"
165
+
166
+ skill-router analyzes:
167
+ Primary action: unknown
168
+ Domain: payment
169
+ Complexity: unknown
170
+ Confidence: 0.40
171
+
172
+ Needs clarification
173
+
174
+ Present options:
175
+ 1. spec-author (create spec)
176
+ 2. increment-planner (plan feature)
177
+ 3. architect-agent (design architecture)
178
+ 4. nodejs-backend (implement)
179
+ 5. security-agent (PCI compliance)
180
+
181
+ User selects: 2
182
+
183
+ Route to: increment-planner
184
+ ```
185
+
186
+ ### Multi-Skill Routing (Complex Request)
187
+
188
+ ```
189
+ User: "Build a SaaS for project management"
190
+
191
+ skill-router analyzes:
192
+ Primary action: create
193
+ Domain: saas, product, project-management
194
+ Complexity: complex
195
+ Confidence: 0.85 (high but complex)
196
+
197
+ Route to: role-orchestrator
198
+
199
+ role-orchestrator determines needed roles:
200
+ - pm-agent (product strategy)
201
+ - architect-agent (system design)
202
+ - qa-lead-agent (test strategy)
203
+ - devops-agent (infrastructure)
204
+
205
+ Orchestrated execution
206
+ ```
207
+
208
+ ## Machine Learning Enhancement
209
+
210
+ ### Training Data Collection
211
+
212
+ ```typescript
213
+ interface RoutingFeedback {
214
+ userInput: string;
215
+ parsedIntent: UserIntent;
216
+ routedSkill: string;
217
+ userAccepted: boolean; // Did user accept this routing?
218
+ userSelectedInstead?: string; // If rejected, what did user choose?
219
+ timestamp: number;
220
+ }
221
+
222
+ // Store in .specweave/cache/routing-feedback.json
223
+ ```
224
+
225
+ ### Improvement Cycle
226
+
227
+ ```
228
+ 1. Collect routing decisions and user feedback
229
+ 2. Analyze patterns:
230
+ - Which phrases consistently map to which skills?
231
+ - Which ambiguous cases were resolved by users?
232
+ - What keywords are strong indicators?
233
+ 3. Update routing confidence thresholds
234
+ 4. Refine intent classification rules
235
+ 5. Achieve >90% accuracy target
236
+ ```
237
+
238
+ ### Success Metrics
239
+
240
+ ```typescript
241
+ // Stored in .specweave/cache/routing-metrics.json
242
+ interface RoutingMetrics {
243
+ total_routings: number;
244
+ correct_routings: number; // User accepted
245
+ accuracy: number; // correct / total
246
+ average_confidence: number;
247
+ clarifications_needed: number;
248
+ multi_skill_routes: number;
249
+ }
250
+
251
+ // Target: accuracy > 0.90 (90% from constitution)
252
+ ```
253
+
254
+ ## Skill Priority Matrix
255
+
256
+ When multiple skills could handle a request, use priority:
257
+
258
+ | Context | Priority Order |
259
+ |---------|---------------|
260
+ | **New Product/Feature** | pm-agent → architect-agent → increment-planner → implementation |
261
+ | **Brownfield Modification** | brownfield-analyzer → increment-planner → implementation |
262
+ | **Bug Fix** | tech-lead-agent → implementation → qa-engineer |
263
+ | **Performance Issue** | performance-agent → tech-lead-agent → implementation |
264
+ | **Security Issue** | security-agent → implementation → qa-engineer |
265
+ | **Documentation** | docs-writer-agent → docs-updater |
266
+ | **Testing** | qa-lead-agent → playwright-tester or qa-engineer |
267
+
268
+ ## Integration Points
269
+
270
+ ### 1. Called By
271
+
272
+ - **specweave-detector**: When initial parsing is ambiguous
273
+ - **Users**: Explicit routing questions
274
+ - **role-orchestrator**: For sub-routing within complex workflows
275
+
276
+ ### 2. Calls
277
+
278
+ - Any SpecWeave skill based on routing decision
279
+ - **role-orchestrator**: For complex multi-skill requests
280
+
281
+ ### 3. Updates
282
+
283
+ - `.specweave/cache/routing-feedback.json`: Training data
284
+ - `.specweave/cache/routing-metrics.json`: Performance metrics
285
+
286
+ ## Configuration
287
+
288
+ ```yaml
289
+ # .specweave/config.yaml
290
+ skill_router:
291
+ enabled: true
292
+
293
+ # Accuracy target (constitution requirement)
294
+ accuracy_target: 0.90
295
+
296
+ # Clarification threshold
297
+ clarification_threshold: 0.90 # Ask when confidence < 0.90
298
+
299
+ # Learning
300
+ collect_feedback: true
301
+ feedback_file: ".specweave/cache/routing-feedback.json"
302
+
303
+ # Routing preferences
304
+ prefer_multi_skill: false # For complex requests, prefer orchestrator
305
+ auto_route_high_confidence: true # Route immediately if confidence > 0.90
306
+ ```
307
+
308
+ ## Examples
309
+
310
+ ### Example 1: Stripe Integration
311
+
312
+ ```
313
+ User: "I want to integrate Stripe for subscription billing"
314
+
315
+ skill-router analysis:
316
+ Action: create + integrate
317
+ Domain: stripe, payment, subscription
318
+ Keywords: integrate (suggests implementation)
319
+ Confidence: 0.88 (just below threshold)
320
+
321
+ Clarification:
322
+ "I see you want to integrate Stripe for subscriptions.
323
+
324
+ Would you like to:
325
+ 1. Plan the integration (increment-planner)
326
+ 2. Design the architecture (architect-agent)
327
+ 3. Start implementation (nodejs-backend)
328
+
329
+ Recommendation: Start with #1 (Plan) for best practice."
330
+
331
+ User: "Yes, plan it first"
332
+
333
+ Route to: increment-planner
334
+ ```
335
+
336
+ ### Example 2: Performance Optimization
337
+
338
+ ```
339
+ User: "The app is slow, especially the dashboard"
340
+
341
+ skill-router analysis:
342
+ Action: optimize
343
+ Domain: performance, dashboard, frontend
344
+ Confidence: 0.92 (above threshold!)
345
+
346
+ Route to: performance-agent (direct, no clarification)
347
+
348
+ performance-agent:
349
+ "I'll analyze the dashboard performance.
350
+ [runs profiling, identifies issues]
351
+
352
+ Found 3 issues:
353
+ 1. Unnecessary re-renders (React)
354
+ 2. Unoptimized database queries
355
+ 3. Large bundle size
356
+
357
+ Routing optimization tasks:
358
+ - Issue 1 → frontend-agent
359
+ - Issue 2 → nodejs-backend
360
+ - Issue 3 → tech-lead-agent (code splitting)"
361
+ ```
362
+
363
+ ### Example 3: Brownfield Documentation
364
+
365
+ ```
366
+ User: "Document the existing payment processing code"
367
+
368
+ skill-router analysis:
369
+ Action: document
370
+ Domain: payment, existing-code
371
+ Scope: brownfield
372
+ Confidence: 0.75 (brownfield detection uncertain)
373
+
374
+ Clarification:
375
+ "You want to document existing payment code.
376
+
377
+ Options:
378
+ 1. Analyze & document current implementation (brownfield-analyzer)
379
+ 2. Update existing documentation (docs-updater)
380
+ 3. Write new developer guide (docs-writer-agent)
381
+
382
+ If the code isn't documented yet, I recommend #1."
383
+
384
+ User: "1"
385
+
386
+ Route to: brownfield-analyzer
387
+ ```
388
+
389
+ ## Error Handling
390
+
391
+ ### Unknown Domain
392
+
393
+ ```
394
+ User: "What's for lunch?"
395
+
396
+ skill-router:
397
+ Domain: food, lunch
398
+ No matching SpecWeave skills
399
+
400
+ "This seems outside SpecWeave's domain (software development).
401
+ SpecWeave handles:
402
+ - Feature planning
403
+ - Code implementation
404
+ - Testing and QA
405
+ - Documentation
406
+ - DevOps and deployment
407
+
408
+ Would you like me to answer as regular Claude instead?"
409
+ ```
410
+
411
+ ### Confidence Collapse
412
+
413
+ ```
414
+ If 5+ consecutive routings have confidence < 0.50:
415
+ "I'm having trouble understanding your requests.
416
+
417
+ Available SpecWeave skills:
418
+ [list all installed skills with descriptions]
419
+
420
+ Please try:
421
+ 1. Being more specific ("create a spec" vs "help")
422
+ 2. Including action keywords (plan, implement, test, etc.)
423
+ 3. Mentioning technology (Node.js, Python, React, etc.)"
424
+ ```
425
+
426
+ ## Testing
427
+
428
+ ### Test Cases
429
+
430
+ **TC-001: High Confidence Routing**
431
+ - Given: "Create a plan for Stripe payment integration"
432
+ - When: skill-router parses request
433
+ - Then: Confidence > 0.90
434
+ - And: Routes to increment-planner without clarification
435
+
436
+ **TC-002: Low Confidence Clarification**
437
+ - Given: "Help with auth"
438
+ - When: skill-router parses request
439
+ - Then: Confidence < 0.90
440
+ - And: Asks user for clarification
441
+ - And: Presents 3-5 options
442
+
443
+ **TC-003: Multi-Skill Complex Request**
444
+ - Given: "Build a real-time collaboration SaaS"
445
+ - When: skill-router parses request
446
+ - Then: Recognizes complexity
447
+ - And: Routes to role-orchestrator
448
+ - And: Confidence recorded
449
+
450
+ **TC-004: Accuracy Tracking**
451
+ - Given: 100 routing decisions
452
+ - When: Users provide feedback (accept/reject)
453
+ - Then: Accuracy calculated correctly
454
+ - And: Metrics stored in cache
455
+ - And: Accuracy > 90% target
456
+
457
+ **TC-005: Learning from Feedback**
458
+ - Given: User rejects routing 3 times for "help with payments"
459
+ - When: User always selects "increment-planner"
460
+ - Then: Pattern learned
461
+ - And: Future "help with payments" routes to increment-planner
462
+ - And: Confidence increases
463
+
464
+ ## Resources
465
+
466
+ ### Natural Language Processing
467
+ - [spaCy](https://spacy.io/) - Industrial-strength NLP
468
+ - [compromise](https://github.com/spencermountain/compromise) - Natural language processing in JavaScript
469
+ - [natural](https://github.com/NaturalNode/natural) - Natural language facilities for Node.js
470
+
471
+ ### Intent Classification
472
+ - [Rasa NLU](https://rasa.com/docs/rasa/nlu-training-data/) - Intent classification and entity extraction
473
+ - [Dialogflow](https://cloud.google.com/dialogflow/docs/intents) - Google's intent classification
474
+ - [LUIS](https://www.luis.ai/) - Microsoft Language Understanding
475
+
476
+ ### Pattern Matching
477
+ - [string-similarity](https://github.com/aceakash/string-similarity) - Find similarity between strings
478
+ - [fuzzyset.js](https://github.com/Glench/fuzzyset.js) - Fuzzy string matching
479
+
480
+ ### Machine Learning (Optional Enhancement)
481
+ - [TensorFlow.js](https://www.tensorflow.org/js) - ML in JavaScript
482
+ - [brain.js](https://brain.js.org/) - Neural networks in JavaScript
483
+ - [ml.js](https://github.com/mljs/ml) - Machine learning tools
484
+
485
+ ---
486
+
487
+ ## Summary
488
+
489
+ The skill-router is SpecWeave's **intelligent traffic controller** that:
490
+ - ✅ Parses user requests with intent classification
491
+ - ✅ Routes to appropriate skills with >90% accuracy (constitution target)
492
+ - ✅ Provides clarification when needed (confidence < 0.90)
493
+ - ✅ Learns from user feedback to improve over time
494
+ - ✅ Handles multi-skill orchestration for complex requests
495
+ - ✅ Tracks metrics for continuous improvement
496
+
497
+ **User benefit**: Natural language requests are intelligently routed to the right skill, making SpecWeave feel like a unified development assistant instead of fragmented tools.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: "Basic Request Routing"
3
+ description: "Tests if skill-router correctly routes user request to appropriate skill"
4
+ input:
5
+ prompt: "Plan a new feature for user authentication"
6
+ context:
7
+ available_skills:
8
+ - "increment-planner"
9
+ - "spec-author"
10
+ - "developer"
11
+ user_intent: "plan feature"
12
+ expected_output:
13
+ type: "skill_routing"
14
+ routes_to: "increment-planner"
15
+ confidence: "high"
16
+ reason: "User request contains 'plan' and 'feature' keywords"
17
+ alternatives: []
18
+ actions:
19
+ - "Activate increment-planner skill"
20
+ - "Pass user request to increment-planner"
21
+ - "Log routing decision"
22
+ validation:
23
+ - "Routes to correct skill (increment-planner)"
24
+ - "Confidence level is high (>0.9)"
25
+ - "No ambiguity detected"
26
+ - "Logs routing decision"
27
+ - "Activates target skill"
28
+ success_criteria:
29
+ - "Correct skill selected"
30
+ - ">90% routing accuracy"
31
+ - "Fast routing (<100ms)"
32
+ - "Logging works"
33
+ ---
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: "Ambiguous Request Handling"
3
+ description: "Tests how skill-router handles requests that could match multiple skills"
4
+ input:
5
+ prompt: "Create documentation for the API"
6
+ context:
7
+ available_skills:
8
+ - "spec-author" # Could create API specification
9
+ - "architect" # Could document API architecture
10
+ - "docs-updater" # Could update API docs
11
+ user_intent: "create documentation"
12
+ expected_output:
13
+ type: "clarification_required"
14
+ routes_to: null
15
+ confidence: "low"
16
+ reason: "Multiple skills match: spec-author, architect, docs-updater"
17
+ alternatives:
18
+ - skill: "spec-author"
19
+ match_score: 0.65
20
+ reason: "Can create API specifications"
21
+ - skill: "architect"
22
+ match_score: 0.60
23
+ reason: "Can document API architecture"
24
+ - skill: "docs-updater"
25
+ match_score: 0.55
26
+ reason: "Can update API documentation"
27
+ actions:
28
+ - "Ask user for clarification"
29
+ - "Present alternatives with descriptions"
30
+ - "Wait for user selection"
31
+ validation:
32
+ - "Detects ambiguity (confidence <0.7)"
33
+ - "Lists all matching skills"
34
+ - "Provides match scores"
35
+ - "Asks user to clarify"
36
+ - "Does not make incorrect assumption"
37
+ success_criteria:
38
+ - "Ambiguity detected"
39
+ - "User presented with options"
40
+ - "No forced routing when uncertain"
41
+ - "Helpful context for each option"
42
+ ---
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: "Nested Skill Orchestration"
3
+ description: "Tests skill-router's ability to handle one skill calling another skill"
4
+ input:
5
+ prompt: "Implement the user authentication feature"
6
+ context:
7
+ available_skills:
8
+ - "developer"
9
+ - "context-loader"
10
+ - "spec-author"
11
+ current_skill: "developer"
12
+ workflow:
13
+ - step: 1
14
+ skill: "developer"
15
+ action: "Needs to load context from specification"
16
+ calls: "context-loader"
17
+ - step: 2
18
+ skill: "context-loader"
19
+ action: "Load authentication spec"
20
+ returns_to: "developer"
21
+ - step: 3
22
+ skill: "developer"
23
+ action: "Implement based on loaded context"
24
+ expected_output:
25
+ type: "nested_routing"
26
+ primary_skill: "developer"
27
+ sub_skills:
28
+ - "context-loader"
29
+ orchestration:
30
+ - "developer activates"
31
+ - "developer calls context-loader"
32
+ - "context-loader loads spec"
33
+ - "context returns to developer"
34
+ - "developer implements"
35
+ contains:
36
+ - "Orchestrating skills: developer -> context-loader"
37
+ - "Context loaded successfully"
38
+ - "Returning to developer"
39
+ validation:
40
+ - "Primary skill (developer) activated correctly"
41
+ - "Sub-skill (context-loader) called when needed"
42
+ - "Context passed between skills"
43
+ - "Control returns to primary skill"
44
+ - "Workflow completes successfully"
45
+ success_criteria:
46
+ - "Nested skill calls work"
47
+ - "Context preserved across skills"
48
+ - "No infinite loops"
49
+ - "Proper error handling in chain"
50
+ ---