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,331 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: review-docs
|
|
3
|
-
description: Review strategic documentation before implementation (PM analysis, architecture, ADRs, infrastructure, security, testing)
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Review Strategic Documentation
|
|
7
|
-
|
|
8
|
-
You are presenting strategic documentation for user review before implementation begins.
|
|
9
|
-
|
|
10
|
-
## Steps:
|
|
11
|
-
|
|
12
|
-
1. **Detect current increment**:
|
|
13
|
-
- Look for most recent or in-progress increment in `.specweave/increments/`
|
|
14
|
-
- Or ask: "Which increment would you like to review? (001, 002, 003, etc.)"
|
|
15
|
-
|
|
16
|
-
2. **Read all strategic documentation**:
|
|
17
|
-
- spec.md (user stories, requirements)
|
|
18
|
-
- pm-analysis.md (if exists)
|
|
19
|
-
- architecture.md, ADRs in `.specweave/docs/architecture/`, `.specweave/docs/decisions/`
|
|
20
|
-
- infrastructure.md (if exists)
|
|
21
|
-
- security.md (if exists)
|
|
22
|
-
- test-strategy.md (if exists)
|
|
23
|
-
|
|
24
|
-
3. **Present comprehensive summary**:
|
|
25
|
-
|
|
26
|
-
## Review Format:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
═══════════════════════════════════════════════════════
|
|
30
|
-
📋 Strategic Documentation Review
|
|
31
|
-
═══════════════════════════════════════════════════════
|
|
32
|
-
|
|
33
|
-
Increment: 003-event-booking-saas
|
|
34
|
-
Title: Event Booking SaaS Platform
|
|
35
|
-
Priority: P1
|
|
36
|
-
Status: Planned
|
|
37
|
-
|
|
38
|
-
───────────────────────────────────────────────────────
|
|
39
|
-
✅ PRODUCT STRATEGY (pm-analysis.md)
|
|
40
|
-
───────────────────────────────────────────────────────
|
|
41
|
-
|
|
42
|
-
User Personas:
|
|
43
|
-
1. Barber Shop Owner (primary)
|
|
44
|
-
- Needs: Easy booking management, reduce no-shows
|
|
45
|
-
- Pain points: Manual scheduling, phone tag
|
|
46
|
-
|
|
47
|
-
2. Customer (secondary)
|
|
48
|
-
- Needs: Quick booking, reminders
|
|
49
|
-
- Pain points: Calling during business hours
|
|
50
|
-
|
|
51
|
-
Business Model:
|
|
52
|
-
- Revenue: Subscription ($29/month per business)
|
|
53
|
-
- Alternative: 3% commission per booking
|
|
54
|
-
- Target: 100 businesses in Year 1 ($34k ARR)
|
|
55
|
-
|
|
56
|
-
Feature Prioritization:
|
|
57
|
-
P1 (MVP):
|
|
58
|
-
- Booking calendar
|
|
59
|
-
- SMS/Email notifications
|
|
60
|
-
- Payment processing
|
|
61
|
-
|
|
62
|
-
P2 (Post-launch):
|
|
63
|
-
- Recurring bookings
|
|
64
|
-
- Multiple staff members
|
|
65
|
-
- Analytics dashboard
|
|
66
|
-
|
|
67
|
-
Success Metrics:
|
|
68
|
-
- Bookings per business: 50+/month
|
|
69
|
-
- No-show reduction: 30%
|
|
70
|
-
- Customer satisfaction: 4.5+/5
|
|
71
|
-
|
|
72
|
-
───────────────────────────────────────────────────────
|
|
73
|
-
✅ SYSTEM ARCHITECTURE (architecture.md)
|
|
74
|
-
───────────────────────────────────────────────────────
|
|
75
|
-
|
|
76
|
-
**IMPORTANT**: Architecture adapts to YOUR detected tech stack!
|
|
77
|
-
|
|
78
|
-
Tech Stack (detected from .specweave/config.yaml or project files):
|
|
79
|
-
Frontend: {detected-frontend} (e.g., NextJS, React, Vue, Angular, Svelte)
|
|
80
|
-
Backend: {detected-backend} (e.g., Django, FastAPI, Express, Spring Boot, Gin)
|
|
81
|
-
Database: {specified-database} (e.g., PostgreSQL, MySQL, MongoDB, SQLite)
|
|
82
|
-
ORM: {detected-orm} (e.g., Prisma, Django ORM, SQLAlchemy, Hibernate, GORM)
|
|
83
|
-
UI: {specified-ui} (e.g., Tailwind, Material UI, Bootstrap, Chakra)
|
|
84
|
-
Auth: {specified-auth} (e.g., NextAuth, Django Auth, Passport, JWT, Auth0)
|
|
85
|
-
Payments: {specified-payments} (e.g., Stripe, PayPal, Square)
|
|
86
|
-
|
|
87
|
-
System Design:
|
|
88
|
-
[Mermaid diagram showing architecture using YOUR framework]
|
|
89
|
-
|
|
90
|
-
Example for TypeScript/NextJS:
|
|
91
|
-
User → NextJS (SSR) → API Routes → Prisma → PostgreSQL
|
|
92
|
-
|
|
93
|
-
Example for Python/Django:
|
|
94
|
-
User → Django (Templates) → Views → Django ORM → PostgreSQL
|
|
95
|
-
|
|
96
|
-
Example for Go/Gin:
|
|
97
|
-
User → Gin API → Handlers → GORM → PostgreSQL
|
|
98
|
-
|
|
99
|
-
(Architecture diagram adapts to YOUR detected stack)
|
|
100
|
-
|
|
101
|
-
Data Models:
|
|
102
|
-
- User (auth, profile)
|
|
103
|
-
- Business (shop details)
|
|
104
|
-
- Service (haircut, massage, etc.)
|
|
105
|
-
- Booking (appointment)
|
|
106
|
-
- Payment (transaction)
|
|
107
|
-
|
|
108
|
-
API Design:
|
|
109
|
-
- POST /api/bookings/create
|
|
110
|
-
- GET /api/bookings/:id
|
|
111
|
-
- PUT /api/bookings/:id/cancel
|
|
112
|
-
- GET /api/availability
|
|
113
|
-
|
|
114
|
-
Scalability:
|
|
115
|
-
- Handles 10,000 users
|
|
116
|
-
- 1,000 concurrent bookings/day
|
|
117
|
-
- Redis caching for availability queries
|
|
118
|
-
- Database indexing on booking_date, business_id
|
|
119
|
-
|
|
120
|
-
───────────────────────────────────────────────────────
|
|
121
|
-
✅ ARCHITECTURE DECISIONS (ADRs)
|
|
122
|
-
───────────────────────────────────────────────────────
|
|
123
|
-
|
|
124
|
-
**ADRs are framework-specific and adapt to YOUR project**
|
|
125
|
-
|
|
126
|
-
Example ADRs for TypeScript/NextJS project:
|
|
127
|
-
ADR 001: NextJS over separate React + API
|
|
128
|
-
- Reason: Simplified deployment, SSR benefits
|
|
129
|
-
- Trade-off: Less separation of concerns
|
|
130
|
-
|
|
131
|
-
Example ADRs for Python/Django project:
|
|
132
|
-
ADR 001: Django monolith over microservices
|
|
133
|
-
- Reason: Faster development, easier deployment for MVP
|
|
134
|
-
- Trade-off: Harder to scale individual components
|
|
135
|
-
|
|
136
|
-
Example ADRs for Go/Gin project:
|
|
137
|
-
ADR 001: Gin over Echo
|
|
138
|
-
- Reason: Better performance, larger community
|
|
139
|
-
- Trade-off: Less built-in middleware
|
|
140
|
-
|
|
141
|
-
Platform Decision (adapts to user preference):
|
|
142
|
-
ADR 00X: {Platform} over {Alternative}
|
|
143
|
-
- Reason: Cost, performance, or developer familiarity
|
|
144
|
-
- Examples: Hetzner ($12/mo), Vercel ($20/mo), AWS ($25/mo), self-hosted
|
|
145
|
-
|
|
146
|
-
Database Decision (adapts to use case):
|
|
147
|
-
ADR 00X: {Database} over {Alternative}
|
|
148
|
-
- Reason: ACID compliance, scaling needs, or data structure
|
|
149
|
-
- Examples: PostgreSQL (relational), MongoDB (document), Redis (cache)
|
|
150
|
-
|
|
151
|
-
───────────────────────────────────────────────────────
|
|
152
|
-
✅ INFRASTRUCTURE (infrastructure.md)
|
|
153
|
-
───────────────────────────────────────────────────────
|
|
154
|
-
|
|
155
|
-
**Infrastructure adapts to chosen platform**
|
|
156
|
-
|
|
157
|
-
Platform: {detected-platform} (e.g., Hetzner, AWS, Vercel, self-hosted)
|
|
158
|
-
|
|
159
|
-
Example for Hetzner Cloud:
|
|
160
|
-
Resources:
|
|
161
|
-
- CX21 instance (2 vCPU, 4GB RAM): $6.90/month
|
|
162
|
-
- Managed Postgres (2GB): $5.00/month
|
|
163
|
-
- Total: ~$12/month
|
|
164
|
-
|
|
165
|
-
Example for AWS:
|
|
166
|
-
Resources:
|
|
167
|
-
- t3.small EC2 (2 vCPU, 2GB RAM): $15/month
|
|
168
|
-
- RDS PostgreSQL (db.t3.micro): $12/month
|
|
169
|
-
- Total: ~$27/month
|
|
170
|
-
|
|
171
|
-
Example for Vercel:
|
|
172
|
-
Resources:
|
|
173
|
-
- Hobby tier (for small projects): $20/month
|
|
174
|
-
- Pro tier (for production): $20/month
|
|
175
|
-
- Database (Neon/PlanetScale): $0-10/month
|
|
176
|
-
|
|
177
|
-
Deployment:
|
|
178
|
-
- Docker containers
|
|
179
|
-
- GitHub Actions CI/CD
|
|
180
|
-
- Blue-green deployment
|
|
181
|
-
- Automated backups (daily)
|
|
182
|
-
|
|
183
|
-
Monitoring:
|
|
184
|
-
- Uptime Kuma (self-hosted)
|
|
185
|
-
- Error tracking: Sentry (free tier)
|
|
186
|
-
- Analytics: Plausible (self-hosted)
|
|
187
|
-
|
|
188
|
-
DNS & SSL:
|
|
189
|
-
- Cloudflare (free tier)
|
|
190
|
-
- Let's Encrypt (auto-renewal)
|
|
191
|
-
|
|
192
|
-
───────────────────────────────────────────────────────
|
|
193
|
-
✅ SECURITY (security.md)
|
|
194
|
-
───────────────────────────────────────────────────────
|
|
195
|
-
|
|
196
|
-
**Security strategy adapts to YOUR framework**
|
|
197
|
-
|
|
198
|
-
Authentication (framework-specific):
|
|
199
|
-
- TypeScript/NextJS: NextAuth.js with credentials + OAuth
|
|
200
|
-
- Python/Django: Django Auth with Allauth
|
|
201
|
-
- Go/Gin: JWT tokens with middleware
|
|
202
|
-
- Java/Spring: Spring Security with OAuth2
|
|
203
|
-
|
|
204
|
-
Providers: Google, GitHub, Email magic links (framework-agnostic)
|
|
205
|
-
Session management: JWT or session cookies (framework-dependent)
|
|
206
|
-
|
|
207
|
-
Authorization (framework-specific):
|
|
208
|
-
- TypeScript/Prisma: Row-level security in PostgreSQL
|
|
209
|
-
- Python/Django: Django permissions + object-level permissions
|
|
210
|
-
- Go/GORM: Middleware-based access control
|
|
211
|
-
- Java/Spring: Spring Security annotations
|
|
212
|
-
|
|
213
|
-
Business logic:
|
|
214
|
-
- Businesses can only access their own data
|
|
215
|
-
- Customers can only see their own bookings
|
|
216
|
-
|
|
217
|
-
Data Protection (framework-agnostic):
|
|
218
|
-
- GDPR compliant
|
|
219
|
-
- Data encryption at rest (database-level)
|
|
220
|
-
- HTTPS only (enforced)
|
|
221
|
-
- PII data: minimal collection
|
|
222
|
-
|
|
223
|
-
Payment Security (framework-agnostic):
|
|
224
|
-
- Stripe (PCI-DSS compliant)
|
|
225
|
-
- No card data stored locally
|
|
226
|
-
- Webhook signature verification (framework-specific implementation)
|
|
227
|
-
|
|
228
|
-
───────────────────────────────────────────────────────
|
|
229
|
-
✅ TEST STRATEGY (test-strategy.md)
|
|
230
|
-
───────────────────────────────────────────────────────
|
|
231
|
-
|
|
232
|
-
Test Pyramid:
|
|
233
|
-
E2E Tests (10%): Playwright
|
|
234
|
-
- Complete booking flow
|
|
235
|
-
- Payment flow
|
|
236
|
-
- Cancellation flow
|
|
237
|
-
|
|
238
|
-
Integration Tests (30%): Jest + Testing Library
|
|
239
|
-
- API endpoints
|
|
240
|
-
- Database queries
|
|
241
|
-
- External service mocks (Stripe, Vonage)
|
|
242
|
-
|
|
243
|
-
Unit Tests (60%): Jest
|
|
244
|
-
- Business logic
|
|
245
|
-
- Utilities
|
|
246
|
-
- Validation functions
|
|
247
|
-
|
|
248
|
-
Coverage Target: 80%
|
|
249
|
-
|
|
250
|
-
Critical Paths (E2E):
|
|
251
|
-
1. Business signup → Create service → Receive booking
|
|
252
|
-
2. Customer booking → Payment → Confirmation
|
|
253
|
-
3. Cancellation → Refund
|
|
254
|
-
|
|
255
|
-
Performance Tests:
|
|
256
|
-
- 100 concurrent bookings
|
|
257
|
-
- Response time <200ms (p95)
|
|
258
|
-
- Database query optimization
|
|
259
|
-
|
|
260
|
-
───────────────────────────────────────────────────────
|
|
261
|
-
💰 COST ESTIMATE
|
|
262
|
-
───────────────────────────────────────────────────────
|
|
263
|
-
|
|
264
|
-
Infrastructure: $12/month
|
|
265
|
-
External Services:
|
|
266
|
-
- Stripe: 2.9% + $0.30 per transaction
|
|
267
|
-
- Resend: $20/month (10k emails)
|
|
268
|
-
- Vonage: $10/month (~2k SMS)
|
|
269
|
-
|
|
270
|
-
Total Monthly: $42/month (at 100 businesses)
|
|
271
|
-
|
|
272
|
-
Revenue: $2,900/month (100 businesses * $29)
|
|
273
|
-
Profit: $2,858/month (98% margin)
|
|
274
|
-
|
|
275
|
-
───────────────────────────────────────────────────────
|
|
276
|
-
⏱️ IMPLEMENTATION ESTIMATE
|
|
277
|
-
───────────────────────────────────────────────────────
|
|
278
|
-
|
|
279
|
-
Total Tasks: 42
|
|
280
|
-
Estimated Time: 3-4 weeks (1 developer)
|
|
281
|
-
|
|
282
|
-
Phases:
|
|
283
|
-
Week 1: Infrastructure + Backend (Tasks T001-T020)
|
|
284
|
-
Week 2: Frontend (Tasks T021-T035)
|
|
285
|
-
Week 3: Testing (Tasks T036-T040)
|
|
286
|
-
Week 4: Deployment + Polish (Tasks T041-T042)
|
|
287
|
-
|
|
288
|
-
═══════════════════════════════════════════════════════
|
|
289
|
-
|
|
290
|
-
Do you approve this plan?
|
|
291
|
-
|
|
292
|
-
Options:
|
|
293
|
-
✅ "approve" - Start creating tasks.md
|
|
294
|
-
⚠️ "changes needed" - Request specific updates
|
|
295
|
-
📋 "questions" - Ask clarifying questions
|
|
296
|
-
🔄 "regenerate" - Regenerate strategic analysis
|
|
297
|
-
|
|
298
|
-
───────────────────────────────────────────────────────
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
## After User Approval:
|
|
302
|
-
|
|
303
|
-
If user approves:
|
|
304
|
-
```
|
|
305
|
-
✅ Strategic documentation approved
|
|
306
|
-
|
|
307
|
-
Next steps:
|
|
308
|
-
1. Creating tasks.md with task-builder skill...
|
|
309
|
-
2. Breaking down into 42 implementation tasks...
|
|
310
|
-
3. Estimated completion: [date]
|
|
311
|
-
|
|
312
|
-
Once tasks.md is ready:
|
|
313
|
-
- Type "start implementation" to begin Task T001
|
|
314
|
-
- Or review tasks first with: cat .specweave/increments/0003-event-booking-saas/tasks.md
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
If user requests changes:
|
|
318
|
-
```
|
|
319
|
-
What would you like to change?
|
|
320
|
-
1. Architecture (tech stack, design)
|
|
321
|
-
2. Infrastructure (platform, cost)
|
|
322
|
-
3. Features (scope, priorities)
|
|
323
|
-
4. Security approach
|
|
324
|
-
5. Other
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
Then run appropriate agents again and re-present.
|
|
328
|
-
|
|
329
|
-
---
|
|
330
|
-
|
|
331
|
-
**Important**: This command is critical for ensuring user approval before starting costly implementation work.
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sync-github
|
|
3
|
-
description: Sync SpecWeave increment to GitHub issues with checkable subtasks
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Sync Increment to GitHub
|
|
7
|
-
|
|
8
|
-
You are syncing a SpecWeave increment to GitHub issues.
|
|
9
|
-
|
|
10
|
-
## Steps:
|
|
11
|
-
|
|
12
|
-
1. **Detect current increment** or ask user which to sync:
|
|
13
|
-
- Look in `.specweave/increments/` for most recent or in-progress increment
|
|
14
|
-
- Or ask: "Which increment would you like to sync? (001, 002, etc.)"
|
|
15
|
-
|
|
16
|
-
2. **Read increment files**:
|
|
17
|
-
- spec.md (user stories, acceptance tests)
|
|
18
|
-
- tasks.md (implementation tasks)
|
|
19
|
-
- Optional: pm-analysis.md, architecture.md, etc.
|
|
20
|
-
|
|
21
|
-
3. **Use github-sync skill** to:
|
|
22
|
-
- Create GitHub issue with title: `[Increment ###] [Title]`
|
|
23
|
-
- Add overview from spec.md
|
|
24
|
-
- Add user stories as checkable subtasks (GitHub task list)
|
|
25
|
-
- Add tasks as nested checklist
|
|
26
|
-
- Add labels: `specweave`, `priority:P1/P2/P3`, `status:planned/in-progress/completed`
|
|
27
|
-
- Add links back to `.specweave/increments/` files
|
|
28
|
-
|
|
29
|
-
4. **Store GitHub issue number**:
|
|
30
|
-
- Update increment frontmatter with `github_issue: #123`
|
|
31
|
-
- This enables bidirectional sync
|
|
32
|
-
|
|
33
|
-
## GitHub Issue Format:
|
|
34
|
-
|
|
35
|
-
```markdown
|
|
36
|
-
# [Increment ###] Title
|
|
37
|
-
|
|
38
|
-
## Overview
|
|
39
|
-
[From spec.md]
|
|
40
|
-
|
|
41
|
-
## Business Value
|
|
42
|
-
[From spec.md if exists]
|
|
43
|
-
|
|
44
|
-
## User Stories
|
|
45
|
-
|
|
46
|
-
- [ ] **US1**: [Title] (P1)
|
|
47
|
-
- Acceptance test 1
|
|
48
|
-
- Acceptance test 2
|
|
49
|
-
- [ ] **US2**: [Title] (P2)
|
|
50
|
-
- Acceptance test 1
|
|
51
|
-
|
|
52
|
-
## Implementation Tasks
|
|
53
|
-
|
|
54
|
-
### Phase 1: [Phase Name]
|
|
55
|
-
- [ ] **T001**: [Task description]
|
|
56
|
-
- [ ] **T002**: [Task description]
|
|
57
|
-
|
|
58
|
-
### Phase 2: [Phase Name]
|
|
59
|
-
- [ ] **T010**: [Task description]
|
|
60
|
-
|
|
61
|
-
## Documentation
|
|
62
|
-
|
|
63
|
-
- [Specification](.specweave/increments/####-name/spec.md)
|
|
64
|
-
- [Tasks](.specweave/increments/####-name/tasks.md)
|
|
65
|
-
- [Architecture](.specweave/docs/architecture/) (if applicable)
|
|
66
|
-
|
|
67
|
-
## Dependencies
|
|
68
|
-
|
|
69
|
-
- Depends on: #[issue-number] (if applicable)
|
|
70
|
-
|
|
71
|
-
## Success Criteria
|
|
72
|
-
|
|
73
|
-
[From spec.md]
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
*Created by SpecWeave - [Learn more](https://github.com/specweave/specweave)*
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Output to User:
|
|
80
|
-
|
|
81
|
-
After syncing, tell user:
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
✅ Synced increment 002-role-based-agents to GitHub
|
|
85
|
-
|
|
86
|
-
Issue: #15
|
|
87
|
-
URL: https://github.com/[user]/[repo]/issues/15
|
|
88
|
-
|
|
89
|
-
📋 Contains:
|
|
90
|
-
- 6 user stories
|
|
91
|
-
- 17 tasks
|
|
92
|
-
- Links to all documentation
|
|
93
|
-
|
|
94
|
-
The issue will automatically update when you mark tasks complete.
|
|
95
|
-
|
|
96
|
-
To update manually: /sync-github
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Bidirectional Sync
|
|
100
|
-
|
|
101
|
-
If the increment already has `github_issue` in frontmatter:
|
|
102
|
-
- Update existing issue instead of creating new one
|
|
103
|
-
- Sync status changes (completed tasks, etc.)
|
|
104
|
-
- Add comment with updates
|
|
105
|
-
|
|
106
|
-
## Error Handling
|
|
107
|
-
|
|
108
|
-
- If not in a git repository: "Error: Not a git repository. Initialize git first."
|
|
109
|
-
- If no GitHub credentials: "Error: GitHub credentials not configured. Set GITHUB_TOKEN."
|
|
110
|
-
- If increment not found: "Error: Increment not found. Use /create-increment first."
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
**Important**: This command requires the `github-sync` skill to be installed.
|
|
115
|
-
If not found, suggest: `npx specweave install github-sync`
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Basic Brownfield Analysis"
|
|
3
|
-
description: "Tests if brownfield-analyzer can scan a simple project and classify documents"
|
|
4
|
-
input:
|
|
5
|
-
prompt: "Analyze the project at /sample/project with docs/ and wiki/ folders"
|
|
6
|
-
files:
|
|
7
|
-
- path: "/sample/project/docs/requirements.md"
|
|
8
|
-
content: |
|
|
9
|
-
# Product Requirements
|
|
10
|
-
## User Story
|
|
11
|
-
As a user, I want to log in so I can access my account.
|
|
12
|
-
## Acceptance Criteria
|
|
13
|
-
- User can log in with email and password
|
|
14
|
-
- path: "/sample/project/docs/architecture.md"
|
|
15
|
-
content: |
|
|
16
|
-
# System Architecture
|
|
17
|
-
## Components
|
|
18
|
-
- API Gateway
|
|
19
|
-
- Auth Service
|
|
20
|
-
- Database
|
|
21
|
-
- path: "/sample/project/wiki/runbook.md"
|
|
22
|
-
content: |
|
|
23
|
-
# API Server Runbook
|
|
24
|
-
## Procedures
|
|
25
|
-
### Restart Service
|
|
26
|
-
1. Stop service
|
|
27
|
-
2. Wait 30 seconds
|
|
28
|
-
3. Start service
|
|
29
|
-
expected_output:
|
|
30
|
-
type: "analysis_report"
|
|
31
|
-
contains:
|
|
32
|
-
- "Brownfield Analysis Report"
|
|
33
|
-
- "PRD candidates: 1"
|
|
34
|
-
- "HLD candidates: 1"
|
|
35
|
-
- "Runbook candidates: 1"
|
|
36
|
-
- "docs/requirements.md → docs/internal/strategy/prd-"
|
|
37
|
-
- "docs/architecture.md → docs/internal/architecture/hld-"
|
|
38
|
-
- "wiki/runbook.md → docs/internal/operations/runbook-"
|
|
39
|
-
validation:
|
|
40
|
-
- "Report generated successfully"
|
|
41
|
-
- "All 3 documents classified correctly"
|
|
42
|
-
- "Migration plan included"
|
|
43
|
-
- "Effort estimate provided"
|
|
44
|
-
success_criteria:
|
|
45
|
-
- "Analysis report contains all sections"
|
|
46
|
-
- "Document classifications are correct"
|
|
47
|
-
- "Migration plan is actionable"
|
|
48
|
-
---
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Placeholder Test"
|
|
3
|
-
description: "TODO: Add actual test case for brownfield-analyzer"
|
|
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 brownfield-analyzer"
|
|
4
|
-
input:
|
|
5
|
-
prompt: "Test prompt"
|
|
6
|
-
expected_output:
|
|
7
|
-
type: "validation"
|
|
8
|
-
validation:
|
|
9
|
-
- "Placeholder validation"
|
|
10
|
-
success_criteria:
|
|
11
|
-
- "Test passes"
|
|
12
|
-
---
|