specweave 0.7.1 → 0.8.1
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 +307 -11
- package/README.md +41 -3
- package/dist/cli/commands/import-docs.d.ts +21 -0
- package/dist/cli/commands/import-docs.d.ts.map +1 -0
- package/dist/cli/commands/import-docs.js +146 -0
- package/dist/cli/commands/import-docs.js.map +1 -0
- package/dist/cli/commands/init-multiproject.d.ts +11 -0
- package/dist/cli/commands/init-multiproject.d.ts.map +1 -0
- package/dist/cli/commands/init-multiproject.js +202 -0
- package/dist/cli/commands/init-multiproject.js.map +1 -0
- package/dist/cli/commands/init.js +3 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrate-to-multiproject.d.ts +37 -0
- package/dist/cli/commands/migrate-to-multiproject.d.ts.map +1 -0
- package/dist/cli/commands/migrate-to-multiproject.js +189 -0
- package/dist/cli/commands/migrate-to-multiproject.js.map +1 -0
- package/dist/cli/commands/migrate-to-profiles.d.ts +25 -0
- package/dist/cli/commands/migrate-to-profiles.d.ts.map +1 -0
- package/dist/cli/commands/migrate-to-profiles.js +350 -0
- package/dist/cli/commands/migrate-to-profiles.js.map +1 -0
- package/dist/cli/commands/switch-project.d.ts +13 -0
- package/dist/cli/commands/switch-project.d.ts.map +1 -0
- package/dist/cli/commands/switch-project.js +91 -0
- package/dist/cli/commands/switch-project.js.map +1 -0
- package/dist/cli/helpers/issue-tracker/index.js +4 -4
- package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/cli/helpers/issue-tracker/utils.d.ts +6 -3
- package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -1
- package/dist/cli/helpers/issue-tracker/utils.js +9 -7
- package/dist/cli/helpers/issue-tracker/utils.js.map +1 -1
- package/dist/core/brownfield/analyzer.d.ts +86 -0
- package/dist/core/brownfield/analyzer.d.ts.map +1 -0
- package/dist/core/brownfield/analyzer.js +365 -0
- package/dist/core/brownfield/analyzer.js.map +1 -0
- package/dist/core/brownfield/importer.d.ts +76 -0
- package/dist/core/brownfield/importer.d.ts.map +1 -0
- package/dist/core/brownfield/importer.js +287 -0
- package/dist/core/brownfield/importer.js.map +1 -0
- package/dist/core/config-manager.d.ts +47 -0
- package/dist/core/config-manager.d.ts.map +1 -0
- package/dist/core/config-manager.js +136 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/project-manager.d.ts +127 -0
- package/dist/core/project-manager.d.ts.map +1 -0
- package/dist/core/project-manager.js +524 -0
- package/dist/core/project-manager.js.map +1 -0
- package/dist/core/sync/profile-manager.d.ts +72 -0
- package/dist/core/sync/profile-manager.d.ts.map +1 -0
- package/dist/core/sync/profile-manager.js +338 -0
- package/dist/core/sync/profile-manager.js.map +1 -0
- package/dist/core/sync/profile-selector.d.ts +52 -0
- package/dist/core/sync/profile-selector.d.ts.map +1 -0
- package/dist/core/sync/profile-selector.js +179 -0
- package/dist/core/sync/profile-selector.js.map +1 -0
- package/dist/core/sync/project-context.d.ts +81 -0
- package/dist/core/sync/project-context.d.ts.map +1 -0
- package/dist/core/sync/project-context.js +354 -0
- package/dist/core/sync/project-context.js.map +1 -0
- package/dist/core/sync/rate-limiter.d.ts +116 -0
- package/dist/core/sync/rate-limiter.d.ts.map +1 -0
- package/dist/core/sync/rate-limiter.js +308 -0
- package/dist/core/sync/rate-limiter.js.map +1 -0
- package/dist/core/sync/time-range-selector.d.ts +48 -0
- package/dist/core/sync/time-range-selector.d.ts.map +1 -0
- package/dist/core/sync/time-range-selector.js +224 -0
- package/dist/core/sync/time-range-selector.js.map +1 -0
- package/dist/core/types/config.d.ts +4 -0
- package/dist/core/types/config.d.ts.map +1 -1
- package/dist/core/types/config.js.map +1 -1
- package/dist/core/types/sync-profile.d.ts +205 -0
- package/dist/core/types/sync-profile.d.ts.map +1 -0
- package/dist/core/types/sync-profile.js +8 -0
- package/dist/core/types/sync-profile.js.map +1 -0
- package/dist/utils/project-detection.d.ts +141 -0
- package/dist/utils/project-detection.d.ts.map +1 -0
- package/dist/utils/project-detection.js +321 -0
- package/dist/utils/project-detection.js.map +1 -0
- package/package.json +2 -1
- package/plugins/specweave/agents/pm/AGENT.md +7 -4
- package/plugins/specweave/commands/specweave-abandon.md +17 -17
- package/plugins/specweave/commands/specweave-check-tests.md +14 -14
- package/plugins/specweave/commands/specweave-costs.md +1 -1
- package/plugins/specweave/commands/specweave-do.md +12 -12
- package/plugins/specweave/commands/specweave-done.md +28 -15
- package/plugins/specweave/commands/specweave-import-docs.md +212 -0
- package/plugins/specweave/commands/specweave-increment.md +10 -10
- package/plugins/specweave/commands/specweave-init-multiproject.md +146 -0
- package/plugins/specweave/commands/specweave-next.md +16 -16
- package/plugins/specweave/commands/specweave-pause.md +17 -17
- package/plugins/specweave/commands/specweave-progress.md +10 -10
- package/plugins/specweave/commands/specweave-qa.md +11 -11
- package/plugins/specweave/commands/specweave-resume.md +22 -22
- package/plugins/specweave/commands/specweave-status.md +18 -18
- package/plugins/specweave/commands/specweave-switch-project.md +168 -0
- package/plugins/specweave/commands/specweave-sync-docs.md +1 -1
- package/plugins/specweave/commands/specweave-sync-tasks.md +9 -9
- package/plugins/specweave/commands/specweave-tdd-cycle.md +7 -0
- package/plugins/specweave/commands/specweave-tdd-green.md +7 -0
- package/plugins/specweave/commands/specweave-tdd-red.md +7 -0
- package/plugins/specweave/commands/specweave-tdd-refactor.md +7 -0
- package/plugins/specweave/commands/specweave-translate.md +1 -1
- package/plugins/specweave/commands/specweave-update-scope.md +8 -8
- package/plugins/specweave/commands/specweave-validate.md +18 -20
- package/plugins/specweave/commands/specweave.md +5 -5
- package/plugins/specweave/skills/SKILLS-INDEX.md +1 -1
- package/plugins/specweave/skills/increment-planner/SKILL.md +40 -4
- package/plugins/specweave/skills/increment-quality-judge/SKILL.md +5 -5
- package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +5 -5
- package/plugins/specweave/skills/specweave-detector/SKILL.md +3 -3
- package/plugins/specweave-ado/commands/{close-workitem.md → specweave-ado-close-workitem.md} +1 -1
- package/plugins/specweave-ado/commands/{create-workitem.md → specweave-ado-create-workitem.md} +1 -1
- package/plugins/specweave-ado/commands/{status.md → specweave-ado-status.md} +1 -1
- package/plugins/specweave-ado/commands/{sync.md → specweave-ado-sync.md} +1 -1
- package/plugins/specweave-ado/lib/ado-client-v2.ts +547 -0
- package/plugins/specweave-github/commands/{close-issue.md → specweave-github-close-issue.md} +1 -1
- package/plugins/specweave-github/commands/{create-issue.md → specweave-github-create-issue.md} +1 -1
- package/plugins/specweave-github/commands/{status.md → specweave-github-status.md} +1 -1
- package/plugins/specweave-github/commands/{sync-tasks.md → specweave-github-sync-tasks.md} +1 -1
- package/plugins/specweave-github/commands/specweave-github-sync.md +568 -0
- package/plugins/specweave-github/lib/github-client-v2.ts +555 -0
- package/plugins/specweave-infrastructure/commands/{monitor-setup.md → specweave-infrastructure-monitor-setup.md} +1 -1
- package/plugins/specweave-infrastructure/commands/{slo-implement.md → specweave-infrastructure-slo-implement.md} +1 -1
- package/plugins/specweave-jira/commands/{sync.md → specweave-jira-sync.md} +1 -1
- package/plugins/specweave-jira/lib/jira-client-v2.ts +529 -0
- package/plugins/specweave-ml/commands/{ml-deploy.md → specweave-ml-deploy.md} +1 -1
- package/plugins/specweave-ml/commands/{ml-evaluate.md → specweave-ml-evaluate.md} +1 -1
- package/plugins/specweave-ml/commands/{ml-explain.md → specweave-ml-explain.md} +1 -1
- package/plugins/specweave-ml/commands/{ml-pipeline.md → specweave-ml-pipeline.md} +1 -1
- package/src/templates/AGENTS.md.template +1 -0
- package/src/templates/CLAUDE.md.template +1 -0
- package/plugins/specweave-github/commands/sync.md +0 -443
- /package/plugins/specweave/{commands/README.md → COMMANDS.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-detection.js","sourceRoot":"","sources":["../../src/utils/project-detection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"chalk": "^5.3.0",
|
|
70
70
|
"commander": "^14.0.2",
|
|
71
71
|
"fs-extra": "^11.2.0",
|
|
72
|
+
"gray-matter": "^4.0.3",
|
|
72
73
|
"inquirer": "^12.10.0",
|
|
73
74
|
"js-yaml": "^4.1.0",
|
|
74
75
|
"ora": "^9.0.0",
|
|
@@ -147,7 +147,8 @@ if (shouldSuggestLivingDocs) {
|
|
|
147
147
|
console.log(' ✅ Complete requirements in one place');
|
|
148
148
|
console.log(' ✅ Increment specs reference it (avoid duplication)');
|
|
149
149
|
console.log('');
|
|
150
|
-
console.log('Location: .specweave/docs/internal/specs/spec-####-{name}
|
|
150
|
+
console.log('Location: .specweave/docs/internal/specs/spec-####-{name}.md');
|
|
151
|
+
console.log('⚠️ CRITICAL: Specs are FILES, not directories!');
|
|
151
152
|
console.log('');
|
|
152
153
|
console.log('💡 See FAQ: https://spec-weave.com/docs/faq#do-i-need-both-for-every-feature');
|
|
153
154
|
console.log('');
|
|
@@ -232,7 +233,9 @@ The PM Agent acts as your AI Product Manager, helping you:
|
|
|
232
233
|
|
|
233
234
|
### Output 1: Spec (Living Docs - Source of Truth, Permanent) ✅
|
|
234
235
|
|
|
235
|
-
**Location**: `.specweave/docs/internal/specs/spec-{number}-{name}
|
|
236
|
+
**Location**: `.specweave/docs/internal/specs/spec-{number}-{name}.md`
|
|
237
|
+
|
|
238
|
+
**CRITICAL**: Specs are **FILES**, not directories! The spec file itself contains all content.
|
|
236
239
|
|
|
237
240
|
**Purpose**: Complete, detailed requirements specification - PERMANENT source of truth
|
|
238
241
|
|
|
@@ -442,7 +445,7 @@ High-level business context: [Strategy Overview](../../docs/internal/strategy/{m
|
|
|
442
445
|
```markdown
|
|
443
446
|
# Feature: [Name]
|
|
444
447
|
|
|
445
|
-
**Complete Requirements**: See [SPEC-{number}-{name}](../../docs/internal/specs/spec-{number}-{name}
|
|
448
|
+
**Complete Requirements**: See [SPEC-{number}-{name}](../../docs/internal/specs/spec-{number}-{name}.md)
|
|
446
449
|
|
|
447
450
|
**Quick Summary**:
|
|
448
451
|
- US-001: View current weather
|
|
@@ -1283,7 +1286,7 @@ Total estimated effort to fix: X hours
|
|
|
1283
1286
|
Action Plan:
|
|
1284
1287
|
1. [Step-by-step plan to address blockers]
|
|
1285
1288
|
2. [...]
|
|
1286
|
-
3. Re-run /done {id} for validation
|
|
1289
|
+
3. Re-run /specweave:done {id} for validation
|
|
1287
1290
|
|
|
1288
1291
|
Increment remains: in-progress
|
|
1289
1292
|
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: abandon
|
|
2
|
+
name: specweave:abandon
|
|
3
3
|
description: Abandon an incomplete increment (requirements changed, obsolete)
|
|
4
4
|
usage: /specweave:abandon <increment-id> --reason="<reason>"
|
|
5
5
|
---
|
|
@@ -42,7 +42,7 @@ Abandon an increment when:
|
|
|
42
42
|
|
|
43
43
|
### Abandon with reason
|
|
44
44
|
```bash
|
|
45
|
-
/abandon 0008 --reason="Requirements changed - feature no longer needed"
|
|
45
|
+
/specweave:abandon 0008 --reason="Requirements changed - feature no longer needed"
|
|
46
46
|
|
|
47
47
|
⚠️ This will move increment 0008 to _abandoned/
|
|
48
48
|
Reason: Requirements changed - feature no longer needed
|
|
@@ -59,7 +59,7 @@ Continue? [y/N]: y
|
|
|
59
59
|
|
|
60
60
|
### Abandon without reason (prompts)
|
|
61
61
|
```bash
|
|
62
|
-
/abandon 0009
|
|
62
|
+
/specweave:abandon 0009
|
|
63
63
|
|
|
64
64
|
❓ Why are you abandoning this increment?
|
|
65
65
|
1. Requirements changed
|
|
@@ -85,7 +85,7 @@ Continue? [y/N]: y
|
|
|
85
85
|
|
|
86
86
|
### Cannot Abandon Completed
|
|
87
87
|
```bash
|
|
88
|
-
/abandon 0005
|
|
88
|
+
/specweave:abandon 0005
|
|
89
89
|
|
|
90
90
|
❌ Cannot abandon increment 0005
|
|
91
91
|
Status: completed
|
|
@@ -96,7 +96,7 @@ Continue? [y/N]: y
|
|
|
96
96
|
|
|
97
97
|
### Already Abandoned
|
|
98
98
|
```bash
|
|
99
|
-
/abandon 0008
|
|
99
|
+
/specweave:abandon 0008
|
|
100
100
|
|
|
101
101
|
⚠️ Increment 0008 is already abandoned
|
|
102
102
|
Location: .specweave/increments/_abandoned/0008-old-feature/
|
|
@@ -107,15 +107,15 @@ No action needed.
|
|
|
107
107
|
|
|
108
108
|
### Increment Not Found
|
|
109
109
|
```bash
|
|
110
|
-
/abandon 9999
|
|
110
|
+
/specweave:abandon 9999
|
|
111
111
|
|
|
112
112
|
❌ Increment not found: 9999
|
|
113
|
-
💡 Check available increments: /status
|
|
113
|
+
💡 Check available increments: /specweave:status
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
### Cancel Abandonment
|
|
117
117
|
```bash
|
|
118
|
-
/abandon 0008 --reason="Not needed"
|
|
118
|
+
/specweave:abandon 0008 --reason="Not needed"
|
|
119
119
|
|
|
120
120
|
⚠️ This will move increment 0008 to _abandoned/
|
|
121
121
|
Reason: Not needed
|
|
@@ -209,7 +209,7 @@ mv .specweave/increments/_abandoned/0008-feature \
|
|
|
209
209
|
.specweave/increments/0008-feature
|
|
210
210
|
|
|
211
211
|
# 2. Resume via command
|
|
212
|
-
/resume 0008
|
|
212
|
+
/specweave:resume 0008
|
|
213
213
|
|
|
214
214
|
✅ Increment 0008 resumed
|
|
215
215
|
⚠️ Note: Was abandoned 10 days ago
|
|
@@ -221,10 +221,10 @@ mv .specweave/increments/_abandoned/0008-feature \
|
|
|
221
221
|
|
|
222
222
|
## Related Commands
|
|
223
223
|
|
|
224
|
-
- `/pause <id>` - Pause increment (temporary, can resume)
|
|
225
|
-
- `/resume <id>` - Resume paused or abandoned increment
|
|
226
|
-
- `/status` - Show all increments (including abandoned count)
|
|
227
|
-
- `/status --abandoned` - Show only abandoned increments
|
|
224
|
+
- `/specweave:pause <id>` - Pause increment (temporary, can resume)
|
|
225
|
+
- `/specweave:resume <id>` - Resume paused or abandoned increment
|
|
226
|
+
- `/specweave:status` - Show all increments (including abandoned count)
|
|
227
|
+
- `/specweave:status --abandoned` - Show only abandoned increments
|
|
228
228
|
|
|
229
229
|
---
|
|
230
230
|
|
|
@@ -255,7 +255,7 @@ Experiments (--type=experiment) auto-abandon after **14 days** of inactivity:
|
|
|
255
255
|
# ... 15 days pass with no activity ...
|
|
256
256
|
|
|
257
257
|
# Automatic abandonment
|
|
258
|
-
/status
|
|
258
|
+
/specweave:status
|
|
259
259
|
|
|
260
260
|
📊 Auto-Abandoned (1):
|
|
261
261
|
🧪 0010-graphql-experiment [experiment]
|
|
@@ -264,7 +264,7 @@ Experiments (--type=experiment) auto-abandon after **14 days** of inactivity:
|
|
|
264
264
|
Last activity: 15 days ago
|
|
265
265
|
|
|
266
266
|
💡 Experiments auto-abandon after 14 days of inactivity
|
|
267
|
-
To prevent: Update lastActivity via /do or manual touch
|
|
267
|
+
To prevent: Update lastActivity via /specweave:do or manual touch
|
|
268
268
|
```
|
|
269
269
|
|
|
270
270
|
---
|
|
@@ -274,7 +274,7 @@ Experiments (--type=experiment) auto-abandon after **14 days** of inactivity:
|
|
|
274
274
|
View abandonment statistics:
|
|
275
275
|
|
|
276
276
|
```bash
|
|
277
|
-
/status
|
|
277
|
+
/specweave:status
|
|
278
278
|
|
|
279
279
|
✅ Completed (4):
|
|
280
280
|
0001-core-framework
|
|
@@ -308,7 +308,7 @@ Abandoned work is valuable!
|
|
|
308
308
|
|
|
309
309
|
---
|
|
310
310
|
|
|
311
|
-
**Command**: `/specweave:abandon`
|
|
311
|
+
**Command**: `/specweave:abandon`
|
|
312
312
|
**Plugin**: specweave (core)
|
|
313
313
|
**Version**: v0.7.0+
|
|
314
314
|
**Part of**: Increment 0007 - Smart Status Management
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: check-tests
|
|
2
|
+
name: specweave:check-tests
|
|
3
3
|
description: Validate test coverage for increment tasks, check AC-ID coverage, report test status, and verify coverage targets (NEW format with embedded tests in tasks.md)
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -22,16 +22,16 @@ Shows:
|
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
# Check tests for current increment
|
|
25
|
-
/check-tests
|
|
25
|
+
/specweave:check-tests
|
|
26
26
|
|
|
27
27
|
# Check tests for specific increment
|
|
28
|
-
/check-tests 0007
|
|
28
|
+
/specweave:check-tests 0007
|
|
29
29
|
|
|
30
30
|
# Detailed report with test case breakdown
|
|
31
|
-
/check-tests 0007 --detailed
|
|
31
|
+
/specweave:check-tests 0007 --detailed
|
|
32
32
|
|
|
33
33
|
# AC-ID coverage report only
|
|
34
|
-
/check-tests 0007 --ac-coverage
|
|
34
|
+
/specweave:check-tests 0007 --ac-coverage
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
---
|
|
@@ -58,7 +58,7 @@ Shows:
|
|
|
58
58
|
## Output Example (NEW Format)
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
/check-tests 0007
|
|
61
|
+
/specweave:check-tests 0007
|
|
62
62
|
|
|
63
63
|
📊 Test Status Report: 0007-smart-increment-discipline
|
|
64
64
|
|
|
@@ -138,7 +138,7 @@ Summary:
|
|
|
138
138
|
## Detailed Report (--detailed flag)
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
|
-
/check-tests 0007 --detailed
|
|
141
|
+
/specweave:check-tests 0007 --detailed
|
|
142
142
|
|
|
143
143
|
[Shows expanded report with:]
|
|
144
144
|
- Full test case breakdown per task
|
|
@@ -153,7 +153,7 @@ Summary:
|
|
|
153
153
|
## AC Coverage Report (--ac-coverage flag)
|
|
154
154
|
|
|
155
155
|
```bash
|
|
156
|
-
/check-tests 0007 --ac-coverage
|
|
156
|
+
/specweave:check-tests 0007 --ac-coverage
|
|
157
157
|
|
|
158
158
|
═══════════════════════════════════════════════════════════════
|
|
159
159
|
|
|
@@ -325,7 +325,7 @@ AC-US1-01 → Covered by T-001 ✅
|
|
|
325
325
|
**If increment has tests.md** (pre-v0.7.0):
|
|
326
326
|
|
|
327
327
|
```bash
|
|
328
|
-
/check-tests 0003 # Old format increment
|
|
328
|
+
/specweave:check-tests 0003 # Old format increment
|
|
329
329
|
|
|
330
330
|
⚠️ OLD FORMAT DETECTED: tests.md exists
|
|
331
331
|
|
|
@@ -365,12 +365,12 @@ if (hasTestsMd) {
|
|
|
365
365
|
```bash
|
|
366
366
|
# Implement T-001
|
|
367
367
|
# Write tests
|
|
368
|
-
/check-tests # Verify tests pass
|
|
368
|
+
/specweave:check-tests # Verify tests pass
|
|
369
369
|
```
|
|
370
370
|
|
|
371
371
|
2. **Before PR**: Ensure coverage meets targets
|
|
372
372
|
```bash
|
|
373
|
-
/check-tests 0007
|
|
373
|
+
/specweave:check-tests 0007
|
|
374
374
|
# Fix any failing tests
|
|
375
375
|
# Commit and push
|
|
376
376
|
```
|
|
@@ -384,8 +384,8 @@ if (hasTestsMd) {
|
|
|
384
384
|
|
|
385
385
|
4. **PM Gate 2**: Part of increment closure
|
|
386
386
|
```bash
|
|
387
|
-
/done 0007
|
|
388
|
-
# PM Agent runs /check-tests automatically
|
|
387
|
+
/specweave:done 0007
|
|
388
|
+
# PM Agent runs /specweave:check-tests automatically
|
|
389
389
|
# Verifies >80% coverage before closure
|
|
390
390
|
```
|
|
391
391
|
|
|
@@ -396,7 +396,7 @@ if (hasTestsMd) {
|
|
|
396
396
|
For CI/CD integration:
|
|
397
397
|
|
|
398
398
|
```bash
|
|
399
|
-
/check-tests 0007
|
|
399
|
+
/specweave:check-tests 0007
|
|
400
400
|
echo $? # Exit code
|
|
401
401
|
|
|
402
402
|
# Exit codes:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: do
|
|
2
|
+
name: specweave:do
|
|
3
3
|
description: Execute increment implementation following spec and plan - hooks run after EVERY task
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -367,8 +367,8 @@ This will:
|
|
|
367
367
|
|
|
368
368
|
Next steps:
|
|
369
369
|
1. Run full test suite: npm test
|
|
370
|
-
2. Validate increment: /validate 0001 --quality
|
|
371
|
-
3. Close increment: /done 0001 (PM validates before closing)
|
|
370
|
+
2. Validate increment: /specweave:validate 0001 --quality
|
|
371
|
+
3. Close increment: /specweave:done 0001 (PM validates before closing)
|
|
372
372
|
```
|
|
373
373
|
|
|
374
374
|
---
|
|
@@ -445,7 +445,7 @@ After each task, Claude should manually update:
|
|
|
445
445
|
### Example 1: Execute Complete Increment
|
|
446
446
|
|
|
447
447
|
```bash
|
|
448
|
-
/do 0001
|
|
448
|
+
/specweave:do 0001
|
|
449
449
|
```
|
|
450
450
|
|
|
451
451
|
**Output**:
|
|
@@ -465,13 +465,13 @@ Task T001: Create User model
|
|
|
465
465
|
|
|
466
466
|
🎉 All tasks completed (42/42)
|
|
467
467
|
|
|
468
|
-
Next: /validate 0001 --quality
|
|
468
|
+
Next: /specweave:validate 0001 --quality
|
|
469
469
|
```
|
|
470
470
|
|
|
471
471
|
### Example 2: Execute with Blocker
|
|
472
472
|
|
|
473
473
|
```bash
|
|
474
|
-
/do 0002
|
|
474
|
+
/specweave:do 0002
|
|
475
475
|
```
|
|
476
476
|
|
|
477
477
|
**Output**:
|
|
@@ -494,7 +494,7 @@ Your choice? [A/B/C]: _
|
|
|
494
494
|
### Example 3: Execute with Test Failure
|
|
495
495
|
|
|
496
496
|
```bash
|
|
497
|
-
/do 0003
|
|
497
|
+
/specweave:do 0003
|
|
498
498
|
```
|
|
499
499
|
|
|
500
500
|
**Output**:
|
|
@@ -531,7 +531,7 @@ Available increments:
|
|
|
531
531
|
• 0002-core-enhancements (planned)
|
|
532
532
|
• 0003-payment-processing (in-progress)
|
|
533
533
|
|
|
534
|
-
Usage: /do <increment-id>
|
|
534
|
+
Usage: /specweave:do <increment-id>
|
|
535
535
|
```
|
|
536
536
|
|
|
537
537
|
### Increment Not Planned
|
|
@@ -540,7 +540,7 @@ Usage: /do <increment-id>
|
|
|
540
540
|
|
|
541
541
|
Increment must be "planned" before execution.
|
|
542
542
|
|
|
543
|
-
Run: /increment "User authentication" to plan this increment first.
|
|
543
|
+
Run: /specweave:increment "User authentication" to plan this increment first.
|
|
544
544
|
```
|
|
545
545
|
|
|
546
546
|
### No Tasks to Execute
|
|
@@ -552,7 +552,7 @@ This usually means:
|
|
|
552
552
|
2. Tasks.md is empty or missing
|
|
553
553
|
|
|
554
554
|
Options:
|
|
555
|
-
1. Re-plan increment: /increment 0001 (regenerate tasks)
|
|
555
|
+
1. Re-plan increment: /specweave:increment 0001 (regenerate tasks)
|
|
556
556
|
2. Add tasks manually: Edit .specweave/increments/0001-name/tasks.md
|
|
557
557
|
```
|
|
558
558
|
|
|
@@ -591,6 +591,6 @@ Options:
|
|
|
591
591
|
|
|
592
592
|
---
|
|
593
593
|
|
|
594
|
-
**Important**: This command is designed for continuous execution. It's normal to run `/do` and let it execute multiple tasks sequentially with documentation updates after each one.
|
|
594
|
+
**Important**: This command is designed for continuous execution. It's normal to run `/specweave:do` and let it execute multiple tasks sequentially with documentation updates after each one.
|
|
595
595
|
|
|
596
|
-
**Best Practice**: Always run `/validate 0001 --quality` after execution to ensure quality before closing with `/done`.
|
|
596
|
+
**Best Practice**: Always run `/specweave:validate 0001 --quality` after execution to ensure quality before closing with `/specweave:done`.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: done
|
|
2
|
+
name: specweave:done
|
|
3
3
|
description: Close increment with PM validation - checks tasks, tests, and docs before closing
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Close Increment (PM Validated)
|
|
7
7
|
|
|
8
|
-
**⚡ Convenient Short Form**: Use `/done` for quick access, or `/specweave:done` for explicit namespace.
|
|
9
|
-
|
|
10
8
|
**Product Manager-Led Closure**: PM validates tasks, tests, and docs before closing.
|
|
11
9
|
|
|
12
10
|
You are acting as the Product Manager to validate increment completion before closure. You must check all 3 gates: tasks done, tests passing, and docs updated.
|
|
13
11
|
|
|
12
|
+
**NEW (v0.8.0+)**: Automatic GitHub issue reopening when validation fails. If PM gates fail and a GitHub issue exists for this increment, the system automatically reopens the issue with validation failure details. This ensures issues aren't prematurely closed when work is incomplete.
|
|
13
|
+
|
|
14
14
|
## Usage
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
/done <increment-id>
|
|
17
|
+
/specweave:done <increment-id>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Arguments
|
|
@@ -316,7 +316,7 @@ Closing increment 0001-user-authentication...
|
|
|
316
316
|
Next steps:
|
|
317
317
|
1. Create PR: git push && gh pr create
|
|
318
318
|
2. Deploy to staging: npm run deploy:staging
|
|
319
|
-
3. Create new increment: /increment "Next feature"
|
|
319
|
+
3. Create new increment: /specweave:increment "Next feature"
|
|
320
320
|
```
|
|
321
321
|
|
|
322
322
|
#### Scenario B: One or More Gates Fail ❌
|
|
@@ -348,11 +348,24 @@ Action Plan:
|
|
|
348
348
|
2. Complete T008 (JWT validation) - 3h
|
|
349
349
|
3. Update CLAUDE.md - 30m
|
|
350
350
|
4. Update README.md - 1h
|
|
351
|
-
5. Re-run /done 0001 for validation
|
|
351
|
+
5. Re-run /specweave:done 0001 for validation
|
|
352
352
|
|
|
353
353
|
Increment remains: in-progress
|
|
354
354
|
|
|
355
|
-
|
|
355
|
+
🔄 GitHub Issue Auto-Reopen (if exists):
|
|
356
|
+
Checking metadata for GitHub issue...
|
|
357
|
+
✓ Found: GitHub issue #42
|
|
358
|
+
✓ Reopening with validation failure details...
|
|
359
|
+
✓ Issue #42 reopened with comment:
|
|
360
|
+
"❌ Validation failed - increment not ready for closure
|
|
361
|
+
|
|
362
|
+
Gate failures:
|
|
363
|
+
• Gate 1: 2 P1 tasks incomplete
|
|
364
|
+
• Gate 3: Documentation outdated
|
|
365
|
+
|
|
366
|
+
See PM validation report for details."
|
|
367
|
+
|
|
368
|
+
Try again after fixing blockers: /specweave:done 0001
|
|
356
369
|
```
|
|
357
370
|
|
|
358
371
|
### Step 4: Handle Incomplete Work
|
|
@@ -397,7 +410,7 @@ Closing increment 0001-user-authentication...
|
|
|
397
410
|
### Example 1: Successful Closure
|
|
398
411
|
|
|
399
412
|
```bash
|
|
400
|
-
/done 0001
|
|
413
|
+
/specweave:done 0001
|
|
401
414
|
```
|
|
402
415
|
|
|
403
416
|
**Output**:
|
|
@@ -410,13 +423,13 @@ PM Approval: ✅ APPROVED
|
|
|
410
423
|
|
|
411
424
|
🎉 Increment 0001 closed successfully!
|
|
412
425
|
|
|
413
|
-
Next: /increment "Next feature"
|
|
426
|
+
Next: /specweave:increment "Next feature"
|
|
414
427
|
```
|
|
415
428
|
|
|
416
429
|
### Example 2: Blocked by Failing Tests
|
|
417
430
|
|
|
418
431
|
```bash
|
|
419
|
-
/done 0002
|
|
432
|
+
/specweave:done 0002
|
|
420
433
|
```
|
|
421
434
|
|
|
422
435
|
**Output**:
|
|
@@ -437,7 +450,7 @@ Increment remains: in-progress
|
|
|
437
450
|
### Example 3: Blocked by Outdated Docs
|
|
438
451
|
|
|
439
452
|
```bash
|
|
440
|
-
/done 0003
|
|
453
|
+
/specweave:done 0003
|
|
441
454
|
```
|
|
442
455
|
|
|
443
456
|
**Output**:
|
|
@@ -460,7 +473,7 @@ Increment remains: in-progress
|
|
|
460
473
|
### Example 4: Scope Creep - Transfer to Next Increment
|
|
461
474
|
|
|
462
475
|
```bash
|
|
463
|
-
/done 0004
|
|
476
|
+
/specweave:done 0004
|
|
464
477
|
```
|
|
465
478
|
|
|
466
479
|
**Output**:
|
|
@@ -494,7 +507,7 @@ Available increments:
|
|
|
494
507
|
• 0002-core-enhancements (in-progress)
|
|
495
508
|
• 0003-payment-processing (planned)
|
|
496
509
|
|
|
497
|
-
Usage: /done <increment-id>
|
|
510
|
+
Usage: /specweave:done <increment-id>
|
|
498
511
|
```
|
|
499
512
|
|
|
500
513
|
### Increment Not In-Progress
|
|
@@ -503,7 +516,7 @@ Usage: /done <increment-id>
|
|
|
503
516
|
|
|
504
517
|
Increment must be "in-progress" before closing.
|
|
505
518
|
|
|
506
|
-
Run: /do 0001 to start implementation first.
|
|
519
|
+
Run: /specweave:do 0001 to start implementation first.
|
|
507
520
|
```
|
|
508
521
|
|
|
509
522
|
### Major Blockers Found
|
|
@@ -559,7 +572,7 @@ All PM validation settings use sensible defaults:
|
|
|
559
572
|
|
|
560
573
|
**Important**: This command represents PM validation and MUST NOT be bypassed. All 3 gates (tasks, tests, docs) must pass before increment can close.
|
|
561
574
|
|
|
562
|
-
**Best Practice**: Always run `/validate 0001 --quality` before `/done 0001` to catch issues early.
|
|
575
|
+
**Best Practice**: Always run `/specweave:validate 0001 --quality` before `/specweave:done 0001` to catch issues early.
|
|
563
576
|
|
|
564
577
|
**PM Role**: The PM agent acts as the final quality gate, ensuring:
|
|
565
578
|
- ✅ Business value delivered (tasks complete)
|