specky-sdd 2.0.0 → 2.2.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +743 -46
  3. package/SECURITY.md +110 -0
  4. package/dist/config.d.ts +12 -0
  5. package/dist/config.d.ts.map +1 -0
  6. package/dist/config.js +66 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/constants.d.ts +100 -1
  9. package/dist/constants.d.ts.map +1 -1
  10. package/dist/constants.js +112 -1
  11. package/dist/constants.js.map +1 -1
  12. package/dist/index.js +17 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/schemas/environment.d.ts +12 -37
  15. package/dist/schemas/environment.d.ts.map +1 -1
  16. package/dist/schemas/infrastructure.d.ts +22 -42
  17. package/dist/schemas/infrastructure.d.ts.map +1 -1
  18. package/dist/schemas/input.d.ts +13 -34
  19. package/dist/schemas/input.d.ts.map +1 -1
  20. package/dist/schemas/integration.d.ts +12 -80
  21. package/dist/schemas/integration.d.ts.map +1 -1
  22. package/dist/schemas/pipeline.d.ts +24 -230
  23. package/dist/schemas/pipeline.d.ts.map +1 -1
  24. package/dist/schemas/quality.d.ts +27 -39
  25. package/dist/schemas/quality.d.ts.map +1 -1
  26. package/dist/schemas/quality.js +13 -0
  27. package/dist/schemas/quality.js.map +1 -1
  28. package/dist/schemas/testing.d.ts +23 -0
  29. package/dist/schemas/testing.d.ts.map +1 -0
  30. package/dist/schemas/testing.js +26 -0
  31. package/dist/schemas/testing.js.map +1 -0
  32. package/dist/schemas/transcript.d.ts +18 -40
  33. package/dist/schemas/transcript.d.ts.map +1 -1
  34. package/dist/schemas/utility.d.ts +33 -65
  35. package/dist/schemas/utility.d.ts.map +1 -1
  36. package/dist/schemas/visualization.d.ts +28 -39
  37. package/dist/schemas/visualization.d.ts.map +1 -1
  38. package/dist/services/test-generator.d.ts +61 -0
  39. package/dist/services/test-generator.d.ts.map +1 -0
  40. package/dist/services/test-generator.js +217 -0
  41. package/dist/services/test-generator.js.map +1 -0
  42. package/dist/tools/input.d.ts.map +1 -1
  43. package/dist/tools/input.js +12 -0
  44. package/dist/tools/input.js.map +1 -1
  45. package/dist/tools/integration.d.ts.map +1 -1
  46. package/dist/tools/integration.js +24 -0
  47. package/dist/tools/integration.js.map +1 -1
  48. package/dist/tools/quality.d.ts +3 -2
  49. package/dist/tools/quality.d.ts.map +1 -1
  50. package/dist/tools/quality.js +84 -3
  51. package/dist/tools/quality.js.map +1 -1
  52. package/dist/tools/testing.d.ts +9 -0
  53. package/dist/tools/testing.d.ts.map +1 -0
  54. package/dist/tools/testing.js +130 -0
  55. package/dist/tools/testing.js.map +1 -0
  56. package/dist/tools/utility.d.ts.map +1 -1
  57. package/dist/tools/utility.js +36 -1
  58. package/dist/tools/utility.js.map +1 -1
  59. package/dist/types.d.ts +20 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/hooks/auto-docs.md +53 -0
  62. package/hooks/auto-test.md +61 -0
  63. package/hooks/changelog.md +74 -0
  64. package/hooks/security-scan.md +72 -0
  65. package/hooks/spec-sync.md +80 -0
  66. package/hooks/srp-validator.md +86 -0
  67. package/package.json +14 -5
  68. package/references/design-patterns.md +434 -0
  69. package/references/ears-notation.md +605 -0
  70. package/references/spec-templates.md +936 -0
  71. package/templates/analysis.md +1 -0
  72. package/templates/api-docs.md +1 -0
  73. package/templates/bugfix.md +1 -0
  74. package/templates/checklist.md +1 -0
  75. package/templates/compliance.md +1 -0
  76. package/templates/constitution.md +1 -0
  77. package/templates/cross-analysis.md +1 -0
  78. package/templates/data-model.md +1 -0
  79. package/templates/design.md +1 -0
  80. package/templates/devcontainer.md +1 -0
  81. package/templates/dockerfile.md +1 -0
  82. package/templates/onboarding.md +1 -0
  83. package/templates/research.md +1 -0
  84. package/templates/runbook.md +1 -0
  85. package/templates/specification.md +1 -0
  86. package/templates/sync-report.md +1 -0
  87. package/templates/tasks.md +3 -2
  88. package/templates/terraform.md +1 -0
  89. package/templates/test-stub.md +34 -0
  90. package/templates/user-stories.md +1 -0
  91. package/templates/verification.md +1 -0
  92. package/templates/work-items.md +1 -0
package/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  <div align="center">
2
2
  <h1>Specky</h1>
3
3
  <h3>The Complete Spec-Driven Development Platform</h3>
4
- <p><strong>42 MCP tools. 10-phase pipeline. Works in any IDE.</strong></p>
4
+ <p><strong>47 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>
8
+ <a href="https://github.com/paulasilvatech/specky/actions/workflows/ci.yml"><img src="https://github.com/paulasilvatech/specky/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
9
+ <a href="https://securityscorecards.dev/viewer/?uri=github.com/paulasilvatech/specky"><img src="https://api.securityscorecards.dev/projects/github.com/paulasilvatech/specky/badge" alt="OpenSSF Scorecard"/></a>
8
10
  <a href="https://github.com/paulasilvatech/specky"><img src="https://img.shields.io/github/stars/paulasilvatech/specky?style=social" alt="Stars"/></a>
9
11
  <a href="https://github.com/paulasilvatech/specky/blob/main/LICENSE"><img src="https://img.shields.io/github/license/paulasilvatech/specky" alt="License"/></a>
10
12
  </p>
@@ -12,31 +14,74 @@
12
14
 
13
15
  ---
14
16
 
17
+ ## Table of Contents
18
+
19
+ - [What is Specky?](#what-is-specky) — Overview and ecosystem
20
+ - [Why Specifications Matter](#why-specifications-matter-in-the-ai-era) — Vibe coding vs deterministic development, what is Markdown/MCP/EARS/Agents
21
+ - [GETTING-STARTED.md](GETTING-STARTED.md) — Complete educational guide (1400 lines, assumes no prior knowledge)
22
+ - [Quick Start](#quick-start) — Install via npm or Docker, connect to your IDE, and run your first command
23
+ - [Where Specifications Live](#where-specifications-live) — File structure and naming conventions
24
+ - [Input Methods](#input-methods--6-ways-to-start) — 6 ways to feed Specky (prompts, transcripts, documents, Figma, codebase scan, raw text)
25
+ - [Three Project Types](#three-project-types--one-pipeline) — Greenfield, brownfield, and modernization workflows
26
+ - [Greenfield](#greenfield-project--start-from-scratch) — New project from scratch
27
+ - [Brownfield](#brownfield-project--add-features-to-existing-code) — Add features to existing code
28
+ - [Modernization](#modernization-project--assess-and-upgrade-legacy-systems) — Assess and upgrade legacy systems
29
+ - [Pipeline and LGTM Gates](#pipeline-and-lgtm-gates) — 10-phase pipeline with human review gates
30
+ - [All 47 Tools](#all-47-tools) — Complete tool reference by category
31
+ - [The SDD Platform](#the-spec-driven-development-platform) — Built on Spec-Kit, everything included
32
+ - [Configuration](#project-configuration) — `.specky/config.yml` options
33
+ - [MCP Integration](#mcp-integration-architecture) — MCP-to-MCP routing to GitHub, Azure DevOps, Jira, Terraform, Figma
34
+ - [EARS Notation](#ears-notation) — The 6 requirement patterns
35
+ - [Compliance](#compliance-frameworks) — HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001
36
+ - [Enterprise Ready](#enterprise-ready) — Security posture, audit trail, quality gates
37
+ - [Development](#development) — Build from source, run tests, contribute
38
+
39
+ ---
40
+
15
41
  ## What is Specky?
16
42
 
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.
43
+ Specky is the **complete Spec-Driven Development (SDD) platform**, built on the foundation of the [Spec-Kit](https://github.com/paulasilvatech/spec-kit) methodology. It's an open-source MCP (Model Context Protocol) server that 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.
18
44
 
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.
45
+ Specky **already includes everything from Spec-Kit** -- the EARS notation, the SDD templates, the pipeline phases, and the quality patterns -- and adds **programmatic enforcement** on top: a state machine that blocks phase-skipping, an EARS validator that ensures testable requirements, cross-artifact analysis that catches drift, and compliance engines that validate against frameworks like HIPAA and SOC2.
20
46
 
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.
47
+ **Install Specky and you're ready to go.** No separate installation of Spec-Kit required. It works inside any AI IDE that supports MCP via `.github/agents/` for GitHub Copilot or `.claude/commands/` for Claude Code, and natively in Cursor, Windsurf, or any MCP-compatible client.
22
48
 
23
49
  ---
24
50
 
25
- ## Why Specky?
51
+ ## Why Specifications Matter in the AI Era
52
+
53
+ <p align="center">
54
+ <img src="media/why-specifications-matter.svg" alt="Why Specifications Matter — From Vibe Coding to Deterministic Development" width="100%"/>
55
+ </p>
56
+
57
+ ### The Problem: Vibe Coding
58
+
59
+ AI coding assistants are fast but chaotic. You say *"build me a login system"* and the AI generates code immediately -- skipping requirements, guessing architecture, and producing something that works but doesn't match what anyone actually needed. This is **vibe coding**: generating code based on vibes instead of validated specifications.
60
+
61
+ The result? Teams spend 40% of their time on rework because requirements were never written down, acceptance criteria were never defined, and there's no way to verify the code matches the original intent.
62
+
63
+ ### The Solution: Deterministic Development
64
+
65
+ **Specifications** are structured documents that describe *what the system must do* before anyone writes code. They've existed for decades in engineering, but AI development mostly ignores them. Specky brings them back -- with AI enforcement.
26
66
 
27
- ### The Problem
67
+ **Key concepts you should know:**
28
68
 
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.
69
+ - **Markdown** -- The universal language that both humans and AI read fluently. All spec artifacts are Markdown files that live in your repo, versioned with Git.
70
+ - **MCP (Model Context Protocol)** -- An open standard by Anthropic that lets AI assistants call external tools. Think of it as USB for AI. Specky is an MCP server; any AI IDE can connect to it.
71
+ - **EARS Notation** -- A method for writing requirements that forces precision. Six patterns (When/While/Where/If/The system shall) eliminate vague statements like "the system should be fast."
72
+ - **Agents and Skills** -- Specialized AI roles (Spec Engineer, Design Architect, Task Planner) that invoke Specky tools with domain expertise. Defined in `.github/agents/` and `.claude/commands/`.
30
73
 
31
- ### The Solution
74
+ ### How Specky Enforces Determinism
32
75
 
33
76
  Specky adds a **deterministic engine** between your intent and your code:
34
77
 
35
78
  - **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.
79
+ - **EARS Validator** -- Every requirement validated against 6 patterns. No vague statements pass.
37
80
  - **Cross-Artifact Analysis** -- Automatic alignment checking between spec, design, and tasks. Orphaned requirements are flagged instantly.
38
81
  - **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.
39
82
 
83
+ > **The AI is the operator; Specky is the engine.** The AI's creativity is channeled through a validated pipeline instead of producing unstructured guesswork. For a complete educational walkthrough, see [GETTING-STARTED.md](GETTING-STARTED.md).
84
+
40
85
  ### Differentiators
41
86
 
42
87
  <p align="center">
@@ -63,7 +108,7 @@ Specky adds a **deterministic engine** between your intent and your code:
63
108
  | Phantom task detection | Extension | No | No | **Yes** |
64
109
  | Complete auto-documentation | No | No | No | **Yes** |
65
110
  | Educative outputs | No | No | No | **Yes** |
66
- | 42 MCP tools | N/A | N/A | N/A | **Yes** |
111
+ | 47 MCP tools | N/A | N/A | N/A | **Yes** |
67
112
  | Works in ANY IDE via MCP | Templates | IDE-locked | IDE-locked | **Yes** |
68
113
 
69
114
  </details>
@@ -72,19 +117,82 @@ Specky adds a **deterministic engine** between your intent and your code:
72
117
 
73
118
  ## Quick Start
74
119
 
75
- ### Install
120
+ ### Prerequisites
121
+
122
+ - **Node.js 18+** — [Download here](https://nodejs.org/)
123
+ - **An AI IDE or client** — VS Code with Copilot, Claude Code, Claude Desktop, Cursor, or Windsurf
124
+
125
+ ### Option 1: npm (Recommended)
126
+
127
+ No installation needed — `npx` downloads and runs Specky on demand:
76
128
 
77
129
  ```bash
78
- # npm (recommended)
79
130
  npx specky-sdd
131
+ ```
132
+
133
+ Or install globally for faster startup:
80
134
 
81
- # Or install globally
135
+ ```bash
82
136
  npm install -g specky-sdd
137
+ specky-sdd
138
+ ```
139
+
140
+ ### Option 2: Docker
141
+
142
+ Run Specky as an HTTP server in a container — no Node.js required on the host:
143
+
144
+ ```bash
145
+ # Pull and run (mounts your project into /workspace)
146
+ docker run -p 3200:3200 -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
147
+ ```
148
+
149
+ Or use Docker Compose for a persistent setup:
150
+
151
+ ```bash
152
+ # Create a workspace directory and start
153
+ mkdir -p workspace
154
+ docker compose up -d
155
+
156
+ # Check health
157
+ curl http://localhost:3200/health
158
+ # → {"status":"ok","version":"2.2.0"}
159
+
160
+ # View logs
161
+ docker compose logs -f specky
162
+
163
+ # Stop
164
+ docker compose down
165
+ ```
166
+
167
+ <details>
168
+ <summary>Build from source with Docker</summary>
169
+
170
+ ```bash
171
+ git clone https://github.com/paulasilvatech/specky.git
172
+ cd specky
173
+
174
+ # Build the image locally
175
+ docker build -t specky-sdd:local .
176
+
177
+ # Run it
178
+ docker run -p 3200:3200 -v $(pwd):/workspace specky-sdd:local
179
+
180
+ # Or with docker compose
181
+ docker compose up -d --build
83
182
  ```
84
183
 
85
- ### Configure in VS Code (GitHub Copilot)
184
+ </details>
185
+
186
+ > **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.
187
+
188
+ ### Connect to Your AI IDE
189
+
190
+ Once Specky is running, connect it to your preferred AI tool:
86
191
 
87
- Create `.vscode/mcp.json` in your project:
192
+ <details>
193
+ <summary><strong>VS Code with GitHub Copilot</strong></summary>
194
+
195
+ Create `.vscode/mcp.json` in your project root:
88
196
 
89
197
  ```json
90
198
  {
@@ -100,9 +208,14 @@ Create `.vscode/mcp.json` in your project:
100
208
  }
101
209
  ```
102
210
 
103
- Open Copilot Chat -- Specky's 42 tools are now available.
211
+ Open Copilot Chat Specky's 47 tools are now available. Type `@specky` to scope your prompts.
212
+
213
+ </details>
214
+
215
+ <details>
216
+ <summary><strong>Claude Code</strong></summary>
104
217
 
105
- ### Configure in Claude Code
218
+ One command:
106
219
 
107
220
  ```bash
108
221
  claude mcp add specky -- npx -y specky-sdd
@@ -124,9 +237,12 @@ Or add to your MCP settings manually:
124
237
  }
125
238
  ```
126
239
 
127
- ### Configure in Claude Desktop
240
+ </details>
241
+
242
+ <details>
243
+ <summary><strong>Claude Desktop</strong></summary>
128
244
 
129
- Add to `claude_desktop_config.json`:
245
+ Add to your `claude_desktop_config.json`:
130
246
 
131
247
  | OS | Config File Location |
132
248
  |----|---------------------|
@@ -148,7 +264,10 @@ Add to `claude_desktop_config.json`:
148
264
  }
149
265
  ```
150
266
 
151
- ### Configure in Cursor
267
+ </details>
268
+
269
+ <details>
270
+ <summary><strong>Cursor</strong></summary>
152
271
 
153
272
  Add to Cursor's MCP settings (Settings > MCP Servers):
154
273
 
@@ -161,38 +280,505 @@ Add to Cursor's MCP settings (Settings > MCP Servers):
161
280
  }
162
281
  ```
163
282
 
164
- ### Docker
283
+ </details>
284
+
285
+ <details>
286
+ <summary><strong>Docker (HTTP mode) — for any MCP client</strong></summary>
287
+
288
+ If your AI client supports HTTP-based MCP servers, point it to:
289
+
290
+ ```
291
+ http://localhost:3200/mcp
292
+ ```
293
+
294
+ Start the container first:
165
295
 
166
296
  ```bash
167
- docker run -v $(pwd):/workspace ghcr.io/paulasilvatech/specky:latest
297
+ docker compose up -d
298
+ ```
299
+
300
+ </details>
301
+
302
+ ### Try It Now
303
+
304
+ Once connected, type this in your AI chat to see Specky in action:
305
+
306
+ ```
307
+ > Initialize a Specky project for a todo API and help me define the scope
308
+ ```
309
+
310
+ Specky creates the project structure and asks you 7 discovery questions. From here, follow the [Greenfield](#greenfield-project--start-from-scratch), [Brownfield](#brownfield-project--add-features-to-existing-code), or [Modernization](#modernization-project--assess-and-upgrade-legacy-systems) guide depending on your project type.
311
+
312
+ > **New to Spec-Driven Development?** Specky already includes all the SDD methodology from [Spec-Kit](https://github.com/paulasilvatech/spec-kit). Just install Specky and the pipeline guides you through every phase with [educative outputs](#educative-outputs) that explain the concepts as you work.
313
+
314
+ ---
315
+
316
+ ## Where Specifications Live
317
+
318
+ Every feature gets its own numbered directory inside `.specs/`. This keeps specifications, design documents, and quality reports together as a self-contained package.
319
+
320
+ ```
321
+ your-project/
322
+ ├── src/ ← Your application code
323
+ ├── .specs/ ← All Specky specifications
324
+ │ ├── 001-user-authentication/ ← Feature #1
325
+ │ │ ├── CONSTITUTION.md ← Project principles and governance
326
+ │ │ ├── SPECIFICATION.md ← EARS requirements with acceptance criteria
327
+ │ │ ├── DESIGN.md ← Architecture, data model, API contracts
328
+ │ │ ├── RESEARCH.md ← Resolved unknowns and technical decisions
329
+ │ │ ├── TASKS.md ← Implementation breakdown with dependencies
330
+ │ │ ├── ANALYSIS.md ← Quality gate report
331
+ │ │ ├── CHECKLIST.md ← Domain-specific quality checklist
332
+ │ │ ├── CROSS_ANALYSIS.md ← Spec-design-tasks alignment score
333
+ │ │ ├── COMPLIANCE.md ← Regulatory framework validation
334
+ │ │ ├── VERIFICATION.md ← Drift and phantom task detection
335
+ │ │ └── .sdd-state.json ← Pipeline state (current phase, history)
336
+ │ ├── 002-payment-gateway/ ← Feature #2
337
+ │ └── 003-notification-system/ ← Feature #3
338
+ ├── reports/ ← Cross-feature analysis reports
339
+ └── .specky/config.yml ← Optional project-level configuration
168
340
  ```
169
341
 
342
+ **Naming convention:** `NNN-feature-name` — zero-padded number + kebab-case name. Each directory is independent; you can work on multiple features simultaneously.
343
+
170
344
  ---
171
345
 
172
- ## The 10-Phase Pipeline
346
+ ## Input Methods — 6 Ways to Start
173
347
 
174
348
  <p align="center">
175
- <img src="media/pipeline-10-phases.svg" alt="Specky 10-Phase Pipeline" width="100%"/>
349
+ <img src="media/input-methods.svg" alt="Specky 6 Input Methods" width="100%"/>
350
+ </p>
351
+
352
+ Specky accepts multiple input types. Choose the one that matches your starting point:
353
+
354
+ ### 1. Natural Language Prompt (simplest)
355
+
356
+ Type your idea directly into the AI chat. No files needed.
357
+
358
+ ```
359
+ > I need a feature for user authentication with email/password login,
360
+ password reset via email, and JWT session management
361
+ ```
362
+
363
+ The AI calls `sdd_init` + `sdd_discover` to structure your idea into a spec project.
364
+
365
+ **Best for:** Quick prototyping, brainstorming, greenfield projects.
366
+
367
+ ### 2. Meeting Transcript (VTT / SRT / TXT / MD)
368
+
369
+ Import a transcript from Teams, Zoom, or Google Meet. Specky extracts topics, decisions, action items, and requirements automatically.
370
+
371
+ ```
372
+ > Import the requirements meeting transcript and create a specification
373
+ ```
374
+
375
+ The AI calls `sdd_import_transcript` → extracts:
376
+ - Participants and speakers
377
+ - Topics discussed with summaries
378
+ - Decisions made
379
+ - Action items
380
+ - Raw requirement statements
381
+ - Constraints mentioned
382
+ - Open questions
383
+
384
+ **Supported formats:** `.vtt` (WebVTT), `.srt` (SubRip), `.txt`, `.md`
385
+
386
+ **Pro tip:** Use `sdd_auto_pipeline` to go from transcript to complete spec in one step:
387
+
388
+ ```
389
+ > Run the auto pipeline from this meeting transcript: /path/to/meeting.vtt
390
+ ```
391
+
392
+ **Got multiple transcripts?** Use batch processing:
393
+
394
+ ```
395
+ > Batch import all transcripts from the meetings/ folder
396
+ ```
397
+
398
+ The AI calls `sdd_batch_transcripts` → processes every `.vtt`, `.srt`, `.txt`, and `.md` file in the folder.
399
+
400
+ ### 3. Existing Documents (PDF / DOCX / PPTX)
401
+
402
+ Import requirements documents, RFPs, architecture decks, or any existing documentation.
403
+
404
+ ```
405
+ > Import this requirements document and create a specification:
406
+ /path/to/requirements.pdf
407
+ ```
408
+
409
+ The AI calls `sdd_import_document` → converts to Markdown, extracts sections, and feeds into the spec pipeline.
410
+
411
+ **Supported formats:** `.pdf`, `.docx`, `.pptx`, `.txt`, `.md`
412
+
413
+ **Batch import from a folder:**
414
+
415
+ ```
416
+ > Import all documents from the docs/ folder into specs
417
+ ```
418
+
419
+ The AI calls `sdd_batch_import` → processes every supported file in the directory.
420
+
421
+ > **Tip:** For best results with PDF/DOCX, install the optional `mammoth` and `pdfjs-dist` packages for enhanced formatting, table extraction, and image handling.
422
+
423
+ ### 4. Figma Design (design-to-spec)
424
+
425
+ Convert Figma designs into requirements specifications. Works with the Figma MCP server.
426
+
427
+ ```
428
+ > Convert this Figma design into a specification:
429
+ https://figma.com/design/abc123/my-app
430
+ ```
431
+
432
+ The AI calls `sdd_figma_to_spec` → extracts components, layouts, and interactions, then routes to the Figma MCP server for design context.
433
+
434
+ **Best for:** Design-first workflows, UI-driven projects.
435
+
436
+ ### 5. Codebase Scan (brownfield / modernization)
437
+
438
+ Scan an existing codebase to detect tech stack, frameworks, structure, and patterns before writing specs.
439
+
440
+ ```
441
+ > Scan this codebase and tell me what we're working with
442
+ ```
443
+
444
+ The AI calls `sdd_scan_codebase` → detects:
445
+
446
+ | Detected | Examples |
447
+ |----------|---------|
448
+ | Language | TypeScript, Python, Go, Rust, Java |
449
+ | Framework | Next.js, Express, React, Django, FastAPI, Gin |
450
+ | Package Manager | npm, pip, poetry, cargo, maven, gradle |
451
+ | Runtime | Node.js, Python, Go, JVM |
452
+ | Directory Tree | Full project structure with file counts |
453
+
454
+ **Best for:** Understanding an existing project before adding features or modernizing.
455
+
456
+ ### 6. Raw Text (paste anything)
457
+
458
+ No file? Just paste the content directly. Every import tool accepts a `raw_text` parameter as an alternative to a file path.
459
+
460
+ ```
461
+ > Here's the raw requirements from the client email:
462
+
463
+ The system needs to handle 10,000 concurrent users...
464
+ Authentication must support SSO via Azure AD...
465
+ All data must be encrypted at rest and in transit...
466
+
467
+ Import this and create a specification.
468
+ ```
469
+
470
+ ---
471
+
472
+ ## Three Project Types — One Pipeline
473
+
474
+ <p align="center">
475
+ <img src="media/project-workflows.svg" alt="Greenfield, Brownfield, and Modernization Workflows" width="100%"/>
476
+ </p>
477
+
478
+ Specky adapts to any project type. The pipeline is the same; the **starting point** is what changes.
479
+
480
+ ---
481
+
482
+ ## Greenfield Project — Start from Scratch
483
+
484
+ **Scenario:** You're building a new application with no existing code.
485
+
486
+ ### Step 1: Initialize and discover
487
+
488
+ ```
489
+ > I'm building a task management API. Initialize a Specky project and help
490
+ me define the scope.
491
+ ```
492
+
493
+ The AI calls `sdd_init` → creates `.specs/001-task-management/CONSTITUTION.md`
494
+ Then calls `sdd_discover` → asks you **7 structured questions**:
495
+
496
+ 1. **Scope** — What problem does this solve? What are the boundaries of v1?
497
+ 2. **Users** — Who are the primary users? What are their skill levels?
498
+ 3. **Constraints** — Language, framework, hosting, budget, timeline?
499
+ 4. **Integrations** — What external systems, APIs, or services?
500
+ 5. **Performance** — Expected load, concurrent users, response times?
501
+ 6. **Security** — Authentication, authorization, compliance requirements?
502
+ 7. **Deployment** — CI/CD, monitoring, rollback strategy?
503
+
504
+ Answer each question. Your answers feed directly into the specification.
505
+
506
+ ### Step 2: Write the specification
507
+
508
+ ```
509
+ > Write the specification based on my discovery answers
510
+ ```
511
+
512
+ The AI calls `sdd_write_spec` → creates `SPECIFICATION.md` with EARS requirements:
513
+
514
+ ```markdown
515
+ ## Requirements
516
+
517
+ REQ-001 [Ubiquitous]: The system shall provide a REST API for task CRUD operations.
518
+
519
+ REQ-002 [Event-driven]: When a user creates a task, the system shall assign
520
+ a unique identifier and return it in the response.
521
+
522
+ REQ-003 [State-driven]: While a task is in "in-progress" state, the system
523
+ shall prevent deletion without explicit force confirmation.
524
+
525
+ REQ-004 [Unwanted]: If the API receives a malformed request body, then the
526
+ system shall return a 400 status with a descriptive error message.
527
+ ```
528
+
529
+ **The AI pauses here.** Review `.specs/001-task-management/SPECIFICATION.md` and reply **LGTM** when satisfied.
530
+
531
+ ### Step 3: Design the architecture
532
+
533
+ ```
534
+ > LGTM — proceed to design
535
+ ```
536
+
537
+ The AI calls `sdd_write_design` → creates `DESIGN.md` with:
538
+ - System architecture diagram (Mermaid)
539
+ - Data model / ER diagram
540
+ - API contracts with endpoints, request/response schemas
541
+ - Sequence diagrams for key flows
542
+ - Technology decisions with rationale
543
+
544
+ Review and reply **LGTM**.
545
+
546
+ ### Step 4: Break into tasks
547
+
548
+ ```
549
+ > LGTM — create the task breakdown
550
+ ```
551
+
552
+ The AI calls `sdd_write_tasks` → creates `TASKS.md` with implementation tasks mapped to acceptance criteria, dependencies, and estimated complexity.
553
+
554
+ ### Step 5: Quality gates
555
+
556
+ ```
557
+ > Run analysis, compliance check for SOC2, and generate all diagrams
558
+ ```
559
+
560
+ The AI calls:
561
+ - `sdd_run_analysis` → completeness audit, orphaned criteria detection
562
+ - `sdd_compliance_check` → SOC2 controls validation
563
+ - `sdd_generate_all_diagrams` → architecture, sequence, ER, flow, dependency, traceability diagrams
564
+
565
+ ### Step 6: Generate infrastructure and tests
566
+
567
+ ```
568
+ > Generate Terraform for Azure, a Dockerfile, and test stubs for vitest
569
+ ```
570
+
571
+ The AI calls:
572
+ - `sdd_generate_iac` → Terraform configuration
573
+ - `sdd_generate_dockerfile` → Dockerfile + docker-compose
574
+ - `sdd_generate_tests` → Test stubs with acceptance criteria mapped to test cases
575
+
576
+ ### Step 7: Export and ship
577
+
578
+ ```
579
+ > Export tasks to GitHub Issues and create a PR
580
+ ```
581
+
582
+ The AI calls `sdd_export_work_items` + `sdd_create_pr` → generates work item payloads and PR body with full spec traceability.
583
+
584
+ > **Next:** Learn about [EARS notation](#ears-notation) to understand the requirement patterns, or see [all 47 tools](#all-47-tools) for a complete reference.
585
+
586
+ ---
587
+
588
+ ## Brownfield Project — Add Features to Existing Code
589
+
590
+ **Scenario:** You have a running application and need to add a new feature with proper specifications.
591
+
592
+ ### Step 1: Scan the codebase first
593
+
594
+ ```
595
+ > Scan this codebase so Specky understands what we're working with
596
+ ```
597
+
598
+ The AI calls `sdd_scan_codebase` → detects tech stack, framework, directory structure. This context informs all subsequent tools.
599
+
600
+ ```
601
+ Detected: TypeScript + Next.js + npm + Node.js
602
+ Files: 247 across 32 directories
603
+ ```
604
+
605
+ ### Step 2: Initialize with codebase context
606
+
607
+ ```
608
+ > Initialize a feature for adding real-time notifications to this Next.js app.
609
+ Use the codebase scan results as context.
610
+ ```
611
+
612
+ The AI calls `sdd_init` → creates `.specs/001-real-time-notifications/CONSTITUTION.md`
613
+ Then calls `sdd_discover` with the codebase summary → the 7 discovery questions now include context about your existing tech stack:
614
+
615
+ > *"What technical constraints exist? **Note: This project already uses TypeScript, Next.js, npm, Node.js.** Consider compatibility with the existing stack."*
616
+
617
+ ### Step 3: Import existing documentation
618
+
619
+ If you have existing PRDs, architecture docs, or meeting notes:
620
+
621
+ ```
622
+ > Import the PRD for notifications: /docs/notifications-prd.pdf
623
+ ```
624
+
625
+ The AI calls `sdd_import_document` → converts to Markdown and adds to the spec directory. The content is used as input when writing the specification.
626
+
627
+ ### Step 4: Write spec with codebase awareness
628
+
629
+ ```
630
+ > Write the specification for real-time notifications. Consider the existing
631
+ Next.js architecture and any patterns already in the codebase.
632
+ ```
633
+
634
+ The specification references existing components, APIs, and patterns from the codebase scan.
635
+
636
+ ### Step 5: Check for drift
637
+
638
+ After implementation, verify specs match the code:
639
+
640
+ ```
641
+ > Check if the implementation matches the specification
642
+ ```
643
+
644
+ The AI calls `sdd_check_sync` → generates a drift report flagging any divergence between spec and code.
645
+
646
+ ### Step 6: Cross-feature analysis
647
+
648
+ If you have multiple features specified:
649
+
650
+ ```
651
+ > Run cross-analysis across all features to find conflicts
652
+ ```
653
+
654
+ The AI calls `sdd_cross_analyze` → checks for contradictions, shared dependencies, and consistency issues across `.specs/001-*`, `.specs/002-*`, etc.
655
+
656
+ > **Next:** See [compliance frameworks](#compliance-frameworks) for regulatory validation, or [MCP integration](#mcp-integration-architecture) for routing to external tools.
657
+
658
+ ---
659
+
660
+ ## Modernization Project — Assess and Upgrade Legacy Systems
661
+
662
+ **Scenario:** You have a legacy system that needs assessment, documentation, and incremental modernization.
663
+
664
+ ### Step 1: Scan and document the current state
665
+
666
+ ```
667
+ > Scan this legacy codebase and help me understand what we have
668
+ ```
669
+
670
+ The AI calls `sdd_scan_codebase` → maps the technology stack, directory tree, and file counts.
671
+
672
+ ### Step 2: Import all existing documentation
673
+
674
+ Gather everything you have — architecture documents, runbooks, meeting notes about the system:
675
+
676
+ ```
677
+ > Batch import all documents from /docs/legacy-system/ into specs
678
+ ```
679
+
680
+ The AI calls `sdd_batch_import` → processes PDFs, DOCX, PPTX, and text files. Each becomes a Markdown reference in the spec directory.
681
+
682
+ ### Step 3: Import stakeholder meetings
683
+
684
+ If you have recorded meetings with stakeholders discussing the modernization:
685
+
686
+ ```
687
+ > Batch import all meeting transcripts from /recordings/
688
+ ```
689
+
690
+ The AI calls `sdd_batch_transcripts` → extracts decisions, requirements, constraints, and open questions from every transcript.
691
+
692
+ ### Step 4: Create the modernization specification
693
+
694
+ ```
695
+ > Write a specification for modernizing the authentication module.
696
+ Consider the legacy constraints from the imported documents and
697
+ meeting transcripts.
698
+ ```
699
+
700
+ The specification accounts for:
701
+ - Current system behavior (from codebase scan)
702
+ - Existing documentation (from imported docs)
703
+ - Stakeholder decisions (from meeting transcripts)
704
+ - Migration constraints and backward compatibility
705
+
706
+ ### Step 5: Compliance assessment
707
+
708
+ Legacy systems often need compliance validation during modernization:
709
+
710
+ ```
711
+ > Run compliance checks against HIPAA and SOC2 for the modernized auth module
712
+ ```
713
+
714
+ The AI calls `sdd_compliance_check` → validates the specification against regulatory controls and flags gaps.
715
+
716
+ ### Step 6: Generate migration artifacts
717
+
718
+ ```
719
+ > Generate the implementation plan, Terraform for the new infrastructure,
720
+ and a runbook for the migration
721
+ ```
722
+
723
+ The AI calls:
724
+ - `sdd_implement` → phased implementation plan with checkpoints
725
+ - `sdd_generate_iac` → infrastructure configuration for the target environment
726
+ - `sdd_generate_runbook` → operational runbook with rollback procedures
727
+
728
+ ### Step 7: Generate onboarding for the team
729
+
730
+ ```
731
+ > Generate an onboarding guide for developers joining the modernization project
732
+ ```
733
+
734
+ The AI calls `sdd_generate_onboarding` → creates a guide covering architecture decisions, codebase navigation, development workflow, and testing strategy.
735
+
736
+ > **Next:** See [compliance frameworks](#compliance-frameworks) for regulatory validation during modernization, or [project configuration](#project-configuration) to customize Specky for your team.
737
+
738
+ ---
739
+
740
+ ## Pipeline and LGTM Gates
741
+
742
+ <p align="center">
743
+ <img src="media/pipeline-lgtm-gates.svg" alt="Pipeline with LGTM Quality Gates" width="100%"/>
176
744
  </p>
177
745
 
178
- Each phase is **mandatory**. The state machine blocks advancement until prerequisites are met.
746
+ Every Specky project follows the same 10-phase pipeline. The state machine **blocks phase-skipping** you cannot jump from Init to Design without completing Specify first.
747
+
748
+ **LGTM gates:** After each major phase (Specify, Design, Tasks), the AI pauses and asks you to review. Reply **LGTM** to proceed. This ensures human oversight at every quality gate.
749
+
750
+ **Feedback loop:** If `sdd_verify_tasks` detects drift between specification and implementation, Specky routes you back to the Specify phase to correct the divergence before proceeding.
751
+
752
+ **Advancing phases:** If you need to manually advance:
753
+
754
+ ```
755
+ > Advance to the next phase
756
+ ```
757
+
758
+ The AI calls `sdd_advance_phase` → moves the pipeline forward if all prerequisites are met.
759
+
760
+ <p align="center">
761
+ <img src="media/pipeline-10-phases.svg" alt="Specky 10-Phase Pipeline" width="100%"/>
762
+ </p>
179
763
 
180
764
  | Phase | What Happens | Required Output |
181
765
  |-------|-------------|----------------|
182
766
  | **Init** | Create project structure, constitution, scan codebase | CONSTITUTION.md |
183
767
  | **Discover** | Interactive discovery: 7 structured questions about scope, users, constraints | Discovery answers |
184
- | **Specify** | Write EARS requirements with acceptance criteria | SPECIFICATION.md |
768
+ | **Specify** | Write [EARS requirements](#ears-notation) with acceptance criteria | SPECIFICATION.md |
185
769
  | **Clarify** | Resolve ambiguities, generate decision tree | Updated SPECIFICATION.md |
186
770
  | **Design** | Architecture, data model, API contracts, research unknowns | DESIGN.md, RESEARCH.md |
187
771
  | **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 |
772
+ | **Analyze** | Cross-artifact analysis, quality checklist, [compliance check](#compliance-frameworks) | ANALYSIS.md, CHECKLIST.md, CROSS_ANALYSIS.md |
189
773
  | **Implement** | Ordered execution with checkpoints per user story | Implementation progress |
190
774
  | **Verify** | Drift detection, phantom task detection | VERIFICATION.md |
191
775
  | **Release** | PR generation, work item export, documentation | Complete package |
192
776
 
777
+ 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.
778
+
193
779
  ---
194
780
 
195
- ## All 42 Tools
781
+ ## All 47 Tools
196
782
 
197
783
  ### Input and Conversion (5)
198
784
 
@@ -281,6 +867,77 @@ Each phase is **mandatory**. The state machine blocks advancement until prerequi
281
867
  | `sdd_metrics` | Project metrics dashboard |
282
868
  | `sdd_amend` | Amend project constitution |
283
869
 
870
+ ### Testing (2) — NEW in v2.2.0
871
+
872
+ | Tool | Description |
873
+ |------|-------------|
874
+ | `sdd_generate_tests` | Generate test stubs from acceptance criteria (vitest/jest/playwright/pytest/junit/xunit) |
875
+ | `sdd_verify_tests` | Verify test results against requirements — reports traceability coverage |
876
+
877
+ ---
878
+
879
+ ## The Spec-Driven Development Platform
880
+
881
+ Specky is a **complete, self-contained SDD platform**. It includes everything from the [Spec-Kit](https://github.com/paulasilvatech/spec-kit) methodology — the EARS notation, the pipeline phases, the quality patterns, the templates — and adds programmatic enforcement on top.
882
+
883
+ **You do not need to install Spec-Kit separately.** Specky already has it built in.
884
+
885
+ ### What Spec-Kit Provides (included in Specky)
886
+
887
+ - EARS notation for testable requirements (6 patterns)
888
+ - 10-phase pipeline structure (Init → Release)
889
+ - 22 Markdown templates for all spec artifacts
890
+ - Quality gate patterns and traceability model
891
+ - Spec-Driven Development methodology and workflow
892
+
893
+ ### What Specky Adds on Top
894
+
895
+ - **47 MCP tools** — programmatic enforcement, not just templates
896
+ - **State machine** — blocks phase-skipping, enforces prerequisites
897
+ - **EARS validator** — regex-based requirement validation, flags vague terms
898
+ - **6 input types** — transcripts, documents, Figma, codebase scan, raw text, prompts
899
+ - **Compliance engines** — HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001
900
+ - **Test generation** — 6 frameworks (vitest, jest, playwright, pytest, junit, xunit)
901
+ - **MCP-to-MCP routing** — structured payloads for GitHub, Azure DevOps, Jira, Terraform, Figma, Docker
902
+ - **Cross-artifact analysis** — automatic alignment checking with consistency scoring
903
+ - **Educative outputs** — every tool explains what it did and what to do next
904
+
905
+ ### When to Use Spec-Kit Directly
906
+
907
+ [Spec-Kit](https://github.com/paulasilvatech/spec-kit) is still useful as a **standalone learning tool** if you want to:
908
+ - Learn SDD concepts before using the full platform
909
+ - Work in environments where MCP servers aren't available
910
+ - Use the prompt templates with any AI tool that doesn't support MCP
911
+
912
+ But for production use, **Specky is all you need**:
913
+
914
+ ```json
915
+ {
916
+ "servers": {
917
+ "specky": {
918
+ "command": "npx",
919
+ "args": ["-y", "specky-sdd"]
920
+ }
921
+ }
922
+ }
923
+ ```
924
+
925
+ ---
926
+
927
+ ## Project Configuration
928
+
929
+ Create `.specky/config.yml` in your project root to customize Specky:
930
+
931
+ ```yaml
932
+ # .specky/config.yml
933
+ templates_path: ./my-templates # Override built-in templates
934
+ default_framework: vitest # Default test framework
935
+ compliance_frameworks: [hipaa, soc2] # Frameworks to check
936
+ audit_enabled: true # Enable audit trail
937
+ ```
938
+
939
+ When `templates_path` is set, Specky uses your custom templates instead of the built-in ones. When `audit_enabled` is true, tool invocations are logged locally.
940
+
284
941
  ---
285
942
 
286
943
  ## MCP Integration Architecture
@@ -366,26 +1023,45 @@ Every tool response includes structured guidance:
366
1023
  <img src="media/end-to-end-flow.svg" alt="Specky End-to-End Development Flow" width="100%"/>
367
1024
  </p>
368
1025
 
369
- From any input to production — fully automated, MCP-orchestrated, with artifacts and diagrams generated at every step.
1026
+ From any [input](#input-methods--6-ways-to-start) to production — fully automated, [MCP-orchestrated](#mcp-integration-architecture), with artifacts and diagrams generated at every step. All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
370
1027
 
371
1028
  ---
372
1029
 
373
- ## Project Structure
1030
+ ## Enterprise Ready
374
1031
 
375
- ```
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
388
- ```
1032
+ Specky is built with enterprise adoption in mind.
1033
+
1034
+ ### Security Posture
1035
+
1036
+ - **2 runtime dependencies** minimal attack surface (`@modelcontextprotocol/sdk`, `zod`)
1037
+ - **Zero outbound network requests** — all data stays local
1038
+ - **No `eval()` or dynamic code execution** — template rendering is string replacement only
1039
+ - **Path traversal prevention** — FileManager sanitizes all paths, blocks `..` sequences
1040
+ - **Zod `.strict()` validation** — every tool input is schema-validated; unknown fields rejected
1041
+ - See [SECURITY.md](SECURITY.md) for full OWASP Top 10 coverage
1042
+
1043
+ ### Compliance Validation
1044
+
1045
+ Built-in compliance checking validates your specifications against industry frameworks:
1046
+
1047
+ | Framework | Controls | Use Case |
1048
+ |-----------|----------|----------|
1049
+ | HIPAA | 6 controls | Healthcare applications |
1050
+ | SOC 2 | 6 controls | SaaS and cloud services |
1051
+ | GDPR | 5 controls | EU data processing |
1052
+ | PCI-DSS | 6 controls | Payment card handling |
1053
+ | ISO 27001 | 6 controls | Enterprise security management |
1054
+
1055
+ ### Audit Trail
1056
+
1057
+ Every pipeline phase produces a traceable artifact in `.specs/NNN-feature/`. The complete specification-to-code journey is documented and reproducible.
1058
+
1059
+ ### Quality Gates
1060
+
1061
+ - **EARS Validator** — programmatic requirement quality enforcement
1062
+ - **Cross-Artifact Analysis** — automatic alignment checking between spec, design, and tasks
1063
+ - **Phase Enforcement** — state machine blocks phase-skipping; required files gate advancement
1064
+ - **211 unit tests** with 89% code coverage; CI enforces thresholds on every push
389
1065
 
390
1066
  ---
391
1067
 
@@ -400,11 +1076,22 @@ npm install
400
1076
  # Build
401
1077
  npm run build
402
1078
 
403
- # Development mode (auto-reload)
1079
+ # Run tests (211 tests, 89% coverage)
1080
+ npm test
1081
+
1082
+ # Run tests with coverage report
1083
+ npm run test:coverage
1084
+
1085
+ # Development mode (auto-reload on file changes)
404
1086
  npm run dev
405
1087
 
406
- # Verify MCP handshake
1088
+ # Verify MCP handshake (quick smoke test)
407
1089
  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
1090
+
1091
+ # Build and run with Docker locally
1092
+ docker build -t specky-sdd:dev .
1093
+ docker run -p 3200:3200 -v $(pwd):/workspace specky-sdd:dev
1094
+ curl http://localhost:3200/health
408
1095
  ```
409
1096
 
410
1097
  ---
@@ -415,6 +1102,16 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details and how to add t
415
1102
 
416
1103
  ---
417
1104
 
1105
+ ## Links
1106
+
1107
+ - [CHANGELOG.md](CHANGELOG.md) — Version history and release notes
1108
+ - [SECURITY.md](SECURITY.md) — Vulnerability disclosure policy and OWASP Top 10 coverage
1109
+ - [CONTRIBUTING.md](CONTRIBUTING.md) — How to add tools, templates, or services
1110
+ - [Spec-Kit](https://github.com/paulasilvatech/spec-kit) — The learning companion for Spec-Driven Development
1111
+ - [npm package](https://www.npmjs.com/package/specky-sdd) — `specky-sdd` on npm
1112
+
1113
+ ---
1114
+
418
1115
  ## License
419
1116
 
420
1117
  MIT -- Created by [Paula Silva](https://github.com/paulasilvatech) | Americas Software GBB, Microsoft