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,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specweave:import-docs
|
|
3
|
+
description: Import brownfield documentation from Notion exports, Confluence, GitHub Wiki, or any markdown folder. Automatically classifies files as specs, modules, team docs, or legacy.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Import Brownfield Documentation
|
|
7
|
+
|
|
8
|
+
Import existing documentation from Notion exports, Confluence, GitHub Wiki, or any markdown folder.
|
|
9
|
+
|
|
10
|
+
## What This Does
|
|
11
|
+
|
|
12
|
+
1. **Analyzes markdown files** in source directory (recursively)
|
|
13
|
+
2. **Classifies files** based on content:
|
|
14
|
+
- **Specs** - Contains "user story", "acceptance criteria", "feature"
|
|
15
|
+
- **Modules** - Contains "module", "component", "architecture"
|
|
16
|
+
- **Team** - Contains "onboarding", "convention", "workflow"
|
|
17
|
+
- **Legacy** - Everything else (no strong match)
|
|
18
|
+
3. **Copies files** to appropriate destinations
|
|
19
|
+
4. **Creates migration report** with classification details
|
|
20
|
+
5. **Updates config** with import history
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
/specweave:import-docs <source-path> [options]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Options
|
|
29
|
+
|
|
30
|
+
- `--source=<type>` - Source type: `notion`, `confluence`, `wiki`, `custom` (required)
|
|
31
|
+
- `--project=<id>` - Target project ID (default: active project)
|
|
32
|
+
- `--preserve-structure` - Preserve original folder structure
|
|
33
|
+
- `--dry-run` - Preview classification without importing
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Example 1: Notion Export
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Export Notion workspace to /tmp/notion-export/
|
|
41
|
+
# Then import:
|
|
42
|
+
|
|
43
|
+
/specweave:import-docs /tmp/notion-export/ --source=notion
|
|
44
|
+
|
|
45
|
+
# Result:
|
|
46
|
+
# π Analysis Results:
|
|
47
|
+
# Total files: 47
|
|
48
|
+
# - Specs: 12 files β specs/
|
|
49
|
+
# - Modules: 18 files β modules/
|
|
50
|
+
# - Team docs: 5 files β team/
|
|
51
|
+
# - Legacy: 12 files β legacy/notion/
|
|
52
|
+
# β
Import complete!
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Example 2: Confluence Export
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
/specweave:import-docs /path/to/confluence/ --source=confluence --project=web-app
|
|
59
|
+
|
|
60
|
+
# Imports to: projects/web-app/specs/, modules/, team/, legacy/confluence/
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Example 3: Dry Run (Preview)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
/specweave:import-docs /tmp/docs/ --source=custom --dry-run
|
|
67
|
+
|
|
68
|
+
# Shows classification without importing files
|
|
69
|
+
# Use this to preview results before actual import
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Example 4: Preserve Structure
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
/specweave:import-docs /path/to/wiki/ --source=wiki --preserve-structure
|
|
76
|
+
|
|
77
|
+
# Preserves original folder structure:
|
|
78
|
+
# legacy/wiki/engineering/backend/auth.md
|
|
79
|
+
# legacy/wiki/engineering/frontend/components.md
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Supported Sources
|
|
83
|
+
|
|
84
|
+
### Notion
|
|
85
|
+
- **Export Format**: Markdown & CSV
|
|
86
|
+
- **Steps**:
|
|
87
|
+
1. In Notion: Settings β Export β Export all workspace content
|
|
88
|
+
2. Choose "Markdown & CSV" format
|
|
89
|
+
3. Download ZIP file
|
|
90
|
+
4. Extract to folder (e.g., `/tmp/notion-export/`)
|
|
91
|
+
5. Run import command
|
|
92
|
+
|
|
93
|
+
### Confluence
|
|
94
|
+
- **Export Format**: HTML or Markdown
|
|
95
|
+
- **Steps**:
|
|
96
|
+
1. Space tools β Content Tools β Export
|
|
97
|
+
2. Choose HTML or Markdown
|
|
98
|
+
3. Extract exported files
|
|
99
|
+
4. Run import command
|
|
100
|
+
|
|
101
|
+
### GitHub Wiki
|
|
102
|
+
- **Export Format**: Git repository
|
|
103
|
+
- **Steps**:
|
|
104
|
+
1. Clone wiki: `git clone https://github.com/user/repo.wiki.git`
|
|
105
|
+
2. Run import command on cloned directory
|
|
106
|
+
|
|
107
|
+
### Custom (Any Markdown)
|
|
108
|
+
- Any folder containing `.md` or `.markdown` files
|
|
109
|
+
- Recursive search through subdirectories
|
|
110
|
+
|
|
111
|
+
## Classification Algorithm
|
|
112
|
+
|
|
113
|
+
Files are classified using keyword analysis:
|
|
114
|
+
|
|
115
|
+
### Specs (70%+ confidence)
|
|
116
|
+
- Keywords: "user story", "acceptance criteria", "feature", "requirement"
|
|
117
|
+
- Patterns: "As a [user], I want [goal]", "Given-When-Then"
|
|
118
|
+
- Example: Feature specs, PRDs, user stories
|
|
119
|
+
|
|
120
|
+
### Modules (70%+ confidence)
|
|
121
|
+
- Keywords: "module", "component", "service", "architecture"
|
|
122
|
+
- Patterns: API docs, technical design, integration points
|
|
123
|
+
- Example: Auth module, payment processing, ML pipeline
|
|
124
|
+
|
|
125
|
+
### Team (70%+ confidence)
|
|
126
|
+
- Keywords: "onboarding", "convention", "workflow", "pr process"
|
|
127
|
+
- Patterns: Team processes, coding standards, deployment guides
|
|
128
|
+
- Example: Onboarding guide, code review checklist
|
|
129
|
+
|
|
130
|
+
### Legacy (<70% confidence)
|
|
131
|
+
- No strong match to above categories
|
|
132
|
+
- Uncertain classification
|
|
133
|
+
- Requires manual review
|
|
134
|
+
|
|
135
|
+
## Destination Folders
|
|
136
|
+
|
|
137
|
+
Files are imported to:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
.specweave/docs/internal/projects/{project}/
|
|
141
|
+
βββ specs/ β Specs (spec keywords)
|
|
142
|
+
βββ modules/ β Modules (module keywords)
|
|
143
|
+
βββ team/ β Team docs (team keywords)
|
|
144
|
+
βββ legacy/{source}/ β Legacy (uncertain classification)
|
|
145
|
+
βββ notion/
|
|
146
|
+
βββ confluence/
|
|
147
|
+
βββ wiki/
|
|
148
|
+
βββ custom/
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Migration Report
|
|
152
|
+
|
|
153
|
+
After import, a detailed report is generated:
|
|
154
|
+
|
|
155
|
+
**Location**: `.specweave/docs/internal/projects/{project}/legacy/README.md`
|
|
156
|
+
|
|
157
|
+
**Contents**:
|
|
158
|
+
- Import summary (counts per category)
|
|
159
|
+
- Classification analysis (with confidence scores)
|
|
160
|
+
- List of imported files
|
|
161
|
+
- Next steps and recommendations
|
|
162
|
+
|
|
163
|
+
## Configuration Updates
|
|
164
|
+
|
|
165
|
+
Import history is tracked in `.specweave/config.json`:
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"brownfield": {
|
|
170
|
+
"importHistory": [{
|
|
171
|
+
"source": "notion",
|
|
172
|
+
"workspace": "acme-corp",
|
|
173
|
+
"importedAt": "2025-11-06T10:30:00Z",
|
|
174
|
+
"project": "web-app",
|
|
175
|
+
"filesImported": 47,
|
|
176
|
+
"destination": ".specweave/docs/internal/projects/web-app/legacy/notion/"
|
|
177
|
+
}]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## After Import
|
|
183
|
+
|
|
184
|
+
1. **Review classification** - Check migration report
|
|
185
|
+
2. **Move misclassified files** - Use file manager or git
|
|
186
|
+
3. **Update spec numbers** - Rename to `spec-NNN-name.md`
|
|
187
|
+
4. **Clean up legacy** - Delete obsolete content
|
|
188
|
+
5. **Update references** - Fix broken links
|
|
189
|
+
|
|
190
|
+
## When to Use
|
|
191
|
+
|
|
192
|
+
- **Migrating from Notion** to SpecWeave
|
|
193
|
+
- **Consolidating wikis** from GitHub, Confluence, etc.
|
|
194
|
+
- **Onboarding brownfield projects** with existing documentation
|
|
195
|
+
- **Merging multiple doc sources** into single SpecWeave instance
|
|
196
|
+
|
|
197
|
+
## Limitations
|
|
198
|
+
|
|
199
|
+
- Only markdown files (.md, .markdown) supported
|
|
200
|
+
- No direct API integration (use exports)
|
|
201
|
+
- Classification is heuristic (80%+ accuracy target)
|
|
202
|
+
- Manual review recommended for low-confidence files
|
|
203
|
+
|
|
204
|
+
## See Also
|
|
205
|
+
|
|
206
|
+
- `/specweave:init-multiproject` - Set up multi-project mode first
|
|
207
|
+
- [Brownfield Import Guide](https://docs.spec-weave.com/guides/brownfield-import)
|
|
208
|
+
- [Migration Best Practices](https://docs.spec-weave.com/guides/migration-best-practices)
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
**Implementation**: `src/cli/commands/import-docs.ts`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: increment
|
|
2
|
+
name: specweave:increment
|
|
3
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
4
|
---
|
|
5
5
|
|
|
@@ -199,11 +199,11 @@ if (activeCount >= limits.hardCap) {
|
|
|
199
199
|
|
|
200
200
|
console.log(chalk.blue('\nπ‘ You MUST complete or pause existing work first:\n'));
|
|
201
201
|
console.log(chalk.white('1οΈβ£ Complete an increment:'));
|
|
202
|
-
console.log(chalk.dim(' /done <id>\n'));
|
|
202
|
+
console.log(chalk.dim(' /specweave:done <id>\n'));
|
|
203
203
|
console.log(chalk.white('2οΈβ£ Pause an increment:'));
|
|
204
|
-
console.log(chalk.dim(' /pause <id> --reason="..."\n'));
|
|
204
|
+
console.log(chalk.dim(' /specweave:pause <id> --reason="..."\n'));
|
|
205
205
|
console.log(chalk.white('3οΈβ£ Check status:'));
|
|
206
|
-
console.log(chalk.dim(' /status\n'));
|
|
206
|
+
console.log(chalk.dim(' /specweave:status\n'));
|
|
207
207
|
|
|
208
208
|
console.log(chalk.yellow('π Multiple hotfixes? Combine them into ONE increment!'));
|
|
209
209
|
console.log(chalk.dim(' Example: 0009-security-fixes (SQL + XSS + CSRF)\n'));
|
|
@@ -267,7 +267,7 @@ if (activeCount >= limits.maxActiveIncrements) {
|
|
|
267
267
|
|
|
268
268
|
if (choice === 'complete') {
|
|
269
269
|
console.log(chalk.green('\nβ
Smart choice! Finish current work first.\n'));
|
|
270
|
-
console.log(chalk.dim('Use /do to continue work\n'));
|
|
270
|
+
console.log(chalk.dim('Use /specweave:do to continue work\n'));
|
|
271
271
|
process.exit(0);
|
|
272
272
|
} else if (choice === 'pause') {
|
|
273
273
|
console.log(chalk.blue('\nβΈοΈ Pausing current increment...\n'));
|
|
@@ -311,13 +311,13 @@ Active increments:
|
|
|
311
311
|
π‘ You MUST complete or pause existing work first:
|
|
312
312
|
|
|
313
313
|
1οΈβ£ Complete an increment:
|
|
314
|
-
/done <id>
|
|
314
|
+
/specweave:done <id>
|
|
315
315
|
|
|
316
316
|
2οΈβ£ Pause an increment:
|
|
317
|
-
/pause <id> --reason="..."
|
|
317
|
+
/specweave:pause <id> --reason="..."
|
|
318
318
|
|
|
319
319
|
3οΈβ£ Check status:
|
|
320
|
-
/status
|
|
320
|
+
/specweave:status
|
|
321
321
|
|
|
322
322
|
π Multiple hotfixes? Combine them into ONE increment!
|
|
323
323
|
Example: 0009-security-fixes (SQL + XSS + CSRF)
|
|
@@ -353,7 +353,7 @@ Choose an option: 1
|
|
|
353
353
|
|
|
354
354
|
β
Smart choice! Finish current work first.
|
|
355
355
|
|
|
356
|
-
Use /do to continue work
|
|
356
|
+
Use /specweave:do to continue work
|
|
357
357
|
```
|
|
358
358
|
|
|
359
359
|
**Example Output - Emergency Interrupt (hotfix)**:
|
|
@@ -610,7 +610,7 @@ This will:
|
|
|
610
610
|
|
|
611
611
|
Next steps:
|
|
612
612
|
1. Review the increment plan and strategic docs
|
|
613
|
-
2. Start implementation: /do 0003
|
|
613
|
+
2. Start implementation: /specweave:do 0003
|
|
614
614
|
3. (Optional) Sync to GitHub: /sync-github
|
|
615
615
|
```
|
|
616
616
|
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specweave:init-multiproject
|
|
3
|
+
description: Initialize multi-project mode for SpecWeave. Enables organizing specs, modules, and team docs by project/team. Auto-migrates existing specs/ to projects/default/.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Initialize Multi-Project Mode
|
|
7
|
+
|
|
8
|
+
Enable multi-project mode to organize documentation by project or team.
|
|
9
|
+
|
|
10
|
+
## What This Does
|
|
11
|
+
|
|
12
|
+
1. **Auto-migrates** existing `specs/` to `projects/default/specs/` (transparent, no behavior change)
|
|
13
|
+
2. **Enables multi-project mode** in config (optional)
|
|
14
|
+
3. **Creates additional projects** (optional, interactive prompts)
|
|
15
|
+
4. **Sets up folder structure** for each project (specs/, modules/, team/, architecture/, legacy/)
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
/specweave:init-multiproject
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Interactive Prompts
|
|
24
|
+
|
|
25
|
+
1. **Enable multi-project mode?** (yes/no)
|
|
26
|
+
- No: Stay in single-project mode (uses `projects/default/` but `multiProject.enabled = false`)
|
|
27
|
+
- Yes: Enable multi-project mode (allows multiple projects)
|
|
28
|
+
|
|
29
|
+
2. **Create additional projects?** (yes/no, only if multi-project enabled)
|
|
30
|
+
- If yes, enter project details:
|
|
31
|
+
- Project ID (kebab-case, e.g., `web-app`)
|
|
32
|
+
- Project name (e.g., "Web Application")
|
|
33
|
+
- Description
|
|
34
|
+
- Tech stack (comma-separated)
|
|
35
|
+
- Team name
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### Example 1: Single Project (Default)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
/specweave:init-multiproject
|
|
43
|
+
|
|
44
|
+
# Prompts:
|
|
45
|
+
# - Enable multi-project mode? β No
|
|
46
|
+
|
|
47
|
+
# Result:
|
|
48
|
+
# β
Auto-migrated to projects/default/
|
|
49
|
+
# βΉοΈ Still in single-project mode
|
|
50
|
+
# βΉοΈ All operations use projects/default/ automatically
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Example 2: Multi-Project (Enterprise)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
/specweave:init-multiproject
|
|
57
|
+
|
|
58
|
+
# Prompts:
|
|
59
|
+
# - Enable multi-project mode? β Yes
|
|
60
|
+
# - Create additional projects? β Yes
|
|
61
|
+
# - Project ID: web-app
|
|
62
|
+
# - Name: Web Application
|
|
63
|
+
# - Description: Customer-facing web app
|
|
64
|
+
# - Tech stack: React, TypeScript, Node.js
|
|
65
|
+
# - Team: Frontend Team
|
|
66
|
+
#
|
|
67
|
+
# Create another project? β Yes
|
|
68
|
+
# - Project ID: platform-infra
|
|
69
|
+
# - Name: Platform Infrastructure
|
|
70
|
+
# - ...
|
|
71
|
+
|
|
72
|
+
# Result:
|
|
73
|
+
# β
Created projects/web-app/
|
|
74
|
+
# β
Created projects/platform-infra/
|
|
75
|
+
# β
Multi-project mode enabled
|
|
76
|
+
# βΉοΈ Use /specweave:switch-project to change active project
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Folder Structure Created
|
|
80
|
+
|
|
81
|
+
For each project:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
.specweave/docs/internal/projects/{project-id}/
|
|
85
|
+
βββ README.md # Project overview
|
|
86
|
+
βββ specs/ # Living docs specs (spec-001, spec-002, ...)
|
|
87
|
+
βββ modules/ # Module-level docs (auth, payments, etc.)
|
|
88
|
+
βββ team/ # Team playbooks (onboarding, conventions)
|
|
89
|
+
βββ architecture/ # Project-specific architecture (optional)
|
|
90
|
+
β βββ adr/ # Architecture Decision Records
|
|
91
|
+
βββ legacy/ # Brownfield imported docs
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## When to Use
|
|
95
|
+
|
|
96
|
+
### Single Project Mode
|
|
97
|
+
- Small projects or startups
|
|
98
|
+
- One team, one codebase
|
|
99
|
+
- Simple organizational structure
|
|
100
|
+
|
|
101
|
+
### Multi-Project Mode
|
|
102
|
+
- Multiple teams or repos
|
|
103
|
+
- Microservices architecture
|
|
104
|
+
- Platform engineering managing multiple projects
|
|
105
|
+
- Different tech stacks per team
|
|
106
|
+
|
|
107
|
+
## Integration with External Sync
|
|
108
|
+
|
|
109
|
+
Multi-project mode integrates with external sync (GitHub, JIRA, ADO):
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"multiProject": {
|
|
114
|
+
"projects": [{
|
|
115
|
+
"id": "web-app",
|
|
116
|
+
"syncProfiles": ["web-app-github", "web-app-jira"]
|
|
117
|
+
}]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Each project can link to specific sync profiles for external tracking.
|
|
123
|
+
|
|
124
|
+
## What Happens to Existing Specs?
|
|
125
|
+
|
|
126
|
+
**Automatic Migration**:
|
|
127
|
+
1. Existing `specs/` copied to `projects/default/specs/`
|
|
128
|
+
2. Old `specs/` renamed to `specs.old/` (backup)
|
|
129
|
+
3. Config updated with `multiProject` section
|
|
130
|
+
4. **No behavior change** - all operations still work
|
|
131
|
+
|
|
132
|
+
**Rollback** (if needed):
|
|
133
|
+
```bash
|
|
134
|
+
# Restore from backup
|
|
135
|
+
npm run specweave:rollback-migration
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## See Also
|
|
139
|
+
|
|
140
|
+
- `/specweave:switch-project` - Change active project
|
|
141
|
+
- `/specweave:import-docs` - Import brownfield docs
|
|
142
|
+
- [Multi-Project Guide](https://docs.spec-weave.com/guides/multi-project-setup)
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
**Implementation**: `src/cli/commands/init-multiproject.ts`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: next
|
|
2
|
+
name: specweave:next
|
|
3
3
|
description: Smart increment transition - auto-close current if ready, intelligently suggest next work (backlog or new feature)
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -12,7 +12,7 @@ You are helping the user complete their current increment and move to the next o
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
/next
|
|
15
|
+
/specweave:next
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**No arguments needed** - the command intelligently handles the transition.
|
|
@@ -21,7 +21,7 @@ You are helping the user complete their current increment and move to the next o
|
|
|
21
21
|
|
|
22
22
|
## What This Does
|
|
23
23
|
|
|
24
|
-
The `/next` command is your **workflow continuation** command. It:
|
|
24
|
+
The `/specweave:next` command is your **workflow continuation** command. It:
|
|
25
25
|
|
|
26
26
|
1. **Validates current increment** - Checks if work is complete
|
|
27
27
|
2. **Auto-closes if ready** - PM validates and closes automatically
|
|
@@ -257,7 +257,7 @@ What would you like to do? [A/B/C]
|
|
|
257
257
|
Example: /specweave inc "Admin dashboard"
|
|
258
258
|
|
|
259
259
|
B. Check existing ideas β Look in .specweave/increments/_backlog/
|
|
260
|
-
If you have ideas saved, promote them with /
|
|
260
|
+
If you have ideas saved, promote them with /specweave:increment
|
|
261
261
|
|
|
262
262
|
C. Review roadmap β See .specweave/docs/internal/strategy/roadmap.md
|
|
263
263
|
|
|
@@ -272,7 +272,7 @@ What would you like to do? [A/B/C]
|
|
|
272
272
|
|
|
273
273
|
**User**:
|
|
274
274
|
```bash
|
|
275
|
-
/next
|
|
275
|
+
/specweave:next
|
|
276
276
|
```
|
|
277
277
|
|
|
278
278
|
**Output**:
|
|
@@ -315,7 +315,7 @@ Next Action: Run `/specweave do 0002` to begin
|
|
|
315
315
|
|
|
316
316
|
**User**:
|
|
317
317
|
```bash
|
|
318
|
-
/next
|
|
318
|
+
/specweave:next
|
|
319
319
|
```
|
|
320
320
|
|
|
321
321
|
**Output**:
|
|
@@ -357,7 +357,7 @@ Next Action: Run `/specweave do 0001` to resume at T010
|
|
|
357
357
|
|
|
358
358
|
**User**:
|
|
359
359
|
```bash
|
|
360
|
-
/next
|
|
360
|
+
/specweave:next
|
|
361
361
|
```
|
|
362
362
|
|
|
363
363
|
**Output**:
|
|
@@ -397,7 +397,7 @@ Options:
|
|
|
397
397
|
|
|
398
398
|
**User**:
|
|
399
399
|
```bash
|
|
400
|
-
/next
|
|
400
|
+
/specweave:next
|
|
401
401
|
```
|
|
402
402
|
|
|
403
403
|
**Output**:
|
|
@@ -431,15 +431,15 @@ Your choice? [A/B/C] _
|
|
|
431
431
|
|
|
432
432
|
| Command | Purpose | When to Use |
|
|
433
433
|
|---------|---------|-------------|
|
|
434
|
-
| `/specweave
|
|
435
|
-
| `/specweave
|
|
436
|
-
| `/specweave
|
|
437
|
-
| `/done` | Explicitly close increment | Manual closure with validation |
|
|
438
|
-
| `/next` β | **Smart transition** (close + suggest next) | **Natural workflow continuation** |
|
|
434
|
+
| `/specweave:increment "feature"` | Create NEW increment with specific feature | Starting fresh work |
|
|
435
|
+
| `/specweave:do` | Execute tasks in increment | Implementing planned work |
|
|
436
|
+
| `/specweave:progress` | Check status (no action) | Quick status check |
|
|
437
|
+
| `/specweave:done` | Explicitly close increment | Manual closure with validation |
|
|
438
|
+
| `/specweave:next` β | **Smart transition** (close + suggest next) | **Natural workflow continuation** |
|
|
439
439
|
|
|
440
|
-
**Why `/next` is special**:
|
|
440
|
+
**Why `/specweave:next` is special**:
|
|
441
441
|
- β
Combines validation + closure + suggestion in one command
|
|
442
|
-
- β
No need to remember `/done` then `/
|
|
442
|
+
- β
No need to remember `/specweave:done` then `/specweave:increment` sequence
|
|
443
443
|
- β
Intelligent suggestions (backlog, WIP, new work)
|
|
444
444
|
- β
User stays in control (never forces actions)
|
|
445
445
|
- β
Natural "what's next?" workflow
|
|
@@ -448,7 +448,7 @@ Your choice? [A/B/C] _
|
|
|
448
448
|
|
|
449
449
|
## Best Practices
|
|
450
450
|
|
|
451
|
-
1. **Run `/next` when you feel done** - It validates completion and suggests next steps
|
|
451
|
+
1. **Run `/specweave:next` when you feel done** - It validates completion and suggests next steps
|
|
452
452
|
2. **Trust the PM validation** - If gates fail, there's unfinished work
|
|
453
453
|
3. **Follow recommendations** - Backlog items are already planned
|
|
454
454
|
4. **Keep WIP limit in mind** - Don't force multiple increments
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pause
|
|
2
|
+
name: specweave:pause
|
|
3
3
|
description: Pause an active increment (blocked by external dependency, deprioritized)
|
|
4
4
|
usage: /specweave:pause <increment-id> --reason="<reason>"
|
|
5
5
|
---
|
|
@@ -29,7 +29,7 @@ Pause an active increment when:
|
|
|
29
29
|
- `pausedReason`: User-provided reason
|
|
30
30
|
- `pausedAt`: Current timestamp
|
|
31
31
|
4. **Displays** confirmation message
|
|
32
|
-
5. **Suggests** next actions (
|
|
32
|
+
5. **Suggests** next actions (`/specweave:resume` to continue)
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
@@ -37,17 +37,17 @@ Pause an active increment when:
|
|
|
37
37
|
|
|
38
38
|
### Pause with reason
|
|
39
39
|
```bash
|
|
40
|
-
/pause 0006 --reason="Waiting for Stripe API keys"
|
|
40
|
+
/specweave:pause 0006 --reason="Waiting for Stripe API keys"
|
|
41
41
|
|
|
42
42
|
β
Increment 0006 paused
|
|
43
43
|
π Reason: Waiting for Stripe API keys
|
|
44
44
|
βΈοΈ No longer counts toward active limit
|
|
45
|
-
π‘ Resume with: /resume 0006
|
|
45
|
+
π‘ Resume with: /specweave:resume 0006
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
### Pause without reason (prompts)
|
|
49
49
|
```bash
|
|
50
|
-
/pause 0006
|
|
50
|
+
/specweave:pause 0006
|
|
51
51
|
|
|
52
52
|
β Why are you pausing this increment?
|
|
53
53
|
1. Blocked by external dependency
|
|
@@ -59,7 +59,7 @@ Pause an active increment when:
|
|
|
59
59
|
|
|
60
60
|
β
Increment 0006 paused
|
|
61
61
|
π Reason: Blocked by external dependency
|
|
62
|
-
π‘ Resume with: /resume 0006
|
|
62
|
+
π‘ Resume with: /specweave:resume 0006
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
---
|
|
@@ -68,7 +68,7 @@ Pause an active increment when:
|
|
|
68
68
|
|
|
69
69
|
### Already Paused
|
|
70
70
|
```bash
|
|
71
|
-
/pause 0006 --reason="Different reason"
|
|
71
|
+
/specweave:pause 0006 --reason="Different reason"
|
|
72
72
|
|
|
73
73
|
β οΈ Increment 0006 is already paused
|
|
74
74
|
Previous reason: Waiting for Stripe API keys
|
|
@@ -82,7 +82,7 @@ Update reason? [Y/n]: y
|
|
|
82
82
|
|
|
83
83
|
### Cannot Pause Completed
|
|
84
84
|
```bash
|
|
85
|
-
/pause 0005
|
|
85
|
+
/specweave:pause 0005
|
|
86
86
|
|
|
87
87
|
β Cannot pause increment 0005
|
|
88
88
|
Status: completed
|
|
@@ -91,19 +91,19 @@ Update reason? [Y/n]: y
|
|
|
91
91
|
|
|
92
92
|
### Cannot Pause Abandoned
|
|
93
93
|
```bash
|
|
94
|
-
/pause 0008
|
|
94
|
+
/specweave:pause 0008
|
|
95
95
|
|
|
96
96
|
β Cannot pause increment 0008
|
|
97
97
|
Status: abandoned
|
|
98
|
-
Resume it first: /resume 0008
|
|
98
|
+
Resume it first: /specweave:resume 0008
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
### Increment Not Found
|
|
102
102
|
```bash
|
|
103
|
-
/pause 9999
|
|
103
|
+
/specweave:pause 9999
|
|
104
104
|
|
|
105
105
|
β Increment not found: 9999
|
|
106
|
-
π‘ Check available increments: /status
|
|
106
|
+
π‘ Check available increments: /specweave:status
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
---
|
|
@@ -165,10 +165,10 @@ active ββpauseββ> paused
|
|
|
165
165
|
|
|
166
166
|
## Warning: Stale Paused Increments
|
|
167
167
|
|
|
168
|
-
Increments paused for **7+ days** trigger warnings in `/status`:
|
|
168
|
+
Increments paused for **7+ days** trigger warnings in `/specweave:status`:
|
|
169
169
|
|
|
170
170
|
```bash
|
|
171
|
-
/status
|
|
171
|
+
/specweave:status
|
|
172
172
|
|
|
173
173
|
βΈοΈ Paused (1):
|
|
174
174
|
π 0007-stripe-integration [feature]
|
|
@@ -177,13 +177,13 @@ Increments paused for **7+ days** trigger warnings in `/status`:
|
|
|
177
177
|
β οΈ STALE! Review or abandon?
|
|
178
178
|
|
|
179
179
|
π‘ Actions:
|
|
180
|
-
/resume 0007 # If unblocked
|
|
181
|
-
/abandon 0007 # If no longer needed
|
|
180
|
+
/specweave:resume 0007 # If unblocked
|
|
181
|
+
/specweave:abandon 0007 # If no longer needed
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
---
|
|
185
185
|
|
|
186
|
-
**Command**: `/specweave:pause`
|
|
186
|
+
**Command**: `/specweave:pause`
|
|
187
187
|
**Plugin**: specweave (core)
|
|
188
188
|
**Version**: v0.7.0+
|
|
189
189
|
**Part of**: Increment 0007 - Smart Status Management
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: progress
|
|
2
|
+
name: specweave:progress
|
|
3
3
|
description: Show current increment progress, task completion %, PM gate status, and next action
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -20,10 +20,10 @@ Shows:
|
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
# Check current progress
|
|
23
|
-
/progress
|
|
23
|
+
/specweave:progress
|
|
24
24
|
|
|
25
25
|
# Show progress for specific increment
|
|
26
|
-
/progress 0001
|
|
26
|
+
/specweave:progress 0001
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
---
|
|
@@ -211,9 +211,9 @@ fi
|
|
|
211
211
|
|
|
212
212
|
---
|
|
213
213
|
|
|
214
|
-
## When to Use `/progress`
|
|
214
|
+
## When to Use `/specweave:progress`
|
|
215
215
|
|
|
216
|
-
Use `/progress` when you:
|
|
216
|
+
Use `/specweave:progress` when you:
|
|
217
217
|
- β
Come back after a break and need context
|
|
218
218
|
- β
Want to see overall completion status
|
|
219
219
|
- β
Need to know which task to work on next
|
|
@@ -225,12 +225,12 @@ Use `/progress` when you:
|
|
|
225
225
|
**Typical workflow**:
|
|
226
226
|
```bash
|
|
227
227
|
# Morning: Check what you were working on
|
|
228
|
-
/progress
|
|
228
|
+
/specweave:progress
|
|
229
229
|
|
|
230
230
|
# Shows: "Active: 0002-payments, Task 5/10 (50%)"
|
|
231
|
-
# Shows: "Next: /do 0002 to resume at T006"
|
|
231
|
+
# Shows: "Next: /specweave:do 0002 to resume at T006"
|
|
232
232
|
|
|
233
|
-
/do 0002
|
|
233
|
+
/specweave:do 0002
|
|
234
234
|
# Auto-resumes from T006
|
|
235
235
|
```
|
|
236
236
|
|
|
@@ -238,8 +238,8 @@ Use `/progress` when you:
|
|
|
238
238
|
|
|
239
239
|
## Pro Tips
|
|
240
240
|
|
|
241
|
-
1. **No increment ID needed** - `/progress` automatically finds active increment
|
|
242
|
-
2. **Smart resume** - `/do` picks up where you left off (no task ID needed)
|
|
241
|
+
1. **No increment ID needed** - `/specweave:progress` automatically finds active increment
|
|
242
|
+
2. **Smart resume** - `/specweave:do` picks up where you left off (no task ID needed)
|
|
243
243
|
3. **WIP limits** - Keep 1-2 increments active max for focus
|
|
244
244
|
4. **Completion %** - P1 tasks weighted higher (they're critical path)
|
|
245
245
|
5. **Time tracking** - Warns if tasks are stuck (>2 hours inactive)
|