specky-sdd 1.0.0 → 2.0.0
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/README.md +256 -282
- package/dist/constants.d.ts +76 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +96 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +37 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas/environment.d.ts +53 -0
- package/dist/schemas/environment.d.ts.map +1 -0
- package/dist/schemas/environment.js +45 -0
- package/dist/schemas/environment.js.map +1 -0
- package/dist/schemas/infrastructure.d.ts +59 -0
- package/dist/schemas/infrastructure.d.ts.map +1 -0
- package/dist/schemas/infrastructure.js +47 -0
- package/dist/schemas/infrastructure.js.map +1 -0
- package/dist/schemas/input.d.ts +53 -0
- package/dist/schemas/input.d.ts.map +1 -0
- package/dist/schemas/input.js +46 -0
- package/dist/schemas/input.js.map +1 -0
- package/dist/schemas/integration.d.ts +114 -0
- package/dist/schemas/integration.d.ts.map +1 -0
- package/dist/schemas/integration.js +90 -0
- package/dist/schemas/integration.js.map +1 -0
- package/dist/schemas/quality.d.ts +57 -0
- package/dist/schemas/quality.d.ts.map +1 -0
- package/dist/schemas/quality.js +33 -0
- package/dist/schemas/quality.js.map +1 -0
- package/dist/schemas/transcript.d.ts +4 -4
- package/dist/schemas/utility.d.ts +3 -3
- package/dist/schemas/visualization.d.ts +57 -0
- package/dist/schemas/visualization.d.ts.map +1 -0
- package/dist/schemas/visualization.js +38 -0
- package/dist/schemas/visualization.js.map +1 -0
- package/dist/services/compliance-engine.d.ts +19 -0
- package/dist/services/compliance-engine.d.ts.map +1 -0
- package/dist/services/compliance-engine.js +82 -0
- package/dist/services/compliance-engine.js.map +1 -0
- package/dist/services/cross-analyzer.d.ts +17 -0
- package/dist/services/cross-analyzer.d.ts.map +1 -0
- package/dist/services/cross-analyzer.js +78 -0
- package/dist/services/cross-analyzer.js.map +1 -0
- package/dist/services/diagram-generator.d.ts +46 -0
- package/dist/services/diagram-generator.d.ts.map +1 -0
- package/dist/services/diagram-generator.js +423 -0
- package/dist/services/diagram-generator.js.map +1 -0
- package/dist/services/doc-generator.d.ts +18 -0
- package/dist/services/doc-generator.d.ts.map +1 -0
- package/dist/services/doc-generator.js +128 -0
- package/dist/services/doc-generator.js.map +1 -0
- package/dist/services/document-converter.d.ts +71 -0
- package/dist/services/document-converter.d.ts.map +1 -0
- package/dist/services/document-converter.js +296 -0
- package/dist/services/document-converter.js.map +1 -0
- package/dist/services/git-manager.d.ts +13 -0
- package/dist/services/git-manager.d.ts.map +1 -0
- package/dist/services/git-manager.js +63 -0
- package/dist/services/git-manager.js.map +1 -0
- package/dist/services/iac-generator.d.ts +27 -0
- package/dist/services/iac-generator.d.ts.map +1 -0
- package/dist/services/iac-generator.js +152 -0
- package/dist/services/iac-generator.js.map +1 -0
- package/dist/services/state-machine.d.ts.map +1 -1
- package/dist/services/state-machine.js +15 -2
- package/dist/services/state-machine.js.map +1 -1
- package/dist/services/work-item-exporter.d.ts +21 -0
- package/dist/services/work-item-exporter.d.ts.map +1 -0
- package/dist/services/work-item-exporter.js +92 -0
- package/dist/services/work-item-exporter.js.map +1 -0
- package/dist/tools/documentation.d.ts +9 -0
- package/dist/tools/documentation.d.ts.map +1 -0
- package/dist/tools/documentation.js +176 -0
- package/dist/tools/documentation.js.map +1 -0
- package/dist/tools/environment.d.ts +10 -0
- package/dist/tools/environment.d.ts.map +1 -0
- package/dist/tools/environment.js +153 -0
- package/dist/tools/environment.js.map +1 -0
- package/dist/tools/infrastructure.d.ts +9 -0
- package/dist/tools/infrastructure.d.ts.map +1 -0
- package/dist/tools/infrastructure.js +221 -0
- package/dist/tools/infrastructure.js.map +1 -0
- package/dist/tools/input.d.ts +9 -0
- package/dist/tools/input.d.ts.map +1 -0
- package/dist/tools/input.js +182 -0
- package/dist/tools/input.js.map +1 -0
- package/dist/tools/integration.d.ts +11 -0
- package/dist/tools/integration.d.ts.map +1 -0
- package/dist/tools/integration.js +332 -0
- package/dist/tools/integration.js.map +1 -0
- package/dist/tools/quality.d.ts +12 -0
- package/dist/tools/quality.d.ts.map +1 -0
- package/dist/tools/quality.js +429 -0
- package/dist/tools/quality.js.map +1 -0
- package/dist/tools/visualization.d.ts +9 -0
- package/dist/tools/visualization.d.ts.map +1 -0
- package/dist/tools/visualization.js +494 -0
- package/dist/tools/visualization.js.map +1 -0
- package/dist/types.d.ts +311 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/api-docs.md +39 -0
- package/templates/checklist.md +28 -0
- package/templates/compliance.md +27 -0
- package/templates/cross-analysis.md +45 -0
- package/templates/data-model.md +34 -0
- package/templates/devcontainer.md +35 -0
- package/templates/dockerfile.md +33 -0
- package/templates/onboarding.md +48 -0
- package/templates/research.md +38 -0
- package/templates/runbook.md +39 -0
- package/templates/terraform.md +37 -0
- package/templates/user-stories.md +38 -0
- package/templates/verification.md +32 -0
- package/templates/work-items.md +26 -0
package/README.md
CHANGED
|
@@ -1,94 +1,97 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>Specky</h1>
|
|
3
|
+
<h3>The Complete Spec-Driven Development Platform</h3>
|
|
4
|
+
<p><strong>42 MCP tools. 10-phase pipeline. Works in any IDE.</strong></p>
|
|
5
|
+
|
|
6
|
+
<p>
|
|
7
|
+
<a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/v/specky-sdd" alt="npm"/></a>
|
|
8
|
+
<a href="https://github.com/paulasilvatech/specky"><img src="https://img.shields.io/github/stars/paulasilvatech/specky?style=social" alt="Stars"/></a>
|
|
9
|
+
<a href="https://github.com/paulasilvatech/specky/blob/main/LICENSE"><img src="https://img.shields.io/github/license/paulasilvatech/specky" alt="License"/></a>
|
|
10
|
+
</p>
|
|
11
|
+
</div>
|
|
2
12
|
|
|
3
|
-
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What is Specky?
|
|
4
16
|
|
|
5
|
-
|
|
17
|
+
Specky is an open-source MCP (Model Context Protocol) server that transforms how software is built. It provides a complete, deterministic pipeline from any input -- meeting transcripts, documents, designs, or user prompts -- through specifications, architecture, infrastructure as code, implementation, and deployment.
|
|
6
18
|
|
|
7
|
-
|
|
8
|
-

|
|
9
|
-

|
|
10
|
-

|
|
11
|
-

|
|
19
|
+
Unlike template-based tools, Specky enforces every step programmatically: a state machine blocks phase-skipping, an EARS validator ensures testable requirements, cross-artifact analysis catches drift, and compliance engines validate against frameworks like HIPAA and SOC2.
|
|
12
20
|
|
|
13
|
-
**
|
|
21
|
+
**Specky works inside the tools you already use** -- VS Code with GitHub Copilot, Claude Code, Cursor, Windsurf, or any AI agent that supports MCP.
|
|
14
22
|
|
|
15
23
|
---
|
|
16
24
|
|
|
17
|
-
##
|
|
25
|
+
## Why Specky?
|
|
18
26
|
|
|
19
|
-
|
|
27
|
+
### The Problem
|
|
20
28
|
|
|
21
|
-
|
|
22
|
-
You ──→ AI Assistant ──→ Specky (17 tools) ──→ .specs/ files on disk
|
|
23
|
-
(Copilot/Claude) CONSTITUTION.md
|
|
24
|
-
SPECIFICATION.md
|
|
25
|
-
DESIGN.md
|
|
26
|
-
TASKS.md
|
|
27
|
-
ANALYSIS.md
|
|
28
|
-
```
|
|
29
|
+
AI coding assistants are fast but chaotic. They skip requirements, ignore architecture, and produce code that drifts from the original intent. Template-based approaches help but rely on the AI to follow instructions -- with no programmatic enforcement.
|
|
29
30
|
|
|
30
|
-
###
|
|
31
|
+
### The Solution
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
Specky adds a **deterministic engine** between your intent and your code:
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
- **State Machine** -- 10 mandatory phases, no skipping. Init, Discover, Specify, Clarify, Design, Tasks, Analyze, Implement, Verify, Release.
|
|
36
|
+
- **EARS Validator** -- Every requirement validated against 6 patterns (Ubiquitous, Event-driven, State-driven, Optional, Unwanted, Complex). No vague statements pass.
|
|
37
|
+
- **Cross-Artifact Analysis** -- Automatic alignment checking between spec, design, and tasks. Orphaned requirements are flagged instantly.
|
|
38
|
+
- **MCP-to-MCP Architecture** -- Specky outputs structured JSON that your AI client routes to GitHub, Azure DevOps, Jira, Terraform, Figma, and Docker MCP servers. No vendor lock-in.
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
- **EARS notation** validation with 6 pattern types and improvement suggestions
|
|
38
|
-
- **7-phase pipeline** with state machine enforcement
|
|
39
|
-
- **Meeting transcript → full spec** — VTT, SRT, TXT, MD formats
|
|
40
|
-
- **Power Automate + OneDrive** integration for automated workflows
|
|
41
|
-
- **Quality gates** with traceability matrix and coverage analysis
|
|
42
|
-
- **Atomic file writes** — safe, no corruption on crash
|
|
43
|
-
- **Auto-steering** — scans your codebase to tailor discovery questions
|
|
44
|
-
- **Zero external dependencies** — runs entirely local, no API calls
|
|
45
|
-
- **GitHub Copilot agents** + **Claude Code commands** included
|
|
40
|
+
### Differentiators
|
|
46
41
|
|
|
47
|
-
|
|
42
|
+
<p align="center">
|
|
43
|
+
<img src="media/comparison-matrix.svg" alt="Specky vs Spec-Kit vs Kiro vs Cursor" width="100%"/>
|
|
44
|
+
</p>
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
| **Interactive** | Conversation with AI, step by step | New projects, learning SDD |
|
|
52
|
-
| **Transcript** | Feed a meeting recording, get full spec | Existing meetings, automation |
|
|
46
|
+
<details>
|
|
47
|
+
<summary>View as table</summary>
|
|
53
48
|
|
|
54
|
-
|
|
49
|
+
| Capability | Spec-Kit | Kiro | Cursor | **Specky** |
|
|
50
|
+
|---|---|---|---|---|
|
|
51
|
+
| Any input (PDF/DOCX/PPTX/transcript) to spec | No | No | No | **Yes** |
|
|
52
|
+
| EARS validation (programmatic) | No | AI-tries | No | **Yes** |
|
|
53
|
+
| State machine (10 phases) | No | No | No | **Yes** |
|
|
54
|
+
| Auto-diagrams every phase (Mermaid) | No | No | No | **Yes** |
|
|
55
|
+
| Terraform IaC generation | No | No | No | **Yes** |
|
|
56
|
+
| Azure Boards + Jira + GitHub Issues (MCP) | Extension | No | No | **Yes** |
|
|
57
|
+
| Figma design to spec (reverse) | No | No | No | **Yes** |
|
|
58
|
+
| FigJam diagram generation | No | No | No | **Yes** |
|
|
59
|
+
| Docker dev environment | No | No | No | **Yes** |
|
|
60
|
+
| Codespaces setup | No | No | No | **Yes** |
|
|
61
|
+
| Cross-artifact analysis | Yes | No | No | **Yes** |
|
|
62
|
+
| Compliance (HIPAA/SOC2/GDPR) | No | No | No | **Yes** |
|
|
63
|
+
| Phantom task detection | Extension | No | No | **Yes** |
|
|
64
|
+
| Complete auto-documentation | No | No | No | **Yes** |
|
|
65
|
+
| Educative outputs | No | No | No | **Yes** |
|
|
66
|
+
| 42 MCP tools | N/A | N/A | N/A | **Yes** |
|
|
67
|
+
| Works in ANY IDE via MCP | Templates | IDE-locked | IDE-locked | **Yes** |
|
|
55
68
|
|
|
56
|
-
|
|
69
|
+
</details>
|
|
57
70
|
|
|
58
|
-
|
|
71
|
+
---
|
|
59
72
|
|
|
60
|
-
|
|
61
|
-
npx specky
|
|
62
|
-
```
|
|
73
|
+
## Quick Start
|
|
63
74
|
|
|
64
|
-
###
|
|
75
|
+
### Install
|
|
65
76
|
|
|
66
77
|
```bash
|
|
67
|
-
npm
|
|
68
|
-
specky
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Docker
|
|
78
|
+
# npm (recommended)
|
|
79
|
+
npx specky-sdd
|
|
72
80
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
# Server starts on http://localhost:3200
|
|
81
|
+
# Or install globally
|
|
82
|
+
npm install -g specky-sdd
|
|
76
83
|
```
|
|
77
84
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
## Setup
|
|
85
|
+
### Configure in VS Code (GitHub Copilot)
|
|
81
86
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Create or update `.vscode/mcp.json`:
|
|
87
|
+
Create `.vscode/mcp.json` in your project:
|
|
85
88
|
|
|
86
89
|
```json
|
|
87
90
|
{
|
|
88
91
|
"servers": {
|
|
89
92
|
"specky": {
|
|
90
93
|
"command": "npx",
|
|
91
|
-
"args": ["-y", "specky"],
|
|
94
|
+
"args": ["-y", "specky-sdd"],
|
|
92
95
|
"env": {
|
|
93
96
|
"SDD_WORKSPACE": "${workspaceFolder}"
|
|
94
97
|
}
|
|
@@ -97,21 +100,22 @@ Create or update `.vscode/mcp.json`:
|
|
|
97
100
|
}
|
|
98
101
|
```
|
|
99
102
|
|
|
100
|
-
|
|
103
|
+
Open Copilot Chat -- Specky's 42 tools are now available.
|
|
104
|
+
|
|
105
|
+
### Configure in Claude Code
|
|
101
106
|
|
|
102
107
|
```bash
|
|
103
|
-
|
|
104
|
-
claude mcp add specky npx -y specky --env SDD_WORKSPACE=$(pwd)
|
|
108
|
+
claude mcp add specky -- npx -y specky-sdd
|
|
105
109
|
```
|
|
106
110
|
|
|
107
|
-
Or
|
|
111
|
+
Or add to your MCP settings manually:
|
|
108
112
|
|
|
109
113
|
```json
|
|
110
114
|
{
|
|
111
115
|
"mcpServers": {
|
|
112
116
|
"specky": {
|
|
113
117
|
"command": "npx",
|
|
114
|
-
"args": ["-y", "specky"],
|
|
118
|
+
"args": ["-y", "specky-sdd"],
|
|
115
119
|
"env": {
|
|
116
120
|
"SDD_WORKSPACE": "/path/to/your/project"
|
|
117
121
|
}
|
|
@@ -120,7 +124,7 @@ Or manually add to MCP settings:
|
|
|
120
124
|
}
|
|
121
125
|
```
|
|
122
126
|
|
|
123
|
-
### Claude Desktop
|
|
127
|
+
### Configure in Claude Desktop
|
|
124
128
|
|
|
125
129
|
Add to `claude_desktop_config.json`:
|
|
126
130
|
|
|
@@ -135,7 +139,7 @@ Add to `claude_desktop_config.json`:
|
|
|
135
139
|
"mcpServers": {
|
|
136
140
|
"specky": {
|
|
137
141
|
"command": "npx",
|
|
138
|
-
"args": ["-y", "specky"],
|
|
142
|
+
"args": ["-y", "specky-sdd"],
|
|
139
143
|
"env": {
|
|
140
144
|
"SDD_WORKSPACE": "/path/to/your/project"
|
|
141
145
|
}
|
|
@@ -144,272 +148,245 @@ Add to `claude_desktop_config.json`:
|
|
|
144
148
|
}
|
|
145
149
|
```
|
|
146
150
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
## Meeting Transcript to Specs (Auto Pipeline)
|
|
150
|
-
|
|
151
|
-
**One command. Full specification from a Teams/Zoom meeting.**
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
/sdd:transcript meeting.vtt my-project
|
|
155
|
-
```
|
|
151
|
+
### Configure in Cursor
|
|
156
152
|
|
|
157
|
-
|
|
153
|
+
Add to Cursor's MCP settings (Settings > MCP Servers):
|
|
158
154
|
|
|
159
155
|
```json
|
|
160
156
|
{
|
|
161
|
-
"
|
|
162
|
-
|
|
163
|
-
"
|
|
164
|
-
"project_name": "my-project"
|
|
157
|
+
"specky": {
|
|
158
|
+
"command": "npx",
|
|
159
|
+
"args": ["-y", "specky-sdd"]
|
|
165
160
|
}
|
|
166
161
|
}
|
|
167
162
|
```
|
|
168
163
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
1. Parses the VTT/SRT/TXT/MD transcript
|
|
172
|
-
2. Extracts participants, topics, decisions, action items
|
|
173
|
-
3. Generates EARS requirements from meeting content
|
|
174
|
-
4. Creates all 6 spec files in one call:
|
|
175
|
-
|
|
176
|
-
| File | Content |
|
|
177
|
-
|------|---------|
|
|
178
|
-
| `CONSTITUTION.md` | Project charter with principles from the meeting |
|
|
179
|
-
| `SPECIFICATION.md` | EARS requirements extracted from decisions and discussions |
|
|
180
|
-
| `DESIGN.md` | Architecture overview based on topics discussed |
|
|
181
|
-
| `TASKS.md` | Implementation tasks from requirements + action items |
|
|
182
|
-
| `ANALYSIS.md` | Traceability matrix and quality gate |
|
|
183
|
-
| `TRANSCRIPT.md` | Clean markdown version of the meeting |
|
|
184
|
-
|
|
185
|
-
**Supported formats:**
|
|
186
|
-
|
|
187
|
-
| Format | Source | Extension |
|
|
188
|
-
|--------|--------|-----------|
|
|
189
|
-
| WebVTT | Microsoft Teams | `.vtt` |
|
|
190
|
-
| SubRip | Zoom | `.srt` |
|
|
191
|
-
| Plain text | Otter.ai, manual notes | `.txt` |
|
|
192
|
-
| Markdown | Any structured notes | `.md` |
|
|
193
|
-
|
|
194
|
-
### Power Automate + OneDrive Integration
|
|
195
|
-
|
|
196
|
-
For fully automated meeting-to-spec workflows:
|
|
164
|
+
### Docker
|
|
197
165
|
|
|
198
|
-
```
|
|
199
|
-
|
|
166
|
+
```bash
|
|
167
|
+
docker run -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
|
|
200
168
|
```
|
|
201
169
|
|
|
202
|
-
|
|
203
|
-
1. Trigger: "When a Teams meeting recording is available"
|
|
204
|
-
2. Action: Get the meeting transcript
|
|
205
|
-
3. Action: Convert to Markdown
|
|
206
|
-
4. Action: Save to `OneDrive/Transcripts/{meeting-title}.md`
|
|
207
|
-
|
|
208
|
-
**Specky picks up from there:**
|
|
209
|
-
|
|
210
|
-
```json
|
|
211
|
-
{
|
|
212
|
-
"name": "sdd_batch_transcripts",
|
|
213
|
-
"arguments": {
|
|
214
|
-
"transcripts_dir": "~/OneDrive/Transcripts"
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
```
|
|
170
|
+
---
|
|
218
171
|
|
|
219
|
-
|
|
172
|
+
## The 10-Phase Pipeline
|
|
220
173
|
|
|
221
|
-
|
|
174
|
+
<p align="center">
|
|
175
|
+
<img src="media/pipeline-10-phases.svg" alt="Specky 10-Phase Pipeline" width="100%"/>
|
|
176
|
+
</p>
|
|
222
177
|
|
|
223
|
-
|
|
178
|
+
Each phase is **mandatory**. The state machine blocks advancement until prerequisites are met.
|
|
224
179
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
180
|
+
| Phase | What Happens | Required Output |
|
|
181
|
+
|-------|-------------|----------------|
|
|
182
|
+
| **Init** | Create project structure, constitution, scan codebase | CONSTITUTION.md |
|
|
183
|
+
| **Discover** | Interactive discovery: 7 structured questions about scope, users, constraints | Discovery answers |
|
|
184
|
+
| **Specify** | Write EARS requirements with acceptance criteria | SPECIFICATION.md |
|
|
185
|
+
| **Clarify** | Resolve ambiguities, generate decision tree | Updated SPECIFICATION.md |
|
|
186
|
+
| **Design** | Architecture, data model, API contracts, research unknowns | DESIGN.md, RESEARCH.md |
|
|
187
|
+
| **Tasks** | Implementation breakdown by user story, dependency graph | TASKS.md |
|
|
188
|
+
| **Analyze** | Cross-artifact analysis, quality checklist, compliance check | ANALYSIS.md, CHECKLIST.md, CROSS_ANALYSIS.md |
|
|
189
|
+
| **Implement** | Ordered execution with checkpoints per user story | Implementation progress |
|
|
190
|
+
| **Verify** | Drift detection, phantom task detection | VERIFICATION.md |
|
|
191
|
+
| **Release** | PR generation, work item export, documentation | Complete package |
|
|
228
192
|
|
|
229
|
-
|
|
193
|
+
---
|
|
230
194
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
|
236
|
-
|
|
237
|
-
|
|
|
238
|
-
|
|
|
239
|
-
|
|
|
195
|
+
## All 42 Tools
|
|
196
|
+
|
|
197
|
+
### Input and Conversion (5)
|
|
198
|
+
|
|
199
|
+
| Tool | Description |
|
|
200
|
+
|------|-------------|
|
|
201
|
+
| `sdd_import_document` | Convert PDF, DOCX, PPTX, TXT, MD to Markdown |
|
|
202
|
+
| `sdd_import_transcript` | Parse meeting transcripts (Teams, Zoom, Google Meet) |
|
|
203
|
+
| `sdd_auto_pipeline` | Any input to complete spec pipeline (all documents) |
|
|
204
|
+
| `sdd_batch_import` | Process folder of mixed documents |
|
|
205
|
+
| `sdd_figma_to_spec` | Figma design to requirements specification |
|
|
206
|
+
|
|
207
|
+
### Pipeline Core (8)
|
|
208
|
+
|
|
209
|
+
| Tool | Description |
|
|
210
|
+
|------|-------------|
|
|
211
|
+
| `sdd_init` | Initialize project with constitution and scope diagram |
|
|
212
|
+
| `sdd_discover` | Interactive discovery with stakeholder mapping |
|
|
213
|
+
| `sdd_write_spec` | Write EARS requirements with flow diagrams |
|
|
214
|
+
| `sdd_clarify` | Resolve ambiguities with decision tree |
|
|
215
|
+
| `sdd_write_design` | Architecture with sequence diagrams, ERD, API flow |
|
|
216
|
+
| `sdd_write_tasks` | Task breakdown with dependency graph |
|
|
217
|
+
| `sdd_run_analysis` | Quality gate analysis with coverage heatmap |
|
|
218
|
+
| `sdd_advance_phase` | Move to next pipeline phase |
|
|
219
|
+
|
|
220
|
+
### Quality and Validation (5)
|
|
221
|
+
|
|
222
|
+
| Tool | Description |
|
|
223
|
+
|------|-------------|
|
|
224
|
+
| `sdd_checklist` | Mandatory quality checklist (security, accessibility, etc.) |
|
|
225
|
+
| `sdd_verify_tasks` | Detect phantom completions |
|
|
226
|
+
| `sdd_compliance_check` | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 validation |
|
|
227
|
+
| `sdd_cross_analyze` | Spec-design-tasks alignment with consistency score |
|
|
228
|
+
| `sdd_validate_ears` | Batch EARS requirement validation |
|
|
229
|
+
|
|
230
|
+
### Diagrams and Visualization (4)
|
|
231
|
+
|
|
232
|
+
| Tool | Description |
|
|
233
|
+
|------|-------------|
|
|
234
|
+
| `sdd_generate_diagram` | Single Mermaid diagram (10 types) |
|
|
235
|
+
| `sdd_generate_all_diagrams` | All diagrams for a feature at once |
|
|
236
|
+
| `sdd_generate_user_stories` | User stories with flow diagrams |
|
|
237
|
+
| `sdd_figma_diagram` | FigJam-ready diagram via Figma MCP |
|
|
238
|
+
|
|
239
|
+
### Infrastructure as Code (3)
|
|
240
|
+
|
|
241
|
+
| Tool | Description |
|
|
242
|
+
|------|-------------|
|
|
243
|
+
| `sdd_generate_iac` | Terraform/Bicep from architecture design |
|
|
244
|
+
| `sdd_validate_iac` | Validation via Terraform MCP + Azure MCP |
|
|
245
|
+
| `sdd_generate_dockerfile` | Dockerfile + docker-compose from tech stack |
|
|
246
|
+
|
|
247
|
+
### Dev Environment (3)
|
|
248
|
+
|
|
249
|
+
| Tool | Description |
|
|
250
|
+
|------|-------------|
|
|
251
|
+
| `sdd_setup_local_env` | Docker-based local dev environment |
|
|
252
|
+
| `sdd_setup_codespaces` | GitHub Codespaces configuration |
|
|
253
|
+
| `sdd_generate_devcontainer` | .devcontainer/devcontainer.json generation |
|
|
254
|
+
|
|
255
|
+
### Integration and Export (5)
|
|
256
|
+
|
|
257
|
+
| Tool | Description |
|
|
258
|
+
|------|-------------|
|
|
259
|
+
| `sdd_create_branch` | Git branch naming convention |
|
|
260
|
+
| `sdd_export_work_items` | Tasks to GitHub Issues, Azure Boards, or Jira |
|
|
261
|
+
| `sdd_create_pr` | PR payload with spec summary |
|
|
262
|
+
| `sdd_implement` | Ordered implementation plan with checkpoints |
|
|
263
|
+
| `sdd_research` | Resolve unknowns in RESEARCH.md |
|
|
264
|
+
|
|
265
|
+
### Documentation (4)
|
|
266
|
+
|
|
267
|
+
| Tool | Description |
|
|
268
|
+
|------|-------------|
|
|
269
|
+
| `sdd_generate_docs` | Complete auto-documentation |
|
|
270
|
+
| `sdd_generate_api_docs` | API documentation from design |
|
|
271
|
+
| `sdd_generate_runbook` | Operational runbook |
|
|
272
|
+
| `sdd_generate_onboarding` | Developer onboarding guide |
|
|
273
|
+
|
|
274
|
+
### Utility (5)
|
|
275
|
+
|
|
276
|
+
| Tool | Description |
|
|
277
|
+
|------|-------------|
|
|
278
|
+
| `sdd_get_status` | Pipeline status with guided next action |
|
|
279
|
+
| `sdd_get_template` | Get any template |
|
|
280
|
+
| `sdd_scan_codebase` | Detect tech stack and structure |
|
|
281
|
+
| `sdd_metrics` | Project metrics dashboard |
|
|
282
|
+
| `sdd_amend` | Amend project constitution |
|
|
240
283
|
|
|
241
284
|
---
|
|
242
285
|
|
|
243
|
-
##
|
|
286
|
+
## MCP Integration Architecture
|
|
244
287
|
|
|
245
|
-
|
|
288
|
+
<p align="center">
|
|
289
|
+
<img src="media/architecture-mcp-ecosystem.svg" alt="Specky MCP Ecosystem Architecture" width="100%"/>
|
|
290
|
+
</p>
|
|
246
291
|
|
|
247
|
-
|
|
248
|
-
|------|-------------|-----|
|
|
249
|
-
| `sdd_init` | Creates `.specs/` directory, writes CONSTITUTION.md, initializes state machine | Write |
|
|
250
|
-
| `sdd_discover` | Returns 7 tailored discovery questions based on your project idea | Read |
|
|
251
|
-
| `sdd_write_spec` | Validates EARS notation and writes SPECIFICATION.md | Write |
|
|
252
|
-
| `sdd_clarify` | Identifies ambiguous requirements, returns disambiguation questions | Read |
|
|
253
|
-
| `sdd_write_design` | Writes DESIGN.md with Mermaid diagrams, ADRs, and API contracts | Write |
|
|
254
|
-
| `sdd_write_tasks` | Writes TASKS.md with gates, parallel markers, and traceability | Write |
|
|
255
|
-
| `sdd_run_analysis` | Generates traceability matrix, returns APPROVE/CHANGES_NEEDED/BLOCK | Write |
|
|
256
|
-
| `sdd_advance_phase` | Validates prerequisites and advances the state machine | Write |
|
|
292
|
+
Specky outputs structured JSON with routing instructions. Your AI client calls the appropriate external MCP server:
|
|
257
293
|
|
|
258
|
-
|
|
294
|
+
```
|
|
295
|
+
Specky --> sdd_export_work_items(platform: "azure_boards") --> JSON payload
|
|
296
|
+
--> AI Client --> Azure DevOps MCP --> create_work_item()
|
|
259
297
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
| `sdd_scan_codebase` | Scans project structure, detects tech stack for auto-steering | Read |
|
|
267
|
-
| `sdd_amend` | Appends amendment to CONSTITUTION.md changelog | Write |
|
|
298
|
+
Specky --> sdd_validate_iac(provider: "terraform") --> validation payload
|
|
299
|
+
--> AI Client --> Terraform MCP --> plan/validate
|
|
300
|
+
|
|
301
|
+
Specky --> sdd_figma_to_spec(file_key: "abc123") --> Figma request
|
|
302
|
+
--> AI Client --> Figma MCP --> get_design_context()
|
|
303
|
+
```
|
|
268
304
|
|
|
269
|
-
###
|
|
305
|
+
### Supported External MCP Servers
|
|
270
306
|
|
|
271
|
-
|
|
|
272
|
-
|
|
273
|
-
|
|
|
274
|
-
|
|
|
275
|
-
|
|
|
307
|
+
| MCP Server | Integration |
|
|
308
|
+
|-----------|-------------|
|
|
309
|
+
| **GitHub MCP** | Issues, PRs, Codespaces |
|
|
310
|
+
| **Azure DevOps MCP** | Work Items, Boards |
|
|
311
|
+
| **Jira MCP** | Issues, Projects |
|
|
312
|
+
| **Terraform MCP** | Plan, Validate, Apply |
|
|
313
|
+
| **Azure MCP** | Template validation |
|
|
314
|
+
| **Figma MCP** | Design context, FigJam diagrams |
|
|
315
|
+
| **Docker MCP** | Local dev environments |
|
|
276
316
|
|
|
277
317
|
---
|
|
278
318
|
|
|
279
319
|
## EARS Notation
|
|
280
320
|
|
|
281
|
-
Specky
|
|
321
|
+
Every requirement in Specky follows EARS (Easy Approach to Requirements Syntax):
|
|
282
322
|
|
|
283
|
-
| Pattern |
|
|
323
|
+
| Pattern | Format | Example |
|
|
284
324
|
|---------|--------|---------|
|
|
285
|
-
| Ubiquitous | The system shall
|
|
286
|
-
| Event-driven | When
|
|
287
|
-
| State-driven | While
|
|
288
|
-
| Optional | Where
|
|
289
|
-
| Unwanted | If
|
|
290
|
-
| Complex |
|
|
325
|
+
| Ubiquitous | The system shall... | The system shall encrypt all data at rest |
|
|
326
|
+
| Event-driven | When [event], the system shall... | When a user submits login, the system shall validate credentials |
|
|
327
|
+
| State-driven | While [state], the system shall... | While offline, the system shall queue requests |
|
|
328
|
+
| Optional | Where [condition], the system shall... | Where 2FA is enabled, the system shall require OTP |
|
|
329
|
+
| Unwanted | If [condition], then the system shall... | If session expires, the system shall redirect to login |
|
|
330
|
+
| Complex | While [state], when [event]... | While in maintenance, when request arrives, queue it |
|
|
291
331
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
## GitHub Copilot Agents
|
|
295
|
-
|
|
296
|
-
Specky ships with 4 GitHub Copilot custom agents in `.github/agents/`:
|
|
297
|
-
|
|
298
|
-
| Agent | Role | Tools |
|
|
299
|
-
|-------|------|-------|
|
|
300
|
-
| `@spec-engineer` | Full pipeline orchestrator | All 17 tools |
|
|
301
|
-
| `@design-architect` | Architecture and design | 7 design tools |
|
|
302
|
-
| `@task-planner` | Task decomposition | 5 task tools |
|
|
303
|
-
| `@spec-reviewer` | Quality audit and analysis | 7 analysis tools |
|
|
332
|
+
The EARS validator programmatically checks every requirement against these 6 patterns. Vague terms like "fast", "good", "easy" are flagged automatically.
|
|
304
333
|
|
|
305
334
|
---
|
|
306
335
|
|
|
307
|
-
##
|
|
308
|
-
|
|
309
|
-
| Command | Purpose |
|
|
310
|
-
|---------|---------|
|
|
311
|
-
| `/sdd:spec` | Start specification workflow |
|
|
312
|
-
| `/sdd:design` | Create architecture design |
|
|
313
|
-
| `/sdd:tasks` | Break down into implementation tasks |
|
|
314
|
-
| `/sdd:analyze` | Run quality gate analysis |
|
|
315
|
-
| `/sdd:bugfix` | Create bugfix specification |
|
|
316
|
-
| `/sdd:transcript` | Convert meeting transcript to full spec (VTT/SRT/TXT/MD) |
|
|
317
|
-
| `/sdd:onedrive` | Batch process all transcripts from OneDrive folder |
|
|
336
|
+
## Compliance Frameworks
|
|
318
337
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
## Environment Variables
|
|
338
|
+
Built-in compliance checking against:
|
|
322
339
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
340
|
+
- **HIPAA** -- Access control, audit, encryption, PHI protection
|
|
341
|
+
- **SOC 2** -- Logical access, monitoring, change management, incident response
|
|
342
|
+
- **GDPR** -- Lawful processing, right to erasure, data portability, breach notification
|
|
343
|
+
- **PCI-DSS** -- Firewall, stored data protection, encryption, user identification
|
|
344
|
+
- **ISO 27001** -- Security policies, access control, cryptography, incident management
|
|
327
345
|
|
|
328
346
|
---
|
|
329
347
|
|
|
330
|
-
##
|
|
348
|
+
## Educative Outputs
|
|
331
349
|
|
|
332
|
-
|
|
350
|
+
Every tool response includes structured guidance:
|
|
333
351
|
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"explanation": "What was done and why",
|
|
355
|
+
"next_steps": "Guided next action with command suggestion",
|
|
356
|
+
"learning_note": "Educational context about the concept",
|
|
357
|
+
"diagram": "Mermaid diagram relevant to the output"
|
|
358
|
+
}
|
|
340
359
|
```
|
|
341
360
|
|
|
342
|
-
The server listens on `http://localhost:3200/mcp` for Streamable HTTP transport.
|
|
343
|
-
|
|
344
361
|
---
|
|
345
362
|
|
|
346
|
-
##
|
|
347
|
-
|
|
348
|
-
```
|
|
349
|
-
.specs/
|
|
350
|
-
001-your-feature/
|
|
351
|
-
CONSTITUTION.md # Project charter, principles, constraints
|
|
352
|
-
SPECIFICATION.md # EARS requirements with acceptance criteria
|
|
353
|
-
DESIGN.md # Architecture, Mermaid diagrams, ADRs
|
|
354
|
-
TASKS.md # Implementation tasks with gates
|
|
355
|
-
ANALYSIS.md # Traceability matrix, quality gate
|
|
356
|
-
.sdd-state.json # Pipeline state (phase, timestamps)
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
---
|
|
363
|
+
## End-to-End Flow
|
|
360
364
|
|
|
361
|
-
|
|
365
|
+
<p align="center">
|
|
366
|
+
<img src="media/end-to-end-flow.svg" alt="Specky End-to-End Development Flow" width="100%"/>
|
|
367
|
+
</p>
|
|
362
368
|
|
|
363
|
-
|
|
364
|
-
|---------|--------|-------------|------|-------------|
|
|
365
|
-
| MCP native | Yes | No | Yes | No |
|
|
366
|
-
| EARS notation | Yes | Manual | No | No |
|
|
367
|
-
| State machine | Yes | No | Yes | No |
|
|
368
|
-
| File generation | Yes | Manual | Yes | Manual |
|
|
369
|
-
| Quality gates | Yes | Manual | Yes | No |
|
|
370
|
-
| Open source | MIT | N/A | Proprietary | Varies |
|
|
371
|
-
| GitHub Copilot agents | Yes | No | No | No |
|
|
372
|
-
| Claude Code commands | Yes | No | No | No |
|
|
369
|
+
From any input to production — fully automated, MCP-orchestrated, with artifacts and diagrams generated at every step.
|
|
373
370
|
|
|
374
371
|
---
|
|
375
372
|
|
|
376
|
-
##
|
|
373
|
+
## Project Structure
|
|
377
374
|
|
|
378
375
|
```
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
│ │ EarsValidator │ CodebaseScanner│ TranscriptParser │ │
|
|
392
|
-
│ └────────────────────┴────────────────┴─────────────────┘ │
|
|
393
|
-
│ │ │
|
|
394
|
-
│ ┌─── 7 Templates ──────────────────────────────────────┐ │
|
|
395
|
-
│ │ constitution │ specification │ design │ tasks │ │
|
|
396
|
-
│ │ analysis │ bugfix │ sync-report │ │
|
|
397
|
-
│ └───────────────┴───────────────┴───────────────────────┘ │
|
|
398
|
-
└─────────────────────────────────────────────────────────────┘
|
|
376
|
+
.specs/
|
|
377
|
+
001-feature-name/
|
|
378
|
+
CONSTITUTION.md -- Project principles and governance
|
|
379
|
+
SPECIFICATION.md -- EARS requirements with acceptance criteria
|
|
380
|
+
DESIGN.md -- Architecture, data model, API contracts
|
|
381
|
+
RESEARCH.md -- Resolved unknowns and decisions
|
|
382
|
+
TASKS.md -- Implementation breakdown
|
|
383
|
+
ANALYSIS.md -- Quality gate report
|
|
384
|
+
CHECKLIST.md -- Mandatory quality checklist
|
|
385
|
+
CROSS_ANALYSIS.md -- Spec-design-tasks alignment
|
|
386
|
+
COMPLIANCE.md -- Compliance framework report
|
|
387
|
+
VERIFICATION.md -- Phantom detection results
|
|
399
388
|
```
|
|
400
389
|
|
|
401
|
-
**Key design principle:** Tools are thin (validate input, call service, format output). Services are fat (all business logic). FileManager owns all disk I/O.
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
## Documentation
|
|
406
|
-
|
|
407
|
-
| Document | Purpose |
|
|
408
|
-
|----------|---------|
|
|
409
|
-
| [GETTING-STARTED.md](GETTING-STARTED.md) | Step-by-step tutorial from zero to first spec |
|
|
410
|
-
| [CONTRIBUTING.md](CONTRIBUTING.md) | How to add tools, templates, and services |
|
|
411
|
-
| [PUBLISH.md](PUBLISH.md) | How to publish to GitHub, npm, and Docker |
|
|
412
|
-
|
|
413
390
|
---
|
|
414
391
|
|
|
415
392
|
## Development
|
|
@@ -428,19 +405,16 @@ npm run dev
|
|
|
428
405
|
|
|
429
406
|
# Verify MCP handshake
|
|
430
407
|
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
|
|
431
|
-
|
|
432
|
-
# Clean build artifacts
|
|
433
|
-
npm run clean
|
|
434
408
|
```
|
|
435
409
|
|
|
436
410
|
---
|
|
437
411
|
|
|
438
|
-
##
|
|
412
|
+
## Contributing
|
|
439
413
|
|
|
440
|
-
|
|
414
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details and how to add tools, templates, or services.
|
|
441
415
|
|
|
442
416
|
---
|
|
443
417
|
|
|
444
|
-
|
|
418
|
+
## License
|
|
445
419
|
|
|
446
|
-
|
|
420
|
+
MIT -- Created by [Paula Silva](https://github.com/paulasilvatech) | Americas Software GBB, Microsoft
|