specweave 1.0.521 → 1.0.523
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-plugin/README.md +1 -1
- package/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/bin/specweave.js +7 -7
- package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.js +44 -10
- package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.js +5 -11
- package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
- package/dist/src/adapters/adapter-base.d.ts +5 -0
- package/dist/src/adapters/adapter-base.d.ts.map +1 -1
- package/dist/src/adapters/adapter-base.js +7 -0
- package/dist/src/adapters/adapter-base.js.map +1 -1
- package/dist/src/adapters/adapter-interface.d.ts +9 -0
- package/dist/src/adapters/adapter-interface.d.ts.map +1 -1
- package/dist/src/adapters/aider/adapter.d.ts +1 -0
- package/dist/src/adapters/aider/adapter.d.ts.map +1 -1
- package/dist/src/adapters/aider/adapter.js +3 -0
- package/dist/src/adapters/aider/adapter.js.map +1 -1
- package/dist/src/adapters/amazonq/adapter.d.ts +1 -0
- package/dist/src/adapters/amazonq/adapter.d.ts.map +1 -1
- package/dist/src/adapters/amazonq/adapter.js +3 -0
- package/dist/src/adapters/amazonq/adapter.js.map +1 -1
- package/dist/src/adapters/antigravity/adapter.d.ts +1 -0
- package/dist/src/adapters/antigravity/adapter.d.ts.map +1 -1
- package/dist/src/adapters/antigravity/adapter.js +3 -0
- package/dist/src/adapters/antigravity/adapter.js.map +1 -1
- package/dist/src/adapters/cline/adapter.d.ts +1 -0
- package/dist/src/adapters/cline/adapter.d.ts.map +1 -1
- package/dist/src/adapters/cline/adapter.js +3 -0
- package/dist/src/adapters/cline/adapter.js.map +1 -1
- package/dist/src/adapters/codex/README.md +1 -1
- package/dist/src/adapters/codex/adapter.d.ts +1 -0
- package/dist/src/adapters/codex/adapter.d.ts.map +1 -1
- package/dist/src/adapters/codex/adapter.js +3 -0
- package/dist/src/adapters/codex/adapter.js.map +1 -1
- package/dist/src/adapters/continue/adapter.d.ts +1 -0
- package/dist/src/adapters/continue/adapter.d.ts.map +1 -1
- package/dist/src/adapters/continue/adapter.js +3 -0
- package/dist/src/adapters/continue/adapter.js.map +1 -1
- package/dist/src/adapters/copilot/adapter.d.ts +1 -0
- package/dist/src/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/src/adapters/copilot/adapter.js +3 -0
- package/dist/src/adapters/copilot/adapter.js.map +1 -1
- package/dist/src/adapters/cursor/adapter.d.ts +1 -0
- package/dist/src/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/src/adapters/cursor/adapter.js +3 -0
- package/dist/src/adapters/cursor/adapter.js.map +1 -1
- package/dist/src/adapters/gemini/README.md +1 -1
- package/dist/src/adapters/gemini/adapter.d.ts +1 -0
- package/dist/src/adapters/gemini/adapter.d.ts.map +1 -1
- package/dist/src/adapters/gemini/adapter.js +3 -0
- package/dist/src/adapters/gemini/adapter.js.map +1 -1
- package/dist/src/adapters/generic/adapter.d.ts +1 -0
- package/dist/src/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/src/adapters/generic/adapter.js +3 -0
- package/dist/src/adapters/generic/adapter.js.map +1 -1
- package/dist/src/adapters/jetbrains/adapter.d.ts +1 -0
- package/dist/src/adapters/jetbrains/adapter.d.ts.map +1 -1
- package/dist/src/adapters/jetbrains/adapter.js +3 -0
- package/dist/src/adapters/jetbrains/adapter.js.map +1 -1
- package/dist/src/adapters/kimi/adapter.d.ts +1 -0
- package/dist/src/adapters/kimi/adapter.d.ts.map +1 -1
- package/dist/src/adapters/kimi/adapter.js +3 -0
- package/dist/src/adapters/kimi/adapter.js.map +1 -1
- package/dist/src/adapters/opencode/adapter.d.ts +1 -0
- package/dist/src/adapters/opencode/adapter.d.ts.map +1 -1
- package/dist/src/adapters/opencode/adapter.js +3 -0
- package/dist/src/adapters/opencode/adapter.js.map +1 -1
- package/dist/src/adapters/tabnine/adapter.d.ts +1 -0
- package/dist/src/adapters/tabnine/adapter.d.ts.map +1 -1
- package/dist/src/adapters/tabnine/adapter.js +3 -0
- package/dist/src/adapters/tabnine/adapter.js.map +1 -1
- package/dist/src/adapters/trae/adapter.d.ts +1 -0
- package/dist/src/adapters/trae/adapter.d.ts.map +1 -1
- package/dist/src/adapters/trae/adapter.js +3 -0
- package/dist/src/adapters/trae/adapter.js.map +1 -1
- package/dist/src/adapters/windsurf/adapter.d.ts +1 -0
- package/dist/src/adapters/windsurf/adapter.d.ts.map +1 -1
- package/dist/src/adapters/windsurf/adapter.js +3 -0
- package/dist/src/adapters/windsurf/adapter.js.map +1 -1
- package/dist/src/adapters/zed/adapter.d.ts +1 -0
- package/dist/src/adapters/zed/adapter.d.ts.map +1 -1
- package/dist/src/adapters/zed/adapter.js +3 -0
- package/dist/src/adapters/zed/adapter.js.map +1 -1
- package/dist/src/cli/commands/complete.d.ts +10 -7
- package/dist/src/cli/commands/complete.d.ts.map +1 -1
- package/dist/src/cli/commands/complete.js +60 -14
- package/dist/src/cli/commands/complete.js.map +1 -1
- package/dist/src/cli/commands/evaluate-completion.d.ts.map +1 -1
- package/dist/src/cli/commands/evaluate-completion.js +8 -38
- package/dist/src/cli/commands/evaluate-completion.js.map +1 -1
- package/dist/src/cli/commands/refresh-plugins.d.ts +15 -0
- package/dist/src/cli/commands/refresh-plugins.d.ts.map +1 -1
- package/dist/src/cli/commands/refresh-plugins.js +135 -70
- package/dist/src/cli/commands/refresh-plugins.js.map +1 -1
- package/dist/src/cli/helpers/init/claude-settings-lsp.js +1 -1
- package/dist/src/cli/helpers/init/claude-settings-lsp.js.map +1 -1
- package/dist/src/core/increment/completion-validator.d.ts.map +1 -1
- package/dist/src/core/increment/completion-validator.js +2 -3
- package/dist/src/core/increment/completion-validator.js.map +1 -1
- package/dist/src/core/increment/increment-utils.d.ts +7 -7
- package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
- package/dist/src/core/increment/increment-utils.js +19 -13
- package/dist/src/core/increment/increment-utils.js.map +1 -1
- package/dist/src/core/increment/status-change-sync-trigger.d.ts.map +1 -1
- package/dist/src/core/increment/status-change-sync-trigger.js +5 -2
- package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
- package/dist/src/core/increment/status-commands.d.ts.map +1 -1
- package/dist/src/core/increment/status-commands.js +3 -4
- package/dist/src/core/increment/status-commands.js.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.d.ts +1 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +13 -0
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/repo-structure/setup-summary.js +1 -1
- package/dist/src/core/repo-structure/setup-summary.js.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.js +1 -1
- package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
- package/dist/src/integrations/ado/ado-client.d.ts.map +1 -1
- package/dist/src/integrations/ado/ado-client.js +5 -1
- package/dist/src/integrations/ado/ado-client.js.map +1 -1
- package/dist/src/locales/de/cli.json +1 -1
- package/dist/src/locales/en/cli.json +1 -1
- package/dist/src/locales/es/cli.json +1 -1
- package/dist/src/locales/fr/cli.json +1 -1
- package/dist/src/locales/ja/cli.json +1 -1
- package/dist/src/locales/ko/cli.json +1 -1
- package/dist/src/locales/pt/cli.json +1 -1
- package/dist/src/locales/ru/cli.json +1 -1
- package/dist/src/locales/zh/cli.json +1 -1
- package/dist/src/sync/external-issue-auto-creator.d.ts.map +1 -1
- package/dist/src/sync/external-issue-auto-creator.js +6 -2
- package/dist/src/sync/external-issue-auto-creator.js.map +1 -1
- package/dist/src/sync/github-reconciler.d.ts.map +1 -1
- package/dist/src/sync/github-reconciler.js +5 -11
- package/dist/src/sync/github-reconciler.js.map +1 -1
- package/dist/src/utils/agents-md-compiler.js +7 -7
- package/dist/src/utils/plugin-copier.d.ts +2 -0
- package/dist/src/utils/plugin-copier.d.ts.map +1 -1
- package/dist/src/utils/plugin-copier.js +12 -7
- package/dist/src/utils/plugin-copier.js.map +1 -1
- package/dist/src/utils/resolve-increment-id.d.ts +24 -0
- package/dist/src/utils/resolve-increment-id.d.ts.map +1 -0
- package/dist/src/utils/resolve-increment-id.js +53 -0
- package/dist/src/utils/resolve-increment-id.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/.claude-plugin/plugin.json +3 -2
- package/plugins/specweave/commands/import-external.md +4 -4
- package/plugins/specweave/lib/integrations/ado/ado-spec-sync.js +35 -6
- package/plugins/specweave/lib/integrations/ado/ado-spec-sync.ts +45 -10
- package/plugins/specweave/lib/vendor/sync/github-reconciler.js +5 -11
- package/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
- package/plugins/specweave/skills/help/SKILL.md +150 -0
- package/plugins/specweave/skills/team-lead/SKILL.md +68 -4
- package/scripts/check-node-version.js +1 -1
- package/src/templates/AGENTS.md.template +48 -38
- package/src/templates/CLAUDE.md.template +2 -0
- package/src/templates/README.md.template +25 -23
- package/src/templates/lsp-plugin/plugin.json +1 -1
- package/src/templates/tasks.md.template +2 -2
|
@@ -111,7 +111,30 @@ Skip increment pre-flight entirely. Brainstorm doesn't need a spec — it explor
|
|
|
111
111
|
1. Create team: `TeamCreate({ team_name: "brainstorm-{slug}", description: "Brainstorm: {topic}" })`
|
|
112
112
|
2. Read agent templates from `agents/brainstorm-advocate.md`, `agents/brainstorm-critic.md`, `agents/brainstorm-pragmatist.md`
|
|
113
113
|
3. Replace `[BRAINSTORM_QUESTION]` with the user's question/topic
|
|
114
|
-
4. Spawn all 3 agents in parallel
|
|
114
|
+
4. Spawn all 3 agents in parallel — each call MUST include `team_name` so agents join the team (and get tmux panes):
|
|
115
|
+
```
|
|
116
|
+
Task({
|
|
117
|
+
team_name: "brainstorm-{slug}",
|
|
118
|
+
name: "brainstorm-advocate",
|
|
119
|
+
subagent_type: "general-purpose",
|
|
120
|
+
mode: "bypassPermissions",
|
|
121
|
+
prompt: <replaced brainstorm-advocate.md content>
|
|
122
|
+
})
|
|
123
|
+
Task({
|
|
124
|
+
team_name: "brainstorm-{slug}",
|
|
125
|
+
name: "brainstorm-critic",
|
|
126
|
+
subagent_type: "general-purpose",
|
|
127
|
+
mode: "bypassPermissions",
|
|
128
|
+
prompt: <replaced brainstorm-critic.md content>
|
|
129
|
+
})
|
|
130
|
+
Task({
|
|
131
|
+
team_name: "brainstorm-{slug}",
|
|
132
|
+
name: "brainstorm-pragmatist",
|
|
133
|
+
subagent_type: "general-purpose",
|
|
134
|
+
mode: "bypassPermissions",
|
|
135
|
+
prompt: <replaced brainstorm-pragmatist.md content>
|
|
136
|
+
})
|
|
137
|
+
```
|
|
115
138
|
5. **PASSIVE WAIT (CRITICAL)**: Do NOT apply §8b stuck detection to brainstorm agents.
|
|
116
139
|
Brainstorm agents send `STATUS:` heartbeats (not task-granularity `T-{N}/{total}`).
|
|
117
140
|
Wait patiently for `PERSPECTIVE_COMPLETE:` messages — expected 2-5 minutes per agent.
|
|
@@ -144,7 +167,23 @@ Planning mode runs PM and Architect agents in parallel for richer, faster spec c
|
|
|
144
167
|
2. **Spawn PM + Architect in parallel** (TRUE parallelism):
|
|
145
168
|
- Read `agents/pm.md`, replace `[INCREMENT_ID]`, `[MASTER_INCREMENT_PATH]`, `[FEATURE_DESCRIPTION]`
|
|
146
169
|
- Read `agents/architect.md`, replace `[INCREMENT_ID]`, `[MASTER_INCREMENT_PATH]`
|
|
147
|
-
- **Spawn BOTH
|
|
170
|
+
- **Spawn BOTH in a single step — each call MUST include `team_name`:**
|
|
171
|
+
```
|
|
172
|
+
Task({
|
|
173
|
+
team_name: "plan-{feature-slug}",
|
|
174
|
+
name: "pm-agent",
|
|
175
|
+
subagent_type: "general-purpose",
|
|
176
|
+
mode: "bypassPermissions",
|
|
177
|
+
prompt: <replaced pm.md content>
|
|
178
|
+
})
|
|
179
|
+
Task({
|
|
180
|
+
team_name: "plan-{feature-slug}",
|
|
181
|
+
name: "architect-agent",
|
|
182
|
+
subagent_type: "general-purpose",
|
|
183
|
+
mode: "bypassPermissions",
|
|
184
|
+
prompt: <replaced architect.md content>
|
|
185
|
+
})
|
|
186
|
+
```
|
|
148
187
|
- PM writes spec.md with user stories and ACs
|
|
149
188
|
- Architect starts codebase exploration immediately (does NOT need spec.md for this)
|
|
150
189
|
- Architect polls for spec.md, reads it when PM finishes, then designs architecture
|
|
@@ -196,7 +235,16 @@ Skip increment pre-flight. Research is exploratory — no spec needed.
|
|
|
196
235
|
- Multi-faceted topic: spawn 2-3 researchers with different scopes
|
|
197
236
|
(e.g., "research auth" → one agent on OAuth providers, one on session management, one on security best practices)
|
|
198
237
|
3. Replace `[RESEARCH_TOPIC]` and `[RESEARCH_SCOPE]` in each agent prompt
|
|
199
|
-
4. Spawn all researchers in parallel
|
|
238
|
+
4. Spawn all researchers in parallel — each call MUST include `team_name`:
|
|
239
|
+
```
|
|
240
|
+
Task({
|
|
241
|
+
team_name: "research-{slug}",
|
|
242
|
+
name: "researcher-{scope}",
|
|
243
|
+
subagent_type: "general-purpose",
|
|
244
|
+
mode: "bypassPermissions",
|
|
245
|
+
prompt: <replaced researcher.md content>
|
|
246
|
+
})
|
|
247
|
+
```
|
|
200
248
|
5. Collect `RESEARCH_COMPLETE:` messages
|
|
201
249
|
6. Merge findings into a unified research report:
|
|
202
250
|
- Cross-reference findings between agents
|
|
@@ -223,7 +271,23 @@ Testing mode requires an increment (it needs to know WHAT to test).
|
|
|
223
271
|
- **Unit test agent**: read `agents/testing.md`, override scope to unit tests only
|
|
224
272
|
- **E2E test agent**: read `agents/testing.md`, override scope to E2E tests only
|
|
225
273
|
- Split scope via the agent prompt, not via separate templates
|
|
226
|
-
4. Spawn both in parallel
|
|
274
|
+
4. Spawn both in parallel — each call MUST include `team_name`:
|
|
275
|
+
```
|
|
276
|
+
Task({
|
|
277
|
+
team_name: "test-{id}",
|
|
278
|
+
name: "unit-test-agent",
|
|
279
|
+
subagent_type: "general-purpose",
|
|
280
|
+
mode: "bypassPermissions",
|
|
281
|
+
prompt: <replaced testing.md content with unit-test scope>
|
|
282
|
+
})
|
|
283
|
+
Task({
|
|
284
|
+
team_name: "test-{id}",
|
|
285
|
+
name: "e2e-test-agent",
|
|
286
|
+
subagent_type: "general-purpose",
|
|
287
|
+
mode: "bypassPermissions",
|
|
288
|
+
prompt: <replaced testing.md content with e2e scope>
|
|
289
|
+
})
|
|
290
|
+
```
|
|
227
291
|
5. Collect `COMPLETION:` messages
|
|
228
292
|
6. Run test suites to verify: `npx vitest run` + `npx playwright test`
|
|
229
293
|
7. Report results: pass/fail counts, coverage, uncovered ACs
|
|
@@ -116,7 +116,7 @@ if (!isVersionSatisfied(CURRENT_NODE_VERSION, MIN_NODE_VERSION)) {
|
|
|
116
116
|
console.error(getUpgradeInstructions());
|
|
117
117
|
console.error('');
|
|
118
118
|
console.error(`${BOLD}Full guide:${RESET}`);
|
|
119
|
-
console.error(` ${CYAN}${UNDERLINE}https://
|
|
119
|
+
console.error(` ${CYAN}${UNDERLINE}https://spec-weave.com/docs/guides/troubleshooting/common-errors#node-version-error${RESET}`);
|
|
120
120
|
console.error('');
|
|
121
121
|
console.error(`${DIM}After upgrading, run: npm install -g specweave${RESET}`);
|
|
122
122
|
console.error('');
|
|
@@ -57,13 +57,13 @@ Never mark a task complete without proving it works:
|
|
|
57
57
|
- Code compiles/builds successfully
|
|
58
58
|
- Run tests after every task: `npx vitest run` + `npx playwright test`
|
|
59
59
|
- Review code quality before committing — check for duplication, readability issues, and inefficiencies (Claude Code: `/simplify`; other tools: manual review or linter)
|
|
60
|
-
-
|
|
61
|
-
-
|
|
60
|
+
- `sw:grill` writes `grill-report.json` — CLI blocks closure without it
|
|
61
|
+
- `sw:judge-llm` writes `judge-llm-report.json` — WAIVED if consent denied
|
|
62
62
|
- Acceptance criteria actually satisfied
|
|
63
63
|
|
|
64
64
|
### 2b. Auto-Closure (MANDATORY)
|
|
65
65
|
|
|
66
|
-
When ALL tasks are complete, IMMEDIATELY run
|
|
66
|
+
When ALL tasks are complete, IMMEDIATELY run `sw:done` — do NOT stop to ask for user confirmation. Quality gates (grill, judge-llm, PM validation) ARE the review. If gates fail, the increment stays open. User can re-open if they disagree with closure.
|
|
67
67
|
|
|
68
68
|
### 4. Large-Scale Changes
|
|
69
69
|
|
|
@@ -126,8 +126,8 @@ Good: npm run build → node script.js → Success
|
|
|
126
126
|
|
|
127
127
|
### Test Before Ship
|
|
128
128
|
- Tests pass at every step — unit after each task, E2E before close, no exceptions
|
|
129
|
-
-
|
|
130
|
-
- TDD cycle:
|
|
129
|
+
- `sw:increment` generates BDD test plans during design via the sw-planner agent — verify they exist before `sw:do`
|
|
130
|
+
- TDD cycle: `sw:tdd-red` → `sw:tdd-green` → `sw:tdd-refactor`
|
|
131
131
|
- E2E with Playwright CLI (`npx playwright test`) is a blocking closure gate
|
|
132
132
|
<!-- /SECTION -->
|
|
133
133
|
|
|
@@ -136,20 +136,30 @@ Good: npm run build → node script.js → Success
|
|
|
136
136
|
<!-- SECTION:commands required -->
|
|
137
137
|
## Commands Reference
|
|
138
138
|
|
|
139
|
+
Commands are shown as `sw:<name>`. How you invoke them depends on your AI tool:
|
|
140
|
+
|
|
141
|
+
| Tool | Invocation | Example |
|
|
142
|
+
|------|-----------|---------|
|
|
143
|
+
| **Claude Code** | Slash command | `/sw:do` |
|
|
144
|
+
| **Cursor / Windsurf** | Type in chat | `sw:do` or describe the action |
|
|
145
|
+
| **Copilot / ChatGPT** | Describe in chat | "Execute increment tasks" |
|
|
146
|
+
| **Gemini CLI / Codex** | Reference in prompt | "Run sw:do on my increment" |
|
|
147
|
+
| **Any tool** | SpecWeave CLI (where available) | `specweave validate 0001` |
|
|
148
|
+
|
|
139
149
|
| Command | Purpose |
|
|
140
150
|
|---------|---------|
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
146
|
-
|
|
|
147
|
-
|
|
|
148
|
-
|
|
|
149
|
-
|
|
|
150
|
-
|
|
|
151
|
-
|
|
|
152
|
-
|
|
|
151
|
+
| `sw:increment "name"` | Plan new feature (PM-led) |
|
|
152
|
+
| `sw:do` | Execute tasks from active increment |
|
|
153
|
+
| `sw:done 0001` | Close increment (validates gates) |
|
|
154
|
+
| `sw:progress` | Show task completion status |
|
|
155
|
+
| `sw:validate 0001` | Quality check before closing |
|
|
156
|
+
| `sw:progress-sync` | Sync tasks.md with reality |
|
|
157
|
+
| `sw:sync-docs update` | Sync to living docs |
|
|
158
|
+
| `sw-github:sync 0001` | Sync increment to GitHub issue |
|
|
159
|
+
| `sw-jira:sync 0001` | Sync to Jira |
|
|
160
|
+
| `sw-ado:sync 0001` | Sync to Azure DevOps |
|
|
161
|
+
| `sw:sync-setup` | Connect GitHub/Jira/ADO integration |
|
|
162
|
+
| `sw:import` | Import issues from external tools |
|
|
153
163
|
<!-- /SECTION -->
|
|
154
164
|
|
|
155
165
|
---
|
|
@@ -178,21 +188,21 @@ Claude Code has automatic hooks and orchestration. Other tools must do these man
|
|
|
178
188
|
1. Update tasks.md: `[ ] pending` → `[x] completed`
|
|
179
189
|
2. Update spec.md ACs if satisfied: `[ ] AC` → `[x] AC`
|
|
180
190
|
3. Review code quality: check for duplication, readability, performance issues (Claude Code: `/simplify`)
|
|
181
|
-
4. Run
|
|
182
|
-
5. Run
|
|
191
|
+
4. Run `sw:progress-sync`
|
|
192
|
+
5. Run `sw-github:sync <id>` (if GitHub configured)
|
|
183
193
|
|
|
184
194
|
**After all ACs for a User Story are done:**
|
|
185
|
-
- Run
|
|
195
|
+
- Run `sw:sync-docs update`
|
|
186
196
|
|
|
187
197
|
**After increment completion:**
|
|
188
|
-
1.
|
|
189
|
-
2.
|
|
190
|
-
3.
|
|
198
|
+
1. `sw:validate <id>`
|
|
199
|
+
2. `sw:sync-docs update`
|
|
200
|
+
3. `sw-github:close-issue <id>`
|
|
191
201
|
|
|
192
202
|
**Session start:**
|
|
193
203
|
1. `specweave jobs` (check background jobs)
|
|
194
|
-
2.
|
|
195
|
-
3.
|
|
204
|
+
2. `sw:progress` (check current state)
|
|
205
|
+
3. `sw:do` (continue work)
|
|
196
206
|
|
|
197
207
|
**Background jobs**: Monitor with `specweave jobs` (clone-repos, import-issues, living-docs-builder, sync-external).
|
|
198
208
|
<!-- /SECTION -->
|
|
@@ -207,8 +217,8 @@ Claude Code has automatic hooks and orchestration. Other tools must do these man
|
|
|
207
217
|
| Level | Location | Update Method |
|
|
208
218
|
|-------|----------|---------------|
|
|
209
219
|
| **Source** | tasks.md + spec.md | Edit directly |
|
|
210
|
-
| **Derived** | .specweave/docs/internal/specs/ |
|
|
211
|
-
| **Mirror** | GitHub/Jira/ADO |
|
|
220
|
+
| **Derived** | .specweave/docs/internal/specs/ | `sw:sync-docs update` |
|
|
221
|
+
| **Mirror** | GitHub/Jira/ADO | `sw-github:sync`, `sw-jira:sync`, `sw-ado:sync` |
|
|
212
222
|
|
|
213
223
|
**Update order**: ALWAYS tasks.md/spec.md FIRST → progress-sync → sync-docs → external tools
|
|
214
224
|
|
|
@@ -216,12 +226,12 @@ Claude Code has automatic hooks and orchestration. Other tools must do these man
|
|
|
216
226
|
|
|
217
227
|
| Command | When to Run |
|
|
218
228
|
|---------|-------------|
|
|
219
|
-
|
|
|
220
|
-
|
|
|
221
|
-
|
|
|
222
|
-
|
|
|
223
|
-
|
|
|
224
|
-
|
|
|
229
|
+
| `sw:progress-sync` | After editing tasks.md |
|
|
230
|
+
| `sw:sync-docs update` | After US complete |
|
|
231
|
+
| `sw-github:sync <id>` | After each task |
|
|
232
|
+
| `sw-github:close-issue <id>` | On increment done |
|
|
233
|
+
| `sw-jira:sync <id>` | After each task |
|
|
234
|
+
| `sw-ado:sync <id>` | After each task |
|
|
225
235
|
<!-- /SECTION -->
|
|
226
236
|
|
|
227
237
|
---
|
|
@@ -392,7 +402,7 @@ specweave context projects
|
|
|
392
402
|
5. Create `tasks.md` (task checklist with BDD tests)
|
|
393
403
|
6. Optional: `plan.md` for complex features
|
|
394
404
|
7. **Verify** tasks.md has `**Test Plan**:` for every task with testable ACs
|
|
395
|
-
8. **Verify** E2E scenarios exist for user-facing user stories — re-run
|
|
405
|
+
8. **Verify** E2E scenarios exist for user-facing user stories — re-run `sw:plan --force` if missing
|
|
396
406
|
|
|
397
407
|
### Completing Tasks
|
|
398
408
|
1. Implement the task
|
|
@@ -408,8 +418,8 @@ specweave context projects
|
|
|
408
418
|
### Closing Increment (AUTO — do NOT stop to ask)
|
|
409
419
|
1. Full test suite: `npx vitest run`
|
|
410
420
|
2. Full E2E: `npx playwright test`
|
|
411
|
-
3.
|
|
412
|
-
4.
|
|
421
|
+
3. `sw:grill <id>` — writes `grill-report.json` (CLI requires it)
|
|
422
|
+
4. `sw:done <id>` — validates report files + PM 3 gates (tasks, tests, docs) + syncs to GitHub/Jira/ADO
|
|
413
423
|
|
|
414
424
|
**CRITICAL**: When all tasks are done, IMMEDIATELY chain to closure. Quality gates (grill, judge-llm, PM validation) ARE the review. Never stop to ask "should I close?" — just close it. If a gate fails, the increment stays open. User can re-open if they disagree.
|
|
415
425
|
<!-- /SECTION -->
|
|
@@ -422,9 +432,9 @@ specweave context projects
|
|
|
422
432
|
| Issue | Fix |
|
|
423
433
|
|-------|-----|
|
|
424
434
|
| Commands not working (non-Claude) | Read `plugins/specweave/commands/<name>.md`, follow manually |
|
|
425
|
-
| GitHub/Jira not updating |
|
|
435
|
+
| GitHub/Jira not updating | `sw:progress-sync` → `sw:sync-docs update` → `sw-github:sync <id>` |
|
|
426
436
|
| .md files in project root | `mv *.md .specweave/increments/<current>/reports/` |
|
|
427
|
-
| Progress % wrong | Update tasks.md manually or
|
|
437
|
+
| Progress % wrong | Update tasks.md manually or `sw:progress-sync` |
|
|
428
438
|
| Tool crashes on start | Load only active increment's spec.md + tasks.md, not entire docs/ |
|
|
429
439
|
| Missing **Project**: field | `specweave context projects`, add `**Project**:` to every US |
|
|
430
440
|
| Skills not activating (non-Claude) | Expected — read SKILL.md from `plugins/specweave*/skills/` |
|
|
@@ -320,4 +320,6 @@ Pattern: IMPLEMENT → TEST → FAIL? → FIX → PASS → NEXT. STOP & ASK if s
|
|
|
320
320
|
## Using SpecWeave with Other AI Tools
|
|
321
321
|
|
|
322
322
|
See **AGENTS.md** for Cursor, Copilot, Windsurf, Aider instructions.
|
|
323
|
+
|
|
324
|
+
**Command format note**: This file uses `/sw:do` (Claude Code slash-command format). AGENTS.md uses `sw:do` (tool-agnostic format). Both refer to the same commands.
|
|
323
325
|
<!-- /SECTION -->
|
|
@@ -10,23 +10,25 @@ Your project is initialized! Now describe what you want to build.
|
|
|
10
10
|
|
|
11
11
|
1. **Open your AI assistant** (Claude Code, Cursor, Windsurf, or any AI-powered IDE)
|
|
12
12
|
|
|
13
|
-
2. **Use SpecWeave
|
|
13
|
+
2. **Use SpecWeave commands** to start building:
|
|
14
14
|
|
|
15
|
-
```
|
|
15
|
+
```
|
|
16
16
|
# Plan a new feature
|
|
17
|
-
|
|
17
|
+
sw:increment "user authentication with JWT"
|
|
18
18
|
|
|
19
19
|
# Execute the implementation
|
|
20
|
-
|
|
20
|
+
sw:do
|
|
21
21
|
|
|
22
22
|
# Check progress
|
|
23
|
-
|
|
23
|
+
sw:progress
|
|
24
24
|
|
|
25
25
|
# Close when done
|
|
26
|
-
|
|
26
|
+
sw:done 0001
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
> **Invocation varies by tool**: Claude Code uses `/sw:do`, Cursor/Copilot users type `sw:do` or describe the action. See AGENTS.md for details.
|
|
30
|
+
|
|
31
|
+
3. **Or describe your project** in natural language (works with command workflows):
|
|
30
32
|
|
|
31
33
|
```
|
|
32
34
|
"Build a real estate listing platform with search, images, and admin dashboard"
|
|
@@ -42,7 +44,7 @@ Your project is initialized! Now describe what you want to build.
|
|
|
42
44
|
- Guide implementation
|
|
43
45
|
- Generate tests
|
|
44
46
|
|
|
45
|
-
That's it! All components ready - just use
|
|
47
|
+
That's it! All components ready - just use `sw:increment` to start!
|
|
46
48
|
|
|
47
49
|
---
|
|
48
50
|
|
|
@@ -52,7 +54,7 @@ That's it! All components ready - just use `/sw:increment` to start!
|
|
|
52
54
|
{{PROJECT_NAME}}/
|
|
53
55
|
├── .specweave/ # SpecWeave framework
|
|
54
56
|
│ ├── config.json # Project configuration
|
|
55
|
-
│ ├── increments/ # Features (created via
|
|
57
|
+
│ ├── increments/ # Features (created via sw:increment)
|
|
56
58
|
│ │ └── 0001-feature/
|
|
57
59
|
│ │ ├── spec.md # WHAT & WHY
|
|
58
60
|
│ │ ├── plan.md # HOW
|
|
@@ -71,7 +73,7 @@ That's it! All components ready - just use `/sw:increment` to start!
|
|
|
71
73
|
|
|
72
74
|
SpecWeave is a specification-first development framework where:
|
|
73
75
|
- **Specifications are the source of truth** (code follows specs, not reverse)
|
|
74
|
-
- **
|
|
76
|
+
- **Commands drive workflow** (`sw:increment` → `sw:do` → `sw:done`)
|
|
75
77
|
- **AI agents work autonomously** (PM, Architect, Security, QA, DevOps)
|
|
76
78
|
- **Works with ANY tech stack** (TypeScript, Python, Go, Rust, Java, .NET, etc.)
|
|
77
79
|
- **Works with multiple AI assistants** (Claude Code, Cursor, Windsurf, etc.)
|
|
@@ -81,20 +83,20 @@ SpecWeave is a specification-first development framework where:
|
|
|
81
83
|
## Core Workflow
|
|
82
84
|
|
|
83
85
|
```
|
|
84
|
-
|
|
86
|
+
sw:increment "feature" → sw:do → sw:progress → sw:done → repeat
|
|
85
87
|
```
|
|
86
88
|
|
|
87
89
|
| Command | Purpose | When to Use |
|
|
88
90
|
|---------|---------|-------------|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
91
|
+
| `sw:increment "feature"` | Plan new increment | Starting new feature |
|
|
92
|
+
| `sw:do` | Execute tasks | Ready to implement |
|
|
93
|
+
| `sw:progress` | Check status | Want to see progress |
|
|
94
|
+
| `sw:validate 0001` | Validate quality | Before completion |
|
|
95
|
+
| `sw:done 0001` | Close increment | Feature finished |
|
|
96
|
+
| `sw:team-lead "feature"` | Parallel agents | Complex multi-domain features |
|
|
97
|
+
| `sw:progress-sync` | Sync to external tools | Export to GitHub/JIRA/ADO |
|
|
96
98
|
|
|
97
|
-
For complex features spanning frontend, backend, and database —
|
|
99
|
+
For complex features spanning frontend, backend, and database — `sw:team-lead` splits work across parallel agents for faster delivery. [Learn more](https://verified-skill.com/docs/guides/agent-teams-and-swarms).
|
|
98
100
|
|
|
99
101
|
See `CLAUDE.md` for complete workflow guide.
|
|
100
102
|
|
|
@@ -121,10 +123,10 @@ project-root/
|
|
|
121
123
|
## AI Assistant Compatibility
|
|
122
124
|
|
|
123
125
|
SpecWeave works with:
|
|
124
|
-
- **Claude Code** (recommended) - Full
|
|
125
|
-
- **Cursor** -
|
|
126
|
+
- **Claude Code** (recommended) - Full command support with auto-activation
|
|
127
|
+
- **Cursor** - Commands via composer
|
|
126
128
|
- **Windsurf** - Cascade mode compatible
|
|
127
|
-
- **Any AI IDE** -
|
|
129
|
+
- **Any AI IDE** - Supports commands via prompts or native integrations
|
|
128
130
|
|
|
129
131
|
**Setup**: See `CLAUDE.md` for AI assistant instructions.
|
|
130
132
|
|
|
@@ -142,7 +144,7 @@ SpecWeave works with:
|
|
|
142
144
|
|
|
143
145
|
**Start with your first feature**:
|
|
144
146
|
```bash
|
|
145
|
-
|
|
147
|
+
sw:increment "describe your feature here"
|
|
146
148
|
```
|
|
147
149
|
|
|
148
150
|
Or just describe what you want to build, and SpecWeave will guide you through the process!
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"description": "Auto-configured LSP servers for code intelligence (go-to-definition, find-references, hover)",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "SpecWeave",
|
|
7
|
-
"url": "https://
|
|
7
|
+
"url": "https://spec-weave.com"
|
|
8
8
|
},
|
|
9
9
|
"keywords": ["lsp", "typescript", "python", "code-intelligence"]
|
|
10
10
|
}
|
|
@@ -159,10 +159,10 @@ Before closing this increment, the following MUST be true:
|
|
|
159
159
|
**Validation commands**:
|
|
160
160
|
```bash
|
|
161
161
|
# Check AC coverage and task linkage
|
|
162
|
-
|
|
162
|
+
sw:validate {{INCREMENT_ID}}
|
|
163
163
|
|
|
164
164
|
# Close increment (validates automatically)
|
|
165
|
-
|
|
165
|
+
sw:done {{INCREMENT_ID}}
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
---
|