specweave 1.0.253 → 1.0.255

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 (138) hide show
  1. package/CLAUDE.md +24 -24
  2. package/README.md +163 -1
  3. package/dist/src/adapters/agents-md-generator.d.ts.map +1 -1
  4. package/dist/src/adapters/agents-md-generator.js +0 -1
  5. package/dist/src/adapters/agents-md-generator.js.map +1 -1
  6. package/dist/src/adapters/claude/README.md +0 -1
  7. package/dist/src/adapters/claude-md-generator.d.ts.map +1 -1
  8. package/dist/src/adapters/claude-md-generator.js +0 -1
  9. package/dist/src/adapters/claude-md-generator.js.map +1 -1
  10. package/dist/src/cli/commands/docs.d.ts.map +1 -1
  11. package/dist/src/cli/commands/docs.js +59 -55
  12. package/dist/src/cli/commands/docs.js.map +1 -1
  13. package/dist/src/cli/helpers/init/smart-defaults.d.ts.map +1 -1
  14. package/dist/src/cli/helpers/init/smart-defaults.js +7 -1
  15. package/dist/src/cli/helpers/init/smart-defaults.js.map +1 -1
  16. package/dist/src/core/config/types.d.ts +2 -0
  17. package/dist/src/core/config/types.d.ts.map +1 -1
  18. package/dist/src/core/config/types.js.map +1 -1
  19. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts.map +1 -1
  20. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js +5 -0
  21. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js.map +1 -1
  22. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +21 -0
  23. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
  24. package/dist/src/core/lazy-loading/llm-plugin-detector.js +61 -107
  25. package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
  26. package/dist/src/core/living-docs/enterprise/history-analyzer.d.ts.map +1 -1
  27. package/dist/src/core/living-docs/enterprise/history-analyzer.js +1 -3
  28. package/dist/src/core/living-docs/enterprise/history-analyzer.js.map +1 -1
  29. package/dist/src/core/living-docs/governance/java-standards-parser.d.ts.map +1 -1
  30. package/dist/src/core/living-docs/governance/java-standards-parser.js +37 -18
  31. package/dist/src/core/living-docs/governance/java-standards-parser.js.map +1 -1
  32. package/dist/src/core/living-docs/operations/ops-generator.js +2 -2
  33. package/dist/src/core/living-docs/operations/ops-generator.js.map +1 -1
  34. package/dist/src/core/reflection/index.d.ts +1 -1
  35. package/dist/src/core/reflection/index.d.ts.map +1 -1
  36. package/dist/src/core/reflection/index.js +1 -1
  37. package/dist/src/core/reflection/index.js.map +1 -1
  38. package/dist/src/core/reflection/reflect-handler.d.ts.map +1 -1
  39. package/dist/src/core/reflection/reflect-handler.js +1 -2
  40. package/dist/src/core/reflection/reflect-handler.js.map +1 -1
  41. package/dist/src/core/reflection/skill-memories.d.ts +13 -1
  42. package/dist/src/core/reflection/skill-memories.d.ts.map +1 -1
  43. package/dist/src/core/reflection/skill-memories.js +55 -10
  44. package/dist/src/core/reflection/skill-memories.js.map +1 -1
  45. package/dist/src/core/repo-structure/prefix-validator.d.ts +25 -0
  46. package/dist/src/core/repo-structure/prefix-validator.d.ts.map +1 -0
  47. package/dist/src/core/repo-structure/prefix-validator.js +47 -0
  48. package/dist/src/core/repo-structure/prefix-validator.js.map +1 -0
  49. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +4 -0
  50. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  51. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  52. package/dist/src/core/repo-structure/role-prefix-collector.d.ts +45 -0
  53. package/dist/src/core/repo-structure/role-prefix-collector.d.ts.map +1 -0
  54. package/dist/src/core/repo-structure/role-prefix-collector.js +106 -0
  55. package/dist/src/core/repo-structure/role-prefix-collector.js.map +1 -0
  56. package/dist/src/hooks/session-start.js +7 -0
  57. package/dist/src/hooks/session-start.js.map +1 -1
  58. package/dist/src/sync/story-router.d.ts +36 -0
  59. package/dist/src/sync/story-router.d.ts.map +1 -0
  60. package/dist/src/sync/story-router.js +56 -0
  61. package/dist/src/sync/story-router.js.map +1 -0
  62. package/dist/src/utils/agents-md-compiler.d.ts.map +1 -1
  63. package/dist/src/utils/agents-md-compiler.js +0 -1
  64. package/dist/src/utils/agents-md-compiler.js.map +1 -1
  65. package/dist/src/utils/state-cleanup.d.ts +19 -0
  66. package/dist/src/utils/state-cleanup.d.ts.map +1 -0
  67. package/dist/src/utils/state-cleanup.js +61 -0
  68. package/dist/src/utils/state-cleanup.js.map +1 -0
  69. package/package.json +1 -1
  70. package/plugins/specweave/PLUGIN.md +0 -1
  71. package/plugins/specweave/commands/brownfield-analyzer.md +0 -10
  72. package/plugins/specweave/commands/brownfield-onboarder.md +0 -10
  73. package/plugins/specweave/commands/export-skills.md +0 -10
  74. package/plugins/specweave/commands/plugin-validator.md +0 -10
  75. package/plugins/specweave/hooks/stop-reflect.sh +4 -2
  76. package/plugins/specweave/hooks/user-prompt-submit.sh +29 -68
  77. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +0 -3
  78. package/plugins/specweave/skills/architect/SKILL.md +2 -6
  79. package/plugins/specweave/skills/archive-increments/SKILL.md +0 -10
  80. package/plugins/specweave/skills/auto/SKILL.md +4 -0
  81. package/plugins/specweave/skills/cancel-auto/SKILL.md +5 -1
  82. package/plugins/specweave/skills/code-review/SKILL.md +1 -11
  83. package/plugins/specweave/skills/code-simplifier/SKILL.md +3 -7
  84. package/plugins/specweave/skills/do/SKILL.md +6 -2
  85. package/plugins/specweave/skills/docs/SKILL.md +5 -8
  86. package/plugins/specweave/skills/docs-updater/SKILL.md +4 -10
  87. package/plugins/specweave/skills/done/SKILL.md +6 -3
  88. package/plugins/specweave/skills/framework/SKILL.md +4 -10
  89. package/plugins/specweave/skills/grill/SKILL.md +7 -12
  90. package/plugins/specweave/skills/increment/SKILL.md +5 -0
  91. package/plugins/specweave/skills/increment-planner/SKILL.md +4 -7
  92. package/plugins/specweave/skills/increment-work-router/SKILL.md +0 -10
  93. package/plugins/specweave/skills/judge-llm/SKILL.md +0 -11
  94. package/plugins/specweave/skills/lsp/SKILL.md +4 -10
  95. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +0 -10
  96. package/plugins/specweave/skills/next/SKILL.md +1 -1
  97. package/plugins/specweave/skills/plan/SKILL.md +1 -1
  98. package/plugins/specweave/skills/pm/SKILL.md +6 -11
  99. package/plugins/specweave/skills/pm-closure-validation/SKILL.md +0 -10
  100. package/plugins/specweave/skills/progress/SKILL.md +5 -1
  101. package/plugins/specweave/skills/progress-sync/SKILL.md +2 -11
  102. package/plugins/specweave/skills/save/SKILL.md +6 -1
  103. package/plugins/specweave/skills/security/SKILL.md +2 -6
  104. package/plugins/specweave/skills/security-patterns/SKILL.md +4 -10
  105. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +0 -10
  106. package/plugins/specweave/skills/spec-generator/SKILL.md +0 -10
  107. package/plugins/specweave/skills/tdd-cycle/SKILL.md +5 -1
  108. package/plugins/specweave/skills/tdd-green/SKILL.md +5 -1
  109. package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +4 -10
  110. package/plugins/specweave/skills/tdd-red/SKILL.md +5 -1
  111. package/plugins/specweave/skills/tdd-refactor/SKILL.md +1 -1
  112. package/plugins/specweave/skills/team-build/SKILL.md +1 -1
  113. package/plugins/specweave/skills/team-lead/SKILL.md +3 -3
  114. package/plugins/specweave/skills/test-aware-planner/SKILL.md +0 -10
  115. package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +0 -10
  116. package/plugins/specweave/skills/update-instructions/SKILL.md +0 -10
  117. package/plugins/specweave/skills/validate/SKILL.md +6 -1
  118. package/plugins/specweave-github/commands/close.md +2 -2
  119. package/src/templates/CLAUDE.md.template +1 -1
  120. package/src/templates/docs/adr-template.md +1 -1
  121. package/src/templates/docs/hld-template.md +1 -1
  122. package/src/templates/docs/lld-template.md +2 -2
  123. package/src/templates/docs/rfc-template.md +1 -1
  124. package/src/templates/docs/spec-template.md +1 -1
  125. package/dist/src/core/reflection/skill-memory-injector.d.ts +0 -42
  126. package/dist/src/core/reflection/skill-memory-injector.d.ts.map +0 -1
  127. package/dist/src/core/reflection/skill-memory-injector.js +0 -67
  128. package/dist/src/core/reflection/skill-memory-injector.js.map +0 -1
  129. package/plugins/specweave/commands/skill.md +0 -620
  130. package/plugins/specweave/skills/tech-lead/SKILL.md +0 -25
  131. package/plugins/specweave/templates/coding-standards.md.template +0 -535
  132. package/plugins/specweave/templates/hookify/README.md +0 -47
  133. package/plugins/specweave/templates/hookify/hookify.block-force-push.local.md +0 -19
  134. package/plugins/specweave/templates/hookify/hookify.block-metadata-status.local.md +0 -18
  135. package/plugins/specweave/templates/hookify/hookify.block-secrets.local.md +0 -26
  136. package/plugins/specweave/templates/hookify/hookify.require-tests.local.md +0 -22
  137. package/plugins/specweave/templates/hookify/hookify.warn-dangerous-rm.local.md +0 -23
  138. package/plugins/specweave/templates/hookify/hookify.warn-root-files.local.md +0 -21
package/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- SW:META template="claude" version="1.0.252" sections="header,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.254" sections="header,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.252" -->
14
+ <!-- SW:SECTION:header version="1.0.254" -->
15
15
  **Framework**: SpecWeave | **Truth**: `spec.md` + `tasks.md`
16
16
  <!-- SW:END:header -->
17
17
 
@@ -48,7 +48,7 @@ If auto-activation fails, invoke explicitly: `Skill({ skill: "name" })`
48
48
 
49
49
  **Native LSP broken in v2.1.0+.** Use: `specweave lsp refs|def|hover src/file.ts SymbolName`
50
50
 
51
- <!-- SW:SECTION:start version="1.0.252" -->
51
+ <!-- SW:SECTION:start version="1.0.254" -->
52
52
  ## Getting Started
53
53
 
54
54
  **Initial increment**: `0001-project-setup` (auto-created by `specweave init`)
@@ -58,7 +58,7 @@ If auto-activation fails, invoke explicitly: `Skill({ skill: "name" })`
58
58
  2. **Customize**: Edit spec.md and use for setup tasks
59
59
  <!-- SW:END:start -->
60
60
 
61
- <!-- SW:SECTION:autodetect version="1.0.252" -->
61
+ <!-- SW:SECTION:autodetect version="1.0.254" -->
62
62
  ## Auto-Detection
63
63
 
64
64
  SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
@@ -68,7 +68,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
68
68
  **Opt-out phrases**: "Just brainstorm first" | "Don't plan yet" | "Quick discussion" | "Let's explore ideas"
69
69
  <!-- SW:END:autodetect -->
70
70
 
71
- <!-- SW:SECTION:metarule version="1.0.252" -->
71
+ <!-- SW:SECTION:metarule version="1.0.254" -->
72
72
  ## Workflow Orchestration
73
73
 
74
74
  ### 1. Plan Mode Default
@@ -95,7 +95,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
95
95
  ```
96
96
  <!-- SW:END:metarule -->
97
97
 
98
- <!-- SW:SECTION:rules version="1.0.252" -->
98
+ <!-- SW:SECTION:rules version="1.0.254" -->
99
99
  ## Rules
100
100
 
101
101
  1. **Files** → `.specweave/increments/####-name/` (see Structure section for details)
@@ -116,7 +116,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
116
116
  Discover org from config: `repository.organization` → `sync.profiles` → `umbrella.childRepos` → filesystem
117
117
  <!-- SW:END:rules -->
118
118
 
119
- <!-- SW:SECTION:workflow version="1.0.252" -->
119
+ <!-- SW:SECTION:workflow version="1.0.254" -->
120
120
  ## Workflow
121
121
 
122
122
  `/sw:increment "X"` → `/sw:do` → `/sw:progress` → `/sw:done 0001`
@@ -142,7 +142,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
142
142
  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`
143
143
  <!-- SW:END:save-nested-repos -->
144
144
 
145
- <!-- SW:SECTION:reflect version="1.0.252" -->
145
+ <!-- SW:SECTION:reflect version="1.0.254" -->
146
146
  ## Skill Memories
147
147
 
148
148
  SpecWeave learns from corrections. Learnings saved here automatically. Edit or delete as needed.
@@ -163,7 +163,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
163
163
  - Prefer leaderboard-style reporting for analysis
164
164
  - Auto mode: Stop hook creates implicit loops via block/approve pattern
165
165
 
166
- <!-- SW:SECTION:context version="1.0.252" -->
166
+ <!-- SW:SECTION:context version="1.0.254" -->
167
167
  ## Context
168
168
 
169
169
  **Before implementing**: Check ADRs at `.specweave/docs/internal/architecture/adr/`
@@ -171,7 +171,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
171
171
  **Load context**: `/sw:docs <topic>` loads relevant living docs into conversation
172
172
  <!-- SW:END:context -->
173
173
 
174
- <!-- SW:SECTION:structure version="1.0.252" -->
174
+ <!-- SW:SECTION:structure version="1.0.254" -->
175
175
  ## Structure
176
176
 
177
177
  ```
@@ -186,7 +186,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
186
186
  **Everything else → subfolders**: `reports/` | `logs/` | `scripts/` | `backups/`
187
187
  <!-- SW:END:structure -->
188
188
 
189
- <!-- SW:SECTION:taskformat version="1.0.252" -->
189
+ <!-- SW:SECTION:taskformat version="1.0.254" -->
190
190
  ## Task Format
191
191
 
192
192
  ```markdown
@@ -196,7 +196,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
196
196
  ```
197
197
  <!-- SW:END:taskformat -->
198
198
 
199
- <!-- SW:SECTION:secrets version="1.0.252" -->
199
+ <!-- SW:SECTION:secrets version="1.0.254" -->
200
200
  ## Secrets Check
201
201
 
202
202
  **BEFORE CLI tools**: Check existing config first!
@@ -210,7 +210,7 @@ gh auth status
210
210
  **SECURITY**: NEVER use `grep TOKEN .env` without `-q` flag - it exposes credentials in terminal!
211
211
  <!-- SW:END:secrets -->
212
212
 
213
- <!-- SW:SECTION:syncing version="1.0.252" -->
213
+ <!-- SW:SECTION:syncing version="1.0.254" -->
214
214
  ## External Sync (GitHub/JIRA/ADO)
215
215
 
216
216
  **Primary command**: `/sw:progress-sync` — syncs tasks.md → spec.md → living docs → external tools (auto-creates missing issues)
@@ -231,7 +231,7 @@ gh auth status
231
231
  **After task completion**: Run `/sw:progress-sync` or `/sw-github:push` to sync changes to external tools.
232
232
  <!-- SW:END:syncing -->
233
233
 
234
- <!-- SW:SECTION:testing version="1.0.252" -->
234
+ <!-- SW:SECTION:testing version="1.0.254" -->
235
235
  ## Testing
236
236
 
237
237
  BDD in tasks.md | Unit >80% | `.test.ts` (Vitest)
@@ -250,7 +250,7 @@ vi.mock('./module', () => ({ func: mockFn }));
250
250
  **Install CLI**: `npm install -g @playwright/cli@latest`
251
251
  <!-- SW:END:testing -->
252
252
 
253
- <!-- SW:SECTION:tdd version="1.0.252" -->
253
+ <!-- SW:SECTION:tdd version="1.0.254" -->
254
254
  ## TDD Mode (Test-Driven Development)
255
255
 
256
256
  **When `testing.defaultTestMode: "TDD"` is configured**, follow RED-GREEN-REFACTOR discipline:
@@ -311,7 +311,7 @@ When TDD is enabled, tasks include phase markers:
311
311
  **Rule**: Complete dependencies BEFORE dependent tasks (RED before GREEN).
312
312
  <!-- SW:END:tdd -->
313
313
 
314
- <!-- SW:SECTION:api version="1.0.252" -->
314
+ <!-- SW:SECTION:api version="1.0.254" -->
315
315
  ## API Development (OpenAPI-First)
316
316
 
317
317
  **For API projects only.** Commands: `/sw:api-docs --all` | `--openapi` | `--postman` | `--validate`
@@ -319,13 +319,13 @@ When TDD is enabled, tasks include phase markers:
319
319
  Enable in config: `{"apiDocs":{"enabled":true,"openApiPath":"openapi.yaml"}}`
320
320
  <!-- SW:END:api -->
321
321
 
322
- <!-- SW:SECTION:limits version="1.0.252" -->
322
+ <!-- SW:SECTION:limits version="1.0.254" -->
323
323
  ## Limits
324
324
 
325
325
  **Max 1500 lines/file** — extract before adding
326
326
  <!-- SW:END:limits -->
327
327
 
328
- <!-- SW:SECTION:troubleshooting version="1.0.252" -->
328
+ <!-- SW:SECTION:troubleshooting version="1.0.254" -->
329
329
  ## Troubleshooting
330
330
 
331
331
  | Issue | Fix |
@@ -338,7 +338,7 @@ Enable in config: `{"apiDocs":{"enabled":true,"openApiPath":"openapi.yaml"}}`
338
338
  | Session stuck | Kill + `rm -f .specweave/state/*.lock` + restart |
339
339
  <!-- SW:END:troubleshooting -->
340
340
 
341
- <!-- SW:SECTION:lazyloading version="1.0.252" -->
341
+ <!-- SW:SECTION:lazyloading version="1.0.254" -->
342
342
  ## Plugin Auto-Loading
343
343
 
344
344
  Plugins load automatically based on project type and keywords. Manual install if needed:
@@ -352,7 +352,7 @@ export SPECWEAVE_DISABLE_AUTO_LOAD=1 # Disable auto-load
352
352
  **Token savings**: Core ~3-5K tokens vs all plugins ~60K+
353
353
  <!-- SW:END:lazyloading -->
354
354
 
355
- <!-- SW:SECTION:principles version="1.0.252" -->
355
+ <!-- SW:SECTION:principles version="1.0.254" -->
356
356
  ## Principles
357
357
 
358
358
  ### SpecWeave Principles
@@ -368,7 +368,7 @@ export SPECWEAVE_DISABLE_AUTO_LOAD=1 # Disable auto-load
368
368
  - **Demand Elegance**: For non-trivial changes, pause and ask "is there a more elegant way?" - but skip this for simple, obvious fixes (don't over-engineer).
369
369
  <!-- SW:END:principles -->
370
370
 
371
- <!-- SW:SECTION:linking version="1.0.252" -->
371
+ <!-- SW:SECTION:linking version="1.0.254" -->
372
372
  ## Bidirectional Linking
373
373
 
374
374
  Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
@@ -376,7 +376,7 @@ Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
376
376
  Task format: `**AC**: AC-US1-01, AC-US1-02` (CRITICAL for linking)
377
377
  <!-- SW:END:linking -->
378
378
 
379
- <!-- SW:SECTION:mcp version="1.0.252" -->
379
+ <!-- SW:SECTION:mcp version="1.0.254" -->
380
380
  ## External Services
381
381
 
382
382
  **Priority**: CLI tools first (simpler) → MCP for complex integrations
@@ -398,7 +398,7 @@ claude mcp add --transport stdio postgres -- npx -y @modelcontextprotocol/server
398
398
  MCP supports lazy-loading (auto mode) - tools load on-demand when >10% context.
399
399
  <!-- SW:END:mcp -->
400
400
 
401
- <!-- SW:SECTION:auto version="1.0.252" -->
401
+ <!-- SW:SECTION:auto version="1.0.254" -->
402
402
  ## Auto Mode
403
403
 
404
404
  **Commands**: `/sw:auto` (start) | `/sw:auto-status` (check) | `/sw:cancel-auto` (emergency only)
@@ -415,7 +415,7 @@ MCP supports lazy-loading (auto mode) - tools load on-demand when >10% context.
415
415
  **STOP & ASK** if: Spec conflicts | Task unnecessary | Requirement ambiguous
416
416
  <!-- SW:END:auto -->
417
417
 
418
- <!-- SW:SECTION:docs version="1.0.252" -->
418
+ <!-- SW:SECTION:docs version="1.0.254" -->
419
419
  ## Docs
420
420
 
421
421
  [spec-weave.com](https://spec-weave.com)
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SpecWeave
2
2
 
3
- **The spec-driven framework for AI coding agents.** First-class support for Claude Code — compatible with any LLM-powered coding tool.
3
+ **The spec-driven skill layer for AI coding agents.** First-class support for Claude Code — compatible with any LLM-powered coding tool.
4
4
 
5
5
  *Coordinate parallel AI agents. Prevent task overlap. Quality gates. Ship features while you sleep.*
6
6
 
@@ -45,6 +45,8 @@ Each increment is a self-contained scope. Each agent knows exactly what's taken
45
45
 
46
46
  ### What Makes It Different
47
47
 
48
+ - **Extensible skills (SOLID Open/Closed)** — skills are programs written in human language. Customize any skill's behavior via `skill-memories/*.md` without forking. Your rules override defaults. Original skills keep getting updates. No other AI tool lets you do this.
49
+ - **Plan as source of truth** — spec.md + plan.md + tasks.md drive all implementation. Code is a derivative of the plan, never the other way around. Change your mind mid-build? Update the plan first, then regenerate code.
48
50
  - **Parallel agent coordination** — multiple Claude Code sessions, OpenClaw instances, or remote agents work on different increments without stepping on each other.
49
51
  - **Autonomous execution** — runs for hours, not minutes. Write, test, fix, repeat.
50
52
  - **Persistent memory** — AI learns from corrections. Fix once, remembered permanently.
@@ -57,6 +59,64 @@ Each increment is a self-contained scope. Each agent knows exactly what's taken
57
59
 
58
60
  ---
59
61
 
62
+ ## Extensible Skills (Open/Closed Principle)
63
+
64
+ **Skills are programs you can customize without forking.**
65
+
66
+ Unlike traditional tools where behavior is locked, SpecWeave skills follow the **Open/Closed Principle** from SOLID:
67
+ - **Closed for modification** — don't edit SKILL.md
68
+ - **Open for extension** — customize via `.specweave/skill-memories/*.md`
69
+
70
+ **Example: Teaching the Frontend Skill**
71
+
72
+ ```bash
73
+ # First time
74
+ You: "Generate a login form"
75
+ Claude: *creates form with useState*
76
+ You: "No, we always use React Hook Form + Zod validation"
77
+
78
+ # SpecWeave learns this → .specweave/skill-memories/frontend.md
79
+
80
+ # Next session
81
+ You: "Generate a signup form"
82
+ Claude: *automatically uses React Hook Form + Zod* āœ“
83
+ ```
84
+
85
+ **Your customizations:**
86
+ ```markdown
87
+ # .specweave/skill-memories/frontend.md
88
+
89
+ ### Form Handling
90
+ - Use React Hook Form for all forms
91
+ - Combine with Zod for validation schemas
92
+ - Never use plain useState for form state
93
+
94
+ ### Component Preferences
95
+ - Import from @/components/ui design system
96
+ - Tailwind utilities only, no inline styles
97
+ ```
98
+
99
+ **Why this matters:**
100
+
101
+ | Traditional Tools | SpecWeave Skills |
102
+ |------------------|------------------|
103
+ | Obfuscated behavior | Transparent SKILL.md |
104
+ | Can't customize | Extend via skill-memories |
105
+ | Vendor lock-in | You control the logic |
106
+ | Suggestions only | Programmable reasoning |
107
+
108
+ **Enable auto-learning:**
109
+ ```bash
110
+ /sw:reflect-on # Corrections become permanent knowledge
111
+ /sw:reflect-status # See what Claude has learned
112
+ ```
113
+
114
+ Every skill (PM, Architect, QA, Security, DevOps, Frontend, Backend) can be customized. You're not using tools — you're **programming them** to match your exact patterns.
115
+
116
+ **For skill developers:** Design skills with extension points. See [Skill Development Guidelines](#skill-development-guidelines) for SOLID patterns.
117
+
118
+ ---
119
+
60
120
  ## Install
61
121
 
62
122
  ```bash
@@ -173,6 +233,108 @@ When you close an increment, external tools update automatically.
173
233
 
174
234
  [Discord](https://discord.gg/UYg4BGJ65V) Ā· [YouTube](https://www.youtube.com/@antonabyzov) Ā· [GitHub Issues](https://github.com/anton-abyzov/specweave/issues)
175
235
 
236
+ ## Skill Development Guidelines
237
+
238
+ **Design skills that users can extend without modification.**
239
+
240
+ When creating SpecWeave skills, follow the **Open/Closed Principle** (SOLID):
241
+
242
+ ### Structure for Extension
243
+
244
+ **SKILL.md** (closed for modification)
245
+ ```markdown
246
+ # Your Skill
247
+
248
+ ## Core Behavior
249
+ 1. Always do X
250
+ 2. Check for Y
251
+ 3. Output Z format
252
+
253
+ ## Extension Points
254
+ Users can customize:
255
+ - Component preferences
256
+ - Validation rules
257
+ - Output formatting
258
+ - Error handling
259
+
260
+ See `.specweave/skill-memories/{skill-name}.md` for customizations.
261
+ ```
262
+
263
+ `skill-memories/{skill-name}.md` (open for extension)
264
+ ```markdown
265
+ ### Component Preferences
266
+ - Use Material UI instead of Chakra
267
+ - Dark mode by default
268
+
269
+ ### Custom Validation
270
+ When validating forms:
271
+ 1. Check email domain against allowlist
272
+ 2. Require 2FA for admin roles
273
+ ```
274
+
275
+ ### SOLID Principles for Skills
276
+
277
+ | Principle | Application |
278
+ |-----------|-------------|
279
+ | **Single Responsibility** | One skill = one domain (Frontend, Backend, Testing, etc.) |
280
+ | **Open/Closed** | Core logic in SKILL.md (closed), customizations in skill-memories (open) |
281
+ | **Liskov Substitution** | Customizations shouldn't break skill contracts (output format, interface) |
282
+ | **Interface Segregation** | Expose clear extension points, don't force users to override large blocks |
283
+ | **Dependency Inversion** | Depend on patterns/abstractions, let skill-memories provide concrete implementations |
284
+
285
+ ### Design Patterns
286
+
287
+ **āœ“ DO:**
288
+ - Expose clear extension points in SKILL.md
289
+ - Document what users can customize
290
+ - Provide examples in skill-memories templates
291
+ - Read skill-memories at runtime before executing logic
292
+ - Use conditional logic: "If skill-memories defines X, use X; else default behavior"
293
+
294
+ **āœ— DON'T:**
295
+ - Hard-code preferences that vary by project
296
+ - Make users fork SKILL.md to customize behavior
297
+ - Ignore skill-memories content
298
+ - Create monolithic skills that do everything
299
+
300
+ ### Example: Extensible Frontend Skill
301
+
302
+ ```markdown
303
+ # SKILL.md (core logic)
304
+
305
+ ## Component Generation
306
+
307
+ **Default behavior:**
308
+ 1. Use React functional components
309
+ 2. TypeScript with Props interface
310
+ 3. Export as default
311
+
312
+ **Extension points (check skill-memories/frontend.md):**
313
+ - component.framework (React | Vue | Angular)
314
+ - component.exportStyle (default | named)
315
+ - component.testFramework (Vitest | Jest | Testing Library)
316
+ - styling.approach (Tailwind | CSS Modules | Styled Components)
317
+
318
+ **Logic:**
319
+ ```typescript
320
+ // Read skill-memories first
321
+ const userPrefs = readSkillMemories('frontend');
322
+
323
+ // Apply customizations or use defaults
324
+ const framework = userPrefs?.component?.framework || 'React';
325
+ const styling = userPrefs?.styling?.approach || 'CSS Modules';
326
+ ```
327
+ ```
328
+
329
+ ### Testing Your Skill's Extensibility
330
+
331
+ 1. **Write SKILL.md** with default behavior
332
+ 2. **Create skill-memories template** showing extension points
333
+ 3. **Test with customizations** - does the skill respect user preferences?
334
+ 4. **Document limitations** - what CAN'T be customized?
335
+
336
+ **Good skill design = Users extend your logic without ever touching your source.**
337
+
176
338
  ## License
177
339
 
178
340
  MIT — [github.com/anton-abyzov/specweave](https://github.com/anton-abyzov/specweave)
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md-generator.d.ts","sourceRoot":"","sources":["../../../src/adapters/agents-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAG3B,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM;IAKtB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAgC3B"}
1
+ {"version":3,"file":"agents-md-generator.d.ts","sourceRoot":"","sources":["../../../src/adapters/agents-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAG3B,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM;IAKtB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAgC3B"}
@@ -74,7 +74,6 @@ export class AgentsMdGenerator {
74
74
  'devops': 'Infrastructure, deployment, CI/CD pipelines',
75
75
  'qa-engineer': 'Test strategy, test cases, quality assurance',
76
76
  'security': 'Threat modeling, security review, vulnerability assessment',
77
- 'tech-lead': 'Code review, best practices, refactoring',
78
77
  'frontend': 'UI components, React/Vue/Angular implementation',
79
78
  'nodejs-backend': 'Node.js/Express/NestJS backend APIs',
80
79
  'python-backend': 'FastAPI/Django backend APIs',
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md-generator.js","sourceRoot":"","sources":["../../../src/adapters/agents-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAQ9C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YACE,SAAkB,EAClB,SAAkB,EAClB,WAAoB;QAEpB,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,gEAAgE;QAChE,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAExC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEvD,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAEjD,uBAAuB;QACvB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAa;QACzC,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC;YACjC,OAAO,IAAI,gBAAgB,KAAK,CAAC,WAAW,IAAI,CAAC;YACjD,OAAO,IAAI,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,OAAO,IAAI,kCAAkC,KAAK,CAAC,IAAI,iBAAiB,CAAC;QAC3E,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAAiB;QAC1C,MAAM,WAAW,GAA2B;YAC1C,IAAI,EAAE,+DAA+D;YACrE,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,EAAE,6CAA6C;YACvD,aAAa,EAAE,8CAA8C;YAC7D,UAAU,EAAE,4DAA4D;YACxE,WAAW,EAAE,0CAA0C;YACvD,UAAU,EAAE,iDAAiD;YAC7D,gBAAgB,EAAE,qCAAqC;YACvD,gBAAgB,EAAE,6BAA6B;YAC/C,QAAQ,EAAE,iCAAiC;YAC3C,gBAAgB,EAAE,2BAA2B;YAC7C,KAAK,EAAE,8CAA8C;YACrD,aAAa,EAAE,2CAA2C;YAC1D,aAAa,EAAE,mDAAmD;SACnE,CAAC;QAEF,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,4CAA4C,CAAC;IAChF,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAa;QACzC,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC;YACjC,OAAO,IAAI,gBAAgB,KAAK,CAAC,WAAW,IAAI,CAAC;YACjD,OAAO,IAAI,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,OAAO,IAAI,kCAAkC,KAAK,CAAC,IAAI,iBAAiB,CAAC;QAC3E,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAAiB;QAC1C,MAAM,WAAW,GAA2B;YAC1C,oBAAoB,EAAE,iDAAiD;YACvE,mBAAmB,EAAE,gDAAgD;YACrE,gBAAgB,EAAE,sDAAsD;YACxE,cAAc,EAAE,yDAAyD;YACzE,uBAAuB,EAAE,uDAAuD;YAChF,2BAA2B,EAAE,yDAAyD;YACtF,qBAAqB,EAAE,qDAAqD;YAC5E,sBAAsB,EAAE,2CAA2C;YACnE,gBAAgB,EAAE,4CAA4C;YAC9D,gBAAgB,EAAE,2CAA2C;YAC7D,QAAQ,EAAE,4CAA4C;YACtD,UAAU,EAAE,wCAAwC;YACpD,gBAAgB,EAAE,kCAAkC;YACpD,gBAAgB,EAAE,oCAAoC;YACtD,WAAW,EAAE,sCAAsC;YACnD,aAAa,EAAE,0CAA0C;YACzD,UAAU,EAAE,8BAA8B;YAC1C,qBAAqB,EAAE,2CAA2C;YAClE,gBAAgB,EAAE,iDAAiD;YACnE,qBAAqB,EAAE,kCAAkC;YACzD,yBAAyB,EAAE,6CAA6C;YACxE,gBAAgB,EAAE,yCAAyC;YAC3D,mBAAmB,EAAE,kCAAkC;YACvD,eAAe,EAAE,wCAAwC;YACzD,mBAAmB,EAAE,6CAA6C;YAClE,yBAAyB,EAAE,kDAAkD;SAC9E,CAAC;QAEF,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC;IACvD,CAAC;CACF"}
1
+ {"version":3,"file":"agents-md-generator.js","sourceRoot":"","sources":["../../../src/adapters/agents-md-generator.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,6 @@ This adapter represents the **gold standard** - all other adapters attempt to ap
51
51
  | `devops` | DevOps Engineer | Infrastructure, deployment |
52
52
  | `sw-testing:qa-engineer` | QA Engineer | Test strategy, test cases |
53
53
  | `security` | Security Engineer | Threat modeling, audits |
54
- | `tech-lead` | Technical Lead | Code review, best practices |
55
54
  | `frontend` | Frontend Developer | UI implementation |
56
55
  | `python-backend` | Python Backend Dev | FastAPI, Django APIs |
57
56
  | `nodejs-backend` | Node.js Backend Dev | Express, NestJS APIs |
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAG3B,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM;IAKtB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBzD;;OAEG;YACW,sBAAsB;IAkBpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAiBtC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACH,OAAO,CAAC,QAAQ;CAIjB"}
1
+ {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAG3B,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM;IAKtB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBzD;;OAEG;YACW,sBAAsB;IAkBpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAiBtC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACH,OAAO,CAAC,QAAQ;CAIjB"}
@@ -108,7 +108,6 @@ ${agentsTable}
108
108
  'security': 'Security review',
109
109
  'qa-engineer': 'Testing',
110
110
  'devops': 'Deployment needed',
111
- 'tech-lead': 'Code review',
112
111
  'sre': 'Troubleshooting',
113
112
  'docs-writer': 'Writing docs',
114
113
  'performance': 'Optimization needed',
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GxF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF1F;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBrD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+CvD"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GxF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEpF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoF1F;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBrD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+CvD"}
@@ -123,22 +123,25 @@ export async function docsBuildCommand(options = {}) {
123
123
  // Run validation first
124
124
  if (options.validate !== false) {
125
125
  console.log(chalk.cyan('šŸ” Running pre-build validation...\n'));
126
+ let validationResult;
126
127
  try {
127
128
  const { DocsValidator } = await import('../../utils/docs-validator.js');
128
129
  const validator = new DocsValidator({
129
130
  docsPath,
130
131
  autoFix: options.autoFix ?? true,
131
132
  });
132
- const result = await validator.validate();
133
- if (!result.valid) {
134
- console.log(chalk.red('\nāŒ Documentation has errors. Build aborted.\n'));
135
- process.exit(1);
136
- }
137
- console.log(chalk.green(' āœ… Validation passed!\n'));
133
+ validationResult = await validator.validate();
138
134
  }
139
135
  catch (error) {
140
136
  console.log(chalk.yellow(' āš ļø Validation skipped\n'));
141
137
  }
138
+ if (validationResult && !validationResult.valid) {
139
+ console.log(chalk.red('\nāŒ Documentation has errors. Build aborted.\n'));
140
+ process.exit(1);
141
+ }
142
+ if (validationResult) {
143
+ console.log(chalk.green(' āœ… Validation passed!\n'));
144
+ }
142
145
  }
143
146
  // Build static site
144
147
  try {
@@ -174,6 +177,7 @@ export async function docsValidateCommand(options = {}) {
174
177
  console.log(chalk.dim(` Expected: ${docsPath}\n`));
175
178
  process.exit(1);
176
179
  }
180
+ let result;
177
181
  try {
178
182
  const { DocsValidator } = await import('../../utils/docs-validator.js');
179
183
  const validator = new DocsValidator({
@@ -181,61 +185,61 @@ export async function docsValidateCommand(options = {}) {
181
185
  autoFix: options.autoFix ?? false, // Don't auto-fix in validate mode by default
182
186
  });
183
187
  console.log(chalk.dim(` Scanning: ${docsPath}\n`));
184
- const result = await validator.validate();
185
- // Print summary
186
- console.log(chalk.white(' Summary:'));
187
- console.log(chalk.dim(` • Total files: ${result.totalFiles}`));
188
- if (result.errors > 0) {
189
- console.log(chalk.red(` • Errors: ${result.errors}`));
190
- }
191
- else {
192
- console.log(chalk.green(` • Errors: 0`));
193
- }
194
- if (result.warnings > 0) {
195
- console.log(chalk.yellow(` • Warnings: ${result.warnings}`));
196
- }
197
- else {
198
- console.log(chalk.dim(` • Warnings: 0`));
199
- }
200
- if (result.fixedCount > 0) {
201
- console.log(chalk.green(` • Auto-fixed: ${result.fixedCount}`));
202
- }
203
- console.log();
204
- // Print issues
205
- if (options.verbose || result.errors > 0) {
206
- for (const issue of result.issues) {
207
- const color = issue.severity === 'error' ? chalk.red
208
- : issue.severity === 'warning' ? chalk.yellow
209
- : chalk.dim;
210
- const icon = issue.severity === 'error' ? 'āŒ'
211
- : issue.severity === 'warning' ? 'āš ļø'
212
- : 'ā„¹ļø';
213
- console.log(color(` ${icon} ${issue.file}:${issue.line || 1}`));
214
- console.log(chalk.dim(` ${issue.type}: ${issue.message}`));
215
- if (issue.autoFixable && !options.autoFix) {
216
- console.log(chalk.dim(` (auto-fixable with --auto-fix)`));
217
- }
218
- console.log();
219
- }
220
- }
221
- // Final status
222
- if (result.valid) {
223
- console.log(chalk.green('āœ… Documentation is valid!\n'));
224
- process.exit(0);
225
- }
226
- else {
227
- console.log(chalk.red('āŒ Documentation has errors.\n'));
228
- if (!options.autoFix) {
229
- console.log(chalk.dim(' Try running with --auto-fix to fix common issues.\n'));
230
- }
231
- process.exit(1);
232
- }
188
+ result = await validator.validate();
233
189
  }
234
190
  catch (error) {
235
191
  console.log(chalk.red(`\nāŒ Validation failed:`));
236
192
  console.log(chalk.dim(` ${error instanceof Error ? error.message : error}\n`));
237
193
  process.exit(1);
238
194
  }
195
+ // Print summary
196
+ console.log(chalk.white(' Summary:'));
197
+ console.log(chalk.dim(` • Total files: ${result.totalFiles}`));
198
+ if (result.errors > 0) {
199
+ console.log(chalk.red(` • Errors: ${result.errors}`));
200
+ }
201
+ else {
202
+ console.log(chalk.green(` • Errors: 0`));
203
+ }
204
+ if (result.warnings > 0) {
205
+ console.log(chalk.yellow(` • Warnings: ${result.warnings}`));
206
+ }
207
+ else {
208
+ console.log(chalk.dim(` • Warnings: 0`));
209
+ }
210
+ if (result.fixedCount > 0) {
211
+ console.log(chalk.green(` • Auto-fixed: ${result.fixedCount}`));
212
+ }
213
+ console.log();
214
+ // Print issues
215
+ if (options.verbose || result.errors > 0) {
216
+ for (const issue of result.issues) {
217
+ const color = issue.severity === 'error' ? chalk.red
218
+ : issue.severity === 'warning' ? chalk.yellow
219
+ : chalk.dim;
220
+ const icon = issue.severity === 'error' ? 'āŒ'
221
+ : issue.severity === 'warning' ? 'āš ļø'
222
+ : 'ā„¹ļø';
223
+ console.log(color(` ${icon} ${issue.file}:${issue.line || 1}`));
224
+ console.log(chalk.dim(` ${issue.type}: ${issue.message}`));
225
+ if (issue.autoFixable && !options.autoFix) {
226
+ console.log(chalk.dim(` (auto-fixable with --auto-fix)`));
227
+ }
228
+ console.log();
229
+ }
230
+ }
231
+ // Final status
232
+ if (result.valid) {
233
+ console.log(chalk.green('āœ… Documentation is valid!\n'));
234
+ process.exit(0);
235
+ }
236
+ else {
237
+ console.log(chalk.red('āŒ Documentation has errors.\n'));
238
+ if (!options.autoFix) {
239
+ console.log(chalk.dim(' Try running with --auto-fix to fix common issues.\n'));
240
+ }
241
+ process.exit(1);
242
+ }
239
243
  }
240
244
  /**
241
245
  * Kill all running Docusaurus processes