specweave 1.0.264 → 1.0.266

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.
Files changed (81) hide show
  1. package/CLAUDE.md +27 -31
  2. package/bin/specweave.js +39 -10
  3. package/dist/dashboard/assets/index-ChpKRRZZ.js +11 -0
  4. package/dist/dashboard/assets/index-Xlk5xDzZ.css +1 -0
  5. package/dist/dashboard/index.html +2 -2
  6. package/dist/src/cli/commands/docs.d.ts +4 -0
  7. package/dist/src/cli/commands/docs.d.ts.map +1 -1
  8. package/dist/src/cli/commands/docs.js +83 -59
  9. package/dist/src/cli/commands/docs.js.map +1 -1
  10. package/dist/src/core/living-docs/content-distributor.js +1 -1
  11. package/dist/src/core/living-docs/content-distributor.js.map +1 -1
  12. package/dist/src/core/living-docs/scaffolding/template-engine.js +1 -1
  13. package/dist/src/core/living-docs/scaffolding/template-engine.js.map +1 -1
  14. package/dist/src/core/living-docs/sync-helpers/generators.js +1 -1
  15. package/dist/src/core/living-docs/sync-helpers/generators.js.map +1 -1
  16. package/dist/src/core/llm/consent.d.ts +33 -0
  17. package/dist/src/core/llm/consent.d.ts.map +1 -0
  18. package/dist/src/core/llm/consent.js +96 -0
  19. package/dist/src/core/llm/consent.js.map +1 -0
  20. package/dist/src/core/llm/index.d.ts +2 -0
  21. package/dist/src/core/llm/index.d.ts.map +1 -1
  22. package/dist/src/core/llm/index.js +2 -0
  23. package/dist/src/core/llm/index.js.map +1 -1
  24. package/dist/src/core/llm/provider-factory.d.ts +2 -0
  25. package/dist/src/core/llm/provider-factory.d.ts.map +1 -1
  26. package/dist/src/core/llm/provider-factory.js +9 -0
  27. package/dist/src/core/llm/provider-factory.js.map +1 -1
  28. package/dist/src/core/llm/types.d.ts +17 -0
  29. package/dist/src/core/llm/types.d.ts.map +1 -1
  30. package/dist/src/core/llm/types.js.map +1 -1
  31. package/dist/src/core/skills/skill-judge.d.ts +2 -0
  32. package/dist/src/core/skills/skill-judge.d.ts.map +1 -1
  33. package/dist/src/core/skills/skill-judge.js +15 -2
  34. package/dist/src/core/skills/skill-judge.js.map +1 -1
  35. package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
  36. package/dist/src/dashboard/server/dashboard-server.js +28 -5
  37. package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
  38. package/dist/src/dashboard/server/data/claude-log-parser.d.ts +14 -10
  39. package/dist/src/dashboard/server/data/claude-log-parser.d.ts.map +1 -1
  40. package/dist/src/dashboard/server/data/claude-log-parser.js +83 -15
  41. package/dist/src/dashboard/server/data/claude-log-parser.js.map +1 -1
  42. package/dist/src/dashboard/server/data/cost-aggregator.d.ts +9 -1
  43. package/dist/src/dashboard/server/data/cost-aggregator.d.ts.map +1 -1
  44. package/dist/src/dashboard/server/data/cost-aggregator.js +10 -2
  45. package/dist/src/dashboard/server/data/cost-aggregator.js.map +1 -1
  46. package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts.map +1 -1
  47. package/dist/src/dashboard/server/data/dashboard-data-aggregator.js +1 -0
  48. package/dist/src/dashboard/server/data/dashboard-data-aggregator.js.map +1 -1
  49. package/dist/src/dashboard/types.d.ts +19 -1
  50. package/dist/src/dashboard/types.d.ts.map +1 -1
  51. package/dist/src/importers/import-coordinator.js +8 -8
  52. package/dist/src/importers/import-coordinator.js.map +1 -1
  53. package/dist/src/utils/docs-preview/config-generator.d.ts +2 -2
  54. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
  55. package/dist/src/utils/docs-preview/config-generator.js +223 -69
  56. package/dist/src/utils/docs-preview/config-generator.js.map +1 -1
  57. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +7 -6
  58. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -1
  59. package/dist/src/utils/docs-preview/docusaurus-setup.js +121 -59
  60. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
  61. package/dist/src/utils/docs-preview/index.d.ts +3 -1
  62. package/dist/src/utils/docs-preview/index.d.ts.map +1 -1
  63. package/dist/src/utils/docs-preview/index.js +2 -1
  64. package/dist/src/utils/docs-preview/index.js.map +1 -1
  65. package/dist/src/utils/docs-preview/project-detector.d.ts.map +1 -1
  66. package/dist/src/utils/docs-preview/project-detector.js +26 -7
  67. package/dist/src/utils/docs-preview/project-detector.js.map +1 -1
  68. package/dist/src/utils/docs-preview/server-manager.d.ts +4 -0
  69. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -1
  70. package/dist/src/utils/docs-preview/server-manager.js +102 -7
  71. package/dist/src/utils/docs-preview/server-manager.js.map +1 -1
  72. package/dist/src/utils/docs-preview/types.d.ts +12 -0
  73. package/dist/src/utils/docs-preview/types.d.ts.map +1 -1
  74. package/dist/src/utils/docs-preview/types.js +15 -1
  75. package/dist/src/utils/docs-preview/types.js.map +1 -1
  76. package/package.json +1 -6
  77. package/plugins/specweave/skills/done/SKILL.md +5 -4
  78. package/plugins/specweave/skills/judge-llm/SKILL.md +18 -0
  79. package/plugins/specweave-docs/skills/preview/SKILL.md +13 -9
  80. package/dist/dashboard/assets/index-Cv1XUAKk.css +0 -1
  81. package/dist/dashboard/assets/index-DHOztQSu.js +0 -11
package/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- SW:META template="claude" version="1.0.263" sections="header,lsp,start,autodetect,metarule,rules,workflow,reflect,context,structure,taskformat,secrets,syncing,testing,tdd,api,limits,troubleshooting,lazyloading,principles,linking,mcp,auto,docs" -->
1
+ <!-- SW:META template="claude" version="1.0.265" sections="header,lsp,start,autodetect,metarule,rules,workflow,reflect,context,structure,taskformat,secrets,syncing,testing,tdd,api,limits,troubleshooting,lazyloading,principles,linking,mcp,auto,docs" -->
2
2
 
3
3
  <!-- SW:SECTION:hook-priority version="1.0.171" -->
4
4
  ## ⛔ Hook Instructions Override Everything
@@ -11,7 +11,7 @@
11
11
  | **"SKILL FIRST"** | Call shown skill FIRST → chain domain skills → implement |
12
12
  <!-- SW:END:hook-priority -->
13
13
 
14
- <!-- SW:SECTION:header version="1.0.263" -->
14
+ <!-- SW:SECTION:header version="1.0.265" -->
15
15
  **Framework**: SpecWeave | **Truth**: `spec.md` + `tasks.md`
16
16
  <!-- SW:END:header -->
17
17
 
@@ -39,13 +39,13 @@ If auto-activation fails, invoke explicitly: `Skill({ skill: "name" })`
39
39
 
40
40
  Use: `specweave lsp refs|def|hover src/file.ts SymbolName`
41
41
 
42
- <!-- SW:SECTION:lsp version="1.0.263" -->
42
+ <!-- SW:SECTION:lsp version="1.0.265" -->
43
43
  ## LSP (Code Intelligence)
44
44
 
45
45
  **Native LSP broken in v2.1.0+.** Use: `specweave lsp refs|def|hover src/file.ts SymbolName`
46
46
  <!-- SW:END:lsp -->
47
47
 
48
- <!-- SW:SECTION:start version="1.0.263" -->
48
+ <!-- SW:SECTION:start version="1.0.265" -->
49
49
  ## Getting Started
50
50
 
51
51
  **Initial increment**: `0001-project-setup` (auto-created by `specweave init`)
@@ -55,21 +55,17 @@ Use: `specweave lsp refs|def|hover src/file.ts SymbolName`
55
55
  2. **Customize**: Edit spec.md and use for setup tasks
56
56
  <!-- SW:END:start -->
57
57
 
58
- <!-- SW:SECTION:autodetect version="1.0.263" -->
58
+ <!-- SW:SECTION:autodetect version="1.0.265" -->
59
59
  ## Auto-Detection
60
60
 
61
- SpecWeave auto-detects work that needs an increment and routes to `/sw:increment`:
61
+ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
62
62
 
63
- **Product signals** (5+ = auto-route): Project name | Features list (3+) | Tech stack | Timeline/MVP | Problem statement | Business model
64
-
65
- **Research/content signals** (3+ = auto-route): "think hard" / "research" | Multiple deliverables (page + script + docs) | Comparison/analysis across entities | External data gathering needed | "create a page" / "write content" / "public docs"
66
-
67
- **Complexity signals** (any 1 = plan mode mandatory): Multi-step content pipeline | Cross-platform output (docs + video + social) | Requires web research before execution | "compare all X" or "benchmark" tasks
63
+ **Signals** (5+ = auto-route): Project name | Features list (3+) | Tech stack | Timeline/MVP | Problem statement | Business model
68
64
 
69
65
  **Opt-out phrases**: "Just brainstorm first" | "Don't plan yet" | "Quick discussion" | "Let's explore ideas"
70
66
  <!-- SW:END:autodetect -->
71
67
 
72
- <!-- SW:SECTION:metarule version="1.0.263" -->
68
+ <!-- SW:SECTION:metarule version="1.0.265" -->
73
69
  ## Workflow Orchestration
74
70
 
75
71
  ### 1. Plan Mode Default
@@ -96,7 +92,7 @@ Good: npm run build → node script.js → Success
96
92
  ```
97
93
  <!-- SW:END:metarule -->
98
94
 
99
- <!-- SW:SECTION:rules version="1.0.263" -->
95
+ <!-- SW:SECTION:rules version="1.0.265" -->
100
96
  ## Rules
101
97
 
102
98
  1. **Files** → `.specweave/increments/####-name/` (see Structure section for details)
@@ -112,7 +108,7 @@ Good: npm run build → node script.js → Success
112
108
  8. **Multi-repo**: ALL repos MUST be at `repositories/{org}/{repo-name}/` — NEVER directly under `repositories/`
113
109
  <!-- SW:END:rules -->
114
110
 
115
- <!-- SW:SECTION:workflow version="1.0.263" -->
111
+ <!-- SW:SECTION:workflow version="1.0.265" -->
116
112
  ## Workflow
117
113
 
118
114
  `/sw:increment "X"` → `/sw:do` → `/sw:progress` → `/sw:done 0001`
@@ -152,7 +148,7 @@ Skills auto-recommend based on this matrix. In non-auto mode: ask user. In auto
152
148
  Before git operations, scan: `for d in repositories packages services apps libs workspace; do [ -d "$d" ] && find "$d" -maxdepth 2 -name ".git" -type d; done`
153
149
  <!-- SW:END:save-nested-repos -->
154
150
 
155
- <!-- SW:SECTION:reflect version="1.0.263" -->
151
+ <!-- SW:SECTION:reflect version="1.0.265" -->
156
152
  ## Skill Memories
157
153
 
158
154
  SpecWeave learns from corrections. Learnings saved here automatically. Edit or delete as needed.
@@ -174,7 +170,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
174
170
  - Auto mode: Stop hook creates implicit loops via block/approve pattern
175
171
  - **Team-lead for complex work**: After plan generation, ALWAYS assess complexity (task count + domain count). For 3+ domains or 15+ tasks, proactively recommend /sw:team-lead with token cost warning. In auto mode, auto-invoke team-lead for 3+ domains.
176
172
 
177
- <!-- SW:SECTION:context version="1.0.263" -->
173
+ <!-- SW:SECTION:context version="1.0.265" -->
178
174
  ## Context
179
175
 
180
176
  **Before implementing**: Check ADRs at `.specweave/docs/internal/architecture/adr/`
@@ -182,7 +178,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
182
178
  **Load context**: `/sw:docs <topic>` loads relevant living docs into conversation
183
179
  <!-- SW:END:context -->
184
180
 
185
- <!-- SW:SECTION:structure version="1.0.263" -->
181
+ <!-- SW:SECTION:structure version="1.0.265" -->
186
182
  ## Structure
187
183
 
188
184
  ```
@@ -197,7 +193,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
197
193
  **Everything else → subfolders**: `reports/` | `logs/` | `scripts/` | `backups/`
198
194
  <!-- SW:END:structure -->
199
195
 
200
- <!-- SW:SECTION:taskformat version="1.0.263" -->
196
+ <!-- SW:SECTION:taskformat version="1.0.265" -->
201
197
  ## Task Format
202
198
 
203
199
  ```markdown
@@ -207,41 +203,41 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
207
203
  ```
208
204
  <!-- SW:END:taskformat -->
209
205
 
210
- <!-- SW:SECTION:secrets version="1.0.263" -->
206
+ <!-- SW:SECTION:secrets version="1.0.265" -->
211
207
  ## Secrets
212
208
 
213
209
  Before CLI tools, check existing config (`grep -q` only — never display values).
214
210
  <!-- SW:END:secrets -->
215
211
 
216
- <!-- SW:SECTION:syncing version="1.0.263" -->
212
+ <!-- SW:SECTION:syncing version="1.0.265" -->
217
213
  ## External Sync
218
214
 
219
215
  Primary: `/sw:progress-sync`. Individual: `/sw-github:push`, `/sw-github:close`. Mapping: Feature→Milestone | Story→Issue | Task→Checkbox.
220
216
  <!-- SW:END:syncing -->
221
217
 
222
- <!-- SW:SECTION:testing version="1.0.263" -->
218
+ <!-- SW:SECTION:testing version="1.0.265" -->
223
219
  ## Testing
224
220
 
225
221
  BDD in tasks.md | Unit >80% | `.test.ts` (Vitest) | ESM mocking: `vi.hoisted()` + `vi.mock()`
226
222
  <!-- SW:END:testing -->
227
223
 
228
- <!-- SW:SECTION:tdd version="1.0.263" -->
224
+ <!-- SW:SECTION:tdd version="1.0.265" -->
229
225
  ## TDD
230
226
 
231
227
  When `testing.defaultTestMode: "TDD"` in config.json: RED→GREEN→REFACTOR. Use `/sw:tdd-cycle`. Enforcement via `testing.tddEnforcement` (strict|warn|off).
232
228
  <!-- SW:END:tdd -->
233
229
 
234
- <!-- SW:SECTION:api version="1.0.263" -->
230
+ <!-- SW:SECTION:api version="1.0.265" -->
235
231
  <!-- API: Enable `apiDocs` in config.json. Commands: /sw:api-docs -->
236
232
  <!-- SW:END:api -->
237
233
 
238
- <!-- SW:SECTION:limits version="1.0.263" -->
234
+ <!-- SW:SECTION:limits version="1.0.265" -->
239
235
  ## Limits
240
236
 
241
237
  **Max 1500 lines/file** — extract before adding
242
238
  <!-- SW:END:limits -->
243
239
 
244
- <!-- SW:SECTION:troubleshooting version="1.0.263" -->
240
+ <!-- SW:SECTION:troubleshooting version="1.0.265" -->
245
241
  ## Troubleshooting
246
242
 
247
243
  | Issue | Fix |
@@ -252,13 +248,13 @@ When `testing.defaultTestMode: "TDD"` in config.json: RED→GREEN→REFACTOR. Us
252
248
  | Session stuck | `rm -f .specweave/state/*.lock` + restart |
253
249
  <!-- SW:END:troubleshooting -->
254
250
 
255
- <!-- SW:SECTION:lazyloading version="1.0.263" -->
251
+ <!-- SW:SECTION:lazyloading version="1.0.265" -->
256
252
  ## Plugin Auto-Loading
257
253
 
258
254
  Plugins load automatically. Manual: `claude plugin install sw-frontend@specweave`. Disable: `export SPECWEAVE_DISABLE_AUTO_LOAD=1`
259
255
  <!-- SW:END:lazyloading -->
260
256
 
261
- <!-- SW:SECTION:principles version="1.0.263" -->
257
+ <!-- SW:SECTION:principles version="1.0.265" -->
262
258
  ## Principles
263
259
 
264
260
  1. **Spec-first**: `/sw:increment` before coding
@@ -267,7 +263,7 @@ Plugins load automatically. Manual: `claude plugin install sw-frontend@specweave
267
263
  4. **No Laziness**: Root causes, senior standards
268
264
  <!-- SW:END:principles -->
269
265
 
270
- <!-- SW:SECTION:linking version="1.0.263" -->
266
+ <!-- SW:SECTION:linking version="1.0.265" -->
271
267
  ## Bidirectional Linking
272
268
 
273
269
  Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
@@ -275,13 +271,13 @@ Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
275
271
  Task format: `**AC**: AC-US1-01, AC-US1-02` (CRITICAL for linking)
276
272
  <!-- SW:END:linking -->
277
273
 
278
- <!-- SW:SECTION:mcp version="1.0.263" -->
274
+ <!-- SW:SECTION:mcp version="1.0.265" -->
279
275
  ## External Services
280
276
 
281
277
  CLI tools first (`gh`, `wrangler`, `supabase`) → MCP for complex integrations.
282
278
  <!-- SW:END:mcp -->
283
279
 
284
- <!-- SW:SECTION:auto version="1.0.263" -->
280
+ <!-- SW:SECTION:auto version="1.0.265" -->
285
281
  ## Auto Mode
286
282
 
287
283
  `/sw:auto` (start) | `/sw:auto-status` (check) | `/sw:cancel-auto` (emergency)
@@ -289,7 +285,7 @@ CLI tools first (`gh`, `wrangler`, `supabase`) → MCP for complex integrations.
289
285
  Pattern: IMPLEMENT → TEST → FAIL? → FIX → PASS → NEXT. STOP & ASK if spec conflicts or ambiguity.
290
286
  <!-- SW:END:auto -->
291
287
 
292
- <!-- SW:SECTION:docs version="1.0.263" -->
288
+ <!-- SW:SECTION:docs version="1.0.265" -->
293
289
  ## Docs
294
290
 
295
291
  [spec-weave.com](https://spec-weave.com)
package/bin/specweave.js CHANGED
@@ -870,7 +870,8 @@ const docsCmd = program
870
870
  docsCmd
871
871
  .command('preview')
872
872
  .description('Start documentation preview server with hot reload')
873
- .option('-p, --port <number>', 'Port number (default: auto-find 3000-3010)')
873
+ .option('-p, --port <number>', 'Port number (default: 3015 internal, 3016 public)')
874
+ .option('-s, --scope <scope>', 'Documentation scope: internal or public (default: internal)')
874
875
  .option('-f, --force', 'Force reinstall Docusaurus')
875
876
  .option('--no-browser', 'Do not open browser automatically')
876
877
  .option('--no-validate', 'Skip pre-flight validation')
@@ -883,12 +884,14 @@ docsCmd
883
884
  noBrowser: !options.browser,
884
885
  validate: options.validate,
885
886
  autoFix: options.autoFix,
887
+ scope: options.scope || 'internal',
886
888
  });
887
889
  });
888
890
 
889
891
  docsCmd
890
892
  .command('build')
891
893
  .description('Build static documentation site for deployment')
894
+ .option('-s, --scope <scope>', 'Documentation scope: internal or public (default: internal)')
892
895
  .option('--no-validate', 'Skip pre-build validation')
893
896
  .option('--no-auto-fix', 'Do not auto-fix validation issues')
894
897
  .option('-o, --output <path>', 'Output directory')
@@ -898,17 +901,43 @@ docsCmd
898
901
  validate: options.validate,
899
902
  autoFix: options.autoFix,
900
903
  output: options.output,
904
+ scope: options.scope || 'internal',
901
905
  });
902
906
  });
903
907
 
904
908
  docsCmd
905
909
  .command('validate')
906
910
  .description('Validate documentation without starting server')
911
+ .option('-s, --scope <scope>', 'Documentation scope: internal or public (default: internal)')
907
912
  .option('--auto-fix', 'Auto-fix common issues')
908
913
  .option('-v, --verbose', 'Show all issues (not just errors)')
909
914
  .action(async (options) => {
910
915
  const { docsValidateCommand } = await import('../dist/src/cli/commands/docs.js');
911
- await docsValidateCommand(options);
916
+ await docsValidateCommand({
917
+ autoFix: options.autoFix,
918
+ verbose: options.verbose,
919
+ scope: options.scope || 'internal',
920
+ });
921
+ });
922
+
923
+ docsCmd
924
+ .command('public')
925
+ .description('Preview public documentation (shorthand for preview --scope public)')
926
+ .option('-p, --port <number>', 'Port number (default: 3016)')
927
+ .option('-f, --force', 'Force reinstall Docusaurus')
928
+ .option('--no-browser', 'Do not open browser automatically')
929
+ .option('--no-validate', 'Skip pre-flight validation')
930
+ .option('--no-auto-fix', 'Do not auto-fix validation issues')
931
+ .action(async (options) => {
932
+ const { docsPreviewCommand } = await import('../dist/src/cli/commands/docs.js');
933
+ await docsPreviewCommand({
934
+ port: options.port ? parseInt(options.port, 10) : undefined,
935
+ force: options.force,
936
+ noBrowser: !options.browser,
937
+ validate: options.validate,
938
+ autoFix: options.autoFix,
939
+ scope: 'public',
940
+ });
912
941
  });
913
942
 
914
943
  docsCmd
@@ -927,10 +956,10 @@ docsCmd
927
956
  await docsStatusCommand();
928
957
  });
929
958
 
930
- // Default action for 'specweave docs' without subcommand
959
+ // Default action for 'specweave docs' without subcommand — launches internal preview
931
960
  docsCmd.action(async () => {
932
- const { docsStatusCommand } = await import('../dist/src/cli/commands/docs.js');
933
- await docsStatusCommand();
961
+ const { docsPreviewCommand } = await import('../dist/src/cli/commands/docs.js');
962
+ await docsPreviewCommand({ scope: 'internal' });
934
963
  });
935
964
 
936
965
  // Context command - Get project/board context for increment planning
@@ -1166,12 +1195,12 @@ program.on('--help', () => {
1166
1195
  console.log(' $ specweave context projects # Get available projects as JSON');
1167
1196
  console.log(' $ specweave context boards --project myapp # Get boards for a project');
1168
1197
  console.log(' $ specweave context select # Interactive project/board selection');
1169
- console.log(' $ specweave docs # Show docs status and help');
1170
- console.log(' $ specweave docs preview # Start docs server with hot reload');
1171
- console.log(' $ specweave docs preview --port 3015 # Start on specific port');
1172
- console.log(' $ specweave docs build # Build static site for deployment');
1198
+ console.log(' $ specweave docs # Preview internal docs (port 3015)');
1199
+ console.log(' $ specweave docs public # Preview public docs (port 3016)');
1200
+ console.log(' $ specweave docs build # Build internal site');
1201
+ console.log(' $ specweave docs build --scope public # Build public site');
1173
1202
  console.log(' $ specweave docs validate # Check for docs errors');
1174
- console.log(' $ specweave docs validate --auto-fix # Fix common issues automatically');
1203
+ console.log(' $ specweave docs status # Show docs status');
1175
1204
  console.log(' $ specweave docs kill # Stop all docs servers');
1176
1205
  console.log(' $ specweave set-sync-target 0008 # Set sync target for increment');
1177
1206
  console.log(' $ specweave set-sync-target 0008 -v # Show resolution path');