specky-sdd 3.2.0 → 3.2.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.
- package/CHANGELOG.md +44 -0
- package/README.md +126 -111
- package/SECURITY.md +4 -4
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/templates/analysis.md +55 -0
- package/dist/templates/templates/api-docs.md +40 -0
- package/dist/templates/templates/bugfix.md +46 -0
- package/dist/templates/templates/checklist.md +29 -0
- package/dist/templates/templates/compliance.md +28 -0
- package/dist/templates/templates/constitution.md +57 -0
- package/dist/templates/templates/cross-analysis.md +46 -0
- package/dist/templates/templates/data-model.md +35 -0
- package/dist/templates/templates/design.md +104 -0
- package/dist/templates/templates/devcontainer.md +36 -0
- package/dist/templates/templates/dockerfile.md +34 -0
- package/dist/templates/templates/journey.md +73 -0
- package/dist/templates/templates/onboarding.md +49 -0
- package/dist/templates/templates/research.md +39 -0
- package/dist/templates/templates/runbook.md +40 -0
- package/dist/templates/templates/specification.md +50 -0
- package/dist/templates/templates/sync-report.md +44 -0
- package/dist/templates/templates/tasks.md +39 -0
- package/dist/templates/templates/terraform.md +38 -0
- package/dist/templates/templates/test-stub.md +34 -0
- package/dist/templates/templates/user-stories.md +39 -0
- package/dist/templates/templates/verification.md +33 -0
- package/dist/templates/templates/work-items.md +27 -0
- package/package.json +1 -1
- package/media/specky-icon-128.png +0 -0
- package/media/specky-icon-256.png +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,50 @@ All notable changes to Specky are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.2.2] - 2026-04-13
|
|
9
|
+
|
|
10
|
+
### Documentation (npm republish)
|
|
11
|
+
|
|
12
|
+
- **Plugin-first Quick Start**: README now leads with plugin installation (`copilot plugin install`), MCP-only as alternative
|
|
13
|
+
- **`mcpServers` key**: All JSON config examples updated from `servers` to `mcpServers`
|
|
14
|
+
- **Stale counts fixed**: Tool count (53/55/56 → 57), hook count (7 → 10), agent count (5 → 7), skill count (6) across README, SECURITY, CONTRIBUTING
|
|
15
|
+
- **SDD Platform table**: Updated to 57 tools, plugin install command
|
|
16
|
+
- **GETTING-STARTED.md**: Full English rewrite with plugin-first installation, use cases, model routing, hooks, FAQ
|
|
17
|
+
- **CONTRIBUTING.md**: Added Plugin Structure section; version reference updated to v3.2.x
|
|
18
|
+
- **No runtime changes** — MCP server code is identical to v3.2.1
|
|
19
|
+
|
|
20
|
+
## [3.2.1] - 2026-04-13
|
|
21
|
+
|
|
22
|
+
### Plugin Marketplace
|
|
23
|
+
|
|
24
|
+
- **`marketplace.json`**: Added `.github/plugin/marketplace.json` — repo is now a valid GitHub Copilot plugin marketplace
|
|
25
|
+
- **`plugin.json`**: Added `plugins/specky-sdd/.github/plugin/plugin.json` in Claude Code spec format (7 agents, 19 commands, 6 skills)
|
|
26
|
+
- **`.mcp.json`**: Plugin ships its own MCP config with `mcpServers` key and `specky-sdd@latest`
|
|
27
|
+
- **`.claude-plugin/`**: Added symlink for Claude Code marketplace compatibility
|
|
28
|
+
- **Plugin README**: Full plugin documentation at `plugins/specky-sdd/README.md` with skills, agents, commands, MCP server, and installation instructions
|
|
29
|
+
- **Plugin install**: Users can now install via `copilot plugin marketplace add paulasilvatech/specky && copilot plugin install specky-sdd@specky`
|
|
30
|
+
- **Flat structure**: Restructured from versioned `specky-sdd-vscode-v1.2.1/.github/plugin/specky/` to flat `plugins/specky-sdd/`
|
|
31
|
+
- **MCP key fix**: All JSON configs now use `mcpServers` key (previously `servers` in some files)
|
|
32
|
+
- **Version sync**: All plugin files aligned to v3.2.1 (`config.yml`, `plugin.json`, `marketplace.json`)
|
|
33
|
+
- **Cleanup**: Removed duplicate directories, empty `.github/agents/`, `.github/prompts/`, `.github/instructions/`, `.github/hooks/`
|
|
34
|
+
|
|
35
|
+
### MCP Server Metadata
|
|
36
|
+
|
|
37
|
+
- **Server title**: MCP panel now shows "Specky" with description instead of raw binary name
|
|
38
|
+
- **Server icon**: SVG + PNG icons served from GitHub raw content, visible in VS Code MCP panel
|
|
39
|
+
- **Website URL**: Links to [specky-site](https://paulasilvatech.github.io/specky-site/) from server metadata
|
|
40
|
+
- **Instructions**: AI clients receive pipeline guidance during MCP handshake
|
|
41
|
+
- **Template path fix**: Templates now resolve from `dist/templates/` (self-contained npm package)
|
|
42
|
+
|
|
43
|
+
### Documentation
|
|
44
|
+
|
|
45
|
+
- **MCP config examples**: Added `"type": "stdio"` to all VS Code, Claude Code, and Claude Desktop config examples
|
|
46
|
+
- **Removed broken env vars**: Removed `SDD_WORKSPACE` / `${workspaceFolder}` that caused startup errors
|
|
47
|
+
- **Tool count**: Updated 56 → 57 across all documentation
|
|
48
|
+
- **EARS patterns**: Fixed 5 → 6 pattern count (includes Complex)
|
|
49
|
+
- **Broken links**: Fixed references to private files (CLAUDE.md, SYSTEM-DESIGN.md, ears-notation.md)
|
|
50
|
+
- **Site fixes**: Updated EARS count and footer links on [specky-site](https://paulasilvatech.github.io/specky-site/)
|
|
51
|
+
|
|
8
52
|
## [3.2.0] - 2026-04-12
|
|
9
53
|
|
|
10
54
|
### Enterprise Security Hardening
|
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
<br>
|
|
3
3
|
<img src="media/specky-brand-logo.svg" alt="Specky" height="80">
|
|
4
4
|
<br><br>
|
|
5
|
-
<p><strong>
|
|
5
|
+
<p><strong>57 MCP tools. 10-phase pipeline. Works in any IDE.</strong></p>
|
|
6
6
|
<p>Agentic Spec-Driven Development</p>
|
|
7
7
|
|
|
8
8
|
<p>
|
|
9
|
-
<img src="https://img.shields.io/badge/tools-
|
|
9
|
+
<img src="https://img.shields.io/badge/tools-57_MCP-7c3aed?style=flat-square" alt="57 Tools"/>
|
|
10
10
|
<img src="https://img.shields.io/badge/phases-10_enforced-6d28d9?style=flat-square" alt="10 Phases"/>
|
|
11
11
|
<img src="https://img.shields.io/badge/diagrams-17_types-5b21b6?style=flat-square" alt="17 Diagrams"/>
|
|
12
12
|
<img src="https://img.shields.io/badge/compliance-6_frameworks-4c1d95?style=flat-square" alt="6 Compliance"/>
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
<p>
|
|
24
24
|
<a href="https://paulasilvatech.github.io/specky-site/">Website</a> ·
|
|
25
25
|
<a href="GETTING-STARTED.md">Getting Started</a> ·
|
|
26
|
+
<a href="plugins/specky-sdd/">Plugin</a> ·
|
|
26
27
|
<a href="https://www.npmjs.com/package/specky-sdd">npm</a> ·
|
|
27
28
|
<a href="SECURITY.md">Security</a>
|
|
28
29
|
</p>
|
|
@@ -36,26 +37,28 @@
|
|
|
36
37
|
| **Start** | [What is Specky?](#what-is-specky) | Overview and ecosystem |
|
|
37
38
|
| | [Why Specifications Matter](#why-specifications-matter-in-the-ai-era) | Vibe coding vs deterministic development |
|
|
38
39
|
| | [Getting Started](GETTING-STARTED.md) | Complete educational guide |
|
|
39
|
-
| **
|
|
40
|
-
| | [
|
|
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 |
|
|
41
44
|
| | [Input Methods](#input-methods-6-ways-to-start) | 6 ways to feed Specky |
|
|
42
45
|
| | [Three Project Types](#three-project-types-one-pipeline) | Greenfield, Brownfield, Modernization |
|
|
43
46
|
| **Pipeline** | [Pipeline and LGTM Gates](#pipeline-and-lgtm-gates) | 10 phases with human review gates |
|
|
44
|
-
| | [All
|
|
47
|
+
| | [All 57 Tools](#all-57-tools) | Complete tool reference by category |
|
|
45
48
|
| | [EARS Notation](#ears-notation) | The 6 requirement patterns |
|
|
46
49
|
| **Enterprise** | [Compliance Frameworks](#compliance-frameworks) | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 |
|
|
47
50
|
| | [Enterprise Ready](#enterprise-ready) | Security, audit trail, quality gates |
|
|
48
51
|
| **Platform** | [The SDD Platform](#the-spec-driven-development-platform) | Built on Spec-Kit, everything included |
|
|
49
|
-
| | [Roadmap](#roadmap) | v3.
|
|
52
|
+
| | [Roadmap](#roadmap) | v3.2 current, v3.3+ planned |
|
|
50
53
|
|
|
51
54
|
|
|
52
55
|
## What is Specky?
|
|
53
56
|
|
|
54
|
-
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
|
+
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.
|
|
55
58
|
|
|
56
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.
|
|
57
60
|
|
|
58
|
-
**Install Specky and you get
|
|
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).
|
|
59
62
|
|
|
60
63
|
|
|
61
64
|
## Why Specifications Matter in the AI Era
|
|
@@ -98,8 +101,8 @@ Specky adds a **deterministic engine** between your intent and your code:
|
|
|
98
101
|
|
|
99
102
|
| Capability | Specky |
|
|
100
103
|
|---|---|
|
|
101
|
-
| Any input (PDF, DOCX, PPTX, transcript, Figma) to spec |
|
|
102
|
-
| EARS validation (programmatic, not AI guessing) |
|
|
104
|
+
| Any input (PDF, DOCX, PPTX, transcript, Figma) to spec | 57 MCP tools handle all input formats |
|
|
105
|
+
| EARS validation (programmatic, not AI guessing) | 6 patterns enforced at schema level |
|
|
103
106
|
| Enforced pipeline (not suggestions) | 10 phases with actual gates that block advancement |
|
|
104
107
|
| 17 diagram types generated automatically | C4 (4 levels), sequence, ER, activity, use case, DFD, deployment, network |
|
|
105
108
|
| Infrastructure as Code | Terraform, Bicep, Dockerfile from DESIGN.md |
|
|
@@ -109,7 +112,7 @@ Specky adds a **deterministic engine** between your intent and your code:
|
|
|
109
112
|
| Phantom task detection | Catches tasks marked done with no code evidence |
|
|
110
113
|
| Property-based testing | fast-check (TypeScript) and Hypothesis (Python) |
|
|
111
114
|
| Checkpoint/restore | Persistent snapshots of all spec artifacts |
|
|
112
|
-
|
|
|
115
|
+
| 10 automation hooks (2 blocking) | Security scan, release gate, spec sync, checkpoint, quality, EARS, task trace, drift, cognitive debt, metrics |
|
|
113
116
|
| Works in any MCP host | VS Code + Copilot, Claude Code, Cursor, Windsurf, or any MCP client |
|
|
114
117
|
| Zero outbound network calls | Fully air-gapped, code never leaves your machine |
|
|
115
118
|
| MIT open source | Fork it, extend it, audit it. No vendor lock, no seat pricing |
|
|
@@ -122,33 +125,75 @@ Specky adds a **deterministic engine** between your intent and your code:
|
|
|
122
125
|
- **Node.js 18+**: [Download here](https://nodejs.org/)
|
|
123
126
|
- **An AI IDE**: VS Code with Copilot, Claude Code, Claude Desktop, Cursor, or Windsurf
|
|
124
127
|
|
|
125
|
-
###
|
|
128
|
+
### Install as Plugin (recommended)
|
|
126
129
|
|
|
127
|
-
|
|
128
|
-
|-------|-------------|----------|
|
|
129
|
-
| **Per workspace** (recommended) | Config file lives inside the repo, shared with the team via Git | Teams, open-source projects |
|
|
130
|
-
| **Global (once)** | Installed on your machine, available in every repo automatically | Personal use, quick setup |
|
|
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
131
|
|
|
132
|
-
|
|
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 | — | ✅ |
|
|
133
143
|
|
|
134
|
-
|
|
135
|
-
<summary><strong>Global (recommended): Install once, use everywhere</strong></summary>
|
|
144
|
+
#### Via Copilot CLI
|
|
136
145
|
|
|
137
|
-
|
|
146
|
+
```bash
|
|
147
|
+
copilot plugin marketplace add paulasilvatech/specky
|
|
148
|
+
copilot plugin install specky-sdd@specky
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
#### Manual Installation
|
|
138
152
|
|
|
139
153
|
```bash
|
|
140
|
-
|
|
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
|
+
|
|
141
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
|
+
```
|
|
174
|
+
|
|
175
|
+
> **Tip:** Commit `.github/plugin/` and `.vscode/` to Git so every team member gets Specky automatically on clone.
|
|
176
|
+
|
|
177
|
+
See the full [plugin documentation](plugins/specky-sdd/README.md) for details.
|
|
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.
|
|
142
182
|
|
|
143
|
-
|
|
183
|
+
<details>
|
|
184
|
+
<summary><strong>Global (npm)</strong></summary>
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npm install -g specky-sdd
|
|
188
|
+
```
|
|
144
189
|
|
|
145
190
|
**VS Code** (`.vscode/mcp.json`):
|
|
146
191
|
```json
|
|
147
192
|
{
|
|
148
|
-
"
|
|
149
|
-
"specky": {
|
|
150
|
-
"
|
|
151
|
-
"
|
|
193
|
+
"mcpServers": {
|
|
194
|
+
"specky-sdd": {
|
|
195
|
+
"type": "stdio",
|
|
196
|
+
"command": "specky-sdd"
|
|
152
197
|
}
|
|
153
198
|
}
|
|
154
199
|
}
|
|
@@ -156,23 +201,15 @@ Then configure your IDE to use the global install:
|
|
|
156
201
|
|
|
157
202
|
**Claude Code**:
|
|
158
203
|
```bash
|
|
159
|
-
claude mcp add specky -- specky-sdd
|
|
204
|
+
claude mcp add specky-sdd -- specky-sdd
|
|
160
205
|
```
|
|
161
206
|
|
|
162
207
|
**Claude Desktop** (`claude_desktop_config.json`):
|
|
163
|
-
|
|
164
|
-
| OS | Config location |
|
|
165
|
-
|----|----------------|
|
|
166
|
-
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
167
|
-
| Linux | `~/.config/Claude/claude_desktop_config.json` |
|
|
168
|
-
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
169
|
-
|
|
170
208
|
```json
|
|
171
209
|
{
|
|
172
210
|
"mcpServers": {
|
|
173
|
-
"specky": {
|
|
174
|
-
"command": "specky-sdd"
|
|
175
|
-
"env": { "SDD_WORKSPACE": "/path/to/your/project" }
|
|
211
|
+
"specky-sdd": {
|
|
212
|
+
"command": "specky-sdd"
|
|
176
213
|
}
|
|
177
214
|
}
|
|
178
215
|
}
|
|
@@ -181,58 +218,37 @@ claude mcp add specky -- specky-sdd
|
|
|
181
218
|
</details>
|
|
182
219
|
|
|
183
220
|
<details>
|
|
184
|
-
<summary><strong>Per Workspace (
|
|
185
|
-
|
|
186
|
-
Add a config file to the repo so teammates get Specky automatically on clone — no global install needed.
|
|
221
|
+
<summary><strong>Per Workspace (npx)</strong></summary>
|
|
187
222
|
|
|
188
223
|
**VS Code** (`.vscode/mcp.json`):
|
|
189
224
|
```json
|
|
190
225
|
{
|
|
191
|
-
"
|
|
192
|
-
"specky": {
|
|
226
|
+
"mcpServers": {
|
|
227
|
+
"specky-sdd": {
|
|
228
|
+
"type": "stdio",
|
|
193
229
|
"command": "npx",
|
|
194
|
-
"args": ["-y", "specky-sdd"]
|
|
195
|
-
"env": { "SDD_WORKSPACE": "${workspaceFolder}" }
|
|
230
|
+
"args": ["-y", "specky-sdd@latest"]
|
|
196
231
|
}
|
|
197
232
|
}
|
|
198
233
|
}
|
|
199
234
|
```
|
|
200
235
|
|
|
201
|
-
**Claude Code**:
|
|
202
|
-
```bash
|
|
203
|
-
claude mcp add specky -- npx -y specky-sdd
|
|
204
|
-
```
|
|
205
|
-
|
|
206
236
|
> Commit `.vscode/mcp.json` to Git so every team member gets Specky automatically.
|
|
207
237
|
|
|
208
238
|
</details>
|
|
209
239
|
|
|
210
240
|
<details>
|
|
211
|
-
<summary><strong>Docker
|
|
212
|
-
|
|
213
|
-
Run Specky as an HTTP server in a container:
|
|
241
|
+
<summary><strong>Docker (HTTP mode, no Node.js required)</strong></summary>
|
|
214
242
|
|
|
215
243
|
```bash
|
|
216
244
|
docker run -d --name specky -p 3200:3200 -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
|
|
217
245
|
```
|
|
218
246
|
|
|
219
|
-
Verify it's running:
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
curl http://localhost:3200/health
|
|
223
|
-
```
|
|
224
|
-
|
|
225
247
|
Point any MCP client that supports HTTP to `http://localhost:3200/mcp`
|
|
226
248
|
|
|
227
|
-
Stop when done:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
docker stop specky && docker rm specky
|
|
231
|
-
```
|
|
232
|
-
|
|
233
249
|
</details>
|
|
234
250
|
|
|
235
|
-
###
|
|
251
|
+
### Verify
|
|
236
252
|
|
|
237
253
|
Open your AI IDE and type:
|
|
238
254
|
|
|
@@ -240,11 +256,11 @@ Open your AI IDE and type:
|
|
|
240
256
|
> What tools does Specky have?
|
|
241
257
|
```
|
|
242
258
|
|
|
243
|
-
The AI should list the
|
|
259
|
+
The AI should list the 57 SDD tools. If you see them, Specky is working.
|
|
244
260
|
|
|
245
261
|
### Try It Now
|
|
246
262
|
|
|
247
|
-
Once connected, type this in your AI chat
|
|
263
|
+
Once connected, type this in your AI chat:
|
|
248
264
|
|
|
249
265
|
```
|
|
250
266
|
> Initialize a Specky project for a todo API and help me define the scope
|
|
@@ -526,7 +542,7 @@ The AI calls:
|
|
|
526
542
|
|
|
527
543
|
The AI calls `sdd_export_work_items` + `sdd_create_pr` → generates work item payloads and PR body with full spec traceability.
|
|
528
544
|
|
|
529
|
-
> **Next:** **Next:** Learn about [EARS notation](#ears-notation) to understand the requirement patterns, or see [All
|
|
545
|
+
> **Next:** **Next:** Learn about [EARS notation](#ears-notation) to understand the requirement patterns, or see [All 57 Tools](#all-57-tools) for a complete reference.
|
|
530
546
|
|
|
531
547
|
|
|
532
548
|
## Brownfield Project: Add Features to Existing Code
|
|
@@ -719,9 +735,9 @@ The AI calls `sdd_advance_phase` → moves the pipeline forward if all prerequis
|
|
|
719
735
|
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.
|
|
720
736
|
|
|
721
737
|
|
|
722
|
-
## All
|
|
738
|
+
## All 57 Tools
|
|
723
739
|
|
|
724
|
-
### Input and Conversion (
|
|
740
|
+
### Input and Conversion (6)
|
|
725
741
|
|
|
726
742
|
| Tool | Description |
|
|
727
743
|
|------|-------------|
|
|
@@ -729,9 +745,10 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
729
745
|
| `sdd_import_transcript` | Parse meeting transcripts (Teams, Zoom, Google Meet) |
|
|
730
746
|
| `sdd_auto_pipeline` | Any input to complete spec pipeline (all documents) |
|
|
731
747
|
| `sdd_batch_import` | Process folder of mixed documents |
|
|
748
|
+
| `sdd_batch_transcripts` | Process folder of meeting transcripts |
|
|
732
749
|
| `sdd_figma_to_spec` | Figma design to requirements specification |
|
|
733
750
|
|
|
734
|
-
### Pipeline Core (
|
|
751
|
+
### Pipeline Core (9)
|
|
735
752
|
|
|
736
753
|
| Tool | Description |
|
|
737
754
|
|------|-------------|
|
|
@@ -741,6 +758,7 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
741
758
|
| `sdd_clarify` | Resolve ambiguities with decision tree |
|
|
742
759
|
| `sdd_write_design` | 12-section system design (C4 model) with sequence diagrams, ERD, API flow |
|
|
743
760
|
| `sdd_write_tasks` | Task breakdown with dependency graph |
|
|
761
|
+
| `sdd_write_bugfix` | Bugfix specification from issue description |
|
|
744
762
|
| `sdd_run_analysis` | Quality gate analysis with coverage heatmap |
|
|
745
763
|
| `sdd_advance_phase` | Move to next pipeline phase |
|
|
746
764
|
|
|
@@ -779,7 +797,7 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
779
797
|
| `sdd_setup_codespaces` | GitHub Codespaces configuration |
|
|
780
798
|
| `sdd_generate_devcontainer` | .devcontainer/devcontainer.json generation |
|
|
781
799
|
|
|
782
|
-
### Integration and Export (
|
|
800
|
+
### Integration and Export (7)
|
|
783
801
|
|
|
784
802
|
| Tool | Description |
|
|
785
803
|
|------|-------------|
|
|
@@ -788,17 +806,20 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
788
806
|
| `sdd_create_pr` | PR payload with spec summary |
|
|
789
807
|
| `sdd_implement` | Ordered implementation plan with checkpoints |
|
|
790
808
|
| `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 |
|
|
791
811
|
|
|
792
|
-
### Documentation (
|
|
812
|
+
### Documentation (5)
|
|
793
813
|
|
|
794
814
|
| Tool | Description |
|
|
795
815
|
|------|-------------|
|
|
796
816
|
| `sdd_generate_docs` | Complete auto-documentation |
|
|
817
|
+
| `sdd_generate_all_docs` | Generate all documentation types in parallel |
|
|
797
818
|
| `sdd_generate_api_docs` | API documentation from design |
|
|
798
819
|
| `sdd_generate_runbook` | Operational runbook |
|
|
799
820
|
| `sdd_generate_onboarding` | Developer onboarding guide |
|
|
800
821
|
|
|
801
|
-
### Utility (
|
|
822
|
+
### Utility (8)
|
|
802
823
|
|
|
803
824
|
| Tool | Description |
|
|
804
825
|
|------|-------------|
|
|
@@ -807,6 +828,9 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
807
828
|
| `sdd_scan_codebase` | Detect tech stack and structure |
|
|
808
829
|
| `sdd_metrics` | Project metrics dashboard |
|
|
809
830
|
| `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 |
|
|
810
834
|
|
|
811
835
|
### Testing (3)
|
|
812
836
|
|
|
@@ -847,14 +871,14 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
847
871
|
|
|
848
872
|
**[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.
|
|
849
873
|
|
|
850
|
-
**Specky** is the MCP engine that reimplements that methodology as
|
|
874
|
+
**Specky** is the MCP engine that reimplements that methodology as 57 enforceable tools with programmatic validation. It enforces **how** to do it.
|
|
851
875
|
|
|
852
876
|
| | Spec-Kit (Methodology) | Specky (Engine) |
|
|
853
877
|
|--|------------------------|-----------------|
|
|
854
|
-
| **What it is** | Prompt templates + agent definitions | MCP server with
|
|
878
|
+
| **What it is** | Prompt templates + agent definitions | MCP server with 57 tools |
|
|
855
879
|
| **How it works** | AI reads `.md` templates and follows instructions | AI calls tools that validate, enforce, and generate |
|
|
856
880
|
| **Validation** | AI tries to follow the prompts | State machine, EARS regex, Zod schemas |
|
|
857
|
-
| **Install** | Copy `.github/agents/` and `.claude/commands/` | `
|
|
881
|
+
| **Install** | Copy `.github/agents/` and `.claude/commands/` | `copilot plugin install specky-sdd@specky` or `npm install -g specky-sdd` |
|
|
858
882
|
| **Works standalone** | Yes, in any AI IDE | Yes, includes all Spec-Kit patterns |
|
|
859
883
|
| **Best for** | Learning SDD, lightweight adoption | Production enforcement, enterprise, compliance |
|
|
860
884
|
|
|
@@ -864,17 +888,27 @@ When you install Specky, you get the full Spec-Kit methodology reimplemented as
|
|
|
864
888
|
|
|
865
889
|
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.
|
|
866
890
|
|
|
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
|
+
|
|
867
900
|
```json
|
|
868
901
|
{
|
|
869
|
-
"
|
|
870
|
-
"specky": {
|
|
902
|
+
"mcpServers": {
|
|
903
|
+
"specky-sdd": {
|
|
904
|
+
"type": "stdio",
|
|
871
905
|
"command": "specky-sdd"
|
|
872
906
|
}
|
|
873
907
|
}
|
|
874
908
|
}
|
|
875
909
|
```
|
|
876
910
|
|
|
877
|
-
> **Note:** This example assumes `specky-sdd` is installed globally (`npm install -g specky-sdd`). See the [
|
|
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.
|
|
878
912
|
|
|
879
913
|
## Project Configuration
|
|
880
914
|
|
|
@@ -986,7 +1020,7 @@ Specky is built with enterprise adoption in mind.
|
|
|
986
1020
|
- **Zod `.strict()` validation** — every tool input is schema-validated; unknown fields rejected
|
|
987
1021
|
- **security-scan hook** blocks commits containing hardcoded secrets (exit code 2)
|
|
988
1022
|
- See [SECURITY.md](SECURITY.md) for full OWASP Top 10 coverage
|
|
989
|
-
- See [
|
|
1023
|
+
- See [SECURITY.md](SECURITY.md) for complete security architecture
|
|
990
1024
|
|
|
991
1025
|
### Security Best Practices
|
|
992
1026
|
|
|
@@ -1042,46 +1076,29 @@ Every pipeline phase produces a traceable artifact in `.specs/NNN-feature/`. The
|
|
|
1042
1076
|
- **EARS Validator** — programmatic requirement quality enforcement
|
|
1043
1077
|
- **Cross-Artifact Analysis** — automatic alignment checking between spec, design, and tasks
|
|
1044
1078
|
- **Phase Enforcement** — state machine blocks phase-skipping; required files gate advancement
|
|
1045
|
-
- **
|
|
1079
|
+
- **Comprehensive test suite** — CI enforces thresholds on every push
|
|
1046
1080
|
|
|
1047
1081
|
|
|
1048
1082
|
## Development
|
|
1049
1083
|
|
|
1050
1084
|
```bash
|
|
1051
|
-
#
|
|
1052
|
-
|
|
1053
|
-
cd specky
|
|
1054
|
-
npm install
|
|
1055
|
-
|
|
1056
|
-
# Build
|
|
1057
|
-
npm run build
|
|
1058
|
-
|
|
1059
|
-
# Run tests (507 tests)
|
|
1060
|
-
npm test
|
|
1061
|
-
|
|
1062
|
-
# Run tests with coverage report
|
|
1063
|
-
npm run test:coverage
|
|
1064
|
-
|
|
1065
|
-
# Development mode (auto-reload on file changes)
|
|
1066
|
-
npm run dev
|
|
1085
|
+
# Install globally
|
|
1086
|
+
npm install -g specky-sdd
|
|
1067
1087
|
|
|
1068
1088
|
# Verify MCP handshake (quick smoke test)
|
|
1069
|
-
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' |
|
|
1070
|
-
|
|
1071
|
-
# Build and run with Docker locally
|
|
1072
|
-
docker build -t specky-sdd:dev .
|
|
1073
|
-
docker run -p 3200:3200 -v $(pwd):/workspace specky-sdd:dev
|
|
1074
|
-
curl http://localhost:3200/health
|
|
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
|
|
1075
1090
|
```
|
|
1076
1091
|
|
|
1092
|
+
For contributors, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
1093
|
+
|
|
1077
1094
|
|
|
1078
1095
|
## Roadmap
|
|
1079
1096
|
|
|
1080
|
-
### v3.
|
|
1097
|
+
### v3.2 (current)
|
|
1081
1098
|
|
|
1082
1099
|
| Capability | Status |
|
|
1083
1100
|
|------------|--------|
|
|
1084
|
-
|
|
|
1101
|
+
| 57 MCP tools across 10 enforced pipeline phases | Stable |
|
|
1085
1102
|
| Phase validation on every tool with gate enforcement | Stable |
|
|
1086
1103
|
| 17 software engineering diagram types (C4, sequence, ER, DFD, deployment, network) | Stable |
|
|
1087
1104
|
| 12-section system design template (C4 model, security, infrastructure) | Stable |
|
|
@@ -1096,16 +1113,16 @@ curl http://localhost:3200/health
|
|
|
1096
1113
|
| Test traceability: REQ-ID → test coverage mapping | Stable |
|
|
1097
1114
|
| Intent drift detection with amendment suggestions | Stable |
|
|
1098
1115
|
| 10 automation hooks (2 blocking) | Stable |
|
|
1099
|
-
|
|
|
1116
|
+
| 7 Copilot agents + 19 prompts + 6 skills (via plugin) | Stable |
|
|
1100
1117
|
| 6 compliance frameworks (HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001) | Stable |
|
|
1101
1118
|
| 6 input types (transcript, PDF, DOCX, Figma, codebase, raw text) | Stable |
|
|
1102
1119
|
| Test generation for 6 frameworks (vitest, jest, playwright, pytest, junit, xunit) | Stable |
|
|
1103
1120
|
| MCP-to-MCP routing (GitHub, Azure DevOps, Jira, Terraform, Figma, Docker) | Stable |
|
|
1104
1121
|
| SBOM + cosign signing on Docker image | Stable |
|
|
1105
1122
|
| JSONL audit logger (optional) | Stable |
|
|
1106
|
-
|
|
|
1123
|
+
| Comprehensive test suite | Stable |
|
|
1107
1124
|
|
|
1108
|
-
### v3.
|
|
1125
|
+
### v3.3+ (planned)
|
|
1109
1126
|
|
|
1110
1127
|
| Feature | Description |
|
|
1111
1128
|
|---------|-------------|
|
|
@@ -1113,10 +1130,8 @@ curl http://localhost:3200/health
|
|
|
1113
1130
|
| Observability | OpenTelemetry metrics and structured logging |
|
|
1114
1131
|
| Internationalization | Spec templates in PT-BR, ES, FR, DE, JA |
|
|
1115
1132
|
| Automated shrinking | fast-check/Hypothesis shrinking feedback into spec refinement |
|
|
1116
|
-
| RBAC | Role-based access control for phase advancement |
|
|
1117
1133
|
| Centralized audit log | SIEM-integrated tamper-evident audit trail |
|
|
1118
1134
|
| Multi-tenant | Isolated workspaces for multiple teams |
|
|
1119
|
-
| Rate limiting | Request throttling for HTTP transport |
|
|
1120
1135
|
| SSO / SAML | Federated identity for enterprise auth |
|
|
1121
1136
|
|
|
1122
1137
|
Have a feature request? [Open an issue](https://github.com/paulasilvatech/specky/issues).
|
package/SECURITY.md
CHANGED
|
@@ -26,7 +26,7 @@ If you discover a security vulnerability in Specky, please report it responsibly
|
|
|
26
26
|
|
|
27
27
|
### Input Validation
|
|
28
28
|
|
|
29
|
-
All
|
|
29
|
+
All 57 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.
|
|
30
30
|
|
|
31
31
|
```
|
|
32
32
|
AI Client → JSON-RPC → Zod .strict() validation → Service layer
|
|
@@ -193,15 +193,15 @@ Running `npx specky-sdd` without a pinned version downloads the latest package f
|
|
|
193
193
|
| Approach | Risk reduction | Notes |
|
|
194
194
|
|----------|---------------|-------|
|
|
195
195
|
| `npm install -g specky-sdd` | **High** — fetches once, runs offline after | Recommended default |
|
|
196
|
-
| `npm install -g specky-sdd@3.2.
|
|
197
|
-
| Docker (`ghcr.io/paulasilvatech/specky:3.2.
|
|
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
198
|
| `npx specky-sdd` (unversioned) | **Baseline** — re-downloads on each invocation | Avoid in production pipelines |
|
|
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.
|
|
204
|
+
npm install specky-sdd@3.2.1 --prefix ./vendor --ignore-scripts
|
|
205
205
|
./vendor/node_modules/.bin/specky-sdd
|
|
206
206
|
```
|
|
207
207
|
|
package/dist/index.js
CHANGED
|
@@ -71,6 +71,22 @@ if (config.audit_enabled)
|
|
|
71
71
|
const server = new McpServer({
|
|
72
72
|
name: SERVER_NAME,
|
|
73
73
|
version: VERSION,
|
|
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/",
|
|
77
|
+
icons: [
|
|
78
|
+
{
|
|
79
|
+
src: "https://raw.githubusercontent.com/paulasilvatech/specky/main/media/specky-brand-icon.svg",
|
|
80
|
+
mimeType: "image/svg+xml",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
src: "https://raw.githubusercontent.com/paulasilvatech/specky/main/media/specky-icon-128.png",
|
|
84
|
+
mimeType: "image/png",
|
|
85
|
+
sizes: ["128x128"],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
}, {
|
|
89
|
+
instructions: "Specky is a Spec-Driven Development engine. Start with sdd_init to create a project, then follow the 10-phase pipeline: Init → Discover → Specify → Clarify → Design → Tasks → Analyze → Implement → Verify → Release. Use sdd_get_status to check current phase. Reply LGTM at quality gates to advance.",
|
|
74
90
|
});
|
|
75
91
|
// Initialize services (v1)
|
|
76
92
|
const fileManager = new FileManager(workspaceRoot);
|
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":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,8BAA8B;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,iCAAiC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,yBAAyB;AACzB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AACpE,OAAO,CAAC,KAAK,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;AAE3D,oDAAoD;AACpD,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,IAAI,MAAM,CAAC,cAAc;IAAE,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;AAChG,IAAI,MAAM,CAAC,aAAa;IAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAEzE,wBAAwB;AACxB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,iIAAiI;IAC9I,UAAU,EAAE,+CAA+C;IAC3D,KAAK,EAAE;QACL;YACE,GAAG,EAAE,0FAA0F;YAC/F,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,GAAG,EAAE,wFAAwF;YAC7F,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;KACF;CACF,EACD;IACE,YAAY,EAAE,2SAA2S;CAC1T,CACF,CAAC;AAEF,2BAA2B;AAC3B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC;AACnD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAClE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,IAAI,SAAS,CAAC,CAAC;AAC3F,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAE3D,2BAA2B;AAC3B,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC7D,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AACrD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAChD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACjE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AACrD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,aAAa,EACb,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,KAAK,CAAC,aAAa,EAC1B,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC9B,CAAC;AACF,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,EAC5B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,aAAa,CAC1C,CAAC;AACF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACpD,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;AACxD,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AACtD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAClD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAChD,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAE5D,gCAAgC;AAChC,WAAW;AACX,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AACxF,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAC5F,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAC5G,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAE5G,YAAY;AACZ,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACzE,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACxH,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAChF,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC7E,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAC3F,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC1G,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC5E,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AACjH,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC3D,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AACvF,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAClE,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAClH,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACjD,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC9E,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEtC,oBAAoB;AACpB,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,+BAA+B,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;AAEvD,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CACpD,oDAAoD,CACrD,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;SACvC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,iEAAiE;QACjE,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO;YAC3C,CAAC,CAAC,IAAI,WAAW,CACb,MAAM,CAAC,UAAU,CAAC,uBAAuB,IAAI,EAAE,EAC/C,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAC9B;YACH,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CACX,mCAAmC,MAAM,CAAC,UAAU,CAAC,uBAAuB,eAAe,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CACrH,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACtD,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;gBACvB,uDAAuD;gBACvD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;oBACvD,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACnD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;wBACvE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;4BACjB,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;yBACrC,CAAC,CAAC;wBACH,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;4BACb,KAAK,EAAE,mBAAmB;4BAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;yBACrC,CAAC,CACH,CAAC;wBACF,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,GAAG,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|