specky-sdd 3.2.2 → 3.3.2

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 (75) hide show
  1. package/CHANGELOG.md +83 -2
  2. package/README.md +133 -188
  3. package/SECURITY.md +7 -7
  4. package/dist/index.js +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/schemas/utility.js.map +1 -1
  7. package/dist/services/cognitive-debt-engine.js.map +1 -1
  8. package/dist/services/dependency-graph.d.ts.map +1 -1
  9. package/dist/services/dependency-graph.js.map +1 -1
  10. package/dist/services/diagram-generator.js +4 -4
  11. package/dist/services/diagram-generator.js.map +1 -1
  12. package/dist/services/doc-generator.js +1 -1
  13. package/dist/services/doc-generator.js.map +1 -1
  14. package/dist/services/document-converter.d.ts +1 -2
  15. package/dist/services/document-converter.d.ts.map +1 -1
  16. package/dist/services/document-converter.js +15 -8
  17. package/dist/services/document-converter.js.map +1 -1
  18. package/dist/services/git-manager.d.ts.map +1 -1
  19. package/dist/services/iac-generator.js +1 -1
  20. package/dist/services/iac-generator.js.map +1 -1
  21. package/dist/services/methodology.d.ts.map +1 -1
  22. package/dist/services/methodology.js.map +1 -1
  23. package/dist/services/pbt-generator.js +3 -3
  24. package/dist/services/pbt-generator.js.map +1 -1
  25. package/dist/services/rate-limiter.d.ts +1 -2
  26. package/dist/services/rate-limiter.d.ts.map +1 -1
  27. package/dist/services/rate-limiter.js +2 -4
  28. package/dist/services/rate-limiter.js.map +1 -1
  29. package/dist/services/state-machine.d.ts +1 -1
  30. package/dist/services/state-machine.d.ts.map +1 -1
  31. package/dist/services/state-machine.js +1 -1
  32. package/dist/services/state-machine.js.map +1 -1
  33. package/dist/services/template-engine.d.ts +1 -2
  34. package/dist/services/template-engine.d.ts.map +1 -1
  35. package/dist/services/template-engine.js +2 -4
  36. package/dist/services/template-engine.js.map +1 -1
  37. package/dist/services/test-generator.js +1 -1
  38. package/dist/services/test-generator.js.map +1 -1
  39. package/dist/services/transcript-parser.d.ts +1 -1
  40. package/dist/services/transcript-parser.d.ts.map +1 -1
  41. package/dist/services/transcript-parser.js +15 -8
  42. package/dist/services/transcript-parser.js.map +1 -1
  43. package/dist/services/work-item-exporter.d.ts +1 -1
  44. package/dist/services/work-item-exporter.d.ts.map +1 -1
  45. package/dist/services/work-item-exporter.js +1 -1
  46. package/dist/services/work-item-exporter.js.map +1 -1
  47. package/dist/tools/analysis.d.ts +1 -1
  48. package/dist/tools/analysis.d.ts.map +1 -1
  49. package/dist/tools/analysis.js +1 -1
  50. package/dist/tools/analysis.js.map +1 -1
  51. package/dist/tools/checkpoint.d.ts.map +1 -1
  52. package/dist/tools/checkpoint.js.map +1 -1
  53. package/dist/tools/environment.d.ts.map +1 -1
  54. package/dist/tools/environment.js.map +1 -1
  55. package/dist/tools/infrastructure.d.ts.map +1 -1
  56. package/dist/tools/infrastructure.js +2 -3
  57. package/dist/tools/infrastructure.js.map +1 -1
  58. package/dist/tools/input.js +2 -2
  59. package/dist/tools/input.js.map +1 -1
  60. package/dist/tools/integration.d.ts +1 -1
  61. package/dist/tools/integration.d.ts.map +1 -1
  62. package/dist/tools/integration.js +1 -1
  63. package/dist/tools/integration.js.map +1 -1
  64. package/dist/tools/pipeline.js +3 -3
  65. package/dist/tools/pipeline.js.map +1 -1
  66. package/dist/tools/response-builder.d.ts.map +1 -1
  67. package/dist/tools/transcript.js +1 -1
  68. package/dist/tools/transcript.js.map +1 -1
  69. package/dist/tools/turnkey.d.ts +1 -1
  70. package/dist/tools/turnkey.d.ts.map +1 -1
  71. package/dist/tools/turnkey.js +2 -2
  72. package/dist/tools/turnkey.js.map +1 -1
  73. package/dist/tools/visualization.d.ts.map +1 -1
  74. package/dist/tools/visualization.js.map +1 -1
  75. package/package.json +2 -3
package/CHANGELOG.md CHANGED
@@ -5,6 +5,54 @@ All notable changes to Specky are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.3.0] - 2026-04-14
9
+
10
+ ### Plugin Architecture (APM)
11
+
12
+ - **APM distribution**: Specky is now installable via `apm install paulasilvatech/specky` — the official Agent Package Manager from Microsoft ([install APM](https://microsoft.github.io/apm/getting-started/installation/) first)
13
+ - **`apm.yml`**: Root-level manifest with MCP server dependency (`npx specky-sdd@latest`)
14
+ - **`plugin.json`**: Root-level plugin descriptor with 13 agents, 22 commands, 8 skills
15
+ - **Root-level primitives**: All agents, commands, skills, and hooks moved from `plugins/specky-sdd/` to repo root (APM convention)
16
+ - **`.npmignore`**: Excludes APM primitives from npm tarball — npm gets only the MCP engine
17
+
18
+ ### 13 Agents
19
+
20
+ - `@specky-orchestrator`, `@specky-onboarding`, `@sdd-init`, `@sdd-clarify`, `@requirements-engineer`, `@research-analyst`, `@spec-engineer`, `@design-architect`, `@task-planner`, `@implementer`, `@test-verifier`, `@quality-reviewer`, `@release-engineer`
21
+ - Each agent loads a companion SKILL.md as its first step (lean agent + rich skill pattern)
22
+
23
+ ### 22 Prompts
24
+
25
+ - Phase prompts for all 10 pipeline phases plus utility prompts (see `commands/` for full list): `/specky-onboarding`, `/specky-greenfield`, `/specky-brownfield`, `/specky-from-meeting`, `/specky-from-figma`, `/specky-research`, `/specky-clarify`, `/specky-specify`, `/specky-design`, `/specky-tasks`, `/specky-implement`, `/specky-verify`
26
+
27
+ ### 8 Skills
28
+
29
+ - Domain knowledge for every pipeline stage: `sdd-pipeline`, `sdd-markdown-standard`, `research-analyst`, `implementer`, `test-verifier`, `release-engineer`, `specky-orchestrator`, `specky-onboarding`
30
+
31
+ ### 14 Hooks
32
+
33
+ - Pre/post automation for every phase: artifact validation, branch checks, LGTM gates, security scan, spec sync, drift monitor
34
+ - `sdd-hooks.json` configuration with phase-to-hook mapping
35
+
36
+ ### Gitflow-SDD Branching
37
+
38
+ - Branch-aware pipeline: `spec/NNN` → `develop` → `stage` → `main`
39
+ - Phase 9 (Release) enforces branching strategy with blocking gates
40
+
41
+ ### Site & Branding
42
+
43
+ - **getspecky.ai**: Custom domain live on GitHub Pages
44
+ - **Plugin-first messaging**: Hero, features, install sections all updated to plugin product positioning
45
+ - **"What is a Plugin?" section**: Educational content explaining agents, prompts, skills, hooks, MCP servers, and APM distribution
46
+ - **Comparison table**: Side-by-side vs Kiro, Cursor, Windsurf, Antigravity
47
+
48
+ ### Documentation
49
+
50
+ - **README**: Plugin-first hero, APM install as primary Quick Start, "What is a Plugin?" section
51
+ - **GETTING-STARTED**: Plugin intro, APM section, "What is a Plugin?" with primitives table
52
+ - **CONTRIBUTING**: Updated to v3.3.x architecture
53
+ - **SECURITY**: Version references updated to 3.3.0
54
+ - **All version references**: Aligned to 3.3.0 across all files
55
+
8
56
  ## [3.2.2] - 2026-04-13
9
57
 
10
58
  ### Documentation (npm republish)
@@ -36,7 +84,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
36
84
 
37
85
  - **Server title**: MCP panel now shows "Specky" with description instead of raw binary name
38
86
  - **Server icon**: SVG + PNG icons served from GitHub raw content, visible in VS Code MCP panel
39
- - **Website URL**: Links to [specky-site](https://paulasilvatech.github.io/specky-site/) from server metadata
87
+ - **Website URL**: Links to [getspecky.ai](https://getspecky.ai) from server metadata
40
88
  - **Instructions**: AI clients receive pipeline guidance during MCP handshake
41
89
  - **Template path fix**: Templates now resolve from `dist/templates/` (self-contained npm package)
42
90
 
@@ -47,13 +95,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
47
95
  - **Tool count**: Updated 56 → 57 across all documentation
48
96
  - **EARS patterns**: Fixed 5 → 6 pattern count (includes Complex)
49
97
  - **Broken links**: Fixed references to private files (CLAUDE.md, SYSTEM-DESIGN.md, ears-notation.md)
50
- - **Site fixes**: Updated EARS count and footer links on [specky-site](https://paulasilvatech.github.io/specky-site/)
98
+ - **Site fixes**: Updated EARS count and footer links on [getspecky.ai](https://getspecky.ai)
51
99
 
52
100
  ## [3.2.0] - 2026-04-12
53
101
 
54
102
  ### Enterprise Security Hardening
55
103
 
56
104
  #### Rate Limiting (opt-in)
105
+
57
106
  - **`RateLimiter` service**: Token bucket algorithm — no external deps, pure TypeScript
58
107
  - HTTP transport now supports `rate_limit.enabled: true` in `.specky/config.yml`
59
108
  - Config: `max_requests_per_minute` (default 60), `burst` (default 10)
@@ -61,18 +110,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
61
110
  - stdio mode bypasses rate limiting by design (single-session, process-isolated)
62
111
 
63
112
  #### State File Integrity
113
+
64
114
  - **`StateMachine.saveState()`** now writes HMAC-SHA256 signature to `.sdd-state.json.sig`
65
115
  - **`StateMachine.loadState()`** verifies signature on every load — tamper warning to stderr on mismatch
66
116
  - Key: `SDD_STATE_KEY` env var, or derived from workspace path using SHA-256
67
117
  - Missing `.sig` treated as unverified (no warning) — backward-compatible with pre-v3.2.0 state files
68
118
 
69
119
  #### Enhanced Audit Logger
120
+
70
121
  - **Hash-chaining**: every `AuditEntry` includes `previous_hash` (SHA-256 of previous line, seed `specky-audit-v1`)
71
122
  - **Log rotation**: rotates `.audit.jsonl` → `.audit.jsonl.1` when `audit.max_file_size_mb` exceeded (default 10 MB)
72
123
  - **Syslog export**: RFC 5424 format written to `.audit.syslog` when `audit.export_format: syslog`
73
124
  - **OTLP stub**: `audit.export_format: otlp` logs placeholder — implementation in next release
74
125
 
75
126
  #### RBAC Foundation (opt-in)
127
+
76
128
  - **`RbacEngine` service**: `viewer` / `contributor` / `admin` roles; disabled by default
77
129
  - **`sdd_check_access`** (NEW tool #57): Returns active role, per-tool access check, full role summary
78
130
  - Role enforcement via `SDD_ROLE` env var or `rbac.default_role` in config
@@ -80,11 +132,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
80
132
  - Config: `rbac.enabled: true`, `rbac.default_role: contributor`
81
133
 
82
134
  #### Config Extension
135
+
83
136
  - `.specky/config.yml` now supports nested blocks: `rate_limit:`, `audit:`, `rbac:`
84
137
  - Parser upgraded to handle indented YAML child keys (dot-notation flattening)
85
138
  - All new options opt-in with safe defaults — existing behavior unchanged from v3.1.0
86
139
 
87
140
  ### NPM-as-Default Migration
141
+
88
142
  - Global install (`npm install -g specky-sdd`) is now the recommended installation method
89
143
  - npx retained as an "alternative" option for per-workspace and convenience use
90
144
  - All docs updated: README.md, GETTING-STARTED.md, SYSTEM-DESIGN.md, ONBOARDING.md, SECURITY.md
@@ -92,10 +146,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
92
146
  - New "NPX Supply Chain Risk" + "MCP Security Framework Compliance" sections in SECURITY.md
93
147
 
94
148
  ### Security Documentation
149
+
95
150
  - **CoSAI MCP Security White Paper** — full T-01 through T-12 threat coverage table in SECURITY.md
96
151
  - **OWASP MCP Top 10** — M1 through M10 coverage table in SECURITY.md
97
152
 
98
153
  ### Tests
154
+
99
155
  - 561 tests (+54): `rate-limiter.test.ts` (11), `state-integrity.test.ts` (8), `audit-enhanced.test.ts` (12), `rbac-engine.test.ts` (15), plus existing suite maintained at 100%
100
156
 
101
157
  ---
@@ -105,36 +161,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
105
161
  ### Intelligence Layer (Specs 003–007)
106
162
 
107
163
  #### Model Routing Guidance (Spec 003)
164
+
108
165
  - **`sdd_model_routing`** (NEW tool #54): Returns the full 10-phase model routing decision table with optimal model, mode, extended thinking settings, arXiv evidence, and cost savings calculator
109
166
  - **`model_routing_hint`** field added to ALL 55 tool responses via `buildToolResponse()` — every response now tells the AI client which model to use for the current phase
110
167
  - Complexity override: `implement`/`design` phases with >10 files escalate to Opus automatically
111
168
  - `ModelRoutingEngine` service with empirically-grounded ROUTING_TABLE (arXiv:2601.08419)
112
169
 
113
170
  #### Context Tiering (Spec 004)
171
+
114
172
  - **`sdd_context_status`** (NEW tool #55): Returns Hot/Domain/Cold tier assignment for all spec artifacts with estimated token savings
115
173
  - **`context_load_summary`** field added to ALL 55 tool responses — shows which files are loaded per call
116
174
  - `ContextTieringEngine` service: CONSTITUTION.md=Hot, SPEC/DESIGN/TASKS=Domain, ANALYSIS/CHECKLIST/etc=Cold
117
175
  - Token estimation: `Math.ceil(content.length / 4)` — matches GPT/Claude tokenization heuristic
118
176
 
119
177
  #### Cognitive Debt Metrics (Spec 005)
178
+
120
179
  - **`cognitive_debt`** field in `sdd_metrics` and `sdd_get_status` responses (when gate history available)
121
180
  - Gate instrumentation in `sdd_advance_phase`: records mtime-based modified/unmodified detection per gate
122
181
  - `CognitiveDebtEngine` service: LGTM-without-modification rate as cognitive surrender signal; score = `(lgtm_rate × 0.6) + (delta_normalized × 0.4)`, labels: healthy/caution/high_risk
123
182
  - Warning shown in `sdd_advance_phase` response when unmodified approval is detected
124
183
 
125
184
  #### Verified Test Loop (Spec 006)
185
+
126
186
  - **`TestResultParser`** service: auto-detects and parses Vitest JSON, pytest JSON, and JUnit XML into normalized `TestResult[]`
127
187
  - **`TestTraceabilityMapper`** service: maps test names to REQ-XXX IDs via `// REQ-XXX` comment convention, builds per-requirement coverage report and failure details with `suggested_fix_prompt`
128
188
  - `sdd_verify_tests` enhanced: adds `enhanced_coverage` (per-requirement breakdown) and `failure_details` to response when parsers are wired
129
189
  - JUnit XML parser bug fixed: self-closing `<testcase .../>` was greedily consumed by open-tag alternative, merging two testcases; fixed with negative lookbehind `(?<!\/)`
130
190
 
131
191
  #### Intent Drift Detection (Spec 007)
192
+
132
193
  - **`intent_drift`** report in `sdd_check_sync` and `sdd_metrics` responses
133
194
  - **`drift_amendment_suggestion`** in `sdd_amend` response when last drift score > 40 — lists orphaned constitutional principles with recommended spec actions
134
195
  - `IntentDriftEngine` service: extracts principles from CONSTITUTION.md `## Article` sections, keyword-overlap coverage detection (≥2 keywords threshold), trend analysis (improving/stable/worsening) over last 3 DriftSnapshots
135
196
  - `drift_history` stored in `.sdd-state.json` (FIFO, max 100 entries)
136
197
 
137
198
  ### Stats
199
+
138
200
  - **56 tools** (was 53, corrected to 56 — sdd_metrics, sdd_validate_ears, sdd_check_ecosystem were already implemented but undercounted): +sdd_model_routing, +sdd_context_status, count reconciled
139
201
  - **24 services** (was 18): +ModelRoutingEngine, +ContextTieringEngine, +CognitiveDebtEngine, +IntentDriftEngine, +TestResultParser, +TestTraceabilityMapper
140
202
  - **507 unit tests** across 30 test files (was 321 across 22 files)
@@ -145,22 +207,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
145
207
  ## [3.0.0] - 2026-03-26
146
208
 
147
209
  ### Pipeline Validation & Enforcement
210
+
148
211
  - **Phase validation on every tool**: `validatePhaseForTool()` maps 53 tools to allowed pipeline phases; tools called out-of-order return structured errors with fix guidance
149
212
  - **Gate decision enforcement**: `advancePhase()` now blocks advancement past Analyze if gate decision is BLOCK or CHANGES_NEEDED; only APPROVE allows progression
150
213
  - **Clarify phase fix**: `sdd_clarify` now properly completes the Clarify phase (was stuck in `in_progress`)
151
214
  - **Proper state transitions**: `sdd_auto_pipeline` and `sdd_turnkey_spec` now use `advancePhase()` instead of direct state manipulation
152
215
 
153
216
  ### Software Engineering Diagrams (10 → 17 types)
217
+
154
218
  - **7 new diagram types**: C4 Component (L3), C4 Code (L4), Activity, Use Case, Data Flow (DFD), Deployment, Network Topology
155
219
  - **`generateAllDiagrams()`** now generates up to 16 diagrams per feature automatically
156
220
  - **Schema updated**: `diagram_type` enum expanded from 10 to 17 types
157
221
 
158
222
  ### System Design Completeness (6 → 12 sections)
223
+
159
224
  - **Design template expanded**: System Context (C4 L1), Container Architecture (C4 L2), Component Design (C4 L3), Code-Level Design (C4 L4), System Diagrams, Data Model, API Contracts, Infrastructure & Deployment, Security Architecture, ADRs, Error Handling, Cross-Cutting Concerns
160
225
  - **9 new optional fields** in `writeDesignInputSchema` for backward compatibility
161
226
  - **Design completeness validation**: `validateDesignCompleteness()` scores DESIGN.md against 12 required sections
162
227
 
163
228
  ### Enriched Interactive Responses (ALL 53 tools)
229
+
164
230
  - **`enrichResponse()`**: Every tool response now includes phase progress bar, educational notes, methodology tips, handoff context, and parallel execution hints
165
231
  - **`enrichStateless()`**: Utility tools without phase context get educational notes and common mistakes
166
232
  - **`buildPhaseError()`**: Structured phase validation errors with fix guidance and methodology context
@@ -168,17 +234,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
168
234
  - **`DependencyGraph`** service: Parallel execution groups for all 10 phases, tool dependency mapping, execution plans
169
235
 
170
236
  ### Parallel Documentation Generation
237
+
171
238
  - **`sdd_generate_all_docs`** (NEW tool #53): Generates 5 doc types in parallel via `Promise.all()`
172
239
  - **`generateJourneyDocs()`**: New SDD Journey document capturing complete pipeline audit trail (phases, timestamps, gate decisions, traceability)
173
240
  - **DocGenerator wired with StateMachine** for phase-aware documentation
174
241
 
175
242
  ### Active Hooks (6 → 7)
243
+
176
244
  - **`auto-checkpoint.sh`** (NEW): Suggests checkpoint creation when spec artifacts are modified
177
245
  - **`security-scan.sh`** now BLOCKS (exit 2) when hardcoded secrets detected
178
246
  - **`spec-sync.sh`** enhanced with drift detection and spec-reference checking
179
247
  - **`auto-docs.sh`** enhanced with modification tracking via `.doc-tracker.json`
180
248
 
181
249
  ### Interactive Commands (12 rewritten)
250
+
182
251
  - All 12 `/sdd:*` commands rewritten with step-by-step educational guidance
183
252
  - Every step explains "What's happening" and "Why it matters"
184
253
  - WAIT/LGTM gates at all quality checkpoints
@@ -186,6 +255,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
186
255
  - Error recovery sections with guidance back on track
187
256
 
188
257
  ### New Files
258
+
189
259
  - `src/services/methodology.ts` — Educational content service (static, no dependencies)
190
260
  - `src/services/dependency-graph.ts` — Parallel execution graph (static, no dependencies)
191
261
  - `src/tools/response-builder.ts` — Response enrichment (enrichResponse, enrichStateless, buildPhaseError)
@@ -193,6 +263,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
193
263
  - `.claude/hooks/auto-checkpoint.sh` — Auto-checkpoint hook
194
264
 
195
265
  ### Stats
266
+
196
267
  - **53 tools** (was 52), **17 diagram types** (was 10), **22 templates** (was 21), **7 hooks** (was 6)
197
268
  - **18 services** (was 16): +MethodologyGuide, +DependencyGraph
198
269
  - **321 unit tests**, all passing
@@ -201,12 +272,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
201
272
  ## [2.3.1] - 2026-03-25
202
273
 
203
274
  ### Changed
275
+
204
276
  - Added Specky MCP logo and icon (PNG 256x256 + 128x128) for VS Code MCP Gallery and npm
205
277
  - Configured "icon" field in package.json
206
278
 
207
279
  ## [2.3.0] - 2026-03-24
208
280
 
209
281
  ### Added
282
+
210
283
  - `sdd_turnkey_spec` tool — generates complete EARS specification from a natural language description with auto-extracted requirements, EARS pattern classification, acceptance criteria generation, NFR inference, and clarification questions
211
284
  - `sdd_generate_pbt` tool — generates property-based tests using fast-check (TypeScript) or Hypothesis (Python), extracting 6 property types from EARS requirements: invariant, state_transition, conditional, negative, round_trip, idempotence
212
285
  - `sdd_checkpoint` tool — creates named snapshots of all spec artifacts and pipeline state for safe rollback
@@ -222,6 +295,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
222
295
  - `tests/integration/checkpoint-e2e.test.ts` — 9 integration test cases for checkpoint create/restore/list with real filesystem
223
296
 
224
297
  ### Changed
298
+
225
299
  - MCP tool count: 47 → 52
226
300
  - Claude Code commands: 7 → 12
227
301
  - Test suite expanded: 211 → 292 tests across 19 files
@@ -238,6 +312,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
238
312
  ## [2.2.0] - 2026-03-24
239
313
 
240
314
  ### Added
315
+
241
316
  - `sdd_generate_tests` tool — generates test stubs from acceptance criteria for 6 frameworks (vitest, jest, playwright, pytest, junit, xunit)
242
317
  - `sdd_verify_tests` tool — verifies test results JSON against specification requirements, reports traceability coverage
243
318
  - `.specky/config.yml` support — project-local configuration for templates path, default framework, compliance frameworks, audit toggle
@@ -249,6 +324,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
249
324
  - `templates/test-stub.md` template for generated test files
250
325
 
251
326
  ### Changed
327
+
252
328
  - Test suite expanded: 120 → 211 tests across 16 files
253
329
  - Coverage improved: 38% → 89% lines (threshold: 80%)
254
330
  - MCP tool count: 44 → 47
@@ -257,6 +333,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
257
333
  ## [2.1.0] - 2026-03-21
258
334
 
259
335
  ### Added
336
+
260
337
  - `sdd_check_ecosystem` tool — detects installed MCP servers and recommends complementary ones
261
338
  - `sdd_validate_ears` tool — batch EARS requirement validation with pattern classification
262
339
  - `recommended_servers` field in tool outputs for MCP ecosystem guidance
@@ -266,12 +343,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
266
343
  - `CHANGELOG.md` (this file)
267
344
 
268
345
  ### Changed
346
+
269
347
  - Tool count: 42 → 44
270
348
  - Updated `CLAUDE.md` to reflect v2.1.0 tools and version history
271
349
 
272
350
  ## [2.0.0] - 2026-03-21
273
351
 
274
352
  ### Added
353
+
275
354
  - **25 new MCP tools** (17 → 42 total)
276
355
  - **3 new pipeline phases**: Discover, Clarify, Release (7 → 10 phases)
277
356
  - **8 new services**: DocumentConverter, DiagramGenerator, IacGenerator, WorkItemExporter, CrossAnalyzer, ComplianceEngine, DocGenerator, GitManager
@@ -294,6 +373,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
294
373
  - Docker-based local development environment setup
295
374
 
296
375
  ### Changed
376
+
297
377
  - Pipeline expanded from 7 to 10 phases
298
378
  - State machine updated for new phase transitions
299
379
  - All schemas updated to use `.strict()` mode
@@ -303,6 +383,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
303
383
  ## [1.0.0] - 2026-03-20
304
384
 
305
385
  ### Added
386
+
306
387
  - Initial release of Specky MCP server
307
388
  - 17 MCP tools across 4 tool files
308
389
  - 7-phase pipeline: Init, Discover, Specify, Clarify, Design, Tasks, Analyze