specweave 0.1.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +600 -0
- package/README.md +263 -88
- package/bin/install-all.sh +1 -1
- package/bin/install-commands.sh +3 -3
- package/bin/specweave.js +39 -9
- package/dist/adapters/adapter-base.d.ts +1 -1
- package/dist/adapters/adapter-base.d.ts.map +1 -1
- package/dist/adapters/adapter-base.js +6 -41
- package/dist/adapters/adapter-base.js.map +1 -1
- package/dist/adapters/adapter-interface.js +1 -2
- package/dist/adapters/adapter-interface.js.map +1 -1
- package/dist/adapters/adapter-loader.d.ts +86 -0
- package/dist/adapters/adapter-loader.d.ts.map +1 -0
- package/dist/adapters/adapter-loader.js +216 -0
- package/dist/adapters/adapter-loader.js.map +1 -0
- package/dist/adapters/agents-md-generator.d.ts +48 -0
- package/dist/adapters/agents-md-generator.d.ts.map +1 -0
- package/dist/adapters/agents-md-generator.js +132 -0
- package/dist/adapters/agents-md-generator.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +2 -2
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +5 -42
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/claude-md-generator.d.ts +78 -0
- package/dist/adapters/claude-md-generator.d.ts.map +1 -0
- package/dist/adapters/claude-md-generator.js +246 -0
- package/dist/adapters/claude-md-generator.js.map +1 -0
- package/dist/adapters/codex/adapter.d.ts +50 -0
- package/dist/adapters/codex/adapter.d.ts.map +1 -0
- package/dist/adapters/codex/adapter.js +316 -0
- package/dist/adapters/codex/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +10 -9
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +35 -100
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +8 -6
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +47 -130
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/doc-generator.d.ts +69 -0
- package/dist/adapters/doc-generator.d.ts.map +1 -0
- package/dist/adapters/doc-generator.js +247 -0
- package/dist/adapters/doc-generator.js.map +1 -0
- package/dist/adapters/gemini/adapter.d.ts +50 -0
- package/dist/adapters/gemini/adapter.d.ts.map +1 -0
- package/dist/adapters/gemini/adapter.js +281 -0
- package/dist/adapters/gemini/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +7 -4
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +60 -59
- package/dist/adapters/generic/adapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +272 -170
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +22 -58
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +27 -64
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/core/credentials-manager.d.ts +90 -0
- package/dist/core/credentials-manager.d.ts.map +1 -0
- package/dist/core/credentials-manager.js +271 -0
- package/dist/core/credentials-manager.js.map +1 -0
- package/dist/core/project-structure-detector.d.ts +92 -0
- package/dist/core/project-structure-detector.d.ts.map +1 -0
- package/dist/core/project-structure-detector.js +289 -0
- package/dist/core/project-structure-detector.js.map +1 -0
- package/dist/core/rfc-generator-v2.d.ts +149 -0
- package/dist/core/rfc-generator-v2.d.ts.map +1 -0
- package/dist/core/rfc-generator-v2.js +399 -0
- package/dist/core/rfc-generator-v2.js.map +1 -0
- package/dist/core/rfc-generator.d.ts +147 -0
- package/dist/core/rfc-generator.d.ts.map +1 -0
- package/dist/core/rfc-generator.js +434 -0
- package/dist/core/rfc-generator.js.map +1 -0
- package/dist/integrations/ado/ado-client.d.ts +123 -0
- package/dist/integrations/ado/ado-client.d.ts.map +1 -0
- package/dist/integrations/ado/ado-client.js +398 -0
- package/dist/integrations/ado/ado-client.js.map +1 -0
- package/dist/integrations/jira/jira-client.d.ts +139 -0
- package/dist/integrations/jira/jira-client.d.ts.map +1 -0
- package/dist/integrations/jira/jira-client.js +386 -0
- package/dist/integrations/jira/jira-client.js.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts +75 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.js +474 -0
- package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -0
- package/dist/integrations/jira/jira-mapper.d.ts +105 -0
- package/dist/integrations/jira/jira-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-mapper.js +494 -0
- package/dist/integrations/jira/jira-mapper.js.map +1 -0
- package/dist/testing/test-generator.d.ts +117 -0
- package/dist/testing/test-generator.d.ts.map +1 -0
- package/dist/testing/test-generator.js +370 -0
- package/dist/testing/test-generator.js.map +1 -0
- package/dist/utils/auto-install.d.ts +3 -0
- package/dist/utils/auto-install.d.ts.map +1 -1
- package/dist/utils/auto-install.js +16 -82
- package/dist/utils/auto-install.js.map +1 -1
- package/dist/utils/esm-helpers.d.ts +50 -0
- package/dist/utils/esm-helpers.d.ts.map +1 -0
- package/dist/utils/esm-helpers.js +57 -0
- package/dist/utils/esm-helpers.js.map +1 -0
- package/package.json +16 -7
- package/src/adapters/README.md +1 -2
- package/src/adapters/adapter-base.ts +6 -3
- package/src/adapters/adapter-loader.ts +261 -0
- package/src/adapters/agents-md-generator.ts +162 -0
- package/src/adapters/claude/README.md +6 -14
- package/src/adapters/claude/adapter.ts +4 -4
- package/src/adapters/claude-md-generator.ts +311 -0
- package/src/adapters/codex/README.md +105 -0
- package/src/adapters/codex/adapter.ts +333 -0
- package/src/adapters/copilot/adapter.ts +36 -65
- package/src/adapters/cursor/README.md +0 -2
- package/src/adapters/cursor/adapter.ts +46 -92
- package/src/adapters/doc-generator.ts +331 -0
- package/src/adapters/gemini/README.md +97 -0
- package/src/adapters/gemini/adapter.ts +298 -0
- package/src/adapters/generic/adapter.ts +61 -57
- package/src/adapters/registry.yaml +86 -25
- package/src/agents/devops/AGENT.md +16 -18
- package/src/agents/docs-writer/AGENT.md +2 -2
- package/src/agents/pm/AGENT.md +1 -50
- package/src/commands/README.md +134 -111
- package/src/commands/{build.md → specweave.do.md} +185 -72
- package/src/commands/{done.md → specweave.done.md} +3 -3
- package/src/commands/{inc.md → specweave.inc.md} +4 -4
- package/src/commands/specweave.increment.md +383 -0
- package/src/commands/specweave.md +430 -0
- package/src/commands/specweave.next.md +495 -0
- package/src/commands/specweave.progress.md +258 -0
- package/src/commands/specweave.sync-docs.md +665 -0
- package/src/commands/specweave.sync-github.md +269 -0
- package/src/commands/specweave.sync-jira.md +197 -0
- package/src/commands/{validate.md → specweave.validate.md} +4 -4
- package/src/hooks/README.md +19 -29
- package/src/hooks/post-task-completion.sh +25 -30
- package/src/skills/ado-sync/README.md +1 -36
- package/src/skills/bmad-method-expert/SKILL.md +1 -3
- package/src/skills/brownfield-analyzer/SKILL.md +429 -23
- package/src/skills/brownfield-onboarder/SKILL.md +221 -8
- package/src/skills/context-loader/SKILL.md +239 -617
- package/src/skills/context-optimizer/SKILL.md +0 -30
- package/src/skills/github-sync/SKILL.md +1 -19
- package/src/skills/increment-planner/SKILL.md +64 -18
- package/src/skills/increment-quality-judge/SKILL.md +1 -36
- package/src/skills/jira-sync/README.md +1 -38
- package/src/skills/role-orchestrator/README.md +1 -22
- package/src/skills/role-orchestrator/SKILL.md +1 -59
- package/src/skills/skill-router/SKILL.md +0 -18
- package/src/skills/spec-kit-expert/SKILL.md +1 -3
- package/src/skills/specweave-detector/SKILL.md +225 -275
- package/src/skills/task-builder/README.md +1 -7
- package/src/templates/AGENTS.md.template +334 -0
- package/src/templates/CLAUDE.md.template +131 -297
- package/src/templates/README.md.template +115 -23
- package/src/templates/environments/minimal/README.md +0 -1
- package/INSTALL.md +0 -848
- package/SPECWEAVE.md +0 -711
- package/src/adapters/copilot/.github/copilot/instructions.md +0 -376
- package/src/adapters/cursor/.cursorrules +0 -325
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +0 -676
- package/src/commands/create-project.md +0 -528
- package/src/commands/generate-docs.md +0 -623
- package/src/commands/increment.md +0 -223
- package/src/commands/review-docs.md +0 -331
- package/src/commands/sync-github.md +0 -115
- package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
- package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
- package/src/skills/cost-optimizer/test-results/README.md +0 -46
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
- package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
- package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
- package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
- package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
- package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
- package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
- package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
- package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
- package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
- package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
- package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/templates/config.yaml +0 -351
- /package/src/commands/{list-increments.md → specweave.list-increments.md} +0 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specweave.increment
|
|
3
|
+
description: Plan new Product Increment - PM-led process (market research, spec, plan, auto-generate tasks). Auto-closes previous increment if PM gates pass.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Plan Product Increment
|
|
7
|
+
|
|
8
|
+
**PM-Led Workflow**: From market research to ready-to-build increment.
|
|
9
|
+
|
|
10
|
+
You are helping the user create a new SpecWeave increment with automatic closure of previous increment if ready.
|
|
11
|
+
|
|
12
|
+
## Steps:
|
|
13
|
+
|
|
14
|
+
### Step 0: Smart Check Previous Increment (if applicable)
|
|
15
|
+
|
|
16
|
+
**🎯 CRITICAL: Suggest, don't force** - help user make informed decision!
|
|
17
|
+
|
|
18
|
+
1. **Check for in-progress increments**:
|
|
19
|
+
```bash
|
|
20
|
+
# Find increments with status: in-progress
|
|
21
|
+
grep -r "status: in-progress" .specweave/increments/*/spec.md
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. **If previous increment found, validate PM gates**:
|
|
25
|
+
- **Gate 1**: All P1 tasks completed?
|
|
26
|
+
- **Gate 2**: Tests passing (>80% coverage)?
|
|
27
|
+
- **Gate 3**: Documentation updated (CLAUDE.md, README.md)?
|
|
28
|
+
|
|
29
|
+
3. **Decision matrix** (NEVER force, ALWAYS suggest):
|
|
30
|
+
```
|
|
31
|
+
All gates ✅ → Auto-close previous, create new (seamless)
|
|
32
|
+
|
|
33
|
+
Any gate ❌ → STOP and present options (user decides):
|
|
34
|
+
Option A: Complete 0001 first (recommended)
|
|
35
|
+
→ Finish remaining work before starting new
|
|
36
|
+
|
|
37
|
+
Option B: Move incomplete tasks to 0002
|
|
38
|
+
→ Transfer T006, T007 to new increment
|
|
39
|
+
→ Close 0001 as "completed with deferrals"
|
|
40
|
+
|
|
41
|
+
Option C: Cancel new increment
|
|
42
|
+
→ Stay on 0001, continue working
|
|
43
|
+
→ User will retry /inc when ready
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**CRITICAL**: NEVER auto-close with incomplete work! Always give user control.
|
|
47
|
+
|
|
48
|
+
4. **Auto-close output** (if gates pass):
|
|
49
|
+
```
|
|
50
|
+
📊 Previous Increment Check
|
|
51
|
+
|
|
52
|
+
Found: 0001-user-authentication (in-progress)
|
|
53
|
+
|
|
54
|
+
PM Gate Validation:
|
|
55
|
+
├─ Gate 1 (Tasks): 8/8 P1 completed ✅
|
|
56
|
+
├─ Gate 2 (Tests): 5/5 passing (85% coverage) ✅
|
|
57
|
+
└─ Gate 3 (Docs): CLAUDE.md ✅, README.md ✅
|
|
58
|
+
|
|
59
|
+
✅ Auto-closing increment 0001...
|
|
60
|
+
|
|
61
|
+
Proceeding with new increment 0002...
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
5. **Prompt output** (if gates fail):
|
|
65
|
+
```
|
|
66
|
+
⚠️ Previous Increment Incomplete
|
|
67
|
+
|
|
68
|
+
Found: 0001-user-authentication (in-progress)
|
|
69
|
+
|
|
70
|
+
PM Gate Validation:
|
|
71
|
+
├─ Gate 1 (Tasks): 6/8 P1 completed ❌ (2 P1 tasks remaining)
|
|
72
|
+
├─ Gate 2 (Tests): 3/5 passing (60% coverage) ❌
|
|
73
|
+
└─ Gate 3 (Docs): CLAUDE.md ✅, README.md ⏳
|
|
74
|
+
|
|
75
|
+
Options:
|
|
76
|
+
A. Complete 0001 first (recommended)
|
|
77
|
+
→ Run `/do 0001` to finish remaining tasks
|
|
78
|
+
|
|
79
|
+
B. Force close 0001 and defer tasks to 0002
|
|
80
|
+
→ Transfer T006, T007 to new increment
|
|
81
|
+
|
|
82
|
+
C. Cancel and stay on 0001
|
|
83
|
+
→ Continue working on authentication
|
|
84
|
+
|
|
85
|
+
What would you like to do? (A/B/C)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Why suggest, not force?**
|
|
89
|
+
- ✅ User stays in control (no surprises)
|
|
90
|
+
- ✅ Natural flow in happy path (auto-close if ready)
|
|
91
|
+
- ✅ Clear options when incomplete (complete, defer, or cancel)
|
|
92
|
+
- ✅ Enforces quality awareness (can't ignore incomplete work)
|
|
93
|
+
- ✅ No manual `/done` needed when gates pass
|
|
94
|
+
|
|
95
|
+
### Step 1: Find next increment number
|
|
96
|
+
|
|
97
|
+
- Scan `.specweave/increments/` directory
|
|
98
|
+
- Find highest number (e.g., 002)
|
|
99
|
+
- Next increment: 003
|
|
100
|
+
|
|
101
|
+
### Step 2: Detect tech stack (CRITICAL - framework-agnostic)
|
|
102
|
+
- Settings auto-detected
|
|
103
|
+
- If not found, detect from project files:
|
|
104
|
+
- `package.json` → TypeScript/JavaScript
|
|
105
|
+
- `requirements.txt` or `pyproject.toml` → Python
|
|
106
|
+
- `go.mod` → Go
|
|
107
|
+
- `Cargo.toml` → Rust
|
|
108
|
+
- `pom.xml` or `build.gradle` → Java
|
|
109
|
+
- `*.csproj` → C#/.NET
|
|
110
|
+
- Detect framework (NextJS, Django, FastAPI, Spring Boot, etc.)
|
|
111
|
+
- If detection fails, ask user: "What language/framework are you using?"
|
|
112
|
+
- Store detected tech stack for later use
|
|
113
|
+
|
|
114
|
+
### Step 3: Ask user for details
|
|
115
|
+
|
|
116
|
+
- "What would you like to build?" (get high-level description)
|
|
117
|
+
- "What's the short name?" (e.g., "user-authentication" for increment 003-user-authentication)
|
|
118
|
+
- "Priority? (P1/P2/P3)" (default: P1)
|
|
119
|
+
|
|
120
|
+
### Step 4: Activate Increment Planning Workflow
|
|
121
|
+
|
|
122
|
+
**🚨 CRITICAL - YOU MUST USE THE SKILL TOOL:**
|
|
123
|
+
|
|
124
|
+
**DO NOT** manually create files. **DO NOT** skip this step. **DO NOT** write spec.md or plan.md directly.
|
|
125
|
+
|
|
126
|
+
You MUST invoke the increment-planner skill to orchestrate the full PM-led workflow:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
Use the Skill tool:
|
|
130
|
+
command: "increment-planner"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The increment-planner skill will:
|
|
134
|
+
1. Invoke PM agent (via Task tool with subagent_type="pm")
|
|
135
|
+
2. Invoke Architect agent (via Task tool with subagent_type="architect")
|
|
136
|
+
3. Invoke other strategic agents as needed
|
|
137
|
+
4. Create living documentation in .specweave/docs/internal/
|
|
138
|
+
5. Create increment files that reference living docs
|
|
139
|
+
6. Auto-generate tasks.md using task-builder skill
|
|
140
|
+
7. Create context-manifest.yaml
|
|
141
|
+
8. Apply validation hooks
|
|
142
|
+
9. Trigger post-increment hooks (doc sync)
|
|
143
|
+
|
|
144
|
+
**WHY THIS IS MANDATORY:**
|
|
145
|
+
- ✅ Living docs get created (source of truth)
|
|
146
|
+
- ✅ Agents collaborate properly (PM → Architect flow)
|
|
147
|
+
- ✅ Tasks auto-generated from plan
|
|
148
|
+
- ✅ Hooks run (validation, doc sync)
|
|
149
|
+
- ✅ Quality gates enforced
|
|
150
|
+
- ❌ Direct file writing bypasses entire workflow
|
|
151
|
+
|
|
152
|
+
### Step 5: Skill Tool Invocation (MANDATORY)
|
|
153
|
+
|
|
154
|
+
**BEFORE PROCEEDING, USE THE SKILL TOOL:**
|
|
155
|
+
|
|
156
|
+
You must literally call the Skill tool like this:
|
|
157
|
+
```
|
|
158
|
+
Skill(command: "increment-planner")
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Wait for the skill to complete. Do NOT continue to Step 6 until the increment-planner skill returns.
|
|
162
|
+
|
|
163
|
+
### Step 6: Alternative Approach (ONLY IF SKILL FAILS)
|
|
164
|
+
|
|
165
|
+
**Only use this if Skill tool is unavailable or fails:**
|
|
166
|
+
|
|
167
|
+
Manually invoke agents using Task tool:
|
|
168
|
+
|
|
169
|
+
1. **Invoke PM Agent:**
|
|
170
|
+
```
|
|
171
|
+
Task(
|
|
172
|
+
subagent_type: "pm",
|
|
173
|
+
prompt: "Create product strategy for: [user description]
|
|
174
|
+
Detect tech stack from: [detected tech info]
|
|
175
|
+
Create living docs in .specweave/docs/internal/strategy/
|
|
176
|
+
Create increment spec.md that references strategy docs",
|
|
177
|
+
description: "PM product strategy"
|
|
178
|
+
)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
2. **Invoke Architect Agent:**
|
|
182
|
+
```
|
|
183
|
+
Task(
|
|
184
|
+
subagent_type: "architect",
|
|
185
|
+
prompt: "Read PM's strategy docs from .specweave/docs/internal/strategy/
|
|
186
|
+
Create technical architecture for: [user description]
|
|
187
|
+
Tech stack: [detected tech stack]
|
|
188
|
+
Create living docs in .specweave/docs/internal/architecture/
|
|
189
|
+
Create ADRs for all technical decisions
|
|
190
|
+
Create increment plan.md that references architecture docs",
|
|
191
|
+
description: "Architect technical design"
|
|
192
|
+
)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
3. **Auto-generate tasks.md:**
|
|
196
|
+
```
|
|
197
|
+
Skill(command: "task-builder")
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Pass detected tech stack to ALL agents** (CRITICAL!)
|
|
201
|
+
|
|
202
|
+
### Step 7: Verify Increment Creation
|
|
203
|
+
|
|
204
|
+
After the increment-planner skill completes, verify:
|
|
205
|
+
|
|
206
|
+
1. **Living docs created:**
|
|
207
|
+
- `.specweave/docs/internal/strategy/{module}/` exists
|
|
208
|
+
- `.specweave/docs/internal/architecture/adr/` has ADRs
|
|
209
|
+
|
|
210
|
+
2. **Increment files created:**
|
|
211
|
+
- `.specweave/increments/####-name/spec.md` (references strategy docs)
|
|
212
|
+
- `.specweave/increments/####-name/plan.md` (references architecture docs)
|
|
213
|
+
- `.specweave/increments/####-name/tasks.md` (auto-generated from plan)
|
|
214
|
+
- `.specweave/increments/####-name/tests.md` (test strategy)
|
|
215
|
+
- `.specweave/increments/####-name/context-manifest.yaml`
|
|
216
|
+
|
|
217
|
+
3. **Hooks executed:**
|
|
218
|
+
- Validation hooks ran
|
|
219
|
+
- Post-increment hooks ran
|
|
220
|
+
- Living documentation synced
|
|
221
|
+
|
|
222
|
+
### Step 8: Output to user
|
|
223
|
+
```
|
|
224
|
+
✅ Created increment 0003-user-authentication
|
|
225
|
+
|
|
226
|
+
Detected tech stack:
|
|
227
|
+
- Language: {detected-language} (e.g., Python, TypeScript, Go, Java)
|
|
228
|
+
- Framework: {detected-framework} (e.g., Django, FastAPI, NextJS, Spring Boot)
|
|
229
|
+
- Database: {specified-database} (e.g., PostgreSQL, MySQL, MongoDB)
|
|
230
|
+
- Platform: {specified-platform} (e.g., AWS, Hetzner, Vercel, self-hosted)
|
|
231
|
+
|
|
232
|
+
Location: .specweave/increments/0003-user-authentication/
|
|
233
|
+
|
|
234
|
+
📋 Files created:
|
|
235
|
+
- spec.md (6 user stories, 15 requirements)
|
|
236
|
+
- tasks.md (42 implementation tasks using {framework} patterns)
|
|
237
|
+
- pm-analysis.md (product strategy)
|
|
238
|
+
- architecture.md (system design for {framework})
|
|
239
|
+
- infrastructure.md ({platform} deployment)
|
|
240
|
+
- security.md ({framework}-specific security)
|
|
241
|
+
- test-strategy.md (E2E tests for {framework})
|
|
242
|
+
|
|
243
|
+
⏱️ Estimated effort: 3-4 weeks
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Step 9: Sync Strategic Docs to Living Docs
|
|
247
|
+
|
|
248
|
+
**🔥 CRITICAL: After increment planning, sync to living docs**
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
🔊 [Playing celebration sound...]
|
|
252
|
+
|
|
253
|
+
📝 Now syncing strategic documentation to living docs...
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**Run `/sync-docs update` to create initial documentation**:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
/sync-docs update
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
This will:
|
|
263
|
+
- Create ADRs from architectural decisions in plan.md (status: Proposed)
|
|
264
|
+
- Add new features to `.specweave/docs/public/overview/features.md`
|
|
265
|
+
- Add architecture diagrams to `.specweave/docs/internal/architecture/diagrams/`
|
|
266
|
+
- Update infrastructure docs in `.specweave/docs/internal/operations/`
|
|
267
|
+
- Update security docs in `.specweave/docs/internal/security/`
|
|
268
|
+
- May prompt for conflict resolution if needed
|
|
269
|
+
|
|
270
|
+
**After `/sync-docs update` completes**:
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
✅ Strategic documentation synchronized!
|
|
274
|
+
|
|
275
|
+
Next steps:
|
|
276
|
+
1. Review the increment plan and strategic docs
|
|
277
|
+
2. Start implementation: /do 0003
|
|
278
|
+
3. (Optional) Sync to GitHub: /sync-github
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Frontmatter Format (spec.md):
|
|
282
|
+
|
|
283
|
+
**IMPORTANT**: Tech stack is AUTO-DETECTED from project files (package.json, requirements.txt, etc.), NOT hardcoded!
|
|
284
|
+
|
|
285
|
+
```yaml
|
|
286
|
+
---
|
|
287
|
+
increment: 003-user-authentication
|
|
288
|
+
title: "User Authentication System"
|
|
289
|
+
priority: P1
|
|
290
|
+
status: planned
|
|
291
|
+
created: 2025-10-26
|
|
292
|
+
dependencies: []
|
|
293
|
+
structure: user-stories
|
|
294
|
+
|
|
295
|
+
# Tech stack is DETECTED, not hardcoded
|
|
296
|
+
tech_stack:
|
|
297
|
+
detected_from: "package.json" # or "requirements.txt", "go.mod", etc.
|
|
298
|
+
language: "{detected-language}" # e.g., "typescript", "python", "go", "java", "rust"
|
|
299
|
+
framework: "{detected-framework}" # e.g., "nextjs", "django", "fastapi", "spring-boot", "gin"
|
|
300
|
+
database: "{specified-database}" # e.g., "postgresql", "mysql", "mongodb", "sqlite"
|
|
301
|
+
orm: "{detected-orm}" # e.g., "prisma", "django-orm", "sqlalchemy", "hibernate"
|
|
302
|
+
|
|
303
|
+
# Platform is SPECIFIED by user or detected from config
|
|
304
|
+
platform: "{specified-platform}" # e.g., "hetzner", "aws", "vercel", "self-hosted"
|
|
305
|
+
estimated_cost: "{calculated-based-on-platform}"
|
|
306
|
+
---
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**Example for TypeScript/NextJS project**:
|
|
310
|
+
```yaml
|
|
311
|
+
tech_stack:
|
|
312
|
+
detected_from: "package.json"
|
|
313
|
+
language: "typescript"
|
|
314
|
+
framework: "nextjs"
|
|
315
|
+
database: "postgresql"
|
|
316
|
+
orm: "prisma"
|
|
317
|
+
platform: "vercel"
|
|
318
|
+
estimated_cost: "$20/month"
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**Example for Python/Django project**:
|
|
322
|
+
```yaml
|
|
323
|
+
tech_stack:
|
|
324
|
+
detected_from: "requirements.txt"
|
|
325
|
+
language: "python"
|
|
326
|
+
framework: "django"
|
|
327
|
+
database: "postgresql"
|
|
328
|
+
orm: "django-orm"
|
|
329
|
+
platform: "hetzner"
|
|
330
|
+
estimated_cost: "$12/month"
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**Example for Go/Gin project**:
|
|
334
|
+
```yaml
|
|
335
|
+
tech_stack:
|
|
336
|
+
detected_from: "go.mod"
|
|
337
|
+
language: "go"
|
|
338
|
+
framework: "gin"
|
|
339
|
+
database: "postgresql"
|
|
340
|
+
orm: "gorm"
|
|
341
|
+
platform: "aws"
|
|
342
|
+
estimated_cost: "$25/month"
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## Frontmatter Format (tasks.md):
|
|
346
|
+
|
|
347
|
+
```yaml
|
|
348
|
+
---
|
|
349
|
+
increment: 003-event-booking-saas
|
|
350
|
+
status: planned
|
|
351
|
+
dependencies:
|
|
352
|
+
- 001-skills-framework
|
|
353
|
+
- 002-role-based-agents
|
|
354
|
+
phases:
|
|
355
|
+
- infrastructure
|
|
356
|
+
- backend
|
|
357
|
+
- frontend
|
|
358
|
+
- testing
|
|
359
|
+
- deployment
|
|
360
|
+
estimated_tasks: 42
|
|
361
|
+
estimated_weeks: 3-4
|
|
362
|
+
---
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
## Autonomous Mode (Advanced):
|
|
366
|
+
|
|
367
|
+
If user says "autonomous mode" or "full automation":
|
|
368
|
+
1. Run all strategic agents
|
|
369
|
+
2. Create increment
|
|
370
|
+
3. **Start implementation immediately** (with permission)
|
|
371
|
+
4. Ask clarification questions only when critical
|
|
372
|
+
5. Suggest doc updates when needed
|
|
373
|
+
6. Complete full implementation autonomously
|
|
374
|
+
|
|
375
|
+
## Error Handling:
|
|
376
|
+
|
|
377
|
+
- If `.specweave/` not found: "Error: Not a SpecWeave project. Run specweave init first."
|
|
378
|
+
- If user description too vague: Ask more clarifying questions
|
|
379
|
+
- If strategic agents not available: "Warning: Some agents missing. Continue with basic spec?"
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
**Important**: This is the main entry point for creating new work in SpecWeave.
|