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/README.md CHANGED
@@ -2,28 +2,37 @@
2
2
  <br>
3
3
  <img src="media/specky-brand-logo.svg" alt="Specky" height="80">
4
4
  <br><br>
5
- <p><strong>57 MCP tools. 10-phase pipeline. Works in any IDE.</strong></p>
5
+ <p><strong>13 agents. 57 MCP tools. 10-phase pipeline. One plugin.</strong></p>
6
6
  <p>Agentic Spec-Driven Development</p>
7
7
 
8
8
  <p>
9
- <img src="https://img.shields.io/badge/tools-57_MCP-7c3aed?style=flat-square" alt="57 Tools"/>
10
- <img src="https://img.shields.io/badge/phases-10_enforced-6d28d9?style=flat-square" alt="10 Phases"/>
11
- <img src="https://img.shields.io/badge/diagrams-17_types-5b21b6?style=flat-square" alt="17 Diagrams"/>
12
- <img src="https://img.shields.io/badge/compliance-6_frameworks-4c1d95?style=flat-square" alt="6 Compliance"/>
9
+ <img src="https://img.shields.io/badge/agents-13-7c3aed?style=flat-square" alt="13 Agents"/>
10
+ <img src="https://img.shields.io/badge/tools-57_MCP-6d28d9?style=flat-square" alt="57 Tools"/>
11
+ <img src="https://img.shields.io/badge/phases-10_enforced-5b21b6?style=flat-square" alt="10 Phases"/>
12
+ <img src="https://img.shields.io/badge/hooks-14-4c1d95?style=flat-square" alt="14 Hooks"/>
13
13
  <img src="https://img.shields.io/badge/license-MIT-a78bfa?style=flat-square" alt="MIT"/>
14
14
  </p>
15
15
 
16
16
  <p>
17
17
  <a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/v/specky-sdd?style=flat-square&color=7c3aed" alt="npm"/></a>
18
+ <a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/dm/specky-sdd?style=flat-square&color=6d28d9" alt="npm downloads"/></a>
18
19
  <a href="https://github.com/paulasilvatech/specky/actions/workflows/ci.yml"><img src="https://github.com/paulasilvatech/specky/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
19
20
  <a href="https://securityscorecards.dev/viewer/?uri=github.com/paulasilvatech/specky"><img src="https://api.securityscorecards.dev/projects/github.com/paulasilvatech/specky/badge" alt="OpenSSF Scorecard"/></a>
20
21
  <a href="https://github.com/paulasilvatech/specky"><img src="https://img.shields.io/github/stars/paulasilvatech/specky?style=flat-square&color=6d28d9" alt="Stars"/></a>
21
22
  </p>
22
23
 
23
24
  <p>
24
- <a href="https://paulasilvatech.github.io/specky-site/">Website</a> ·
25
+ <img src="https://img.shields.io/badge/TypeScript-strict-3178c6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript Strict"/>
26
+ <img src="https://img.shields.io/badge/dependencies-2-green?style=flat-square" alt="2 Dependencies"/>
27
+ <img src="https://img.shields.io/badge/APM-compatible-7c3aed?style=flat-square" alt="APM Compatible"/>
28
+ <img src="https://img.shields.io/badge/OWASP_MCP-Top_10-green?style=flat-square" alt="OWASP MCP Top 10"/>
29
+ <img src="https://img.shields.io/node/v/specky-sdd?style=flat-square&color=5b21b6" alt="Node.js"/>
30
+ <a href="https://github.com/paulasilvatech/specky/issues"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square" alt="PRs Welcome"/></a>
31
+ </p>
32
+
33
+ <p>
34
+ <a href="https://getspecky.ai">Website</a> ·
25
35
  <a href="GETTING-STARTED.md">Getting Started</a> ·
26
- <a href="plugins/specky-sdd/">Plugin</a> ·
27
36
  <a href="https://www.npmjs.com/package/specky-sdd">npm</a> ·
28
37
  <a href="SECURITY.md">Security</a>
29
38
  </p>
@@ -35,12 +44,11 @@
35
44
  | | Section | Description |
36
45
  |---|---------|-------------|
37
46
  | **Start** | [What is Specky?](#what-is-specky) | Overview and ecosystem |
47
+ | | [What is a Plugin?](#what-is-a-plugin) | Agents, prompts, skills, hooks, and APM |
38
48
  | | [Why Specifications Matter](#why-specifications-matter-in-the-ai-era) | Vibe coding vs deterministic development |
39
49
  | | [Getting Started](GETTING-STARTED.md) | Complete educational guide |
40
- | **Install** | [Quick Start](#quick-start) | Install plugin or MCP server, connect to your IDE |
41
- | | [Plugin (recommended)](#install-as-plugin-recommended) | Enterprise-grade: agents, skills, hooks, MCP — all in one |
42
- | | [MCP Server Only](#install-mcp-server-only) | Lightweight: just the 57 MCP tools |
43
- | **Use** | [Where Specifications Live](#where-specifications-live) | File structure and naming conventions |
50
+ | **Use** | [Quick Start](#quick-start) | Install the plugin via APM, curl, or npm |
51
+ | | [Where Specifications Live](#where-specifications-live) | File structure and naming conventions |
44
52
  | | [Input Methods](#input-methods-6-ways-to-start) | 6 ways to feed Specky |
45
53
  | | [Three Project Types](#three-project-types-one-pipeline) | Greenfield, Brownfield, Modernization |
46
54
  | **Pipeline** | [Pipeline and LGTM Gates](#pipeline-and-lgtm-gates) | 10 phases with human review gates |
@@ -49,16 +57,52 @@
49
57
  | **Enterprise** | [Compliance Frameworks](#compliance-frameworks) | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 |
50
58
  | | [Enterprise Ready](#enterprise-ready) | Security, audit trail, quality gates |
51
59
  | **Platform** | [The SDD Platform](#the-spec-driven-development-platform) | Built on Spec-Kit, everything included |
52
- | | [Roadmap](#roadmap) | v3.2 current, v3.3+ planned |
60
+ | | [Roadmap](#roadmap) | v3.0 current, v3.1+ planned |
53
61
 
54
62
 
55
63
  ## What is Specky?
56
64
 
57
- Specky is an open-source **MCP server** that turns the [Spec-Kit](https://github.com/paulasilvatech/spec-kit) SDD methodology into a **programmable enforcement engine** with 57 validated tools. It provides a deterministic pipeline from **any input** (meeting transcripts, documents, Figma designs, or natural language prompts) through specifications, architecture, infrastructure as code, implementation, and deployment.
65
+ Specky is a **complete Spec-Driven Development plugin** 13 specialized agents, 57 MCP tools, 22 prompts, 8 skills, and 14 automation hooks that enforces a deterministic 10-phase pipeline from **any input** (meeting transcripts, documents, Figma designs, or natural language prompts) through specifications, architecture, infrastructure as code, implementation, and deployment.
66
+
67
+ The plugin is powered by the [specky-sdd](https://www.npmjs.com/package/specky-sdd) MCP engine and the [Spec-Kit](https://github.com/paulasilvatech/spec-kit) methodology. Install Specky and you get **everything**: the agents orchestrate the pipeline, the tools enforce validation, the hooks guard every phase transition, and the skills provide domain knowledge.
68
+
69
+
70
+ ## What is a Plugin?
71
+
72
+ A plugin is a **complete AI development package** — not just a tool server. It bundles everything your AI IDE needs into a single installable unit:
73
+
74
+ | Primitive | What it is | Specky includes |
75
+ |-----------|-----------|------------------|
76
+ | **Agents** | Specialized AI personas with defined roles, tools, and guardrails | 13 agents — @specky-orchestrator (full pipeline), @specky-onboarding (wizard), @spec-engineer, @design-architect, @task-planner, @quality-reviewer, and 7 more |
77
+ | **Prompts** | Slash commands that activate the right agent for a task | 22 prompts — `/specky-greenfield`, `/specky-specify`, `/specky-release`, `/specky-orchestrate`, etc. |
78
+ | **Skills** | Domain knowledge files loaded into agent context automatically | 8 skills — SDD pipeline rules, EARS patterns, implementation patterns, test criteria, release gate protocol |
79
+ | **Hooks** | Scripts that run before/after every tool call for validation | 14 hooks — artifact-validator, branch-validator, phase-gate, lgtm-gate, security-scan, etc. |
80
+ | **MCP Server** | The tool engine that validates, generates, and enforces | 57 tools via Model Context Protocol (the runtime underneath) |
81
+
82
+ ### Why not just an MCP server?
83
+
84
+ An MCP server gives you **tools**. A plugin gives you the **experience**:
85
+
86
+ - **Tools alone**: You call `sdd_write_spec` and hope you're in the right phase, with the right prerequisites, on the right branch.
87
+ - **Plugin**: You type `@specky-orchestrator` and the agent validates your phase, checks your branch, loads the right skill, calls the right tool, runs pre/post hooks, and pauses for LGTM before advancing.
58
88
 
59
- **Spec-Kit** provides the methodology: EARS notation, gated pipeline phases, constitution model, quality patterns. **Specky** reimplements all of it as MCP tools and adds programmatic enforcement: a state machine that blocks phase-skipping, an EARS validator, cross-artifact analysis, compliance engines, test generation, and MCP-to-MCP routing.
89
+ The MCP engine is the runtime. The plugin is the product.
60
90
 
61
- **Install the Specky plugin and you get everything.** The Spec-Kit methodology is built in. The plugin bundles 7 agents, 19 prompts, 6 skills, 10 automation hooks, and the MCP server — all configured automatically. It works inside VS Code with Copilot, Claude Code, Cursor, Windsurf, or any MCP-compatible client. See the [plugin documentation](plugins/specky-sdd/) or how Spec-Kit and Specky [complement each other](#the-spec-driven-development-platform).
91
+ ### How to install
92
+
93
+ Specky is distributed via [APM](https://microsoft.github.io/apm/) (Agent Package Manager) — Microsoft's open-source dependency manager for AI agents:
94
+
95
+ ```bash
96
+ # Install APM (one-time) — pick one:
97
+ curl -sSL https://aka.ms/apm-unix | sh # macOS / Linux
98
+ brew install microsoft/apm/apm # Homebrew
99
+ irm https://aka.ms/apm-windows | iex # Windows PowerShell
100
+
101
+ # Then install Specky:
102
+ apm install paulasilvatech/specky
103
+ ```
104
+
105
+ This installs all 13 agents, 22 prompts, 8 skills, 14 hooks, configures the MCP server, and generates a lock file (`apm.lock.yaml`) for version reproducibility. No configuration drift across your team. See [APM installation docs](https://microsoft.github.io/apm/getting-started/installation/) for more options.
62
106
 
63
107
 
64
108
  ## Why Specifications Matter in the AI Era
@@ -84,7 +128,8 @@ The result? Teams spend 40% of their time on rework because requirements were ne
84
128
  | **Markdown** | The universal language that both humans and AI read fluently | All spec artifacts are `.md` files in your repo, versioned with Git |
85
129
  | **MCP** | Model Context Protocol — an open standard that lets AI assistants call external tools | Specky is an MCP server; any AI IDE can connect to it |
86
130
  | **EARS Notation** | A method for writing requirements that forces precision with 6 patterns | Eliminates vague statements like "the system should be fast" |
87
- | **Agents and Skills** | Specialized AI roles that invoke Specky tools with domain expertise | Defined in `.github/agents/` and `.claude/commands/` |
131
+ | **Agents and Skills** | Specialized AI roles that invoke Specky tools with domain expertise | 13 agents + 8 skills orchestrate the full pipeline |
132
+ | **Plugins** | A complete AI development package: agents + prompts + skills + hooks + MCP server | Installed via [APM](https://microsoft.github.io/apm/) — Microsoft's dependency manager for AI agents |
88
133
 
89
134
  ### How Specky Enforces Determinism
90
135
 
@@ -101,18 +146,20 @@ Specky adds a **deterministic engine** between your intent and your code:
101
146
 
102
147
  | Capability | Specky |
103
148
  |---|---|
149
+ | Complete plugin experience | 13 agents, 22 prompts, 8 skills, 14 hooks + 57 MCP tools |
150
+ | Pipeline orchestrator | @specky-orchestrator coordinates all 10 phases end-to-end |
151
+ | Onboarding wizard | @specky-onboarding detects context and guides setup |
104
152
  | Any input (PDF, DOCX, PPTX, transcript, Figma) to spec | 57 MCP tools handle all input formats |
105
153
  | EARS validation (programmatic, not AI guessing) | 6 patterns enforced at schema level |
106
154
  | Enforced pipeline (not suggestions) | 10 phases with actual gates that block advancement |
155
+ | Pre/post hooks on every phase | artifact-validator, branch-validator, phase-gate, lgtm-gate |
107
156
  | 17 diagram types generated automatically | C4 (4 levels), sequence, ER, activity, use case, DFD, deployment, network |
108
157
  | Infrastructure as Code | Terraform, Bicep, Dockerfile from DESIGN.md |
109
158
  | Work item export | GitHub Issues, Azure Boards, Jira via MCP-to-MCP routing |
110
159
  | 6 compliance frameworks | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 built-in |
111
160
  | Cross-artifact traceability | Requirement to design to task to test to code |
112
- | Phantom task detection | Catches tasks marked done with no code evidence |
113
- | Property-based testing | fast-check (TypeScript) and Hypothesis (Python) |
114
- | Checkpoint/restore | Persistent snapshots of all spec artifacts |
115
- | 10 automation hooks (2 blocking) | Security scan, release gate, spec sync, checkpoint, quality, EARS, task trace, drift, cognitive debt, metrics |
161
+ | Gitflow-SDD branching | spec/NNN develop stage main |
162
+ | APM distribution | `apm install paulasilvatech/specky` one command (requires [APM](https://microsoft.github.io/apm/getting-started/installation/)) |
116
163
  | Works in any MCP host | VS Code + Copilot, Claude Code, Cursor, Windsurf, or any MCP client |
117
164
  | Zero outbound network calls | Fully air-gapped, code never leaves your machine |
118
165
  | MIT open source | Fork it, extend it, audit it. No vendor lock, no seat pricing |
@@ -123,150 +170,35 @@ Specky adds a **deterministic engine** between your intent and your code:
123
170
  ### Prerequisites
124
171
 
125
172
  - **Node.js 18+**: [Download here](https://nodejs.org/)
126
- - **An AI IDE**: VS Code with Copilot, Claude Code, Claude Desktop, Cursor, or Windsurf
127
-
128
- ### Install as Plugin (recommended)
129
-
130
- The **Specky plugin** is the enterprise-grade installation method. It bundles everything your team needs: 7 agents, 19 prompts, 6 skills, 10 automation hooks, and the MCP server — configured automatically and version-controlled with your repo.
131
-
132
- | What you get | MCP Server Only | Plugin |
133
- |-------------|:-:|:-:|
134
- | 57 MCP tools | ✅ | ✅ |
135
- | 7 specialized agents | — | ✅ |
136
- | 19 reusable prompts | — | ✅ |
137
- | 6 domain skills (SKILL.md) | — | ✅ |
138
- | 10 automation hooks (2 blocking) | — | ✅ |
139
- | EARS notation reference | — | ✅ |
140
- | Model routing guidance | — | ✅ |
141
- | Pipeline config (config.yml) | — | ✅ |
142
- | `copilot plugin install` ready | — | ✅ |
143
-
144
- #### Via Copilot CLI
145
-
146
- ```bash
147
- copilot plugin marketplace add paulasilvatech/specky
148
- copilot plugin install specky-sdd@specky
149
- ```
150
-
151
- #### Manual Installation
152
-
153
- ```bash
154
- cd your-project/
155
- bash <(curl -sL https://raw.githubusercontent.com/paulasilvatech/specky/main/plugins/specky-sdd/install.sh)
156
- ```
157
-
158
- The installer creates:
159
-
160
- ```
161
- your-project/
162
- ├── .github/plugin/specky/ ← Full plugin (agents, skills, hooks, prompts)
163
- │ ├── agents/ ← 7 specialized Copilot agents
164
- │ ├── prompts/ ← 19 reusable prompts
165
- │ ├── skills/ ← 6 domain skills
166
- │ ├── hooks/scripts/ ← 10 automation hooks
167
- │ ├── instructions/ ← Copilot instructions
168
- │ └── config.yml ← Pipeline configuration
169
- ├── .vscode/
170
- │ ├── mcp.json ← MCP server configuration
171
- │ └── settings.json ← Hook integration
172
- └── GETTING-STARTED.md
173
- ```
173
+ - **An AI IDE**: VS Code with Copilot, Claude Code, Cursor, or Windsurf
174
174
 
175
- > **Tip:** Commit `.github/plugin/` and `.vscode/` to Git so every team member gets Specky automatically on clone.
175
+ ### Install the Plugin
176
176
 
177
- See the full [plugin documentation](plugins/specky-sdd/README.md) for details.
177
+ #### Via APM
178
178
 
179
- ### Install MCP Server Only
180
-
181
- If you only need the 57 MCP tools without agents, skills, and hooks, install the MCP server directly.
182
-
183
- <details>
184
- <summary><strong>Global (npm)</strong></summary>
179
+ [Install APM](https://microsoft.github.io/apm/getting-started/installation/) first, then:
185
180
 
186
181
  ```bash
187
- npm install -g specky-sdd
182
+ apm install paulasilvatech/specky
188
183
  ```
189
184
 
190
- **VS Code** (`.vscode/mcp.json`):
191
- ```json
192
- {
193
- "mcpServers": {
194
- "specky-sdd": {
195
- "type": "stdio",
196
- "command": "specky-sdd"
197
- }
198
- }
199
- }
200
- ```
201
-
202
- **Claude Code**:
203
- ```bash
204
- claude mcp add specky-sdd -- specky-sdd
205
- ```
206
-
207
- **Claude Desktop** (`claude_desktop_config.json`):
208
- ```json
209
- {
210
- "mcpServers": {
211
- "specky-sdd": {
212
- "command": "specky-sdd"
213
- }
214
- }
215
- }
216
- ```
217
-
218
- </details>
219
-
220
- <details>
221
- <summary><strong>Per Workspace (npx)</strong></summary>
222
-
223
- **VS Code** (`.vscode/mcp.json`):
224
- ```json
225
- {
226
- "mcpServers": {
227
- "specky-sdd": {
228
- "type": "stdio",
229
- "command": "npx",
230
- "args": ["-y", "specky-sdd@latest"]
231
- }
232
- }
233
- }
234
- ```
235
-
236
- > Commit `.vscode/mcp.json` to Git so every team member gets Specky automatically.
237
-
238
- </details>
239
-
240
- <details>
241
- <summary><strong>Docker (HTTP mode, no Node.js required)</strong></summary>
242
-
243
- ```bash
244
- docker run -d --name specky -p 3200:3200 -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
245
- ```
246
-
247
- Point any MCP client that supports HTTP to `http://localhost:3200/mcp`
248
-
249
- </details>
250
-
251
185
  ### Verify
252
186
 
253
- Open your AI IDE and type:
187
+ Open Copilot Chat and type:
254
188
 
255
189
  ```
256
- > What tools does Specky have?
190
+ @specky-onboarding
257
191
  ```
258
192
 
259
- The AI should list the 57 SDD tools. If you see them, Specky is working.
193
+ The onboarding wizard detects your project context (greenfield/brownfield/modernization) and guides you through setup.
260
194
 
261
195
  ### Try It Now
262
196
 
263
- Once connected, type this in your AI chat:
264
-
265
197
  ```
266
- > Initialize a Specky project for a todo API and help me define the scope
198
+ @specky-orchestrator run the pipeline for a todo API
267
199
  ```
268
200
 
269
- Specky creates the project structure and asks you 7 discovery questions. From here, follow the guide for your project type:
201
+ The orchestrator coordinates all 10 phases: Init Research Specify Design → Tasks → Implement → Verify → Review → Release, with LGTM gates at Specify, Design, and Tasks.
270
202
 
271
203
  | Your situation | Guide |
272
204
  |---------------|-------|
@@ -745,10 +677,10 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
745
677
  | `sdd_import_transcript` | Parse meeting transcripts (Teams, Zoom, Google Meet) |
746
678
  | `sdd_auto_pipeline` | Any input to complete spec pipeline (all documents) |
747
679
  | `sdd_batch_import` | Process folder of mixed documents |
748
- | `sdd_batch_transcripts` | Process folder of meeting transcripts |
680
+ | `sdd_batch_transcripts` | Scan folder of transcripts and run full auto-pipeline for each |
749
681
  | `sdd_figma_to_spec` | Figma design to requirements specification |
750
682
 
751
- ### Pipeline Core (9)
683
+ ### Pipeline Core (8)
752
684
 
753
685
  | Tool | Description |
754
686
  |------|-------------|
@@ -758,11 +690,10 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
758
690
  | `sdd_clarify` | Resolve ambiguities with decision tree |
759
691
  | `sdd_write_design` | 12-section system design (C4 model) with sequence diagrams, ERD, API flow |
760
692
  | `sdd_write_tasks` | Task breakdown with dependency graph |
761
- | `sdd_write_bugfix` | Bugfix specification from issue description |
762
693
  | `sdd_run_analysis` | Quality gate analysis with coverage heatmap |
763
694
  | `sdd_advance_phase` | Move to next pipeline phase |
764
695
 
765
- ### Quality and Validation (5)
696
+ ### Quality and Validation (6)
766
697
 
767
698
  | Tool | Description |
768
699
  |------|-------------|
@@ -771,6 +702,7 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
771
702
  | `sdd_compliance_check` | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 validation |
772
703
  | `sdd_cross_analyze` | Spec-design-tasks alignment with consistency score |
773
704
  | `sdd_validate_ears` | Batch EARS requirement validation |
705
+ | `sdd_check_sync` | Spec-vs-implementation drift detection report |
774
706
 
775
707
  ### Diagrams and Visualization (4) -- 17 Diagram Types
776
708
 
@@ -797,7 +729,7 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
797
729
  | `sdd_setup_codespaces` | GitHub Codespaces configuration |
798
730
  | `sdd_generate_devcontainer` | .devcontainer/devcontainer.json generation |
799
731
 
800
- ### Integration and Export (7)
732
+ ### Integration and Export (5)
801
733
 
802
734
  | Tool | Description |
803
735
  |------|-------------|
@@ -806,20 +738,18 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
806
738
  | `sdd_create_pr` | PR payload with spec summary |
807
739
  | `sdd_implement` | Ordered implementation plan with checkpoints |
808
740
  | `sdd_research` | Resolve unknowns in RESEARCH.md |
809
- | `sdd_check_sync` | Detect drift between specification and implementation |
810
- | `sdd_detect_drift` | Intent drift detection with amendment suggestions |
811
741
 
812
742
  ### Documentation (5)
813
743
 
814
744
  | Tool | Description |
815
745
  |------|-------------|
816
746
  | `sdd_generate_docs` | Complete auto-documentation |
817
- | `sdd_generate_all_docs` | Generate all documentation types in parallel |
818
747
  | `sdd_generate_api_docs` | API documentation from design |
819
748
  | `sdd_generate_runbook` | Operational runbook |
820
749
  | `sdd_generate_onboarding` | Developer onboarding guide |
750
+ | `sdd_generate_all_docs` | Generate all documentation types in parallel (docs, API, runbook, onboarding, journey) |
821
751
 
822
- ### Utility (8)
752
+ ### Utility (6)
823
753
 
824
754
  | Tool | Description |
825
755
  |------|-------------|
@@ -828,9 +758,7 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
828
758
  | `sdd_scan_codebase` | Detect tech stack and structure |
829
759
  | `sdd_metrics` | Project metrics dashboard |
830
760
  | `sdd_amend` | Amend project constitution |
831
- | `sdd_context_status` | Context tiering status (Hot/Domain/Cold) |
832
- | `sdd_model_routing` | Model routing guidance for current task |
833
- | `sdd_check_access` | RBAC access check for current role |
761
+ | `sdd_write_bugfix` | Generate bugfix spec with root cause analysis and test plan |
834
762
 
835
763
  ### Testing (3)
836
764
 
@@ -860,6 +788,14 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
860
788
  |------|-------------|
861
789
  | `sdd_check_ecosystem` | Report recommended MCP servers with install commands |
862
790
 
791
+ ### Governance (3)
792
+
793
+ | Tool | Description |
794
+ |------|-------------|
795
+ | `sdd_model_routing` | Model routing decision table for all 10 phases with cost analysis |
796
+ | `sdd_context_status` | Context tier assignment (Hot/Domain/Cold) for spec artifacts with token savings |
797
+ | `sdd_check_access` | RBAC access check for current role with per-tool permissions summary |
798
+
863
799
 
864
800
  ## The Spec-Driven Development Platform
865
801
 
@@ -871,14 +807,14 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
871
807
 
872
808
  **[Spec-Kit](https://github.com/paulasilvatech/spec-kit)** is the open-source SDD methodology: EARS notation, gated pipeline phases, constitution model, 25+ specialized agents, and Markdown prompt templates. It defines **what** to do.
873
809
 
874
- **Specky** is the MCP engine that reimplements that methodology as 57 enforceable tools with programmatic validation. It enforces **how** to do it.
810
+ **Specky** is the complete plugin that reimplements that methodology as 57 enforceable MCP tools with 13 agents, 22 prompts, 8 skills, and 14 hooks. It enforces **how** to do it.
875
811
 
876
- | | Spec-Kit (Methodology) | Specky (Engine) |
812
+ | | Spec-Kit (Methodology) | Specky (Plugin) |
877
813
  |--|------------------------|-----------------|
878
- | **What it is** | Prompt templates + agent definitions | MCP server with 57 tools |
879
- | **How it works** | AI reads `.md` templates and follows instructions | AI calls tools that validate, enforce, and generate |
880
- | **Validation** | AI tries to follow the prompts | State machine, EARS regex, Zod schemas |
881
- | **Install** | Copy `.github/agents/` and `.claude/commands/` | `copilot plugin install specky-sdd@specky` or `npm install -g specky-sdd` |
814
+ | **What it is** | Prompt templates + agent definitions | Complete plugin: 13 agents + 57 MCP tools + 22 prompts + 8 skills + 14 hooks |
815
+ | **How it works** | AI reads `.md` templates and follows instructions | AI calls agents that orchestrate tools with hook validation |
816
+ | **Validation** | AI tries to follow the prompts | State machine, EARS regex, Zod schemas, pre/post hooks |
817
+ | **Install** | Copy `.github/agents/` and `.claude/commands/` | `apm install paulasilvatech/specky` |
882
818
  | **Works standalone** | Yes, in any AI IDE | Yes, includes all Spec-Kit patterns |
883
819
  | **Best for** | Learning SDD, lightweight adoption | Production enforcement, enterprise, compliance |
884
820
 
@@ -888,27 +824,17 @@ When you install Specky, you get the full Spec-Kit methodology reimplemented as
888
824
 
889
825
  Together they form the **SDD layer** of the GitHub + Microsoft enterprise platform. Specky reimplements the Spec-Kit methodology as enforceable MCP tools with compliance, traceability, and automation built in.
890
826
 
891
- The recommended way to adopt this stack is via the [Specky plugin](plugins/specky-sdd/), which bundles the MCP server, agents, skills, and hooks into a single installable package:
892
-
893
- ```bash
894
- copilot plugin marketplace add paulasilvatech/specky
895
- copilot plugin install specky-sdd@specky
896
- ```
897
-
898
- Or configure the MCP server directly:
899
-
900
827
  ```json
901
828
  {
902
- "mcpServers": {
903
- "specky-sdd": {
904
- "type": "stdio",
829
+ "servers": {
830
+ "specky": {
905
831
  "command": "specky-sdd"
906
832
  }
907
833
  }
908
834
  }
909
835
  ```
910
836
 
911
- > **Note:** This example assumes `specky-sdd` is installed globally (`npm install -g specky-sdd`). See the [Quick Start](#quick-start) section for plugin installation, per-workspace, and Docker alternatives.
837
+ > **Note:** This example assumes Specky is installed via `apm install paulasilvatech/specky`. See the [Installation](#installation) section for details.
912
838
 
913
839
  ## Project Configuration
914
840
 
@@ -1020,7 +946,7 @@ Specky is built with enterprise adoption in mind.
1020
946
  - **Zod `.strict()` validation** — every tool input is schema-validated; unknown fields rejected
1021
947
  - **security-scan hook** blocks commits containing hardcoded secrets (exit code 2)
1022
948
  - See [SECURITY.md](SECURITY.md) for full OWASP Top 10 coverage
1023
- - See [SECURITY.md](SECURITY.md) for complete security architecture
949
+ - See [docs/SYSTEM-DESIGN.md](docs/SYSTEM-DESIGN.md) for complete security architecture
1024
950
 
1025
951
  ### Security Best Practices
1026
952
 
@@ -1076,25 +1002,42 @@ Every pipeline phase produces a traceable artifact in `.specs/NNN-feature/`. The
1076
1002
  - **EARS Validator** — programmatic requirement quality enforcement
1077
1003
  - **Cross-Artifact Analysis** — automatic alignment checking between spec, design, and tasks
1078
1004
  - **Phase Enforcement** — state machine blocks phase-skipping; required files gate advancement
1079
- - **Comprehensive test suite** — CI enforces thresholds on every push
1005
+ - **507 unit tests** — CI enforces thresholds on every push
1080
1006
 
1081
1007
 
1082
1008
  ## Development
1083
1009
 
1084
1010
  ```bash
1085
- # Install globally
1086
- npm install -g specky-sdd
1011
+ # Clone and setup
1012
+ git clone https://github.com/paulasilvatech/specky.git
1013
+ cd specky
1014
+ npm install
1015
+
1016
+ # Build
1017
+ npm run build
1018
+
1019
+ # Run tests (507 tests)
1020
+ npm test
1021
+
1022
+ # Run tests with coverage report
1023
+ npm run test:coverage
1024
+
1025
+ # Development mode (auto-reload on file changes)
1026
+ npm run dev
1087
1027
 
1088
1028
  # Verify MCP handshake (quick smoke test)
1089
- echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | specky-sdd 2>/dev/null
1090
- ```
1029
+ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | node dist/index.js 2>/dev/null
1091
1030
 
1092
- For contributors, see [CONTRIBUTING.md](CONTRIBUTING.md).
1031
+ # Build and run with Docker locally
1032
+ docker build -t specky-sdd:dev .
1033
+ docker run -p 3200:3200 -v $(pwd):/workspace specky-sdd:dev
1034
+ curl http://localhost:3200/health
1035
+ ```
1093
1036
 
1094
1037
 
1095
1038
  ## Roadmap
1096
1039
 
1097
- ### v3.2 (current)
1040
+ ### v3.3 (current)
1098
1041
 
1099
1042
  | Capability | Status |
1100
1043
  |------------|--------|
@@ -1112,17 +1055,19 @@ For contributors, see [CONTRIBUTING.md](CONTRIBUTING.md).
1112
1055
  | Cognitive debt metrics at LGTM gates | Stable |
1113
1056
  | Test traceability: REQ-ID → test coverage mapping | Stable |
1114
1057
  | Intent drift detection with amendment suggestions | Stable |
1115
- | 10 automation hooks (2 blocking) | Stable |
1116
- | 7 Copilot agents + 19 prompts + 6 skills (via plugin) | Stable |
1058
+ | 14 automation hooks (4 blocking) | Stable |
1059
+ | 13 specialized agents + 22 prompts + 8 skills | Stable |
1117
1060
  | 6 compliance frameworks (HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001) | Stable |
1118
1061
  | 6 input types (transcript, PDF, DOCX, Figma, codebase, raw text) | Stable |
1119
1062
  | Test generation for 6 frameworks (vitest, jest, playwright, pytest, junit, xunit) | Stable |
1120
1063
  | MCP-to-MCP routing (GitHub, Azure DevOps, Jira, Terraform, Figma, Docker) | Stable |
1121
1064
  | SBOM + cosign signing on Docker image | Stable |
1122
1065
  | JSONL audit logger (optional) | Stable |
1123
- | Comprehensive test suite | Stable |
1066
+ | RBAC foundation (opt-in role-based access control) | Stable |
1067
+ | Rate limiting for HTTP transport (opt-in) | Stable |
1068
+ | 507 unit tests | Stable |
1124
1069
 
1125
- ### v3.3+ (planned)
1070
+ ### v3.4+ (planned)
1126
1071
 
1127
1072
  | Feature | Description |
1128
1073
  |---------|-------------|
package/SECURITY.md CHANGED
@@ -4,8 +4,9 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |---------|-----------|
7
- | 3.0.x | ✅ Active |
8
- | 2.3.x | ✅ Security fixes only |
7
+ | 3.3.x | ✅ Active |
8
+ | 3.0.x–3.2.x | ✅ Security fixes only |
9
+ | 2.3.x | ❌ End of life |
9
10
  | 2.0.x | ❌ End of life |
10
11
  | 1.0.x | ❌ End of life |
11
12
 
@@ -192,16 +193,15 @@ Running `npx specky-sdd` without a pinned version downloads the latest package f
192
193
 
193
194
  | Approach | Risk reduction | Notes |
194
195
  |----------|---------------|-------|
195
- | `npm install -g specky-sdd` | **High** — fetches once, runs offline after | Recommended default |
196
- | `npm install -g specky-sdd@3.2.1` | **Higher** — version-pinned, no silent upgrades | Best for reproducible environments |
197
- | Docker (`ghcr.io/paulasilvatech/specky:3.2.1`) | **Highest** — immutable image by digest | Best for CI/CD and air-gapped |
198
- | `npx specky-sdd` (unversioned) | **Baseline** — re-downloads on each invocation | Avoid in production pipelines |
196
+ | `apm install paulasilvatech/specky` | **High** — fetches once, lock file pins version | Recommended default |
197
+ | `apm install paulasilvatech/specky@3.3.0` | **Higher** — version-pinned, no silent upgrades | Best for reproducible environments |
198
+ | Docker (`ghcr.io/paulasilvatech/specky:3.3.0`) | **Highest** — immutable image by digest | Best for CI/CD and air-gapped |
199
199
 
200
200
  **Workspace isolation pattern** (CI/CD):
201
201
 
202
202
  ```bash
203
203
  # Install into a local vendor directory — no global write permissions needed
204
- npm install specky-sdd@3.2.1 --prefix ./vendor --ignore-scripts
204
+ npm install specky-sdd@3.3.0 --prefix ./vendor --ignore-scripts
205
205
  ./vendor/node_modules/.bin/specky-sdd
206
206
  ```
207
207
 
package/dist/index.js CHANGED
@@ -72,8 +72,8 @@ const server = new McpServer({
72
72
  name: SERVER_NAME,
73
73
  version: VERSION,
74
74
  title: "Specky",
75
- description: "57 MCP tools for Spec-Driven Development. 10-phase enforced pipeline, EARS notation, 17 diagram types, 6 compliance frameworks.",
76
- websiteUrl: "https://paulasilvatech.github.io/specky-site/",
75
+ description: "Agentic Spec-Driven Development plugin — 13 agents, 57 MCP tools, 10-phase enforced pipeline, EARS notation, 22 prompts, 8 skills, 14 hooks.",
76
+ websiteUrl: "https://getspecky.ai",
77
77
  icons: [
78
78
  {
79
79
  src: "https://raw.githubusercontent.com/paulasilvatech/specky/main/media/specky-brand-icon.svg",
@@ -106,7 +106,7 @@ const docGenerator = new DocGenerator(fileManager, stateMachine);
106
106
  const gitManager = new GitManager(fileManager);
107
107
  const testGenerator = new TestGenerator(fileManager);
108
108
  const pbtGenerator = new PbtGenerator(fileManager);
109
- const auditLogger = new AuditLogger(workspaceRoot, config.audit_enabled, config.audit.export_format, config.audit.max_file_size_mb);
109
+ new AuditLogger(workspaceRoot, config.audit_enabled, config.audit.export_format, config.audit.max_file_size_mb);
110
110
  const rbacEngine = new RbacEngine(config.rbac.enabled ?? false, config.rbac.default_role ?? "contributor");
111
111
  const metricsGenerator = new MetricsGenerator(fileManager);
112
112
  const modelRoutingEngine = new ModelRoutingEngine();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}