specweave 0.1.8 → 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 (294) hide show
  1. package/CLAUDE.md +600 -0
  2. package/README.md +263 -88
  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} +185 -72
  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/specweave.increment.md +383 -0
  132. package/src/commands/specweave.md +430 -0
  133. package/src/commands/specweave.next.md +495 -0
  134. package/src/commands/specweave.progress.md +258 -0
  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 -297
  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 -711
  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/increment.md +0 -223
  169. package/src/commands/review-docs.md +0 -331
  170. package/src/commands/sync-github.md +0 -115
  171. package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
  172. package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
  173. package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
  174. package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
  175. package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
  176. package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
  177. package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
  178. package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
  179. package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
  180. package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
  181. package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
  182. package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
  183. package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
  184. package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
  185. package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
  186. package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
  187. package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
  188. package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
  189. package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
  190. package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
  191. package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
  192. package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
  193. package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
  194. package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
  195. package/src/skills/cost-optimizer/test-results/README.md +0 -46
  196. package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
  197. package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
  198. package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
  199. package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
  200. package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
  201. package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
  202. package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
  203. package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
  204. package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
  205. package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
  206. package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
  207. package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
  208. package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
  209. package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
  210. package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
  211. package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
  212. package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
  213. package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
  214. package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
  215. package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
  216. package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
  217. package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
  218. package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
  219. package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
  220. package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
  221. package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
  222. package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
  223. package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
  224. package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
  225. package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
  226. package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
  227. package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
  228. package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
  229. package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
  230. package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
  231. package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
  232. package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
  233. package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
  234. package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
  235. package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
  236. package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
  237. package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
  238. package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
  239. package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
  240. package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
  241. package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
  242. package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
  243. package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
  244. package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
  245. package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
  246. package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
  247. package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
  248. package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
  249. package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
  250. package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
  251. package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
  252. package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
  253. package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
  254. package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
  255. package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
  256. package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
  257. package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
  258. package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
  259. package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
  260. package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
  261. package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
  262. package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
  263. package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
  264. package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
  265. package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
  266. package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
  267. package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
  268. package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
  269. package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
  270. package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
  271. package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
  272. package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
  273. package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
  274. package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
  275. package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
  276. package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
  277. package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
  278. package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
  279. package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
  280. package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
  281. package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
  282. package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
  283. package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
  284. package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
  285. package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
  286. package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
  287. package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
  288. package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
  289. package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
  290. package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
  291. package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
  292. package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
  293. package/src/templates/config.yaml +0 -351
  294. /package/src/commands/{list-increments.md → specweave.list-increments.md} +0 -0
@@ -1,98 +0,0 @@
1
- id: TC-004
2
- name: Accessibility Check Test
3
- description: Verify that the skill can perform basic accessibility checks on web pages
4
- priority: medium
5
- category: accessibility
6
-
7
- preconditions:
8
- - TC-001 passes
9
- - Test page has various HTML elements (images, forms, buttons, links)
10
- - checkAccessibility() utility is available
11
-
12
- test_steps:
13
- - step: 1
14
- action: Navigate to test page
15
- expected: Page loads successfully
16
-
17
- - step: 2
18
- action: Call checkAccessibility(page)
19
- expected: Function runs without errors
20
-
21
- - step: 3
22
- action: Verify detection of images without alt text
23
- expected: Missing alt text issues are reported
24
-
25
- - step: 4
26
- action: Verify detection of form inputs without labels
27
- expected: Missing label issues are reported
28
-
29
- - step: 5
30
- action: Verify detection of buttons without accessible text
31
- expected: Missing button text issues are reported
32
-
33
- - step: 6
34
- action: Log all accessibility issues to console
35
- expected: Clear, actionable issue descriptions are shown
36
-
37
- acceptance_criteria:
38
- - All four accessibility checks run successfully
39
- - Issues are grouped by type (missing-alt, missing-label, etc.)
40
- - Each issue includes element HTML snippet
41
- - Each issue includes clear message explaining the problem
42
- - Function returns array of issue objects
43
-
44
- test_data:
45
- test_scenarios:
46
- - scenario: Image without alt
47
- html: <img src="test.png">
48
- expected_issue: missing-alt
49
-
50
- - scenario: Input without label
51
- html: <input type="text" name="test">
52
- expected_issue: missing-label
53
-
54
- - scenario: Button without text
55
- html: <button></button>
56
- expected_issue: missing-button-text
57
-
58
- - scenario: Link without text
59
- html: <a href="/test"></a>
60
- expected_issue: missing-link-text
61
-
62
- expected_results:
63
- - checkAccessibility() returns array
64
- - Each issue has: type, element, message
65
- - Element snippets are truncated to 100 chars
66
- - Hidden inputs are ignored
67
- - ARIA labels are recognized as valid alternatives
68
-
69
- issue_format:
70
- type: string # e.g., "missing-alt"
71
- element: string # HTML snippet (max 100 chars)
72
- message: string # Human-readable description
73
-
74
- valid_alternatives:
75
- for_images:
76
- - alt attribute
77
- - aria-label attribute
78
-
79
- for_inputs:
80
- - Wrapped in <label>
81
- - Associated via <label for="id">
82
- - aria-label attribute
83
- - aria-labelledby attribute
84
-
85
- for_buttons:
86
- - Text content
87
- - aria-label attribute
88
- - Alt text on child image
89
-
90
- for_links:
91
- - Text content
92
- - aria-label attribute
93
- - Alt text on child image
94
-
95
- notes: |
96
- Basic accessibility checks help catch common issues early.
97
- This is not a replacement for full accessibility audits but provides
98
- quick feedback during development.
@@ -1,13 +0,0 @@
1
- name: "Create Design System Foundation"
2
- description: "Test creating design tokens and base components in Figma"
3
- user_input: "Create a design system with color palette, typography, and spacing"
4
- expected_behavior:
5
- - Defines color tokens (primary, secondary, neutral, semantic)
6
- - Sets up typography scale (headings, body, captions)
7
- - Creates spacing tokens (4px, 8px, 16px, etc.)
8
- - Organizes tokens in Figma variables
9
- validation:
10
- - Uses Figma variables for colors
11
- - Defines text styles for typography
12
- - Creates spacing components
13
- - Follows naming conventions (color/primary/500)
@@ -1,13 +0,0 @@
1
- name: "Build Component Library"
2
- description: "Test creating reusable UI components using atomic design"
3
- user_input: "Create a button component library with all variants"
4
- expected_behavior:
5
- - Creates button component with variants (primary, secondary, ghost)
6
- - Implements states (default, hover, active, disabled)
7
- - Uses auto-layout for responsive sizing
8
- - Includes icon support
9
- validation:
10
- - Component uses variants
11
- - States implemented as component properties
12
- - Uses auto-layout
13
- - Properly linked to design tokens
@@ -1,13 +0,0 @@
1
- name: "Design Responsive Layout"
2
- description: "Test creating responsive layouts with constraints"
3
- user_input: "Design a responsive dashboard layout for desktop and mobile"
4
- expected_behavior:
5
- - Creates frames for different breakpoints (mobile, tablet, desktop)
6
- - Uses auto-layout for flexible content
7
- - Implements proper constraints
8
- - Shows responsive behavior
9
- validation:
10
- - Multiple frames for breakpoints
11
- - Auto-layout on parent containers
12
- - Constraints set appropriately
13
- - Components adapt to different widths
@@ -1,13 +0,0 @@
1
- name: "Convert Figma Design to React Component"
2
- description: "Test converting a Figma component to production React code"
3
- user_input: "Convert this Figma button component to React with TypeScript"
4
- expected_behavior:
5
- - Extracts design tokens (colors, spacing, typography)
6
- - Generates React component with proper props
7
- - Implements all variants from Figma
8
- - Includes Tailwind CSS or CSS modules
9
- validation:
10
- - Component matches Figma design pixel-perfect
11
- - Props match Figma variants
12
- - Uses design tokens correctly
13
- - Includes TypeScript interfaces
@@ -1,13 +0,0 @@
1
- name: "Create Storybook Stories for Figma Components"
2
- description: "Test generating Storybook stories from Figma components"
3
- user_input: "Create Storybook stories for my button component from Figma"
4
- expected_behavior:
5
- - Generates .stories.tsx file
6
- - Creates stories for each variant
7
- - Includes controls for interactive props
8
- - Matches Figma design exactly
9
- validation:
10
- - Stories show all variants
11
- - Controls allow testing different states
12
- - Visual regression tests possible
13
- - Documentation includes usage examples
@@ -1,13 +0,0 @@
1
- name: "Extract and Implement Design Tokens"
2
- description: "Test extracting design tokens from Figma and generating code"
3
- user_input: "Extract all design tokens from this Figma file"
4
- expected_behavior:
5
- - Extracts colors, typography, spacing, shadows, borders
6
- - Generates token files (JSON, CSS variables, or TypeScript)
7
- - Creates Tailwind config if needed
8
- - Maintains consistency with Figma
9
- validation:
10
- - All token categories extracted
11
- - Proper naming conventions
12
- - Values match Figma exactly
13
- - Tokens are importable and usable
@@ -1,22 +0,0 @@
1
- ---
2
- name: "Read Figma File - Official Desktop MCP"
3
- description: "Test reading Figma file via official desktop MCP"
4
- input:
5
- figma_url: "https://figma.com/file/ABC123"
6
- mcp_type: "official_desktop"
7
- mcp_url: "http://127.0.0.1:3845/mcp"
8
- expected_output:
9
- type: "figma_file_metadata"
10
- fields:
11
- - "fileId"
12
- - "name"
13
- - "components"
14
- - "variables"
15
- validation:
16
- - "File ID extracted correctly"
17
- - "Components array populated"
18
- - "Variables object exists"
19
- success_criteria:
20
- - "File read successfully"
21
- - "No authentication errors"
22
- ---
@@ -1,21 +0,0 @@
1
- ---
2
- name: "Read Figma File - Community Framelink MCP"
3
- description: "Test reading Figma file via community Framelink MCP"
4
- input:
5
- figma_url: "https://figma.com/file/ABC123"
6
- mcp_type: "community_framelink"
7
- expected_output:
8
- type: "figma_file_metadata"
9
- fields:
10
- - "fileId"
11
- - "name"
12
- - "components"
13
- - "variables"
14
- validation:
15
- - "File ID extracted correctly"
16
- - "Components array populated"
17
- - "Framelink-specific optimizations applied"
18
- success_criteria:
19
- - "File read successfully"
20
- - "Context reduced for AI accuracy"
21
- ---
@@ -1,18 +0,0 @@
1
- ---
2
- name: "Error Handling - Invalid Token"
3
- description: "Test error handling for invalid Figma token"
4
- input:
5
- figma_url: "https://figma.com/file/ABC123"
6
- token: "invalid_token"
7
- expected_output:
8
- type: "error"
9
- error_code: "AUTHENTICATION_FAILED"
10
- message: "Invalid Figma access token"
11
- validation:
12
- - "Error detected correctly"
13
- - "Clear error message provided"
14
- - "Suggests solution (check FIGMA_ACCESS_TOKEN)"
15
- success_criteria:
16
- - "Error handled gracefully"
17
- - "User guidance provided"
18
- ---
@@ -1,29 +0,0 @@
1
- ---
2
- name: "Design Tokens Generation"
3
- description: "Test generation of design tokens from Figma variables"
4
- input:
5
- figma_variables:
6
- - name: "color/primary/500"
7
- value: "#3b82f6"
8
- - name: "spacing/4"
9
- value: "4px"
10
- framework: "react"
11
- expected_output:
12
- type: "design_tokens"
13
- css_variables:
14
- - "--color-primary-500: #3b82f6;"
15
- - "--spacing-4: 0.25rem;"
16
- tailwind_config:
17
- colors:
18
- primary:
19
- 500: "#3b82f6"
20
- spacing:
21
- 4: "0.25rem"
22
- validation:
23
- - "CSS variables correctly formatted"
24
- - "Tailwind config valid"
25
- - "TypeScript types generated"
26
- success_criteria:
27
- - "All tokens converted"
28
- - "No syntax errors"
29
- ---
@@ -1,27 +0,0 @@
1
- ---
2
- name: "React Component Generation"
3
- description: "Test generation of React component from Figma component"
4
- input:
5
- figma_component:
6
- name: "Button"
7
- variants:
8
- - variant: "primary"
9
- size: "md"
10
- properties:
11
- - name: "disabled"
12
- type: "boolean"
13
- framework: "react"
14
- expected_output:
15
- type: "react_component"
16
- files:
17
- - "Button.tsx"
18
- - "types.ts"
19
- typescript_interface: true
20
- validation:
21
- - "Component structure correct"
22
- - "Props match Figma properties"
23
- - "TypeScript types exported"
24
- success_criteria:
25
- - "Component compiles"
26
- - "No TypeScript errors"
27
- ---
@@ -1,28 +0,0 @@
1
- ---
2
- name: "TypeScript Interface Generation"
3
- description: "Test generation of TypeScript interfaces from Figma properties"
4
- input:
5
- figma_component: "Button"
6
- properties:
7
- - name: "variant"
8
- type: "enum"
9
- values: ["primary", "secondary"]
10
- - name: "size"
11
- type: "enum"
12
- values: ["sm", "md", "lg"]
13
- - name: "disabled"
14
- type: "boolean"
15
- expected_output:
16
- type: "typescript_interfaces"
17
- types:
18
- - "type ButtonVariant = 'primary' | 'secondary';"
19
- - "type ButtonSize = 'sm' | 'md' | 'lg';"
20
- - "interface ButtonProps { variant?: ButtonVariant; size?: ButtonSize; disabled?: boolean; }"
21
- validation:
22
- - "Types follow TypeScript conventions"
23
- - "All properties mapped"
24
- - "Exports correct"
25
- success_criteria:
26
- - "TypeScript compiles"
27
- - "No type errors"
28
- ---
@@ -1,13 +0,0 @@
1
- name: "Create React Component with Hooks"
2
- description: "Test creating a React component using hooks"
3
- user_input: "Create a user profile component with state management"
4
- expected_behavior:
5
- - Generates functional component with TypeScript
6
- - Uses useState for local state
7
- - Uses useEffect for side effects
8
- - Implements proper prop types
9
- validation:
10
- - Uses React.FC or function component syntax
11
- - Includes TypeScript interfaces for props
12
- - Implements useState hook
13
- - Includes proper cleanup in useEffect
@@ -1,13 +0,0 @@
1
- name: "Implement Form with Validation"
2
- description: "Test creating a form with validation using React Hook Form"
3
- user_input: "Create a registration form with validation"
4
- expected_behavior:
5
- - Uses react-hook-form for form management
6
- - Implements Zod schema validation
7
- - Includes error message display
8
- - Handles form submission
9
- validation:
10
- - Uses useForm hook
11
- - Implements Zod schema with zodResolver
12
- - Shows validation errors
13
- - Includes submit handler
@@ -1,13 +0,0 @@
1
- name: "Implement Global State Management"
2
- description: "Test setting up Zustand for global state"
3
- user_input: "Add global state management for user authentication"
4
- expected_behavior:
5
- - Creates Zustand store
6
- - Implements actions and selectors
7
- - Uses TypeScript for type safety
8
- - Includes persistence if needed
9
- validation:
10
- - Uses create from zustand
11
- - Implements store interface
12
- - Exports custom hooks
13
- - Includes proper typing
@@ -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,71 +0,0 @@
1
- ---
2
- name: "Basic Hetzner CX11 Provisioning"
3
- description: "Provision a basic CX11 instance with Docker for NextJS app deployment"
4
- skill: hetzner-provisioner
5
- priority: P1
6
- estimated_time: "5-10 minutes"
7
-
8
- input:
9
- prompt: "Deploy my NextJS app on Hetzner as cheaply as possible"
10
- requirements:
11
- app_type: nextjs
12
- instance_type: cx11
13
- database: none
14
- ssl: false
15
- budget: "$10/month"
16
-
17
- expected_output:
18
- terraform_files_generated:
19
- - main.tf
20
- - variables.tf
21
- - outputs.tf
22
- - cloud-init.yaml
23
-
24
- terraform_resources:
25
- - type: hcloud_server
26
- name: app
27
- server_type: cx11
28
- image: ubuntu-22.04
29
- location: nbg1
30
-
31
- - type: hcloud_firewall
32
- name: app
33
- rules:
34
- - port: 80
35
- - port: 443
36
- - port: 22
37
-
38
- dockerfile_generated: true
39
-
40
- github_actions_workflow: true
41
-
42
- cost_estimate:
43
- monthly: "$5.83"
44
- breakdown:
45
- - "CX11 instance: $5.83/month"
46
- - "Storage (20GB): $0.50/month"
47
- total: "$6.33/month"
48
- within_budget: true
49
-
50
- deployment_guide:
51
- steps:
52
- - "Set HETZNER_API_TOKEN in GitHub secrets"
53
- - "Push code to GitHub"
54
- - "GitHub Actions will deploy automatically"
55
- - "Access app at http://[SERVER_IP]:3000"
56
-
57
- validation:
58
- - "terraform validate passes without errors"
59
- - "main.tf contains hcloud_server resource"
60
- - "Dockerfile exists and is valid"
61
- - "Cost estimate under $10/month"
62
- - "GitHub Actions workflow file exists"
63
-
64
- expected_errors: []
65
-
66
- success_criteria:
67
- - "All Terraform files generated"
68
- - "Cost within budget"
69
- - "Deployment guide provided"
70
- - "No validation errors"
71
- ---
@@ -1,85 +0,0 @@
1
- ---
2
- name: "Hetzner Provisioning with Managed Postgres"
3
- description: "Provision CX11 instance + managed Postgres database for full-stack app"
4
- skill: hetzner-provisioner
5
- priority: P1
6
- estimated_time: "10-15 minutes"
7
-
8
- input:
9
- prompt: "Deploy my NextJS app on Hetzner with Postgres database"
10
- requirements:
11
- app_type: nextjs
12
- instance_type: cx11
13
- database: postgres
14
- database_size: "2GB"
15
- ssl: false
16
- budget: "$15/month"
17
-
18
- expected_output:
19
- terraform_files_generated:
20
- - main.tf
21
- - variables.tf
22
- - outputs.tf
23
- - cloud-init.yaml
24
- - database.tf
25
-
26
- terraform_resources:
27
- - type: hcloud_server
28
- name: app
29
- server_type: cx11
30
-
31
- - type: hcloud_database
32
- name: postgres
33
- engine: postgresql
34
- version: "15"
35
- size: db-1x-small
36
-
37
- - type: hcloud_firewall
38
- name: app
39
-
40
- environment_variables:
41
- - DATABASE_URL: "postgresql://user:pass@[DB_HOST]:5432/dbname"
42
- - POSTGRES_HOST: "[DB_HOST from terraform output]"
43
- - POSTGRES_PORT: "5432"
44
- - POSTGRES_DB: "my_saas_db"
45
-
46
- dockerfile_generated: true
47
-
48
- docker_compose_generated: true
49
- docker_compose_services:
50
- - app
51
- - (database managed separately by Hetzner)
52
-
53
- cost_estimate:
54
- monthly: "$10.83"
55
- breakdown:
56
- - "CX11 instance: $5.83/month"
57
- - "Managed Postgres (2GB): $5.00/month"
58
- - "Storage (20GB): $0.50/month"
59
- total: "$11.33/month"
60
- within_budget: true
61
-
62
- deployment_guide:
63
- steps:
64
- - "Set HETZNER_API_TOKEN in GitHub secrets"
65
- - "Set database credentials in environment variables"
66
- - "Run terraform apply to provision infrastructure"
67
- - "Database will be accessible at terraform output"
68
- - "Configure app DATABASE_URL"
69
- - "Deploy app with GitHub Actions"
70
-
71
- validation:
72
- - "terraform validate passes"
73
- - "hcloud_database resource exists in main.tf or database.tf"
74
- - "Database connection string in outputs.tf"
75
- - "Environment variables documented"
76
- - "Cost under $15/month"
77
-
78
- expected_errors: []
79
-
80
- success_criteria:
81
- - "Managed Postgres provisioned"
82
- - "Connection string outputted"
83
- - "Cost within budget"
84
- - "App can connect to database"
85
- ---