specweave 1.0.261 → 1.0.263
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 +0 -2
- package/CLAUDE.md +27 -27
- package/bin/specweave.js +14 -85
- package/dist/dashboard/assets/index-Cv1XUAKk.css +1 -0
- package/dist/dashboard/assets/index-DHOztQSu.js +11 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/src/adapters/README.md +1 -1
- package/dist/src/adapters/agents-md-generator.js +1 -1
- package/dist/src/adapters/agents-md-generator.js.map +1 -1
- package/dist/src/adapters/claude/README.md +8 -8
- package/dist/src/adapters/claude/adapter.js +2 -2
- package/dist/src/adapters/claude-md-generator.js +2 -2
- package/dist/src/adapters/claude-md-generator.js.map +1 -1
- package/dist/src/adapters/cursor/README.md +7 -7
- package/dist/src/adapters/generic/README.md +2 -2
- package/dist/src/cli/commands/create-increment.d.ts +1 -1
- package/dist/src/cli/commands/create-increment.js +1 -1
- package/dist/src/cli/commands/update.d.ts.map +1 -1
- package/dist/src/cli/commands/update.js +64 -1
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/helpers/init/api-docs-config.js +7 -7
- package/dist/src/cli/helpers/init/api-docs-config.js.map +1 -1
- package/dist/src/core/config/types.d.ts +18 -0
- package/dist/src/core/config/types.d.ts.map +1 -1
- package/dist/src/core/config/types.js +4 -0
- package/dist/src/core/config/types.js.map +1 -1
- package/dist/src/core/external-tools/external-items-display.d.ts.map +1 -1
- package/dist/src/core/external-tools/external-items-display.js +1 -11
- package/dist/src/core/external-tools/external-items-display.js.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +1 -1
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +2 -2
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/template-creator.d.ts +1 -1
- package/dist/src/core/increment/template-creator.js +4 -4
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
- package/dist/src/core/lazy-loading/llm-plugin-detector.js +15 -5
- package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
- package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
- package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
- package/dist/src/core/living-docs/scaffolding/scaffold.js +3 -3
- package/dist/src/core/notifications/command-integration.d.ts.map +1 -1
- package/dist/src/core/notifications/command-integration.js +0 -1
- package/dist/src/core/notifications/command-integration.js.map +1 -1
- package/dist/src/core/reflection/reflect-handler.js +2 -2
- package/dist/src/core/reflection/reflect-handler.js.map +1 -1
- package/dist/src/core/validators/ac-presence-validator.d.ts +1 -1
- package/dist/src/core/validators/ac-presence-validator.js +3 -3
- package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
- package/dist/src/dashboard/server/command-runner.d.ts.map +1 -1
- package/dist/src/dashboard/server/command-runner.js +2 -2
- package/dist/src/dashboard/server/command-runner.js.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.js +22 -10
- package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts +9 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.js +140 -13
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.js.map +1 -1
- package/dist/src/dashboard/server/data/plugin-scanner.d.ts +1 -1
- package/dist/src/dashboard/server/data/plugin-scanner.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/plugin-scanner.js +2 -2
- package/dist/src/dashboard/server/data/plugin-scanner.js.map +1 -1
- package/dist/src/utils/agents-md-compiler.js +1 -1
- package/dist/src/utils/agents-md-compiler.js.map +1 -1
- package/dist/src/utils/find-project-root.d.ts +5 -4
- package/dist/src/utils/find-project-root.d.ts.map +1 -1
- package/dist/src/utils/find-project-root.js +8 -10
- package/dist/src/utils/find-project-root.js.map +1 -1
- package/dist/src/utils/generate-skills-index.js +3 -3
- package/dist/src/utils/notification-constants.js +1 -1
- package/dist/src/utils/notification-constants.js.map +1 -1
- package/package.json +1 -1
- package/plugins/FINAL-AUDIT-RECOMMENDATIONS.md +3 -3
- package/plugins/specweave/PLUGIN.md +0 -22
- package/plugins/specweave/commands/analytics.md +1 -1
- package/plugins/specweave/commands/discrepancies.md +0 -1
- package/plugins/specweave/commands/living-docs.md +0 -1
- package/plugins/specweave/commands/reconcile.md +1 -1
- package/plugins/specweave/hooks/hooks.json +19 -0
- package/plugins/specweave/hooks/pre-compact.sh +39 -0
- package/plugins/specweave/hooks/stop-sync.sh +23 -1
- package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +4 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh +193 -59
- package/plugins/specweave/hooks/v2/dispatchers/post-tool-use-analytics.sh +83 -0
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +7 -0
- package/plugins/specweave/hooks/v2/guards/spec-template-enforcement-guard.sh +1 -1
- package/plugins/specweave/hooks/v2/handlers/ac-sync-dispatcher.sh +25 -6
- package/plugins/specweave/hooks/v2/handlers/universal-auto-create-dispatcher.sh +21 -3
- package/plugins/specweave/hooks/v2/lib/check-provider-enabled.sh +52 -0
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +2 -2
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
- package/plugins/specweave/scripts/track-analytics.sh +4 -0
- package/plugins/specweave/skills/do/SKILL.md +1 -1
- package/plugins/specweave/skills/done/SKILL.md +1 -1
- package/plugins/specweave/skills/framework/SKILL.md +4 -4
- package/plugins/specweave/skills/increment/SKILL.md +192 -25
- package/plugins/specweave/skills/next/SKILL.md +36 -630
- package/plugins/specweave/skills/pm/phases/00-deep-interview.md +2 -2
- package/plugins/specweave/skills/progress-sync/SKILL.md +7 -25
- package/plugins/specweave/skills/spec-generator/SKILL.md +44 -626
- package/plugins/specweave/skills/tdd-green/SKILL.md +10 -798
- package/plugins/specweave/skills/tdd-red/SKILL.md +8 -136
- package/plugins/specweave/skills/tdd-refactor/SKILL.md +15 -147
- package/plugins/specweave-github/hooks/github-auto-create-handler.sh +23 -5
- package/src/templates/AGENTS.md.template +11 -11
- package/src/templates/CLAUDE.md.template +1 -1
- package/dist/dashboard/assets/index-CDl14O5G.css +0 -1
- package/dist/dashboard/assets/index-CmqBqnWd.js +0 -11
- package/plugins/specweave/commands/api-docs.md +0 -672
- package/plugins/specweave/commands/check-hooks.md +0 -241
- package/plugins/specweave/commands/embed-acs.md +0 -445
- package/plugins/specweave/commands/external.md +0 -145
- package/plugins/specweave/commands/import-docs.md +0 -212
- package/plugins/specweave/commands/migrate-config.md +0 -104
- package/plugins/specweave/commands/notifications.md +0 -94
- package/plugins/specweave/commands/plugin-validator.md +0 -429
- package/plugins/specweave/commands/revert-wip-limit.md +0 -82
- package/plugins/specweave/commands/sync-acs.md +0 -342
- package/plugins/specweave/commands/sync-specs.md +0 -339
- package/plugins/specweave/commands/sync-tasks.md +0 -255
- package/plugins/specweave/commands/update-scope.md +0 -351
- package/plugins/specweave/commands/validate-features.md +0 -207
- package/plugins/specweave/skills/archive-increments/SKILL.md +0 -209
- package/plugins/specweave/skills/code-review/SKILL.md +0 -598
- package/plugins/specweave/skills/increment-planner/SKILL.md +0 -238
- package/plugins/specweave/skills/increment-work-router/SKILL.md +0 -562
- package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +0 -423
- package/plugins/specweave/skills/pm-closure-validation/SKILL.md +0 -542
- package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +0 -245
- package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +0 -228
- package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +0 -301
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: View external items dashboard - open issues from GitHub, JIRA, and Azure DevOps
|
|
3
|
-
argument-hint: [--refresh]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# External Items Dashboard
|
|
7
|
-
|
|
8
|
-
**Usage**: `/sw:external [--refresh]`
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Purpose
|
|
13
|
-
|
|
14
|
-
Display a comprehensive dashboard of open external items from all configured providers:
|
|
15
|
-
- **GitHub Issues** - Open issues in linked repository
|
|
16
|
-
- **JIRA Tickets** - Open issues in configured project
|
|
17
|
-
- **Azure DevOps Work Items** - Open work items in configured project
|
|
18
|
-
|
|
19
|
-
Helps you stay aware of pending work and unaddressed items across all tools.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Output Format
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
External Items Dashboard
|
|
27
|
-
|
|
28
|
-
GitHub Issues (4 open, 2 stale)
|
|
29
|
-
#779 DORA Metrics Workflow Failed 10h ago
|
|
30
|
-
#778 DORA Metrics Workflow Failed 1d ago
|
|
31
|
-
#777 DORA Metrics Workflow Failed 1d ago stale
|
|
32
|
-
#776 DORA Metrics Workflow Failed 3d ago stale
|
|
33
|
-
|
|
34
|
-
JIRA: not configured
|
|
35
|
-
|
|
36
|
-
ADO: not configured
|
|
37
|
-
|
|
38
|
-
Total: 4 open (2 stale >7d)
|
|
39
|
-
Last updated: 2 minutes ago (use --refresh to update)
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Options
|
|
45
|
-
|
|
46
|
-
### --refresh
|
|
47
|
-
|
|
48
|
-
Force refresh the cache and fetch latest data from all providers.
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
/sw:external --refresh
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Implementation
|
|
57
|
-
|
|
58
|
-
When this command is invoked, execute the following:
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
import { ExternalItemsCounter, displayDetailedDashboard } from '../src/core/external-tools/index';
|
|
62
|
-
|
|
63
|
-
// Parse options
|
|
64
|
-
const refresh = args.includes('--refresh');
|
|
65
|
-
|
|
66
|
-
// Create counter
|
|
67
|
-
const counter = new ExternalItemsCounter({
|
|
68
|
-
projectRoot: process.cwd(),
|
|
69
|
-
forceRefresh: refresh,
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
// Get summary
|
|
73
|
-
const summary = await counter.getSummary();
|
|
74
|
-
|
|
75
|
-
// Display dashboard
|
|
76
|
-
displayDetailedDashboard(summary);
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Stale Detection
|
|
82
|
-
|
|
83
|
-
Items older than 7 days are marked as "stale" with indicator:
|
|
84
|
-
|
|
85
|
-
- **Stale** = created more than 7 days ago and still open
|
|
86
|
-
- Review stale items regularly to avoid accumulating technical debt
|
|
87
|
-
- Close or address items promptly
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Caching
|
|
92
|
-
|
|
93
|
-
- Default TTL: 15 minutes
|
|
94
|
-
- Uses `.specweave/cache/external-items-summary.json`
|
|
95
|
-
- Use `--refresh` to force update from APIs
|
|
96
|
-
- Stale cache is used as fallback when rate limited
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Provider Configuration
|
|
101
|
-
|
|
102
|
-
### GitHub
|
|
103
|
-
|
|
104
|
-
Auto-detected from git remote. Requires:
|
|
105
|
-
- GitHub CLI (`gh`) installed
|
|
106
|
-
- Authenticated: `gh auth login`
|
|
107
|
-
|
|
108
|
-
### JIRA
|
|
109
|
-
|
|
110
|
-
Set environment variables:
|
|
111
|
-
- `JIRA_BASE_URL` - JIRA instance URL
|
|
112
|
-
- `JIRA_EMAIL` - Your email
|
|
113
|
-
- `JIRA_API_TOKEN` - API token
|
|
114
|
-
- `JIRA_PROJECT_KEY` - Project key (optional)
|
|
115
|
-
|
|
116
|
-
### Azure DevOps
|
|
117
|
-
|
|
118
|
-
Set environment variables:
|
|
119
|
-
- `ADO_ORG_URL` or `AZURE_DEVOPS_ORG_URL` - Organization URL
|
|
120
|
-
- `ADO_PROJECT` or `AZURE_DEVOPS_PROJECT` - Project name
|
|
121
|
-
- `ADO_PAT` or `AZURE_DEVOPS_PAT` - Personal Access Token
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Integration Points
|
|
126
|
-
|
|
127
|
-
External items are also shown in:
|
|
128
|
-
- `/sw:status` - Summary section at bottom
|
|
129
|
-
- `/sw:increment` - Notification after planning
|
|
130
|
-
- `/sw:progress` - Footer line
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Related Commands
|
|
135
|
-
|
|
136
|
-
- `/sw:status` - Show increment status with external items summary
|
|
137
|
-
- `/sw:progress` - Show detailed progress with external items footer
|
|
138
|
-
- `/sw:import-external` - Import external items as increments
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
**Command**: `/sw:external`
|
|
143
|
-
**Plugin**: specweave (core)
|
|
144
|
-
**Version**: v0.31.0
|
|
145
|
-
**Part of**: Increment 0109 - External Items Dashboard
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Import brownfield documentation from Notion exports, Confluence, GitHub Wiki, or any markdown folder. Automatically classifies files as specs, modules, team docs, or legacy.
|
|
3
|
-
disable-model-invocation: true
|
|
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
|
-
/sw: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
|
-
/sw: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
|
-
/sw: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
|
-
/sw: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
|
-
/sw: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
|
-
- `/sw: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,104 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Migrate .env-only configuration to split secrets/config format
|
|
3
|
-
disable-model-invocation: true
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Migrate your project from the old .env-only format to the new split format where secrets stay in `.env` (gitignored) and configuration moves to `.specweave/config.json` (committed to git).
|
|
7
|
-
|
|
8
|
-
**What this command does:**
|
|
9
|
-
|
|
10
|
-
1. Analyzes your `.env` file
|
|
11
|
-
2. Classifies variables as "secrets" or "config"
|
|
12
|
-
3. Backs up original `.env` file
|
|
13
|
-
4. Updates `.env` (keeps only secrets)
|
|
14
|
-
5. Creates/updates `.specweave/config.json` (adds config)
|
|
15
|
-
6. Generates `.env.example` for team onboarding
|
|
16
|
-
|
|
17
|
-
**When to use:**
|
|
18
|
-
|
|
19
|
-
- You're upgrading from SpecWeave v0.23.x or earlier
|
|
20
|
-
- Your `.env` contains both secrets AND configuration (domain, strategy, etc.)
|
|
21
|
-
- You want to share configuration with your team via git
|
|
22
|
-
|
|
23
|
-
**Command:**
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
node -e "require('./dist/src/cli/commands/migrate-config.js').migrateConfig()"
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Options:**
|
|
30
|
-
|
|
31
|
-
- `--dry-run`: Preview migration without making changes
|
|
32
|
-
- `--yes`: Skip confirmation prompt
|
|
33
|
-
- `--force`: Force migration even if not needed
|
|
34
|
-
|
|
35
|
-
**Example output:**
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
🔄 SpecWeave Configuration Migration
|
|
39
|
-
|
|
40
|
-
📋 Migration Preview
|
|
41
|
-
|
|
42
|
-
Classification Results:
|
|
43
|
-
Secrets: 3 variables
|
|
44
|
-
Config: 5 variables
|
|
45
|
-
|
|
46
|
-
📊 Detailed Breakdown:
|
|
47
|
-
|
|
48
|
-
Secrets (will stay in .env):
|
|
49
|
-
JIRA_API_TOKEN=xyzabc***456
|
|
50
|
-
└─ Contains keyword: token
|
|
51
|
-
|
|
52
|
-
JIRA_EMAIL=user@example.com
|
|
53
|
-
└─ Email address (used for authentication)
|
|
54
|
-
|
|
55
|
-
Configuration (will move to config.json):
|
|
56
|
-
JIRA_DOMAIN=company.atlassian.net
|
|
57
|
-
└─ Non-sensitive configuration data
|
|
58
|
-
|
|
59
|
-
JIRA_STRATEGY=project-per-team
|
|
60
|
-
└─ Non-sensitive configuration data
|
|
61
|
-
|
|
62
|
-
✅ Migration Successful!
|
|
63
|
-
|
|
64
|
-
Summary:
|
|
65
|
-
✓ 3 secrets kept in .env
|
|
66
|
-
✓ 5 config items moved to config.json
|
|
67
|
-
✓ Backup created: .env.backup.1234567890
|
|
68
|
-
✓ .env.example generated
|
|
69
|
-
|
|
70
|
-
📝 Next Steps:
|
|
71
|
-
|
|
72
|
-
1. Review .specweave/config.json (commit to git)
|
|
73
|
-
2. Share .env.example with team (commit to git)
|
|
74
|
-
3. Team members: cp .env.example .env (fill in tokens)
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Benefits:**
|
|
78
|
-
|
|
79
|
-
- Team shares configuration via git
|
|
80
|
-
- Secrets stay local (never committed)
|
|
81
|
-
- Type-safe configuration with validation
|
|
82
|
-
- Easy onboarding for new team members
|
|
83
|
-
|
|
84
|
-
**Classification logic:**
|
|
85
|
-
|
|
86
|
-
Variables classified as **secrets** (stay in .env):
|
|
87
|
-
- Contains keywords: `token`, `api_token`, `pat`, `secret`, `key`, `password`, `credential`, `auth`
|
|
88
|
-
- Email addresses (used for authentication)
|
|
89
|
-
|
|
90
|
-
Variables classified as **config** (move to config.json):
|
|
91
|
-
- Everything else: domains, strategies, project keys, organizations, etc.
|
|
92
|
-
|
|
93
|
-
**Safety:**
|
|
94
|
-
|
|
95
|
-
- Always creates backup before modifying `.env`
|
|
96
|
-
- Atomic operation (either completes fully or rolls back)
|
|
97
|
-
- Idempotent (can run multiple times safely)
|
|
98
|
-
- Dry-run mode available for preview
|
|
99
|
-
|
|
100
|
-
**See also:**
|
|
101
|
-
|
|
102
|
-
- ADR-0050: Secrets vs Configuration Separation
|
|
103
|
-
- `/sw:validate` - Validate configuration after migration
|
|
104
|
-
- Documentation: `CLAUDE.md` → Configuration Management section
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: View and manage sync notifications - import completions, discrepancies, sync failures. Filter by type and severity, show details, dismiss notifications.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Notifications Command
|
|
6
|
-
|
|
7
|
-
View and manage sync notifications - import completions, discrepancies, sync failures, and more.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
/sw:notifications # List pending notifications
|
|
13
|
-
/sw:notifications --all # Include dismissed notifications
|
|
14
|
-
/sw:notifications --type sync-failure # Filter by type
|
|
15
|
-
/sw:notifications --severity warning # Filter by severity
|
|
16
|
-
/sw:notifications show <id> # Show notification details
|
|
17
|
-
/sw:notifications dismiss <id> # Dismiss a notification
|
|
18
|
-
/sw:notifications dismiss-all # Dismiss all pending notifications
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Arguments
|
|
22
|
-
|
|
23
|
-
- `--all`: Include dismissed notifications in the list
|
|
24
|
-
- `--type <type>`: Filter by notification type:
|
|
25
|
-
- `import-complete`: Import job finished
|
|
26
|
-
- `discrepancy`: Code-spec discrepancy detected
|
|
27
|
-
- `sync-failure`: Sync operation failed
|
|
28
|
-
- `drift`: Status drift detected
|
|
29
|
-
- `job-complete`: Scheduled job finished
|
|
30
|
-
- `--severity <level>`: Filter by severity: `info`, `warning`, `critical`
|
|
31
|
-
- `--json`: Output as JSON for scripting
|
|
32
|
-
|
|
33
|
-
## Subcommands
|
|
34
|
-
|
|
35
|
-
### list (default)
|
|
36
|
-
|
|
37
|
-
Lists notifications with severity emoji, title, and age.
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
PENDING NOTIFICATIONS (3)
|
|
41
|
-
|
|
42
|
-
notif-abc123 CRITICAL GitHub sync failed 2m ago
|
|
43
|
-
notif-def456 WARNING 2 discrepancies in FS-045 1h ago
|
|
44
|
-
notif-ghi789 INFO 107 items imported 3h ago
|
|
45
|
-
|
|
46
|
-
Use '/sw:notifications show <id>' to view details
|
|
47
|
-
Use '/sw:notifications dismiss <id>' to dismiss
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### show <id>
|
|
51
|
-
|
|
52
|
-
Shows full notification details including data payload.
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
NOTIFICATION DETAILS
|
|
56
|
-
|
|
57
|
-
ID: notif-abc123
|
|
58
|
-
Type: sync-failure
|
|
59
|
-
Severity: critical
|
|
60
|
-
Title: GitHub sync failed
|
|
61
|
-
Message: Rate limit exceeded. Retry in 15 minutes.
|
|
62
|
-
Created: 2025-12-01 12:00:00 (2m ago)
|
|
63
|
-
|
|
64
|
-
Data:
|
|
65
|
-
platform: github
|
|
66
|
-
error: Rate limit exceeded
|
|
67
|
-
retryAfter: 900
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### dismiss <id>
|
|
71
|
-
|
|
72
|
-
Dismisses a single notification.
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
Dismissed notification notif-abc123
|
|
76
|
-
|
|
77
|
-
Remaining: 2 pending notifications
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### dismiss-all
|
|
81
|
-
|
|
82
|
-
Dismisses all pending notifications with confirmation.
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
This will dismiss 3 pending notifications.
|
|
86
|
-
Proceed? [y/N]: y
|
|
87
|
-
|
|
88
|
-
Dismissed 3 notifications
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Related
|
|
92
|
-
|
|
93
|
-
- `/sw:sync-monitor`: Dashboard showing notification summary
|
|
94
|
-
- `/sw:discrepancies`: View and act on discrepancy notifications
|