specweave 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALL.md +848 -0
- package/LICENSE +21 -0
- package/README.md +675 -0
- package/SPECWEAVE.md +665 -0
- package/bin/install-agents.sh +57 -0
- package/bin/install-all.sh +49 -0
- package/bin/install-commands.sh +56 -0
- package/bin/install-skills.sh +57 -0
- package/bin/specweave.js +81 -0
- package/dist/adapters/adapter-base.d.ts +50 -0
- package/dist/adapters/adapter-base.d.ts.map +1 -0
- package/dist/adapters/adapter-base.js +146 -0
- package/dist/adapters/adapter-base.js.map +1 -0
- package/dist/adapters/adapter-interface.d.ts +108 -0
- package/dist/adapters/adapter-interface.d.ts.map +1 -0
- package/dist/adapters/adapter-interface.js +9 -0
- package/dist/adapters/adapter-interface.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +54 -0
- package/dist/adapters/claude/adapter.d.ts.map +1 -0
- package/dist/adapters/claude/adapter.js +184 -0
- package/dist/adapters/claude/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +42 -0
- package/dist/adapters/copilot/adapter.d.ts.map +1 -0
- package/dist/adapters/copilot/adapter.js +239 -0
- package/dist/adapters/copilot/adapter.js.map +1 -0
- package/dist/adapters/cursor/adapter.d.ts +42 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -0
- package/dist/adapters/cursor/adapter.js +297 -0
- package/dist/adapters/cursor/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +40 -0
- package/dist/adapters/generic/adapter.d.ts.map +1 -0
- package/dist/adapters/generic/adapter.js +155 -0
- package/dist/adapters/generic/adapter.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +247 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +7 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +160 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +6 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +154 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/package.json +90 -0
- package/src/adapters/README.md +312 -0
- package/src/adapters/adapter-base.ts +146 -0
- package/src/adapters/adapter-interface.ts +120 -0
- package/src/adapters/claude/README.md +241 -0
- package/src/adapters/claude/adapter.ts +157 -0
- package/src/adapters/copilot/.github/copilot/instructions.md +376 -0
- package/src/adapters/copilot/README.md +200 -0
- package/src/adapters/copilot/adapter.ts +210 -0
- package/src/adapters/cursor/.cursor/context/docs-context.md +62 -0
- package/src/adapters/cursor/.cursor/context/increments-context.md +71 -0
- package/src/adapters/cursor/.cursor/context/strategy-context.md +73 -0
- package/src/adapters/cursor/.cursor/context/tests-context.md +89 -0
- package/src/adapters/cursor/.cursorrules +325 -0
- package/src/adapters/cursor/README.md +243 -0
- package/src/adapters/cursor/adapter.ts +268 -0
- package/src/adapters/generic/README.md +277 -0
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +676 -0
- package/src/adapters/generic/adapter.ts +159 -0
- package/src/adapters/registry.yaml +126 -0
- package/src/agents/architect/AGENT.md +416 -0
- package/src/agents/devops/AGENT.md +1738 -0
- package/src/agents/docs-writer/AGENT.md +239 -0
- package/src/agents/performance/AGENT.md +228 -0
- package/src/agents/pm/AGENT.md +751 -0
- package/src/agents/qa-lead/AGENT.md +150 -0
- package/src/agents/security/AGENT.md +179 -0
- package/src/agents/sre/AGENT.md +582 -0
- package/src/agents/sre/modules/backend-diagnostics.md +481 -0
- package/src/agents/sre/modules/database-diagnostics.md +509 -0
- package/src/agents/sre/modules/infrastructure.md +561 -0
- package/src/agents/sre/modules/monitoring.md +439 -0
- package/src/agents/sre/modules/security-incidents.md +421 -0
- package/src/agents/sre/modules/ui-diagnostics.md +302 -0
- package/src/agents/sre/playbooks/01-high-cpu-usage.md +204 -0
- package/src/agents/sre/playbooks/02-database-deadlock.md +241 -0
- package/src/agents/sre/playbooks/03-memory-leak.md +252 -0
- package/src/agents/sre/playbooks/04-slow-api-response.md +269 -0
- package/src/agents/sre/playbooks/05-ddos-attack.md +293 -0
- package/src/agents/sre/playbooks/06-disk-full.md +314 -0
- package/src/agents/sre/playbooks/07-service-down.md +333 -0
- package/src/agents/sre/playbooks/08-data-corruption.md +337 -0
- package/src/agents/sre/playbooks/09-cascade-failure.md +430 -0
- package/src/agents/sre/playbooks/10-rate-limit-exceeded.md +464 -0
- package/src/agents/sre/scripts/health-check.sh +230 -0
- package/src/agents/sre/scripts/log-analyzer.py +213 -0
- package/src/agents/sre/scripts/metrics-collector.sh +294 -0
- package/src/agents/sre/scripts/trace-analyzer.js +257 -0
- package/src/agents/sre/templates/incident-report.md +249 -0
- package/src/agents/sre/templates/mitigation-plan.md +375 -0
- package/src/agents/sre/templates/post-mortem.md +418 -0
- package/src/agents/sre/templates/runbook-template.md +412 -0
- package/src/agents/tech-lead/AGENT.md +263 -0
- package/src/commands/add-tasks.md +176 -0
- package/src/commands/close-increment.md +347 -0
- package/src/commands/create-increment.md +223 -0
- package/src/commands/create-project.md +528 -0
- package/src/commands/generate-docs.md +623 -0
- package/src/commands/list-increments.md +180 -0
- package/src/commands/review-docs.md +331 -0
- package/src/commands/start-increment.md +139 -0
- package/src/commands/sync-github.md +115 -0
- package/src/commands/validate-increment.md +800 -0
- package/src/hooks/README.md +252 -0
- package/src/hooks/docs-changed.sh +59 -0
- package/src/hooks/human-input-required.sh +55 -0
- package/src/hooks/post-task-completion.sh +57 -0
- package/src/hooks/pre-implementation.sh +47 -0
- package/src/skills/ado-sync/README.md +449 -0
- package/src/skills/ado-sync/SKILL.md +245 -0
- package/src/skills/ado-sync/test-cases/test-1.yaml +9 -0
- package/src/skills/ado-sync/test-cases/test-2.yaml +8 -0
- package/src/skills/ado-sync/test-cases/test-3.yaml +9 -0
- package/src/skills/bmad-method-expert/SKILL.md +628 -0
- package/src/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
- package/src/skills/bmad-method-expert/scripts/check-setup.js +208 -0
- package/src/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
- package/src/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/brownfield-analyzer/SKILL.md +523 -0
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +48 -0
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/SKILL.md +625 -0
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/context-loader/SKILL.md +734 -0
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +39 -0
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +44 -0
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +45 -0
- package/src/skills/context-optimizer/SKILL.md +618 -0
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +97 -0
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +109 -0
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +98 -0
- package/src/skills/cost-optimizer/SKILL.md +190 -0
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +75 -0
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +52 -0
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +63 -0
- package/src/skills/cost-optimizer/test-results/README.md +46 -0
- package/src/skills/design-system-architect/SKILL.md +107 -0
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +23 -0
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +24 -0
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +23 -0
- package/src/skills/diagrams-architect/SKILL.md +763 -0
- package/src/skills/diagrams-generator/SKILL.md +25 -0
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +9 -0
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +9 -0
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +8 -0
- package/src/skills/docs-updater/README.md +48 -0
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/dotnet-backend/SKILL.md +250 -0
- package/src/skills/e2e-playwright/README.md +506 -0
- package/src/skills/e2e-playwright/SKILL.md +457 -0
- package/src/skills/e2e-playwright/execute.js +373 -0
- package/src/skills/e2e-playwright/lib/utils.js +514 -0
- package/src/skills/e2e-playwright/package.json +33 -0
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +54 -0
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +64 -0
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +74 -0
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +98 -0
- package/src/skills/figma-designer/SKILL.md +149 -0
- package/src/skills/figma-implementer/SKILL.md +148 -0
- package/src/skills/figma-mcp-connector/SKILL.md +136 -0
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +22 -0
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +21 -0
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +18 -0
- package/src/skills/figma-to-code/SKILL.md +128 -0
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +29 -0
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +27 -0
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +28 -0
- package/src/skills/frontend/SKILL.md +177 -0
- package/src/skills/github-sync/SKILL.md +252 -0
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/hetzner-provisioner/README.md +308 -0
- package/src/skills/hetzner-provisioner/SKILL.md +251 -0
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +71 -0
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +85 -0
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +126 -0
- package/src/skills/hetzner-provisioner/test-results/README.md +259 -0
- package/src/skills/increment-planner/SKILL.md +889 -0
- package/src/skills/increment-planner/scripts/feature-utils.js +250 -0
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +27 -0
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +30 -0
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +24 -0
- package/src/skills/increment-quality-judge/SKILL.md +566 -0
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +95 -0
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +108 -0
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +87 -0
- package/src/skills/jira-sync/README.md +328 -0
- package/src/skills/jira-sync/SKILL.md +209 -0
- package/src/skills/jira-sync/test-cases/test-1.yaml +9 -0
- package/src/skills/jira-sync/test-cases/test-2.yaml +9 -0
- package/src/skills/jira-sync/test-cases/test-3.yaml +10 -0
- package/src/skills/nextjs/SKILL.md +176 -0
- package/src/skills/nodejs-backend/SKILL.md +181 -0
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/python-backend/SKILL.md +226 -0
- package/src/skills/role-orchestrator/README.md +197 -0
- package/src/skills/role-orchestrator/SKILL.md +1184 -0
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +98 -0
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +73 -0
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +121 -0
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +145 -0
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +149 -0
- package/src/skills/skill-creator/LICENSE.txt +202 -0
- package/src/skills/skill-creator/SKILL.md +209 -0
- package/src/skills/skill-creator/scripts/init_skill.py +303 -0
- package/src/skills/skill-creator/scripts/package_skill.py +110 -0
- package/src/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/skill-router/SKILL.md +497 -0
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +33 -0
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +42 -0
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +50 -0
- package/src/skills/spec-driven-brainstorming/README.md +264 -0
- package/src/skills/spec-driven-brainstorming/SKILL.md +439 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +148 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +190 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +233 -0
- package/src/skills/spec-driven-debugging/README.md +479 -0
- package/src/skills/spec-driven-debugging/SKILL.md +652 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +212 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +461 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +366 -0
- package/src/skills/spec-kit-expert/SKILL.md +1012 -0
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/specweave-ado-mapper/SKILL.md +501 -0
- package/src/skills/specweave-detector/SKILL.md +420 -0
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +37 -0
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +37 -0
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +34 -0
- package/src/skills/specweave-jira-mapper/SKILL.md +500 -0
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/task-builder/README.md +90 -0
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +12 -0
- package/src/templates/.env.example +144 -0
- package/src/templates/.gitignore.template +81 -0
- package/src/templates/CLAUDE.md.template +383 -0
- package/src/templates/README.md.template +240 -0
- package/src/templates/config.yaml +333 -0
- package/src/templates/docs/README.md +124 -0
- package/src/templates/docs/adr-template.md +118 -0
- package/src/templates/docs/hld-template.md +220 -0
- package/src/templates/docs/lld-template.md +580 -0
- package/src/templates/docs/prd-template.md +132 -0
- package/src/templates/docs/rfc-template.md +229 -0
- package/src/templates/docs/runbook-template.md +298 -0
- package/src/templates/environments/minimal/.env.production +16 -0
- package/src/templates/environments/minimal/README.md +54 -0
- package/src/templates/environments/minimal/deploy-production.yml +52 -0
- package/src/templates/environments/progressive/.env.qa +28 -0
- package/src/templates/environments/progressive/README.md +129 -0
- package/src/templates/environments/progressive/deploy-production.yml +93 -0
- package/src/templates/environments/progressive/deploy-qa.yml +62 -0
- package/src/templates/environments/progressive/deploy-staging.yml +67 -0
- package/src/templates/environments/standard/.env.development +20 -0
- package/src/templates/environments/standard/.env.production +30 -0
- package/src/templates/environments/standard/.env.staging +23 -0
- package/src/templates/environments/standard/README.md +97 -0
- package/src/templates/environments/standard/deploy-production.yml +68 -0
- package/src/templates/environments/standard/deploy-staging.yml +61 -0
- package/src/templates/environments/standard/docker-compose.yml +43 -0
- package/src/templates/increment-metadata-template.yaml +138 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# SpecWeave - Environment Variables Template
|
|
2
|
+
# Copy this file to .env and fill in your actual values
|
|
3
|
+
# NEVER commit .env to git!
|
|
4
|
+
|
|
5
|
+
# ===================================
|
|
6
|
+
# Infrastructure & Cloud Platforms
|
|
7
|
+
# ===================================
|
|
8
|
+
|
|
9
|
+
# Hetzner Cloud (https://console.hetzner.cloud/)
|
|
10
|
+
# Navigate to: Security → API Tokens → Generate API Token
|
|
11
|
+
# Permissions: Read & Write
|
|
12
|
+
HETZNER_API_TOKEN=your-hetzner-token-here-64-chars-alphanumeric
|
|
13
|
+
|
|
14
|
+
# AWS (https://console.aws.amazon.com/iam/)
|
|
15
|
+
# Navigate to: IAM → Users → Security Credentials
|
|
16
|
+
AWS_ACCESS_KEY_ID=your-aws-access-key-20-chars
|
|
17
|
+
AWS_SECRET_ACCESS_KEY=your-aws-secret-key-40-chars
|
|
18
|
+
AWS_REGION=us-east-1
|
|
19
|
+
|
|
20
|
+
# Azure (https://portal.azure.com/)
|
|
21
|
+
# Navigate to: App Registrations → New Registration
|
|
22
|
+
AZURE_CLIENT_ID=your-azure-client-id-uuid
|
|
23
|
+
AZURE_CLIENT_SECRET=your-azure-client-secret
|
|
24
|
+
AZURE_TENANT_ID=your-azure-tenant-id-uuid
|
|
25
|
+
AZURE_SUBSCRIPTION_ID=your-azure-subscription-id-uuid
|
|
26
|
+
|
|
27
|
+
# Google Cloud Platform (https://console.cloud.google.com/)
|
|
28
|
+
# Navigate to: IAM → Service Accounts → Create Service Account
|
|
29
|
+
# Download JSON key file and set path here
|
|
30
|
+
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
|
|
31
|
+
GCP_PROJECT_ID=your-gcp-project-id
|
|
32
|
+
|
|
33
|
+
# DigitalOcean (https://cloud.digitalocean.com/account/api/tokens)
|
|
34
|
+
DIGITALOCEAN_TOKEN=your-digitalocean-token-64-chars
|
|
35
|
+
|
|
36
|
+
# Railway (https://railway.app/account/tokens)
|
|
37
|
+
RAILWAY_TOKEN=your-railway-token-32-plus-chars
|
|
38
|
+
|
|
39
|
+
# Vercel (https://vercel.com/account/tokens)
|
|
40
|
+
VERCEL_TOKEN=your-vercel-token-here
|
|
41
|
+
|
|
42
|
+
# ===================================
|
|
43
|
+
# Integration Services
|
|
44
|
+
# ===================================
|
|
45
|
+
|
|
46
|
+
# GitHub (https://github.com/settings/tokens)
|
|
47
|
+
# Scopes: repo, read:org, workflow
|
|
48
|
+
GITHUB_TOKEN=ghp_your-github-token-40-chars
|
|
49
|
+
|
|
50
|
+
# JIRA (https://id.atlassian.com/manage-profile/security/api-tokens)
|
|
51
|
+
JIRA_API_TOKEN=your-jira-api-token
|
|
52
|
+
JIRA_EMAIL=your-email@example.com
|
|
53
|
+
JIRA_DOMAIN=your-domain.atlassian.net
|
|
54
|
+
|
|
55
|
+
# Azure DevOps (https://dev.azure.com/)
|
|
56
|
+
# Navigate to: User Settings → Personal Access Tokens
|
|
57
|
+
# Scopes: Work Items (Read, Write), Code (Read)
|
|
58
|
+
AZURE_DEVOPS_PAT=your-ado-personal-access-token-52-chars-base64
|
|
59
|
+
AZURE_DEVOPS_ORG=your-organization-name
|
|
60
|
+
AZURE_DEVOPS_PROJECT=your-project-name
|
|
61
|
+
|
|
62
|
+
# Figma (https://www.figma.com/developers/api#authentication)
|
|
63
|
+
# Navigate to: Settings → Account → Personal Access Tokens
|
|
64
|
+
FIGMA_ACCESS_TOKEN=figd_your-figma-token
|
|
65
|
+
|
|
66
|
+
# ===================================
|
|
67
|
+
# Database Connections
|
|
68
|
+
# ===================================
|
|
69
|
+
|
|
70
|
+
# PostgreSQL
|
|
71
|
+
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
|
|
72
|
+
|
|
73
|
+
# MySQL
|
|
74
|
+
MYSQL_HOST=localhost
|
|
75
|
+
MYSQL_PORT=3306
|
|
76
|
+
MYSQL_USER=your-mysql-user
|
|
77
|
+
MYSQL_PASSWORD=your-mysql-password
|
|
78
|
+
MYSQL_DATABASE=your-database-name
|
|
79
|
+
|
|
80
|
+
# MongoDB
|
|
81
|
+
MONGODB_URI=mongodb://localhost:27017/your-db-name
|
|
82
|
+
|
|
83
|
+
# Redis
|
|
84
|
+
REDIS_URL=redis://localhost:6379
|
|
85
|
+
|
|
86
|
+
# ===================================
|
|
87
|
+
# API Keys & Services
|
|
88
|
+
# ===================================
|
|
89
|
+
|
|
90
|
+
# Stripe (https://dashboard.stripe.com/apikeys)
|
|
91
|
+
STRIPE_SECRET_KEY=sk_test_your-stripe-secret-key
|
|
92
|
+
STRIPE_PUBLISHABLE_KEY=pk_test_your-stripe-publishable-key
|
|
93
|
+
STRIPE_WEBHOOK_SECRET=whsec_your-webhook-secret
|
|
94
|
+
|
|
95
|
+
# SendGrid (https://app.sendgrid.com/settings/api_keys)
|
|
96
|
+
SENDGRID_API_KEY=SG.your-sendgrid-api-key
|
|
97
|
+
|
|
98
|
+
# Twilio (https://www.twilio.com/console)
|
|
99
|
+
TWILIO_ACCOUNT_SID=your-twilio-account-sid
|
|
100
|
+
TWILIO_AUTH_TOKEN=your-twilio-auth-token
|
|
101
|
+
TWILIO_PHONE_NUMBER=+1234567890
|
|
102
|
+
|
|
103
|
+
# OpenAI (https://platform.openai.com/api-keys)
|
|
104
|
+
OPENAI_API_KEY=sk-your-openai-api-key
|
|
105
|
+
|
|
106
|
+
# Anthropic Claude (https://console.anthropic.com/)
|
|
107
|
+
ANTHROPIC_API_KEY=sk-ant-your-anthropic-api-key
|
|
108
|
+
|
|
109
|
+
# ===================================
|
|
110
|
+
# Application Configuration
|
|
111
|
+
# ===================================
|
|
112
|
+
|
|
113
|
+
# Environment
|
|
114
|
+
NODE_ENV=development
|
|
115
|
+
|
|
116
|
+
# Application URL
|
|
117
|
+
APP_URL=http://localhost:3000
|
|
118
|
+
|
|
119
|
+
# JWT Secret (generate with: openssl rand -hex 32)
|
|
120
|
+
JWT_SECRET=your-jwt-secret-at-least-32-chars-long
|
|
121
|
+
|
|
122
|
+
# Session Secret
|
|
123
|
+
SESSION_SECRET=your-session-secret-at-least-32-chars-long
|
|
124
|
+
|
|
125
|
+
# ===================================
|
|
126
|
+
# Production Secrets Manager
|
|
127
|
+
# ===================================
|
|
128
|
+
# For production, consider using:
|
|
129
|
+
# - Doppler: https://doppler.com
|
|
130
|
+
# - AWS Secrets Manager: https://aws.amazon.com/secrets-manager/
|
|
131
|
+
# - 1Password: https://1password.com/
|
|
132
|
+
# - HashiCorp Vault: https://www.vaultproject.io/
|
|
133
|
+
#
|
|
134
|
+
# DO NOT use .env files in production!
|
|
135
|
+
|
|
136
|
+
# ===================================
|
|
137
|
+
# Security Notes
|
|
138
|
+
# ===================================
|
|
139
|
+
# ✅ This file (.env.example) is committed to git
|
|
140
|
+
# ❌ Your actual .env file is NEVER committed (in .gitignore)
|
|
141
|
+
# 🔄 Rotate secrets every 90 days
|
|
142
|
+
# 🔒 Use production secrets managers for deployment
|
|
143
|
+
# 📝 Document where each secret comes from
|
|
144
|
+
# 👥 Share .env.example with team, NOT .env
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# SpecWeave
|
|
2
|
+
.specweave/cache/
|
|
3
|
+
.specweave/increments/*/logs/ # Gitignored, but structure preserved
|
|
4
|
+
.specweave/increments/*/test-results/
|
|
5
|
+
|
|
6
|
+
# Dependencies (framework-agnostic)
|
|
7
|
+
node_modules/ # JavaScript/TypeScript
|
|
8
|
+
.pnpm-store/
|
|
9
|
+
.yarn/
|
|
10
|
+
.npm/
|
|
11
|
+
__pycache__/ # Python
|
|
12
|
+
*.pyc
|
|
13
|
+
*.pyo
|
|
14
|
+
*.pyd
|
|
15
|
+
.Python
|
|
16
|
+
venv/
|
|
17
|
+
env/
|
|
18
|
+
ENV/
|
|
19
|
+
target/ # Rust
|
|
20
|
+
Cargo.lock
|
|
21
|
+
vendor/ # Go
|
|
22
|
+
go.sum
|
|
23
|
+
|
|
24
|
+
# Build outputs (framework-agnostic)
|
|
25
|
+
.next/ # NextJS
|
|
26
|
+
dist/ # Generic
|
|
27
|
+
build/ # Generic
|
|
28
|
+
out/ # Generic
|
|
29
|
+
.output/ # Nuxt
|
|
30
|
+
*.egg-info/ # Python
|
|
31
|
+
__pypackages__/ # Python
|
|
32
|
+
*.class # Java
|
|
33
|
+
*.jar # Java
|
|
34
|
+
bin/ # Go, Java
|
|
35
|
+
|
|
36
|
+
# Environment
|
|
37
|
+
.env
|
|
38
|
+
.env.local
|
|
39
|
+
.env.*.local
|
|
40
|
+
*.env
|
|
41
|
+
|
|
42
|
+
# Database (framework-agnostic)
|
|
43
|
+
*.db
|
|
44
|
+
*.sqlite
|
|
45
|
+
*.sqlite3
|
|
46
|
+
*.db-shm
|
|
47
|
+
*.db-wal
|
|
48
|
+
prisma/migrations/*/migration.sql # Prisma (TypeScript)
|
|
49
|
+
*/migrations/__pycache__/ # Django (Python)
|
|
50
|
+
|
|
51
|
+
# Testing (framework-agnostic)
|
|
52
|
+
coverage/ # Generic
|
|
53
|
+
.nyc_output/ # JavaScript
|
|
54
|
+
.coverage # Python
|
|
55
|
+
htmlcov/ # Python
|
|
56
|
+
*.cover # Python
|
|
57
|
+
.pytest_cache/ # Python
|
|
58
|
+
test-results/ # Playwright
|
|
59
|
+
|
|
60
|
+
# IDEs
|
|
61
|
+
.vscode/
|
|
62
|
+
.idea/
|
|
63
|
+
*.swp
|
|
64
|
+
*.swo
|
|
65
|
+
*~
|
|
66
|
+
|
|
67
|
+
# OS
|
|
68
|
+
.DS_Store
|
|
69
|
+
Thumbs.db
|
|
70
|
+
desktop.ini
|
|
71
|
+
|
|
72
|
+
# Logs
|
|
73
|
+
*.log
|
|
74
|
+
npm-debug.log*
|
|
75
|
+
yarn-debug.log*
|
|
76
|
+
yarn-error.log*
|
|
77
|
+
|
|
78
|
+
# Temporary files
|
|
79
|
+
*.tmp
|
|
80
|
+
.temp/
|
|
81
|
+
tmp/
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
# {PROJECT_NAME} - Development Guide
|
|
2
|
+
|
|
3
|
+
**THIS FILE IS YOUR QUICK REFERENCE FOR WORKING WITH THIS PROJECT**
|
|
4
|
+
|
|
5
|
+
This project uses **SpecWeave** - a specification-first AI development framework where specifications and documentation are the SOURCE OF TRUTH.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🔷 SpecWeave Auto-Routing
|
|
10
|
+
|
|
11
|
+
**MANDATORY**: This project has SpecWeave installed (`.specweave/` directory exists).
|
|
12
|
+
|
|
13
|
+
**Behavior**:
|
|
14
|
+
1. ✅ All development requests route through `specweave-detector` skill
|
|
15
|
+
2. ✅ Agents activate automatically based on task (PM, Architect, DevOps, etc.)
|
|
16
|
+
3. ✅ Context loaded selectively via manifests (70%+ token reduction)
|
|
17
|
+
4. ✅ Tech stack detected automatically
|
|
18
|
+
|
|
19
|
+
**Rule**: When in doubt, route through SpecWeave.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Tech Stack
|
|
24
|
+
|
|
25
|
+
**Project Type**: {MONOREPO_OR_SINGLE}
|
|
26
|
+
|
|
27
|
+
{#IF_SINGLE_STACK}
|
|
28
|
+
**Detected Stack**:
|
|
29
|
+
- **Language**: {DETECTED_LANGUAGE} (e.g., TypeScript, Python, Go)
|
|
30
|
+
- **Framework**: {DETECTED_FRAMEWORK} (e.g., Next.js, FastAPI, Django)
|
|
31
|
+
- **Database**: {SPECIFIED_DATABASE} (e.g., PostgreSQL, MongoDB)
|
|
32
|
+
- **Platform**: {SPECIFIED_PLATFORM} (e.g., Hetzner, AWS, Vercel)
|
|
33
|
+
{#ENDIF}
|
|
34
|
+
|
|
35
|
+
{#IF_MONOREPO}
|
|
36
|
+
**Services**:
|
|
37
|
+
- **{SERVICE_1_NAME}**: {SERVICE_1_LANGUAGE} + {SERVICE_1_FRAMEWORK} ({SERVICE_1_PATH}/)
|
|
38
|
+
- **{SERVICE_2_NAME}**: {SERVICE_2_LANGUAGE} + {SERVICE_2_FRAMEWORK} ({SERVICE_2_PATH}/)
|
|
39
|
+
{#ENDIF}
|
|
40
|
+
|
|
41
|
+
**Config**: See `.specweave/config.yaml` for complete configuration
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🚨 CRITICAL: File Organization Rules
|
|
46
|
+
|
|
47
|
+
**MANDATORY**: Keep project root CLEAN. ALL AI-generated supporting files MUST go into increment folders.
|
|
48
|
+
|
|
49
|
+
### What Goes Where
|
|
50
|
+
|
|
51
|
+
**✅ ALLOWED in Project Root**:
|
|
52
|
+
- `CLAUDE.md` (this file - ONLY file we add)
|
|
53
|
+
- User's existing files (package.json, src/, etc. - unchanged)
|
|
54
|
+
- Standard config files (.env, .gitignore, tsconfig.json, etc.)
|
|
55
|
+
|
|
56
|
+
**❌ NEVER Create in Root** (use increment folders instead):
|
|
57
|
+
- Logs → `.specweave/increments/{increment-id}/logs/`
|
|
58
|
+
- Scripts → `.specweave/increments/{increment-id}/scripts/`
|
|
59
|
+
- Reports → `.specweave/increments/{increment-id}/reports/`
|
|
60
|
+
- Analysis files → `.specweave/increments/{increment-id}/reports/`
|
|
61
|
+
- Temporary files → `.specweave/increments/{increment-id}/logs/`
|
|
62
|
+
|
|
63
|
+
### Increment-Centric Organization
|
|
64
|
+
|
|
65
|
+
**ALL work belongs to an INCREMENT**:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
.specweave/increments/0001-user-auth/
|
|
69
|
+
├── spec.md # WHAT & WHY
|
|
70
|
+
├── plan.md # HOW
|
|
71
|
+
├── tasks.md # Implementation steps
|
|
72
|
+
├── tests.md # Test strategy
|
|
73
|
+
├── context-manifest.yaml # Selective loading
|
|
74
|
+
├── logs/ # ✅ Execution logs, errors, AI sessions
|
|
75
|
+
│ ├── execution.log
|
|
76
|
+
│ ├── errors.log
|
|
77
|
+
│ └── ai-session.log
|
|
78
|
+
├── scripts/ # ✅ Helper scripts (migration, setup, validation)
|
|
79
|
+
│ ├── migration.sql
|
|
80
|
+
│ ├── setup.sh
|
|
81
|
+
│ └── validation.py
|
|
82
|
+
└── reports/ # ✅ Analysis, completion, performance reports
|
|
83
|
+
├── completion.md
|
|
84
|
+
├── test-results.md
|
|
85
|
+
└── performance.md
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Benefits**:
|
|
89
|
+
- ✅ Complete traceability (know which increment created which files)
|
|
90
|
+
- ✅ Easy cleanup (delete increment folder = delete all related files)
|
|
91
|
+
- ✅ Clear context (all files for a feature in one place)
|
|
92
|
+
- ✅ No root clutter (project root stays clean)
|
|
93
|
+
|
|
94
|
+
### Enforcement
|
|
95
|
+
|
|
96
|
+
**When AI generates files**:
|
|
97
|
+
|
|
98
|
+
1. **Identify current increment**: Which feature are you working on?
|
|
99
|
+
2. **Create in increment folder**: `.specweave/increments/{id}/{type}/`
|
|
100
|
+
3. **Never in root**: NEVER create supporting files in project root
|
|
101
|
+
|
|
102
|
+
**Example**:
|
|
103
|
+
```
|
|
104
|
+
❌ WRONG:
|
|
105
|
+
project-root/
|
|
106
|
+
├── analysis-report.md # NO! Pollutes root
|
|
107
|
+
├── migration-script.py # NO! Pollutes root
|
|
108
|
+
└── execution.log # NO! Pollutes root
|
|
109
|
+
|
|
110
|
+
✅ CORRECT:
|
|
111
|
+
.specweave/increments/0001-user-auth/
|
|
112
|
+
├── reports/analysis-report.md # YES! Organized
|
|
113
|
+
├── scripts/migration-script.py # YES! Organized
|
|
114
|
+
└── logs/execution.log # YES! Organized
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Project Structure
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
{PROJECT_NAME}/
|
|
123
|
+
├── .specweave/ # SpecWeave framework
|
|
124
|
+
│ ├── config.yaml # Project configuration
|
|
125
|
+
│ ├── docs/ # 5-pillar documentation
|
|
126
|
+
│ │ ├── internal/
|
|
127
|
+
│ │ │ ├── strategy/ # Business specs (WHAT, WHY)
|
|
128
|
+
│ │ │ ├── architecture/ # Technical design (HOW)
|
|
129
|
+
│ │ │ ├── delivery/ # Guides, roadmap, CI/CD
|
|
130
|
+
│ │ │ ├── operations/ # Runbooks, monitoring
|
|
131
|
+
│ │ │ └── governance/ # Security, compliance
|
|
132
|
+
│ │ └── public/ # Published docs
|
|
133
|
+
│ ├── increments/ # Features (auto-numbered)
|
|
134
|
+
│ │ └── 0001-feature-name/
|
|
135
|
+
│ │ ├── spec.md # WHAT & WHY
|
|
136
|
+
│ │ ├── plan.md # HOW
|
|
137
|
+
│ │ ├── tasks.md # Implementation steps
|
|
138
|
+
│ │ ├── tests.md # Test strategy
|
|
139
|
+
│ │ ├── context-manifest.yaml # Selective loading
|
|
140
|
+
│ │ ├── logs/ # ✅ Execution logs, errors
|
|
141
|
+
│ │ ├── scripts/ # ✅ Helper scripts
|
|
142
|
+
│ │ └── reports/ # ✅ Analysis, reports
|
|
143
|
+
│ └── tests/ # Centralized test repository
|
|
144
|
+
│
|
|
145
|
+
├── .claude/ # Installed agents/skills
|
|
146
|
+
│ ├── agents/ # Selective installation
|
|
147
|
+
│ ├── skills/ # Selective installation
|
|
148
|
+
│ └── commands/ # Slash commands
|
|
149
|
+
│
|
|
150
|
+
├── CLAUDE.md # This file (ONLY file we add)
|
|
151
|
+
└── src/ # Your source code (unchanged)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Quick Commands
|
|
157
|
+
|
|
158
|
+
| Command | Purpose | Example |
|
|
159
|
+
|---------|---------|---------|
|
|
160
|
+
| `/create-increment` | Create new feature | `/create-increment "user auth"` |
|
|
161
|
+
| `/review-docs` | Review docs vs code | `/review-docs --increment=003` |
|
|
162
|
+
| `/sync-github` | Sync to GitHub issues | `/sync-github` |
|
|
163
|
+
|
|
164
|
+
**All commands adapt to your tech stack automatically**
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Working with Increments
|
|
169
|
+
|
|
170
|
+
### Create New Feature
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
/create-increment "feature description"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**This creates**:
|
|
177
|
+
- Auto-numbered folder (`.specweave/increments/000X-name/`)
|
|
178
|
+
- spec.md (WHAT & WHY - PM agent)
|
|
179
|
+
- plan.md (HOW - Architect agent)
|
|
180
|
+
- tasks.md (Implementation steps)
|
|
181
|
+
- tests.md (Test strategy - QA Lead agent)
|
|
182
|
+
- context-manifest.yaml (Selective loading)
|
|
183
|
+
|
|
184
|
+
### Status Progression
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
backlog → planned → in-progress → completed → closed
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### WIP Limits
|
|
191
|
+
|
|
192
|
+
- **Solo developer**: 1-2 increments in progress
|
|
193
|
+
- **Small team (2-5)**: 2-3 increments in progress
|
|
194
|
+
- **Large team (10+)**: 3-5 increments in progress
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Agents (Activate Automatically)
|
|
199
|
+
|
|
200
|
+
**Strategic Agents** (installed for all projects):
|
|
201
|
+
|
|
202
|
+
| Agent | Purpose | Activates When |
|
|
203
|
+
|-------|---------|----------------|
|
|
204
|
+
| `pm` | Requirements, user stories | Planning features |
|
|
205
|
+
| `architect` | System design, ADRs | Technical design |
|
|
206
|
+
| `security` | Threat modeling | Security review |
|
|
207
|
+
| `qa-lead` | Test strategy | Testing |
|
|
208
|
+
| `devops` | Infrastructure, deployment | Deployment needed |
|
|
209
|
+
|
|
210
|
+
**Implementation Agents** (installed based on your tech stack):
|
|
211
|
+
|
|
212
|
+
{#IF_PYTHON}
|
|
213
|
+
- `python-backend` - Python APIs (FastAPI, Django)
|
|
214
|
+
{#ENDIF}
|
|
215
|
+
{#IF_NODEJS}
|
|
216
|
+
- `nodejs-backend` - Node.js APIs (Express, NestJS)
|
|
217
|
+
{#ENDIF}
|
|
218
|
+
{#IF_NEXTJS}
|
|
219
|
+
- `nextjs` - Next.js applications
|
|
220
|
+
{#ENDIF}
|
|
221
|
+
{#IF_FRONTEND}
|
|
222
|
+
- `frontend` - React/Vue/Angular frontend
|
|
223
|
+
{#ENDIF}
|
|
224
|
+
|
|
225
|
+
**See**: `.claude/agents/` for all installed agents
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Skills (Activate Automatically)
|
|
230
|
+
|
|
231
|
+
**Framework Skills** (always available):
|
|
232
|
+
|
|
233
|
+
| Skill | Purpose | Activates When |
|
|
234
|
+
|-------|---------|----------------|
|
|
235
|
+
| `specweave-detector` | Auto-detect SpecWeave | Any request |
|
|
236
|
+
| `increment-planner` | Plan increments/features | Creating increments/features |
|
|
237
|
+
| `context-loader` | Load context selectively | Working on increments |
|
|
238
|
+
| `skill-router` | Route to appropriate skill | Ambiguous requests |
|
|
239
|
+
|
|
240
|
+
**Integration Skills** (optional, install when needed):
|
|
241
|
+
|
|
242
|
+
| Skill | Purpose | Install Command |
|
|
243
|
+
|-------|---------|-----------------|
|
|
244
|
+
| `jira-sync` | Sync with JIRA | `npx specweave install jira-sync` |
|
|
245
|
+
| `github-sync` | Sync with GitHub | `npx specweave install github-sync` |
|
|
246
|
+
| `hetzner-provisioner` | Deploy to Hetzner | `npx specweave install hetzner-provisioner` |
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Documentation Philosophy
|
|
251
|
+
|
|
252
|
+
**You chose**: {DOCUMENTATION_APPROACH}
|
|
253
|
+
|
|
254
|
+
{#IF_COMPREHENSIVE}
|
|
255
|
+
### Comprehensive Upfront Approach
|
|
256
|
+
- Create complete specifications before coding (500-600+ pages)
|
|
257
|
+
- All ADRs documented in advance
|
|
258
|
+
- Full architecture and API contracts upfront
|
|
259
|
+
- Best for: Enterprise, regulated industries, large teams
|
|
260
|
+
{#ENDIF}
|
|
261
|
+
|
|
262
|
+
{#IF_INCREMENTAL}
|
|
263
|
+
### Incremental/Evolutionary Approach
|
|
264
|
+
- Start with overview (10-20 pages)
|
|
265
|
+
- Build documentation as you go (like Microsoft)
|
|
266
|
+
- Add modules/specs as features are planned
|
|
267
|
+
- Best for: Startups, MVPs, small teams, evolving requirements
|
|
268
|
+
{#ENDIF}
|
|
269
|
+
|
|
270
|
+
**Both approaches use the same framework and 5-pillar structure.**
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Testing
|
|
275
|
+
|
|
276
|
+
**Four Levels of Test Cases**:
|
|
277
|
+
|
|
278
|
+
1. **Specification** (`.specweave/docs/internal/strategy/`) - TC-0001 acceptance criteria
|
|
279
|
+
2. **Feature** (`.specweave/increments/####/tests.md`) - Test coverage matrix
|
|
280
|
+
3. **Skill** (`src/skills/{name}/test-cases/`) - 3+ YAML test cases
|
|
281
|
+
4. **Code** (`tests/`) - Automated tests (Unit, Integration, E2E)
|
|
282
|
+
|
|
283
|
+
**Requirements**:
|
|
284
|
+
- ✅ E2E tests (Playwright/Cypress/etc.) when UI exists
|
|
285
|
+
- ✅ >80% coverage for critical paths
|
|
286
|
+
- ✅ Tests MUST tell the truth (no false positives)
|
|
287
|
+
|
|
288
|
+
**See**: [Testing Strategy Guide](.specweave/docs/internal/delivery/guides/testing-strategy.md)
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Deployment
|
|
293
|
+
|
|
294
|
+
**Deployment Target**: {DEPLOYMENT_TARGET}
|
|
295
|
+
|
|
296
|
+
{#IF_HETZNER}
|
|
297
|
+
**Platform**: Hetzner Cloud (cheapest option)
|
|
298
|
+
**Configuration**: See `.specweave/config.yaml`
|
|
299
|
+
**Secrets**: `.env` (gitignored)
|
|
300
|
+
{#ENDIF}
|
|
301
|
+
|
|
302
|
+
{#IF_AWS}
|
|
303
|
+
**Platform**: AWS (enterprise)
|
|
304
|
+
**Configuration**: See `.specweave/config.yaml`
|
|
305
|
+
**Secrets**: AWS IAM credentials in `.env` (gitignored)
|
|
306
|
+
{#ENDIF}
|
|
307
|
+
|
|
308
|
+
{#IF_VERCEL}
|
|
309
|
+
**Platform**: Vercel (best for Next.js)
|
|
310
|
+
**Configuration**: See `.specweave/config.yaml`
|
|
311
|
+
**Secrets**: Vercel token in `.env` (gitignored)
|
|
312
|
+
{#ENDIF}
|
|
313
|
+
|
|
314
|
+
{#IF_LOCAL}
|
|
315
|
+
**Platform**: Local development (Docker Compose)
|
|
316
|
+
**Configuration**: See `docker-compose.yml`
|
|
317
|
+
{#ENDIF}
|
|
318
|
+
|
|
319
|
+
**See**: [Deployment Guide](.specweave/docs/internal/delivery/guides/deployment-intelligence.md)
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Detailed Guides
|
|
324
|
+
|
|
325
|
+
**For complete workflows, agents load guides from** `.specweave/docs/internal/delivery/guides/`:
|
|
326
|
+
|
|
327
|
+
| Guide | Purpose |
|
|
328
|
+
|-------|---------|
|
|
329
|
+
| [increment-lifecycle.md](.specweave/docs/internal/delivery/guides/increment-lifecycle.md) | Complete increment management |
|
|
330
|
+
| [development-workflow.md](.specweave/docs/internal/delivery/guides/development-workflow.md) | Greenfield and brownfield workflows |
|
|
331
|
+
| [testing-strategy.md](.specweave/docs/internal/delivery/guides/testing-strategy.md) | Testing philosophy (4 levels) |
|
|
332
|
+
| [deployment-intelligence.md](.specweave/docs/internal/delivery/guides/deployment-intelligence.md) | Deployment target detection |
|
|
333
|
+
| [diagram-conventions.md](.specweave/docs/internal/delivery/guides/diagram-conventions.md) | C4 diagrams and Mermaid |
|
|
334
|
+
|
|
335
|
+
**Agents automatically load relevant guides when needed** - you don't manage this manually.
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Context Precision (70%+ Token Reduction)
|
|
340
|
+
|
|
341
|
+
**How it works**: Each increment has a `context-manifest.yaml` that specifies ONLY the specs/docs needed for that feature.
|
|
342
|
+
|
|
343
|
+
**Example**:
|
|
344
|
+
```yaml
|
|
345
|
+
spec_sections:
|
|
346
|
+
- .specweave/docs/internal/strategy/auth/spec.md
|
|
347
|
+
documentation:
|
|
348
|
+
- .specweave/docs/internal/architecture/auth-design.md
|
|
349
|
+
- .specweave/docs/internal/architecture/adr/0003-auth-method.md
|
|
350
|
+
max_context_tokens: 10000
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Benefits**:
|
|
354
|
+
- Load exactly what's needed (not everything)
|
|
355
|
+
- 70%+ token reduction vs loading full specs
|
|
356
|
+
- Scales to enterprise (500+ page specs)
|
|
357
|
+
|
|
358
|
+
**Loaded by**: `context-loader` skill when working on increment
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Project-Specific Notes
|
|
363
|
+
|
|
364
|
+
{#CUSTOM_NOTES}
|
|
365
|
+
<!-- Add project-specific conventions, team workflows, deployment notes here -->
|
|
366
|
+
{#ENDCUSTOM}
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Quick Start
|
|
371
|
+
|
|
372
|
+
**Create your first feature**:
|
|
373
|
+
```bash
|
|
374
|
+
/create-increment "your feature description"
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**Need help?**: Ask Claude to load the relevant guide, or ask about specific workflows.
|
|
378
|
+
|
|
379
|
+
**SpecWeave Documentation**: https://specweave.dev
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
**Last Updated**: Auto-updated via SpecWeave hooks
|