specweave 0.1.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +600 -0
- package/README.md +245 -81
- 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} +141 -69
- package/src/commands/{done.md → specweave.done.md} +3 -3
- package/src/commands/{inc.md → specweave.inc.md} +4 -4
- package/src/commands/{increment.md → specweave.increment.md} +143 -76
- package/src/commands/specweave.md +430 -0
- package/src/commands/specweave.next.md +495 -0
- package/src/commands/{progress.md → specweave.progress.md} +12 -12
- 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 -298
- 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 -743
- 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/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,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
|
-
---
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Hetzner Provisioning with SSL (Let's Encrypt)"
|
|
3
|
-
description: "Provision infrastructure with automatic SSL certificate setup using Let's Encrypt"
|
|
4
|
-
skill: hetzner-provisioner
|
|
5
|
-
priority: P1
|
|
6
|
-
estimated_time: "15-20 minutes"
|
|
7
|
-
|
|
8
|
-
input:
|
|
9
|
-
prompt: "Deploy my NextJS app on Hetzner with Postgres and SSL for my-saas.com"
|
|
10
|
-
requirements:
|
|
11
|
-
app_type: nextjs
|
|
12
|
-
instance_type: cx11
|
|
13
|
-
database: postgres
|
|
14
|
-
ssl: true
|
|
15
|
-
domain: "my-saas.com"
|
|
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
|
-
|
|
34
|
-
- type: hcloud_firewall
|
|
35
|
-
name: app
|
|
36
|
-
rules:
|
|
37
|
-
- port: 80 # HTTP (redirects to HTTPS)
|
|
38
|
-
- port: 443 # HTTPS
|
|
39
|
-
- port: 22 # SSH
|
|
40
|
-
|
|
41
|
-
nginx_config_generated: true
|
|
42
|
-
nginx_config_path: "nginx/nginx.conf"
|
|
43
|
-
|
|
44
|
-
certbot_setup: true
|
|
45
|
-
certbot_commands:
|
|
46
|
-
- "certbot --nginx -d my-saas.com -d www.my-saas.com"
|
|
47
|
-
- "certbot renew --dry-run" # Auto-renewal test
|
|
48
|
-
|
|
49
|
-
ssl_configuration:
|
|
50
|
-
provider: "Let's Encrypt"
|
|
51
|
-
auto_renewal: true
|
|
52
|
-
renewal_schedule: "Monthly via cron"
|
|
53
|
-
cert_path: "/etc/letsencrypt/live/my-saas.com/fullchain.pem"
|
|
54
|
-
key_path: "/etc/letsencrypt/live/my-saas.com/privkey.pem"
|
|
55
|
-
|
|
56
|
-
cloud_init_yaml:
|
|
57
|
-
packages:
|
|
58
|
-
- nginx
|
|
59
|
-
- certbot
|
|
60
|
-
- python3-certbot-nginx
|
|
61
|
-
runcmd:
|
|
62
|
-
- "systemctl enable nginx"
|
|
63
|
-
- "systemctl start nginx"
|
|
64
|
-
|
|
65
|
-
dns_configuration_guide: true
|
|
66
|
-
dns_records_required:
|
|
67
|
-
- type: A
|
|
68
|
-
name: "@"
|
|
69
|
-
value: "[SERVER_IP]"
|
|
70
|
-
ttl: 3600
|
|
71
|
-
|
|
72
|
-
- type: A
|
|
73
|
-
name: "www"
|
|
74
|
-
value: "[SERVER_IP]"
|
|
75
|
-
ttl: 3600
|
|
76
|
-
|
|
77
|
-
cost_estimate:
|
|
78
|
-
monthly: "$11.33"
|
|
79
|
-
breakdown:
|
|
80
|
-
- "CX11 instance: $5.83/month"
|
|
81
|
-
- "Managed Postgres (2GB): $5.00/month"
|
|
82
|
-
- "Storage (20GB): $0.50/month"
|
|
83
|
-
- "SSL (Let's Encrypt): Free"
|
|
84
|
-
total: "$11.33/month"
|
|
85
|
-
within_budget: true
|
|
86
|
-
|
|
87
|
-
deployment_guide:
|
|
88
|
-
prerequisites:
|
|
89
|
-
- "Domain registered (my-saas.com)"
|
|
90
|
-
- "DNS access to create A records"
|
|
91
|
-
|
|
92
|
-
steps:
|
|
93
|
-
- "1. Run terraform apply to provision infrastructure"
|
|
94
|
-
- "2. Note the server IP from terraform output"
|
|
95
|
-
- "3. Create DNS A records pointing to server IP"
|
|
96
|
-
- "4. Wait for DNS propagation (5-30 minutes)"
|
|
97
|
-
- "5. SSH into server and run certbot command"
|
|
98
|
-
- "6. Verify SSL: https://my-saas.com"
|
|
99
|
-
|
|
100
|
-
post_deployment:
|
|
101
|
-
- "SSL auto-renews via certbot cron job"
|
|
102
|
-
- "Force HTTPS redirect configured"
|
|
103
|
-
- "SSL certificate expires in 90 days, renews automatically"
|
|
104
|
-
|
|
105
|
-
validation:
|
|
106
|
-
- "nginx.conf exists and contains SSL configuration"
|
|
107
|
-
- "certbot setup script exists"
|
|
108
|
-
- "cloud-init includes nginx and certbot packages"
|
|
109
|
-
- "DNS configuration guide provided"
|
|
110
|
-
- "HTTPS redirect configured (port 80 → 443)"
|
|
111
|
-
- "Cost remains under $15/month"
|
|
112
|
-
|
|
113
|
-
expected_errors:
|
|
114
|
-
- possible: "DNS not propagated yet"
|
|
115
|
-
solution: "Wait for DNS propagation (check with dig my-saas.com)"
|
|
116
|
-
|
|
117
|
-
- possible: "Certbot fails - port 80 not accessible"
|
|
118
|
-
solution: "Check firewall rules allow port 80"
|
|
119
|
-
|
|
120
|
-
success_criteria:
|
|
121
|
-
- "SSL certificate obtained successfully"
|
|
122
|
-
- "HTTPS working: https://my-saas.com"
|
|
123
|
-
- "HTTP redirects to HTTPS"
|
|
124
|
-
- "Auto-renewal configured"
|
|
125
|
-
- "All deployment steps documented"
|
|
126
|
-
---
|