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.
- package/CLAUDE.md +600 -0
- package/README.md +263 -88
- package/bin/install-all.sh +1 -1
- package/bin/install-commands.sh +3 -3
- package/bin/specweave.js +39 -9
- package/dist/adapters/adapter-base.d.ts +1 -1
- package/dist/adapters/adapter-base.d.ts.map +1 -1
- package/dist/adapters/adapter-base.js +6 -41
- package/dist/adapters/adapter-base.js.map +1 -1
- package/dist/adapters/adapter-interface.js +1 -2
- package/dist/adapters/adapter-interface.js.map +1 -1
- package/dist/adapters/adapter-loader.d.ts +86 -0
- package/dist/adapters/adapter-loader.d.ts.map +1 -0
- package/dist/adapters/adapter-loader.js +216 -0
- package/dist/adapters/adapter-loader.js.map +1 -0
- package/dist/adapters/agents-md-generator.d.ts +48 -0
- package/dist/adapters/agents-md-generator.d.ts.map +1 -0
- package/dist/adapters/agents-md-generator.js +132 -0
- package/dist/adapters/agents-md-generator.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +2 -2
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +5 -42
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/claude-md-generator.d.ts +78 -0
- package/dist/adapters/claude-md-generator.d.ts.map +1 -0
- package/dist/adapters/claude-md-generator.js +246 -0
- package/dist/adapters/claude-md-generator.js.map +1 -0
- package/dist/adapters/codex/adapter.d.ts +50 -0
- package/dist/adapters/codex/adapter.d.ts.map +1 -0
- package/dist/adapters/codex/adapter.js +316 -0
- package/dist/adapters/codex/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +10 -9
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +35 -100
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +8 -6
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +47 -130
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/doc-generator.d.ts +69 -0
- package/dist/adapters/doc-generator.d.ts.map +1 -0
- package/dist/adapters/doc-generator.js +247 -0
- package/dist/adapters/doc-generator.js.map +1 -0
- package/dist/adapters/gemini/adapter.d.ts +50 -0
- package/dist/adapters/gemini/adapter.d.ts.map +1 -0
- package/dist/adapters/gemini/adapter.js +281 -0
- package/dist/adapters/gemini/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +7 -4
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +60 -59
- package/dist/adapters/generic/adapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +272 -170
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +22 -58
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +27 -64
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/core/credentials-manager.d.ts +90 -0
- package/dist/core/credentials-manager.d.ts.map +1 -0
- package/dist/core/credentials-manager.js +271 -0
- package/dist/core/credentials-manager.js.map +1 -0
- package/dist/core/project-structure-detector.d.ts +92 -0
- package/dist/core/project-structure-detector.d.ts.map +1 -0
- package/dist/core/project-structure-detector.js +289 -0
- package/dist/core/project-structure-detector.js.map +1 -0
- package/dist/core/rfc-generator-v2.d.ts +149 -0
- package/dist/core/rfc-generator-v2.d.ts.map +1 -0
- package/dist/core/rfc-generator-v2.js +399 -0
- package/dist/core/rfc-generator-v2.js.map +1 -0
- package/dist/core/rfc-generator.d.ts +147 -0
- package/dist/core/rfc-generator.d.ts.map +1 -0
- package/dist/core/rfc-generator.js +434 -0
- package/dist/core/rfc-generator.js.map +1 -0
- package/dist/integrations/ado/ado-client.d.ts +123 -0
- package/dist/integrations/ado/ado-client.d.ts.map +1 -0
- package/dist/integrations/ado/ado-client.js +398 -0
- package/dist/integrations/ado/ado-client.js.map +1 -0
- package/dist/integrations/jira/jira-client.d.ts +139 -0
- package/dist/integrations/jira/jira-client.d.ts.map +1 -0
- package/dist/integrations/jira/jira-client.js +386 -0
- package/dist/integrations/jira/jira-client.js.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts +75 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.js +474 -0
- package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -0
- package/dist/integrations/jira/jira-mapper.d.ts +105 -0
- package/dist/integrations/jira/jira-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-mapper.js +494 -0
- package/dist/integrations/jira/jira-mapper.js.map +1 -0
- package/dist/testing/test-generator.d.ts +117 -0
- package/dist/testing/test-generator.d.ts.map +1 -0
- package/dist/testing/test-generator.js +370 -0
- package/dist/testing/test-generator.js.map +1 -0
- package/dist/utils/auto-install.d.ts +3 -0
- package/dist/utils/auto-install.d.ts.map +1 -1
- package/dist/utils/auto-install.js +16 -82
- package/dist/utils/auto-install.js.map +1 -1
- package/dist/utils/esm-helpers.d.ts +50 -0
- package/dist/utils/esm-helpers.d.ts.map +1 -0
- package/dist/utils/esm-helpers.js +57 -0
- package/dist/utils/esm-helpers.js.map +1 -0
- package/package.json +16 -7
- package/src/adapters/README.md +1 -2
- package/src/adapters/adapter-base.ts +6 -3
- package/src/adapters/adapter-loader.ts +261 -0
- package/src/adapters/agents-md-generator.ts +162 -0
- package/src/adapters/claude/README.md +6 -14
- package/src/adapters/claude/adapter.ts +4 -4
- package/src/adapters/claude-md-generator.ts +311 -0
- package/src/adapters/codex/README.md +105 -0
- package/src/adapters/codex/adapter.ts +333 -0
- package/src/adapters/copilot/adapter.ts +36 -65
- package/src/adapters/cursor/README.md +0 -2
- package/src/adapters/cursor/adapter.ts +46 -92
- package/src/adapters/doc-generator.ts +331 -0
- package/src/adapters/gemini/README.md +97 -0
- package/src/adapters/gemini/adapter.ts +298 -0
- package/src/adapters/generic/adapter.ts +61 -57
- package/src/adapters/registry.yaml +86 -25
- package/src/agents/devops/AGENT.md +16 -18
- package/src/agents/docs-writer/AGENT.md +2 -2
- package/src/agents/pm/AGENT.md +1 -50
- package/src/commands/README.md +134 -111
- package/src/commands/{build.md → specweave.do.md} +185 -72
- package/src/commands/{done.md → specweave.done.md} +3 -3
- package/src/commands/{inc.md → specweave.inc.md} +4 -4
- package/src/commands/specweave.increment.md +383 -0
- package/src/commands/specweave.md +430 -0
- package/src/commands/specweave.next.md +495 -0
- package/src/commands/specweave.progress.md +258 -0
- package/src/commands/specweave.sync-docs.md +665 -0
- package/src/commands/specweave.sync-github.md +269 -0
- package/src/commands/specweave.sync-jira.md +197 -0
- package/src/commands/{validate.md → specweave.validate.md} +4 -4
- package/src/hooks/README.md +19 -29
- package/src/hooks/post-task-completion.sh +25 -30
- package/src/skills/ado-sync/README.md +1 -36
- package/src/skills/bmad-method-expert/SKILL.md +1 -3
- package/src/skills/brownfield-analyzer/SKILL.md +429 -23
- package/src/skills/brownfield-onboarder/SKILL.md +221 -8
- package/src/skills/context-loader/SKILL.md +239 -617
- package/src/skills/context-optimizer/SKILL.md +0 -30
- package/src/skills/github-sync/SKILL.md +1 -19
- package/src/skills/increment-planner/SKILL.md +64 -18
- package/src/skills/increment-quality-judge/SKILL.md +1 -36
- package/src/skills/jira-sync/README.md +1 -38
- package/src/skills/role-orchestrator/README.md +1 -22
- package/src/skills/role-orchestrator/SKILL.md +1 -59
- package/src/skills/skill-router/SKILL.md +0 -18
- package/src/skills/spec-kit-expert/SKILL.md +1 -3
- package/src/skills/specweave-detector/SKILL.md +225 -275
- package/src/skills/task-builder/README.md +1 -7
- package/src/templates/AGENTS.md.template +334 -0
- package/src/templates/CLAUDE.md.template +131 -297
- package/src/templates/README.md.template +115 -23
- package/src/templates/environments/minimal/README.md +0 -1
- package/INSTALL.md +0 -848
- package/SPECWEAVE.md +0 -711
- package/src/adapters/copilot/.github/copilot/instructions.md +0 -376
- package/src/adapters/cursor/.cursorrules +0 -325
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +0 -676
- package/src/commands/create-project.md +0 -528
- package/src/commands/generate-docs.md +0 -623
- package/src/commands/increment.md +0 -223
- package/src/commands/review-docs.md +0 -331
- package/src/commands/sync-github.md +0 -115
- package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
- package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
- package/src/skills/cost-optimizer/test-results/README.md +0 -46
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
- package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
- package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
- package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
- package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
- package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
- package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
- package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
- package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
- package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
- package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
- package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/templates/config.yaml +0 -351
- /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,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
|
-
---
|