specky-sdd 2.2.3 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +117 -129
- package/SECURITY.md +1 -1
- package/dist/constants.d.ts +7 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/schemas/pbt.d.ts +14 -0
- package/dist/schemas/pbt.d.ts.map +1 -0
- package/dist/schemas/pbt.js +18 -0
- package/dist/schemas/pbt.js.map +1 -0
- package/dist/services/pbt-generator.d.ts +41 -0
- package/dist/services/pbt-generator.d.ts.map +1 -0
- package/dist/services/pbt-generator.js +326 -0
- package/dist/services/pbt-generator.js.map +1 -0
- package/dist/tools/checkpoint.d.ts +9 -0
- package/dist/tools/checkpoint.d.ts.map +1 -0
- package/dist/tools/checkpoint.js +303 -0
- package/dist/tools/checkpoint.js.map +1 -0
- package/dist/tools/pbt.d.ts +9 -0
- package/dist/tools/pbt.d.ts.map +1 -0
- package/dist/tools/pbt.js +79 -0
- package/dist/tools/pbt.js.map +1 -0
- package/dist/tools/turnkey.d.ts +37 -0
- package/dist/tools/turnkey.d.ts.map +1 -0
- package/dist/tools/turnkey.js +489 -0
- package/dist/tools/turnkey.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/media/specky-icon-128.png +0 -0
- package/media/specky-icon-256.png +0 -0
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,37 @@ 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
|
+
## [2.3.0] - 2026-03-24
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `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
|
|
12
|
+
- `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
|
|
13
|
+
- `sdd_checkpoint` tool — creates named snapshots of all spec artifacts and pipeline state for safe rollback
|
|
14
|
+
- `sdd_restore` tool — restores spec artifacts from a previous checkpoint with automatic backup of current state
|
|
15
|
+
- `sdd_list_checkpoints` tool — lists all available checkpoints with labels, dates, and phases
|
|
16
|
+
- `src/services/pbt-generator.ts` — new PBT generator service with EARS-to-property extraction and framework-specific code generation
|
|
17
|
+
- 5 new Claude Code commands: `/sdd:verify`, `/sdd:docs`, `/sdd:export`, `/sdd:diagrams`, `/sdd:iac`
|
|
18
|
+
- 6 executable hook scripts in `.claude/hooks/` with Claude Code `settings.json` integration (PostToolUse, Stop, TaskCompleted events)
|
|
19
|
+
- `.github/copilot-instructions.md` — GitHub Copilot project instructions with quick start guide
|
|
20
|
+
- `.github/workflows/sdd-hooks.yml` — GitHub Actions workflow replicating hook automation (spec-sync, security-scan, SRP validator, changelog reminder)
|
|
21
|
+
- `tests/unit/pbt-generator.test.ts` — 36 test cases for PBT generator (property extraction, classification, fast-check/hypothesis generation)
|
|
22
|
+
- `tests/unit/turnkey.test.ts` — 36 test cases for turnkey spec helpers (candidate extraction, EARS conversion, acceptance criteria, clarifications, NFR inference)
|
|
23
|
+
- `tests/integration/checkpoint-e2e.test.ts` — 9 integration test cases for checkpoint create/restore/list with real filesystem
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- MCP tool count: 47 → 52
|
|
27
|
+
- Claude Code commands: 7 → 12
|
|
28
|
+
- Test suite expanded: 211 → 292 tests across 19 files
|
|
29
|
+
- All 4 GitHub Copilot agents rewritten with complete workflows (turnkey, PBT, checkpointing, diagrams, IaC, docs, export, compliance)
|
|
30
|
+
- `spec-engineer.agent.md` now documents 8 workflows and references 49 tools
|
|
31
|
+
- `design-architect.agent.md` now includes diagram generation, IaC, and dev environment workflows
|
|
32
|
+
- `task-planner.agent.md` now includes export, test generation, and verification workflows
|
|
33
|
+
- `spec-reviewer.agent.md` now includes compliance, EARS validation, cross-artifact analysis, and test verification workflows
|
|
34
|
+
- `CLAUDE.md` updated to v2.3.0 with complete tool reference
|
|
35
|
+
- `README.md` updated with new tools, comparison matrix, and feature descriptions
|
|
36
|
+
- `TOTAL_TOOLS` constant corrected: 44 → 52
|
|
37
|
+
- Version bumped: 2.2.3 → 2.3.0
|
|
38
|
+
|
|
8
39
|
## [2.2.0] - 2026-03-24
|
|
9
40
|
|
|
10
41
|
### Added
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<h1>Specky</h1>
|
|
3
3
|
<h3>The Complete Spec-Driven Development Platform</h3>
|
|
4
|
-
<p><strong>
|
|
4
|
+
<p><strong>52 MCP tools. 10-phase pipeline. Works in any IDE.</strong></p>
|
|
5
5
|
|
|
6
6
|
<p>
|
|
7
7
|
<a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/v/specky-sdd" alt="npm"/></a>
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
| [📥 Input Methods](#-input-methods--6-ways-to-start) | 6 ways to feed Specky |
|
|
26
26
|
| [🏗️ Three Project Types](#%EF%B8%8F-three-project-types--one-pipeline) | Greenfield, Brownfield, Modernization |
|
|
27
27
|
| [⚙️ Pipeline and LGTM Gates](#%EF%B8%8F-pipeline-and-lgtm-gates) | 10 phases with human review gates |
|
|
28
|
-
| [🧰 All
|
|
28
|
+
| [🧰 All 52 Tools](#-all-47-tools) | Complete tool reference by category |
|
|
29
29
|
| [🏛️ The SDD Platform](#%EF%B8%8F-the-spec-driven-development-platform) | Built on Spec-Kit, everything included |
|
|
30
30
|
| [📐 EARS Notation](#-ears-notation) | The 6 requirement patterns |
|
|
31
31
|
| [🛡️ Compliance](#%EF%B8%8F-compliance-frameworks) | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 |
|
|
32
32
|
| [🏢 Enterprise Ready](#-enterprise-ready) | Security, audit trail, quality gates |
|
|
33
|
-
| [🗺️ Roadmap](#%EF%B8%8F-roadmap) | v2.
|
|
33
|
+
| [🗺️ Roadmap](#%EF%B8%8F-roadmap) | v2.3 (current), v2.4, v3.0 plans |
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
## 🔍 What is Specky?
|
|
37
37
|
|
|
38
|
-
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
|
|
38
|
+
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 52 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.
|
|
39
39
|
|
|
40
40
|
**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.
|
|
41
41
|
|
|
@@ -104,7 +104,11 @@ Specky adds a **deterministic engine** between your intent and your code:
|
|
|
104
104
|
| Phantom task detection | Extension | No | No | **Yes** |
|
|
105
105
|
| Complete auto-documentation | No | No | No | **Yes** |
|
|
106
106
|
| Educative outputs | No | No | No | **Yes** |
|
|
107
|
-
|
|
|
107
|
+
| Turnkey spec from natural language | No | Partial (1 EARS pattern) | No | **Yes (5 EARS patterns)** |
|
|
108
|
+
| Property-based testing (fast-check/Hypothesis) | No | Yes | No | **Yes** |
|
|
109
|
+
| Checkpoint/restore for spec artifacts | No | Session-only | No | **Yes (persistent)** |
|
|
110
|
+
| Executable hooks (file-save triggers) | No | Yes (IDE-level) | No | **Yes (Claude Code + GitHub Actions)** |
|
|
111
|
+
| 52 MCP tools | N/A | N/A | N/A | **Yes** |
|
|
108
112
|
| Works in ANY IDE via MCP | Templates | IDE-locked | IDE-locked | **Yes** |
|
|
109
113
|
|
|
110
114
|
</details>
|
|
@@ -115,79 +119,23 @@ Specky adds a **deterministic engine** between your intent and your code:
|
|
|
115
119
|
### Prerequisites
|
|
116
120
|
|
|
117
121
|
- **Node.js 18+**: [Download here](https://nodejs.org/)
|
|
118
|
-
- **An AI IDE
|
|
122
|
+
- **An AI IDE**: VS Code with Copilot, Claude Code, Claude Desktop, Cursor, or Windsurf
|
|
119
123
|
|
|
120
|
-
###
|
|
124
|
+
### Step 1: Choose Your Installation Scope
|
|
121
125
|
|
|
122
|
-
|
|
126
|
+
| Scope | What it does | Best for |
|
|
127
|
+
|-------|-------------|----------|
|
|
128
|
+
| **Per workspace** (recommended) | Config file lives inside the repo, shared with the team via Git | Teams, open-source projects |
|
|
129
|
+
| **Global (once)** | Installed on your machine, available in every repo automatically | Personal use, quick setup |
|
|
123
130
|
|
|
124
|
-
|
|
125
|
-
npx specky-sdd
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
Or install globally for faster startup:
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
npm install -g specky-sdd
|
|
132
|
-
specky-sdd
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Option 2: Docker
|
|
136
|
-
|
|
137
|
-
Run Specky as an HTTP server in a container, no Node.js required on the host:
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
# Pull and run (mounts your project into /workspace)
|
|
141
|
-
docker run -p 3200:3200 -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Or use Docker Compose for a persistent setup:
|
|
131
|
+
### Step 2: Install
|
|
145
132
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
mkdir -p workspace
|
|
149
|
-
docker compose up -d
|
|
150
|
-
|
|
151
|
-
# Check health
|
|
152
|
-
curl http://localhost:3200/health
|
|
153
|
-
# → {"status":"ok","version":"2.2.0"}
|
|
133
|
+
<details open>
|
|
134
|
+
<summary><strong>📂 Per Workspace (recommended)</strong></summary>
|
|
154
135
|
|
|
155
|
-
|
|
156
|
-
docker compose logs -f specky
|
|
136
|
+
No global install needed. You add a config file to the repo and `npx` handles the rest.
|
|
157
137
|
|
|
158
|
-
|
|
159
|
-
docker compose down
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
<details>
|
|
163
|
-
<summary>Build from source with Docker</summary>
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
git clone https://github.com/paulasilvatech/specky.git
|
|
167
|
-
cd specky
|
|
168
|
-
|
|
169
|
-
# Build the image locally
|
|
170
|
-
docker build -t specky-sdd:local .
|
|
171
|
-
|
|
172
|
-
# Run it
|
|
173
|
-
docker run -p 3200:3200 -v $(pwd):/workspace specky-sdd:local
|
|
174
|
-
|
|
175
|
-
# Or with docker compose
|
|
176
|
-
docker compose up -d --build
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
</details>
|
|
180
|
-
|
|
181
|
-
> **stdio vs HTTP:** When run via `npx`, Specky uses stdio (direct pipe to the AI client). When run in Docker, it uses HTTP mode on port 3200. Both modes expose the same 47 MCP tools.
|
|
182
|
-
|
|
183
|
-
### Connect to Your AI IDE
|
|
184
|
-
|
|
185
|
-
Once Specky is running, connect it to your preferred AI tool:
|
|
186
|
-
|
|
187
|
-
<details>
|
|
188
|
-
<summary><strong>VS Code with GitHub Copilot</strong></summary>
|
|
189
|
-
|
|
190
|
-
Create `.vscode/mcp.json` in your project root:
|
|
138
|
+
**For VS Code with GitHub Copilot** create `.vscode/mcp.json` in the repo root:
|
|
191
139
|
|
|
192
140
|
```json
|
|
193
141
|
{
|
|
@@ -203,74 +151,70 @@ Create `.vscode/mcp.json` in your project root:
|
|
|
203
151
|
}
|
|
204
152
|
```
|
|
205
153
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
</details>
|
|
209
|
-
|
|
210
|
-
<details>
|
|
211
|
-
<summary><strong>Claude Code</strong></summary>
|
|
212
|
-
|
|
213
|
-
One command:
|
|
154
|
+
**For Claude Code** run this once inside the repo:
|
|
214
155
|
|
|
215
156
|
```bash
|
|
216
157
|
claude mcp add specky -- npx -y specky-sdd
|
|
217
158
|
```
|
|
218
159
|
|
|
219
|
-
|
|
160
|
+
**For Cursor** add to MCP settings (Settings > MCP Servers):
|
|
220
161
|
|
|
221
162
|
```json
|
|
222
163
|
{
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
|
|
226
|
-
"args": ["-y", "specky-sdd"],
|
|
227
|
-
"env": {
|
|
228
|
-
"SDD_WORKSPACE": "/path/to/your/project"
|
|
229
|
-
}
|
|
230
|
-
}
|
|
164
|
+
"specky": {
|
|
165
|
+
"command": "npx",
|
|
166
|
+
"args": ["-y", "specky-sdd"]
|
|
231
167
|
}
|
|
232
168
|
}
|
|
233
169
|
```
|
|
234
170
|
|
|
171
|
+
> 💡 Commit the config file to Git so every team member gets Specky automatically when they clone the repo.
|
|
172
|
+
|
|
235
173
|
</details>
|
|
236
174
|
|
|
237
175
|
<details>
|
|
238
|
-
<summary><strong
|
|
176
|
+
<summary><strong>🌐 Global (once, all repos)</strong></summary>
|
|
239
177
|
|
|
240
|
-
|
|
178
|
+
Install globally and Specky is available everywhere on your machine:
|
|
241
179
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
180
|
+
```bash
|
|
181
|
+
npm install -g specky-sdd
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Then configure your IDE to use the global install:
|
|
247
185
|
|
|
186
|
+
**VS Code** (`.vscode/mcp.json`):
|
|
248
187
|
```json
|
|
249
188
|
{
|
|
250
|
-
"
|
|
189
|
+
"servers": {
|
|
251
190
|
"specky": {
|
|
252
|
-
"command": "
|
|
253
|
-
"
|
|
254
|
-
"env": {
|
|
255
|
-
"SDD_WORKSPACE": "/path/to/your/project"
|
|
256
|
-
}
|
|
191
|
+
"command": "specky-sdd",
|
|
192
|
+
"env": { "SDD_WORKSPACE": "${workspaceFolder}" }
|
|
257
193
|
}
|
|
258
194
|
}
|
|
259
195
|
}
|
|
260
196
|
```
|
|
261
197
|
|
|
262
|
-
|
|
198
|
+
**Claude Code**:
|
|
199
|
+
```bash
|
|
200
|
+
claude mcp add specky -- specky-sdd
|
|
201
|
+
```
|
|
263
202
|
|
|
264
|
-
|
|
265
|
-
<summary><strong>Cursor</strong></summary>
|
|
203
|
+
**Claude Desktop** (`claude_desktop_config.json`):
|
|
266
204
|
|
|
267
|
-
|
|
205
|
+
| OS | Config location |
|
|
206
|
+
|----|----------------|
|
|
207
|
+
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
208
|
+
| Linux | `~/.config/Claude/claude_desktop_config.json` |
|
|
209
|
+
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
268
210
|
|
|
269
211
|
```json
|
|
270
212
|
{
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
|
|
213
|
+
"mcpServers": {
|
|
214
|
+
"specky": {
|
|
215
|
+
"command": "specky-sdd",
|
|
216
|
+
"env": { "SDD_WORKSPACE": "/path/to/your/project" }
|
|
217
|
+
}
|
|
274
218
|
}
|
|
275
219
|
}
|
|
276
220
|
```
|
|
@@ -278,22 +222,40 @@ Add to Cursor's MCP settings (Settings > MCP Servers):
|
|
|
278
222
|
</details>
|
|
279
223
|
|
|
280
224
|
<details>
|
|
281
|
-
<summary><strong
|
|
225
|
+
<summary><strong>🐳 Docker (HTTP mode, no Node.js required)</strong></summary>
|
|
282
226
|
|
|
283
|
-
|
|
227
|
+
Run Specky as an HTTP server in a container:
|
|
284
228
|
|
|
229
|
+
```bash
|
|
230
|
+
docker run -d --name specky -p 3200:3200 -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
|
|
285
231
|
```
|
|
286
|
-
|
|
232
|
+
|
|
233
|
+
Verify it's running:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
curl http://localhost:3200/health
|
|
287
237
|
```
|
|
288
238
|
|
|
289
|
-
|
|
239
|
+
Point any MCP client that supports HTTP to `http://localhost:3200/mcp`
|
|
240
|
+
|
|
241
|
+
Stop when done:
|
|
290
242
|
|
|
291
243
|
```bash
|
|
292
|
-
docker
|
|
244
|
+
docker stop specky && docker rm specky
|
|
293
245
|
```
|
|
294
246
|
|
|
295
247
|
</details>
|
|
296
248
|
|
|
249
|
+
### Step 3: Verify
|
|
250
|
+
|
|
251
|
+
Open your AI IDE and type:
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
> What tools does Specky have?
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
The AI should list the 47 SDD tools. If you see them, Specky is working.
|
|
258
|
+
|
|
297
259
|
### ✅ Try It Now
|
|
298
260
|
|
|
299
261
|
Once connected, type this in your AI chat to see Specky in action:
|
|
@@ -578,7 +540,7 @@ The AI calls:
|
|
|
578
540
|
|
|
579
541
|
The AI calls `sdd_export_work_items` + `sdd_create_pr` → generates work item payloads and PR body with full spec traceability.
|
|
580
542
|
|
|
581
|
-
> 👉 **Next:** Learn about [EARS notation](#ears-notation) to understand the requirement patterns, or see [all
|
|
543
|
+
> 👉 **Next:** Learn about [EARS notation](#ears-notation) to understand the requirement patterns, or see [#all-52-tools](#all-47-tools) for a complete reference.
|
|
582
544
|
|
|
583
545
|
|
|
584
546
|
## 🔧 Brownfield Project: Add Features to Existing Code
|
|
@@ -771,7 +733,7 @@ The AI calls `sdd_advance_phase` → moves the pipeline forward if all prerequis
|
|
|
771
733
|
All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live). See [Input Methods](#input-methods--6-ways-to-start) for how to feed data into the pipeline.
|
|
772
734
|
|
|
773
735
|
|
|
774
|
-
## 🧰 All
|
|
736
|
+
## 🧰 All 52 Tools
|
|
775
737
|
|
|
776
738
|
### 📥 Input and Conversion (5)
|
|
777
739
|
|
|
@@ -860,12 +822,33 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
860
822
|
| `sdd_metrics` | Project metrics dashboard |
|
|
861
823
|
| `sdd_amend` | Amend project constitution |
|
|
862
824
|
|
|
863
|
-
### 🧪 Testing (
|
|
825
|
+
### 🧪 Testing (3)
|
|
864
826
|
|
|
865
827
|
| Tool | Description |
|
|
866
828
|
|------|-------------|
|
|
867
829
|
| `sdd_generate_tests` | Generate test stubs from acceptance criteria (vitest/jest/playwright/pytest/junit/xunit) |
|
|
868
830
|
| `sdd_verify_tests` | Verify test results against requirements, report traceability coverage |
|
|
831
|
+
| `sdd_generate_pbt` | Generate property-based tests using fast-check (TypeScript) or Hypothesis (Python). Extracts invariants, round-trips, idempotence, state transitions, and negative properties from EARS requirements |
|
|
832
|
+
|
|
833
|
+
### ⚡ Turnkey Specification (1)
|
|
834
|
+
|
|
835
|
+
| Tool | Description |
|
|
836
|
+
|------|-------------|
|
|
837
|
+
| `sdd_turnkey_spec` | Generate a complete EARS specification from a natural language description. Auto-extracts requirements, classifies all 5 EARS patterns, generates acceptance criteria, infers non-functional requirements, and identifies clarification questions |
|
|
838
|
+
|
|
839
|
+
### 💾 Checkpointing (3)
|
|
840
|
+
|
|
841
|
+
| Tool | Description |
|
|
842
|
+
|------|-------------|
|
|
843
|
+
| `sdd_checkpoint` | Create a named snapshot of all spec artifacts and pipeline state |
|
|
844
|
+
| `sdd_restore` | Restore spec artifacts from a previous checkpoint (auto-creates backup before restoring) |
|
|
845
|
+
| `sdd_list_checkpoints` | List all available checkpoints for a feature with labels, dates, and phases |
|
|
846
|
+
|
|
847
|
+
### 🔌 Ecosystem (1)
|
|
848
|
+
|
|
849
|
+
| Tool | Description |
|
|
850
|
+
|------|-------------|
|
|
851
|
+
| `sdd_check_ecosystem` | Report recommended MCP servers with install commands |
|
|
869
852
|
|
|
870
853
|
|
|
871
854
|
## 🏛️ The Spec-Driven Development Platform
|
|
@@ -878,11 +861,11 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
878
861
|
|
|
879
862
|
**[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.
|
|
880
863
|
|
|
881
|
-
**Specky** is the MCP engine that reimplements that methodology as
|
|
864
|
+
**Specky** is the MCP engine that reimplements that methodology as 52 enforceable tools with programmatic validation. It enforces **how** to do it.
|
|
882
865
|
|
|
883
866
|
| | Spec-Kit (Methodology) | Specky (Engine) |
|
|
884
867
|
|--|------------------------|-----------------|
|
|
885
|
-
| **What it is** | Prompt templates + agent definitions | MCP server with
|
|
868
|
+
| **What it is** | Prompt templates + agent definitions | MCP server with 52 tools |
|
|
886
869
|
| **How it works** | AI reads `.md` templates and follows instructions | AI calls tools that validate, enforce, and generate |
|
|
887
870
|
| **Validation** | AI tries to follow the prompts | State machine, EARS regex, Zod schemas |
|
|
888
871
|
| **Install** | Copy `.github/agents/` and `.claude/commands/` | `npx specky-sdd` (includes methodology built-in) |
|
|
@@ -1040,7 +1023,7 @@ Every pipeline phase produces a traceable artifact in `.specs/NNN-feature/`. The
|
|
|
1040
1023
|
- **EARS Validator**.programmatic requirement quality enforcement
|
|
1041
1024
|
- **Cross-Artifact Analysis**.automatic alignment checking between spec, design, and tasks
|
|
1042
1025
|
- **Phase Enforcement**.state machine blocks phase-skipping; required files gate advancement
|
|
1043
|
-
- **
|
|
1026
|
+
- **292 unit tests** with 89% code coverage; CI enforces thresholds on every push
|
|
1044
1027
|
|
|
1045
1028
|
|
|
1046
1029
|
## 🛠️ Development
|
|
@@ -1054,7 +1037,7 @@ npm install
|
|
|
1054
1037
|
# Build
|
|
1055
1038
|
npm run build
|
|
1056
1039
|
|
|
1057
|
-
# Run tests (
|
|
1040
|
+
# Run tests (292 tests coverage)
|
|
1058
1041
|
npm test
|
|
1059
1042
|
|
|
1060
1043
|
# Run tests with coverage report
|
|
@@ -1075,31 +1058,36 @@ curl http://localhost:3200/health
|
|
|
1075
1058
|
|
|
1076
1059
|
## 🗺️ Roadmap
|
|
1077
1060
|
|
|
1078
|
-
### v2.
|
|
1061
|
+
### v2.3 (current, stable)
|
|
1079
1062
|
|
|
1080
|
-
Specky v2.
|
|
1063
|
+
Specky v2.3 is **production-ready** with full Kiro-parity features and complete GitHub Copilot + Claude Code integration.
|
|
1081
1064
|
|
|
1082
1065
|
| Capability | Status |
|
|
1083
1066
|
|------------|--------|
|
|
1084
|
-
|
|
|
1067
|
+
| 52 MCP tools across 10 pipeline phases | ✅ Stable |
|
|
1068
|
+
| Turnkey spec from natural language (`sdd_turnkey_spec`) | ✅ New |
|
|
1069
|
+
| Property-based testing — fast-check + Hypothesis (`sdd_generate_pbt`) | ✅ New |
|
|
1070
|
+
| Checkpoint/restore for spec artifacts (`sdd_checkpoint`, `sdd_restore`) | ✅ New |
|
|
1071
|
+
| 6 executable hooks with Claude Code settings.json integration | ✅ New |
|
|
1072
|
+
| GitHub Actions SDD workflow (`sdd-hooks.yml`) | ✅ New |
|
|
1073
|
+
| 12 Claude Code commands + 5 Copilot agents with full workflows | ✅ New |
|
|
1074
|
+
| `.github/copilot-instructions.md` for Copilot project context | ✅ New |
|
|
1085
1075
|
| State machine enforcement (no phase-skipping) | ✅ Stable |
|
|
1086
1076
|
| EARS validation (6 patterns, vague term detection) | ✅ Stable |
|
|
1087
1077
|
| 6 input types (transcript, PDF, DOCX, Figma, codebase, raw text) | ✅ Stable |
|
|
1088
1078
|
| Compliance checking (HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001) | ✅ Stable |
|
|
1089
1079
|
| Test generation (vitest, jest, playwright, pytest, junit, xunit) | ✅ Stable |
|
|
1090
1080
|
| MCP-to-MCP routing (GitHub, Azure DevOps, Jira, Terraform, Figma, Docker) | ✅ Stable |
|
|
1091
|
-
|
|
|
1092
|
-
| 211 unit tests, 89% code coverage | ✅ Stable |
|
|
1093
|
-
| `.github/agents/` + `.claude/commands/` integration | ✅ Stable |
|
|
1081
|
+
| 292 unit tests across 19 files | ✅ Stable |
|
|
1094
1082
|
|
|
1095
|
-
### v2.
|
|
1083
|
+
### v2.4 (planned)
|
|
1096
1084
|
|
|
1097
1085
|
| Feature | Description |
|
|
1098
1086
|
|---------|-------------|
|
|
1099
1087
|
| 🔐 HTTP authentication | Token-based auth for the HTTP transport (Docker/container mode) |
|
|
1100
1088
|
| 📊 Observability | OpenTelemetry metrics and structured logging for tool invocations |
|
|
1101
|
-
| 🔄 Spec versioning | Track specification versions with diff and rollback support |
|
|
1102
1089
|
| 🌐 Internationalization | Spec templates in multiple languages (PT-BR, ES, FR, DE, JA) |
|
|
1090
|
+
| 🧠 AI-powered shrinking | Integrate fast-check/Hypothesis shrinking feedback into spec refinement |
|
|
1103
1091
|
|
|
1104
1092
|
### v3.0 (future)
|
|
1105
1093
|
|
package/SECURITY.md
CHANGED
|
@@ -25,7 +25,7 @@ If you discover a security vulnerability in Specky, please report it responsibly
|
|
|
25
25
|
|
|
26
26
|
### Input Validation
|
|
27
27
|
|
|
28
|
-
All
|
|
28
|
+
All 52 MCP tool inputs are validated using [Zod](https://zod.dev/) schemas with `.strict()` mode. No unknown fields are accepted. This prevents injection of unexpected parameters through the MCP JSON-RPC interface.
|
|
29
29
|
|
|
30
30
|
```
|
|
31
31
|
AI Client → JSON-RPC → Zod .strict() validation → Service layer
|
package/dist/constants.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare const VERSION: string;
|
|
|
6
6
|
/** Server name for MCP handshake */
|
|
7
7
|
export declare const SERVER_NAME = "specky";
|
|
8
8
|
/** Total tool count for ecosystem check */
|
|
9
|
-
export declare const TOTAL_TOOLS =
|
|
9
|
+
export declare const TOTAL_TOOLS = 52;
|
|
10
10
|
/**
|
|
11
11
|
* MCP Ecosystem — Recommended external MCP servers.
|
|
12
12
|
* Each entry describes a server that enhances Specky's capabilities.
|
|
@@ -185,6 +185,12 @@ export declare const TOOL_NAMES: {
|
|
|
185
185
|
readonly GENERATE_ONBOARDING: "sdd_generate_onboarding";
|
|
186
186
|
readonly METRICS: "sdd_metrics";
|
|
187
187
|
readonly GENERATE_TESTS: "sdd_generate_tests";
|
|
188
|
+
readonly VERIFY_TESTS: "sdd_verify_tests";
|
|
189
|
+
readonly GENERATE_PBT: "sdd_generate_pbt";
|
|
190
|
+
readonly TURNKEY_SPEC: "sdd_turnkey_spec";
|
|
191
|
+
readonly CHECKPOINT: "sdd_checkpoint";
|
|
192
|
+
readonly RESTORE: "sdd_restore";
|
|
193
|
+
readonly LIST_CHECKPOINTS: "sdd_list_checkpoints";
|
|
188
194
|
};
|
|
189
195
|
export declare const TOOL_IMPORT_DOCUMENT = "sdd_import_document";
|
|
190
196
|
export declare const TOOL_BATCH_IMPORT = "sdd_batch_import";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,OAAO,QAAe,CAAC;AAEpC,oCAAoC;AACpC,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,2CAA2C;AAC3C,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqGhB,CAAC;AAEX,4DAA4D;AAC5D,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,sBAAsB;AACtB,eAAO,MAAM,UAAU,oBAAoB,CAAC;AAE5C,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,iCAAiC;AACjC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAUrD,CAAC;AAEF;;;GAGG;AACH,oBAAY,KAAK;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,gDAAgD;AAChD,eAAO,MAAM,WAAW,EAAE,SAAS,KAAK,EAWvC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAWjE,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -10,7 +10,7 @@ export const VERSION = _pkg.version;
|
|
|
10
10
|
/** Server name for MCP handshake */
|
|
11
11
|
export const SERVER_NAME = "specky";
|
|
12
12
|
/** Total tool count for ecosystem check */
|
|
13
|
-
export const TOTAL_TOOLS =
|
|
13
|
+
export const TOTAL_TOOLS = 52;
|
|
14
14
|
/**
|
|
15
15
|
* MCP Ecosystem — Recommended external MCP servers.
|
|
16
16
|
* Each entry describes a server that enhances Specky's capabilities.
|
|
@@ -245,6 +245,15 @@ export const TOOL_NAMES = {
|
|
|
245
245
|
METRICS: "sdd_metrics",
|
|
246
246
|
// Testing
|
|
247
247
|
GENERATE_TESTS: "sdd_generate_tests",
|
|
248
|
+
VERIFY_TESTS: "sdd_verify_tests",
|
|
249
|
+
// Property-Based Testing
|
|
250
|
+
GENERATE_PBT: "sdd_generate_pbt",
|
|
251
|
+
// Turnkey
|
|
252
|
+
TURNKEY_SPEC: "sdd_turnkey_spec",
|
|
253
|
+
// Checkpointing
|
|
254
|
+
CHECKPOINT: "sdd_checkpoint",
|
|
255
|
+
RESTORE: "sdd_restore",
|
|
256
|
+
LIST_CHECKPOINTS: "sdd_list_checkpoints",
|
|
248
257
|
};
|
|
249
258
|
// Input & Conversion
|
|
250
259
|
export const TOOL_IMPORT_DOCUMENT = "sdd_import_document";
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,10 @@ import { registerIntegrationTools } from "./tools/integration.js";
|
|
|
39
39
|
import { registerDocumentationTools } from "./tools/documentation.js";
|
|
40
40
|
import { TestGenerator } from "./services/test-generator.js";
|
|
41
41
|
import { registerTestingTools } from "./tools/testing.js";
|
|
42
|
+
import { registerCheckpointTools } from "./tools/checkpoint.js";
|
|
43
|
+
import { registerTurnkeyTools } from "./tools/turnkey.js";
|
|
44
|
+
import { PbtGenerator } from "./services/pbt-generator.js";
|
|
45
|
+
import { registerPbtTools } from "./tools/pbt.js";
|
|
42
46
|
import { loadConfig } from "./config.js";
|
|
43
47
|
// Resolve workspace root
|
|
44
48
|
const workspaceRoot = process.env["SDD_WORKSPACE"] || process.cwd();
|
|
@@ -71,13 +75,14 @@ const complianceEngine = new ComplianceEngine();
|
|
|
71
75
|
const docGenerator = new DocGenerator(fileManager);
|
|
72
76
|
const gitManager = new GitManager(fileManager);
|
|
73
77
|
const testGenerator = new TestGenerator(fileManager);
|
|
74
|
-
|
|
75
|
-
//
|
|
78
|
+
const pbtGenerator = new PbtGenerator(fileManager);
|
|
79
|
+
// Register all tools (52 total)
|
|
80
|
+
// v1 tools
|
|
76
81
|
registerPipelineTools(server, fileManager, stateMachine, templateEngine, earsValidator);
|
|
77
82
|
registerAnalysisTools(server, fileManager, stateMachine, templateEngine);
|
|
78
83
|
registerUtilityTools(server, fileManager, stateMachine, templateEngine, codebaseScanner);
|
|
79
84
|
registerTranscriptTools(server, fileManager, stateMachine, templateEngine, earsValidator, transcriptParser);
|
|
80
|
-
// v2 tools
|
|
85
|
+
// v2+ tools
|
|
81
86
|
registerInputTools(server, fileManager, documentConverter, stateMachine);
|
|
82
87
|
registerQualityTools(server, fileManager, stateMachine, templateEngine, complianceEngine, crossAnalyzer, earsValidator);
|
|
83
88
|
registerVisualizationTools(server, fileManager, stateMachine, diagramGenerator);
|
|
@@ -86,6 +91,9 @@ registerEnvironmentTools(server, fileManager, stateMachine, iacGenerator, codeba
|
|
|
86
91
|
registerIntegrationTools(server, fileManager, stateMachine, templateEngine, gitManager, workItemExporter);
|
|
87
92
|
registerDocumentationTools(server, fileManager, stateMachine, docGenerator);
|
|
88
93
|
registerTestingTools(server, fileManager, stateMachine, testGenerator);
|
|
94
|
+
registerCheckpointTools(server, fileManager, stateMachine);
|
|
95
|
+
registerTurnkeyTools(server, fileManager, stateMachine, templateEngine, earsValidator);
|
|
96
|
+
registerPbtTools(server, fileManager, stateMachine, pbtGenerator);
|
|
89
97
|
// Graceful shutdown
|
|
90
98
|
let isShuttingDown = false;
|
|
91
99
|
function handleShutdown(signal) {
|
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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"}
|