specky-sdd 3.7.3 → 3.9.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/.apm/agents/{design-architect.agent.md → specky-design-architect.agent.md} +2 -2
- package/.apm/agents/{implementer.agent.md → specky-implementer.agent.md} +9 -9
- package/.apm/agents/specky-onboarding.agent.md +2 -2
- package/.apm/agents/specky-orchestrator.agent.md +10 -10
- package/.apm/agents/{quality-reviewer.agent.md → specky-quality-reviewer.agent.md} +6 -6
- package/.apm/agents/{release-engineer.agent.md → specky-release-engineer.agent.md} +11 -11
- package/.apm/agents/{requirements-engineer.agent.md → specky-requirements-engineer.agent.md} +8 -8
- package/.apm/agents/{research-analyst.agent.md → specky-research-analyst.agent.md} +9 -9
- package/.apm/agents/{sdd-clarify.agent.md → specky-sdd-clarify.agent.md} +4 -3
- package/.apm/agents/{sdd-init.agent.md → specky-sdd-init.agent.md} +3 -3
- package/.apm/agents/{spec-engineer.agent.md → specky-spec-engineer.agent.md} +2 -2
- package/.apm/agents/{task-planner.agent.md → specky-task-planner.agent.md} +2 -2
- package/.apm/agents/{test-verifier.agent.md → specky-test-verifier.agent.md} +2 -2
- package/.apm/hooks/scripts/{artifact-validator.sh → specky-artifact-validator.sh} +11 -11
- package/.apm/hooks/scripts/{auto-checkpoint.sh → specky-auto-checkpoint.sh} +1 -1
- package/.apm/hooks/scripts/{branch-validator.sh → specky-branch-validator.sh} +3 -3
- package/.apm/hooks/scripts/{cognitive-debt-alert.sh → specky-cognitive-debt-alert.sh} +1 -1
- package/.apm/hooks/scripts/{drift-monitor.sh → specky-drift-monitor.sh} +1 -1
- package/.apm/hooks/scripts/{ears-validator.sh → specky-ears-validator.sh} +1 -1
- package/.apm/hooks/scripts/{lgtm-gate.sh → specky-lgtm-gate.sh} +1 -1
- package/.apm/hooks/scripts/{metrics-dashboard.sh → specky-metrics-dashboard.sh} +2 -2
- package/.apm/hooks/scripts/{phase-gate.sh → specky-phase-gate.sh} +1 -1
- package/.apm/hooks/scripts/{pipeline-guard.sh → specky-pipeline-guard.sh} +3 -3
- package/.apm/hooks/scripts/{release-gate.sh → specky-release-gate.sh} +1 -1
- package/.apm/hooks/scripts/{security-scan.sh → specky-security-scan.sh} +2 -2
- package/.apm/hooks/scripts/{session-banner.sh → specky-session-banner.sh} +4 -4
- package/.apm/hooks/scripts/{spec-quality.sh → specky-spec-quality.sh} +1 -1
- package/.apm/hooks/scripts/{spec-sync.sh → specky-spec-sync.sh} +2 -2
- package/.apm/hooks/scripts/{task-tracer.sh → specky-task-tracer.sh} +1 -1
- package/.apm/hooks/sdd-hooks.json +51 -51
- package/.apm/hooks/specky-run.sh +32 -0
- package/.apm/instructions/claude-instructions.instructions.md +74 -0
- package/.apm/instructions/copilot-instructions.instructions.md +19 -25
- package/.apm/instructions/cursor-instructions.instructions.md +20 -0
- package/.apm/prompts/specky-api.prompt.md +2 -2
- package/.apm/prompts/specky-brownfield.prompt.md +2 -2
- package/.apm/prompts/specky-clarify.prompt.md +1 -1
- package/.apm/prompts/specky-debug-hook.prompt.md +1 -1
- package/.apm/prompts/specky-deploy.prompt.md +1 -1
- package/.apm/prompts/specky-design.prompt.md +1 -1
- package/.apm/prompts/specky-from-meeting.prompt.md +1 -1
- package/.apm/prompts/specky-greenfield.prompt.md +2 -2
- package/.apm/prompts/specky-implement.prompt.md +1 -1
- package/.apm/prompts/specky-migration.prompt.md +3 -3
- package/.apm/prompts/specky-onboarding.prompt.md +1 -0
- package/.apm/prompts/specky-pipeline-status.prompt.md +1 -0
- package/.apm/prompts/specky-release.prompt.md +1 -1
- package/.apm/prompts/specky-research.prompt.md +1 -1
- package/.apm/prompts/specky-specify.prompt.md +1 -1
- package/.apm/prompts/specky-tasks.prompt.md +1 -1
- package/.apm/prompts/specky-verify.prompt.md +1 -1
- package/.apm/skills/specky-design-architect/SKILL.md +21 -0
- package/.apm/skills/{implementer → specky-implementer}/SKILL.md +3 -3
- package/.apm/skills/specky-onboarding/SKILL.md +37 -31
- package/.apm/skills/specky-orchestrator/SKILL.md +28 -28
- package/.apm/skills/specky-quality-reviewer/SKILL.md +28 -0
- package/.apm/skills/{release-engineer → specky-release-engineer}/SKILL.md +7 -7
- package/.apm/skills/{research-analyst → specky-research-analyst}/SKILL.md +2 -2
- package/.apm/skills/specky-sdd-clarify/SKILL.md +25 -0
- package/.apm/skills/specky-sdd-init/SKILL.md +28 -0
- package/.apm/skills/{sdd-markdown-standard → specky-sdd-markdown-standard}/SKILL.md +2 -2
- package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/SKILL.md +42 -49
- package/.apm/skills/specky-spec-engineer/SKILL.md +27 -0
- package/.apm/skills/specky-task-planner/SKILL.md +20 -0
- package/.apm/skills/{test-verifier → specky-test-verifier}/SKILL.md +2 -2
- package/CHANGELOG.md +57 -0
- package/README.md +189 -96
- package/apm-policy.yml +19 -0
- package/apm.lock.yaml +70 -61
- package/apm.yml +10 -7
- package/config.yml +35 -33
- package/dist/claude-hooks.json +51 -51
- package/dist/cli/commands/compile.d.ts +7 -0
- package/dist/cli/commands/compile.d.ts.map +1 -0
- package/dist/cli/commands/compile.js +127 -0
- package/dist/cli/commands/compile.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +167 -18
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/hooks.js +2 -2
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +121 -19
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +5 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/index.js +21 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/apm/policy.d.ts.map +1 -1
- package/dist/cli/lib/apm/policy.js +47 -33
- package/dist/cli/lib/apm/policy.js.map +1 -1
- package/dist/cli/lib/asset-copier.d.ts +13 -0
- package/dist/cli/lib/asset-copier.d.ts.map +1 -1
- package/dist/cli/lib/asset-copier.js +107 -32
- package/dist/cli/lib/asset-copier.js.map +1 -1
- package/dist/cli/lib/gitignore-writer.d.ts.map +1 -1
- package/dist/cli/lib/gitignore-writer.js +11 -0
- package/dist/cli/lib/gitignore-writer.js.map +1 -1
- package/dist/cli/lib/harness/compilers/agent-skills.d.ts +7 -0
- package/dist/cli/lib/harness/compilers/agent-skills.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/agent-skills.js +23 -0
- package/dist/cli/lib/harness/compilers/agent-skills.js.map +1 -0
- package/dist/cli/lib/harness/compilers/cursor.d.ts +8 -0
- package/dist/cli/lib/harness/compilers/cursor.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/cursor.js +28 -0
- package/dist/cli/lib/harness/compilers/cursor.js.map +1 -0
- package/dist/cli/lib/harness/compilers/opencode.d.ts +7 -0
- package/dist/cli/lib/harness/compilers/opencode.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/opencode.js +26 -0
- package/dist/cli/lib/harness/compilers/opencode.js.map +1 -0
- package/dist/cli/lib/harness/index.d.ts.map +1 -1
- package/dist/cli/lib/harness/index.js +6 -0
- package/dist/cli/lib/harness/index.js.map +1 -1
- package/dist/cli/lib/harness/tool-map.d.ts.map +1 -1
- package/dist/cli/lib/harness/tool-map.js +23 -1
- package/dist/cli/lib/harness/tool-map.js.map +1 -1
- package/dist/cli/lib/harness/types.d.ts +2 -2
- package/dist/cli/lib/harness/types.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.d.ts +1 -0
- package/dist/cli/lib/mcp-writer.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.js +5 -1
- package/dist/cli/lib/mcp-writer.js.map +1 -1
- package/dist/cli/lib/paths.d.ts +19 -0
- package/dist/cli/lib/paths.d.ts.map +1 -1
- package/dist/cli/lib/paths.js +21 -0
- package/dist/cli/lib/paths.js.map +1 -1
- package/dist/copilot-hooks.json +46 -46
- package/dist/cursor-hooks.json +288 -0
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/services/state-machine.d.ts +4 -3
- package/dist/services/state-machine.d.ts.map +1 -1
- package/dist/services/state-machine.js +17 -9
- package/dist/services/state-machine.js.map +1 -1
- package/package.json +6 -7
- package/site/specky-icon.png +0 -0
- /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/ears-notation.md +0 -0
- /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/model-routing.md +0 -0
package/README.md
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<br>
|
|
3
|
-
<img src="
|
|
3
|
+
<img src="site/specky-brand-logo.svg" alt="Specky" height="80">
|
|
4
4
|
<br><br>
|
|
5
5
|
<p><strong>13 agents. 58 MCP tools. 10-phase pipeline. One CLI.</strong></p>
|
|
6
6
|
<p>Agentic Spec-Driven Development</p>
|
|
7
7
|
|
|
8
8
|
<p>
|
|
9
|
-
<img src="https://img.shields.io/badge/agents-13-
|
|
10
|
-
<img src="https://img.shields.io/badge/tools-58_MCP-
|
|
11
|
-
<img src="https://img.shields.io/badge/phases-10_enforced-
|
|
12
|
-
<img src="https://img.shields.io/badge/hooks-16-
|
|
13
|
-
<img src="https://img.shields.io/badge/license-MIT-
|
|
9
|
+
<img src="https://img.shields.io/badge/agents-13-374151?style=flat-square" alt="13 Agents"/>
|
|
10
|
+
<img src="https://img.shields.io/badge/tools-58_MCP-4b5563?style=flat-square" alt="58 Tools"/>
|
|
11
|
+
<img src="https://img.shields.io/badge/phases-10_enforced-6b7280?style=flat-square" alt="10 Phases"/>
|
|
12
|
+
<img src="https://img.shields.io/badge/hooks-16-9ca3af?style=flat-square" alt="16 Hooks"/>
|
|
13
|
+
<img src="https://img.shields.io/badge/license-MIT-d1d5db?style=flat-square" alt="MIT"/>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p>
|
|
17
|
-
<a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/v/specky-sdd?style=flat-square&color=
|
|
18
|
-
<a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/dm/specky-sdd?style=flat-square&color=
|
|
17
|
+
<a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/v/specky-sdd?style=flat-square&color=4b5563" alt="npm"/></a>
|
|
18
|
+
<a href="https://www.npmjs.com/package/specky-sdd"><img src="https://img.shields.io/npm/dm/specky-sdd?style=flat-square&color=6b7280" alt="npm downloads"/></a>
|
|
19
19
|
<a href="https://github.com/paulasilvatech/specky/actions/workflows/ci.yml"><img src="https://github.com/paulasilvatech/specky/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
|
|
20
20
|
<a href="https://securityscorecards.dev/viewer/?uri=github.com/paulasilvatech/specky"><img src="https://api.securityscorecards.dev/projects/github.com/paulasilvatech/specky/badge" alt="OpenSSF Scorecard"/></a>
|
|
21
|
-
<a href="https://github.com/paulasilvatech/specky"><img src="https://img.shields.io/github/stars/paulasilvatech/specky?style=flat-square&color=
|
|
21
|
+
<a href="https://github.com/paulasilvatech/specky"><img src="https://img.shields.io/github/stars/paulasilvatech/specky?style=flat-square&color=6b7280" alt="Stars"/></a>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
24
|
<p>
|
|
25
|
-
<img src="https://img.shields.io/badge/TypeScript-strict-
|
|
26
|
-
<img src="https://img.shields.io/badge/dependencies-3-
|
|
27
|
-
<img src="https://img.shields.io/badge/CLI-specky-
|
|
28
|
-
<img src="https://img.shields.io/badge/OWASP_MCP-Top_10-
|
|
29
|
-
<img src="https://img.shields.io/node/v/specky-sdd?style=flat-square&color=
|
|
30
|
-
<a href="https://github.com/paulasilvatech/specky/issues"><img src="https://img.shields.io/badge/PRs-welcome-
|
|
25
|
+
<img src="https://img.shields.io/badge/TypeScript-strict-374151?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript Strict"/>
|
|
26
|
+
<img src="https://img.shields.io/badge/dependencies-3-9ca3af?style=flat-square" alt="3 Dependencies"/>
|
|
27
|
+
<img src="https://img.shields.io/badge/CLI-specky-4b5563?style=flat-square" alt="CLI"/>
|
|
28
|
+
<img src="https://img.shields.io/badge/OWASP_MCP-Top_10-6b7280?style=flat-square" alt="OWASP MCP Top 10"/>
|
|
29
|
+
<img src="https://img.shields.io/node/v/specky-sdd?style=flat-square&color=374151" alt="Node.js"/>
|
|
30
|
+
<a href="https://github.com/paulasilvatech/specky/issues"><img src="https://img.shields.io/badge/PRs-welcome-9ca3af?style=flat-square" alt="PRs Welcome"/></a>
|
|
31
31
|
</p>
|
|
32
32
|
|
|
33
33
|
<p>
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
</p>
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
|
-
|
|
42
41
|
## Table of Contents
|
|
43
42
|
|
|
44
43
|
| | Section | Description |
|
|
@@ -60,13 +59,11 @@
|
|
|
60
59
|
| **Platform** | [The SDD Platform](#the-spec-driven-development-platform) | Built on Spec-Kit, everything included |
|
|
61
60
|
| | [Roadmap](#roadmap) | v3.7 current, v3.8+ planned |
|
|
62
61
|
|
|
63
|
-
|
|
64
62
|
## What is Specky?
|
|
65
63
|
|
|
66
|
-
Specky is a **CLI toolkit for Spec-Driven Development** — 13 specialized agents, 58 MCP tools, 22 prompts,
|
|
67
|
-
|
|
68
|
-
Powered by the [Spec-Kit](https://github.com/paulasilvatech/spec-kit) methodology. Install the `specky` CLI and it places agents, prompts, skills, hooks, and the MCP server registration into your project — for **GitHub Copilot** (VS Code), **Claude Code**, or both.
|
|
64
|
+
Specky is a **CLI toolkit for Spec-Driven Development** — 13 specialized agents, 58 MCP tools, 22 prompts, 14 skills, and 16 automation hooks — that enforces a deterministic 10-phase pipeline from **any input** (meeting transcripts, documents, Figma designs, or natural language prompts) through specifications, architecture, infrastructure as code, implementation, and deployment.
|
|
69
65
|
|
|
66
|
+
Powered by the [Spec-Kit](https://github.com/paulasilvatech/spec-kit) methodology. Install the `specky` CLI and it places agents, prompts, skills, hooks, and the MCP server registration into your project — for **GitHub Copilot** (VS Code), **Claude Code**, **Cursor**, or **OpenCode**.
|
|
70
67
|
|
|
71
68
|
## What's Included
|
|
72
69
|
|
|
@@ -74,10 +71,10 @@ Specky is a **complete AI development toolkit** — not just an MCP server. The
|
|
|
74
71
|
|
|
75
72
|
| Primitive | What it is | Specky includes |
|
|
76
73
|
|-----------|-----------|------------------|
|
|
77
|
-
| **Agents** | Specialized AI personas with defined roles, tools, and guardrails | 13 agents — @specky-orchestrator (full pipeline), @specky-onboarding (wizard), @spec-engineer, @design-architect, @task-planner, @quality-reviewer, and 7 more |
|
|
74
|
+
| **Agents** | Specialized AI personas with defined roles, tools, and guardrails | 13 agents — @specky-orchestrator (full pipeline), @specky-onboarding (wizard), @specky-spec-engineer, @specky-design-architect, @specky-task-planner, @specky-quality-reviewer, and 7 more |
|
|
78
75
|
| **Prompts** | Slash commands that activate the right agent for a task | 22 prompts — `/specky-greenfield`, `/specky-specify`, `/specky-release`, `/specky-orchestrate`, etc. |
|
|
79
|
-
| **Skills** | Domain knowledge files loaded into agent context automatically |
|
|
80
|
-
| **Hooks** | Scripts that run before/after every tool call for validation | 16 hooks — artifact-validator, branch-validator, phase-gate, lgtm-gate, security-scan, etc. |
|
|
76
|
+
| **Skills** | Domain knowledge files loaded into agent context automatically | 14 skills — SDD pipeline rules, phase playbooks, EARS patterns, implementation patterns, test criteria, release gate protocol |
|
|
77
|
+
| **Hooks** | Scripts that run before/after every tool call for validation | 16 hooks — specky-artifact-validator, specky-branch-validator, specky-phase-gate, specky-lgtm-gate, specky-security-scan, etc. |
|
|
81
78
|
| **MCP Server** | The tool engine that validates, generates, and enforces | 58 tools via Model Context Protocol (the runtime underneath) |
|
|
82
79
|
|
|
83
80
|
### Why not just an MCP server?
|
|
@@ -97,36 +94,51 @@ Specky ships as a single npm package with a unified `specky` CLI. Works on macOS
|
|
|
97
94
|
# 1. Install the CLI globally (once per machine)
|
|
98
95
|
npm install -g specky-sdd@latest
|
|
99
96
|
|
|
100
|
-
# 2. Bootstrap your project — choose your
|
|
97
|
+
# 2. Bootstrap your project — choose your target harness:
|
|
101
98
|
cd your-project
|
|
102
|
-
specky install --
|
|
103
|
-
specky install --
|
|
99
|
+
specky install --target=copilot # VS Code + GitHub Copilot (recommended)
|
|
100
|
+
specky install --target=claude # Claude Code
|
|
101
|
+
specky install --target=cursor # Cursor
|
|
102
|
+
specky install --target=opencode # OpenCode
|
|
103
|
+
specky install --target=agent-skills # Shared .agents/skills bundle
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
> **Important:**
|
|
106
|
+
> **Important:** Prefer `--target=...`. The legacy `--ide` flag still works for `copilot`, `claude`, `both`, and `auto`, but it is deprecated in favor of APM-style targets. If Copilot is installed in a workspace, Specky strips Claude hooks from `.claude/settings.json` to prevent Copilot cross-read blocks. See [docs/INSTALL.md](docs/INSTALL.md) for details.
|
|
107
107
|
|
|
108
108
|
Or per-project (for teams — pins version in `package.json`, run via `npx`):
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
111
|
cd your-project
|
|
112
112
|
npm install --save-dev specky-sdd@latest
|
|
113
|
-
npx specky install --
|
|
113
|
+
npx specky install --target=copilot
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
The CLI installs 13 agents, 22 prompts,
|
|
116
|
+
The CLI installs 13 agents, 22 prompts, 14 skills, 16 hooks, the target MCP server registration (pinned to the installed version), and pre-authorizes or scopes tools according to the selected harness. It does **not** pre-authorize arbitrary shell, `rm`, or network access; those still prompt. Run `specky doctor` anytime to validate integrity and config.
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
Generated assets are platform-native. `specky install --target=copilot` writes GitHub Copilot agents/prompts with VS Code tool names such as `search`, `agent`, and `specky/sdd_get_status`, plus prompt `agent: agent` frontmatter. `specky install --target=claude` writes Claude Code agents/commands with `Read`, `Glob`, `Grep`, `Task`, and `mcp__specky__sdd_get_status`, with Copilot-only prompt metadata removed. Wave 1 APM targets also include Cursor, OpenCode, and the neutral `agent-skills` target.
|
|
119
119
|
|
|
120
|
-
Specky also has an APM governance layer for enterprise package control. `apm.yml` declares the package primitives, targets, and MCP runtime; `apm.lock.yaml` pins primitive hashes; `apm-policy.yml` enforces MCP and tool-name policy. Maintainers and CI can run `specky apm validate`, `specky apm policy`, `specky apm verify-lock`, and `specky apm sbom` before publishing or installing.
|
|
120
|
+
Specky also has an APM governance layer for enterprise package control. `apm.yml` declares the package primitives, targets, and MCP runtime; `apm.lock.yaml` pins primitive hashes; `apm-policy.yml` enforces MCP and tool-name policy. Maintainers and CI can run `specky apm validate`, `specky apm policy`, `specky apm verify-lock`, and `specky apm sbom` before publishing or installing. See [Uso do APM pelo Specky](docs/APM-USAGE.md) for the detailed model, including why APM is not a runtime proxy and why users do not need to install the Microsoft APM CLI.
|
|
121
121
|
|
|
122
122
|
Full walkthroughs per OS, offline install, and CLI reference: [docs/INSTALL.md](docs/INSTALL.md) · [docs/CLI.md](docs/CLI.md).
|
|
123
123
|
|
|
124
|
-
|
|
125
124
|
## Why Specifications Matter in the AI Era
|
|
126
125
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
```mermaid
|
|
127
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
128
|
+
flowchart LR
|
|
129
|
+
A["Raw intent"] --> B["Vibe coding<br/>direct prompt to code"]
|
|
130
|
+
B --> C["Guessing<br/>implicit requirements"]
|
|
131
|
+
C --> D["Rework<br/>drift and missing acceptance criteria"]
|
|
132
|
+
|
|
133
|
+
A --> E["Specky SDD<br/>validated specification first"]
|
|
134
|
+
E --> F["EARS requirements<br/>measurable acceptance criteria"]
|
|
135
|
+
F --> G["Deterministic delivery<br/>traceable design, tasks, tests, release"]
|
|
136
|
+
|
|
137
|
+
classDef node fill:#f8fafc,stroke:#9ca3af,color:#111827,stroke-width:1px;
|
|
138
|
+
classDef risk fill:#f3f4f6,stroke:#6b7280,color:#111827,stroke-width:1px;
|
|
139
|
+
class A,E,F,G node;
|
|
140
|
+
class B,C,D risk;
|
|
141
|
+
```
|
|
130
142
|
|
|
131
143
|
### The Problem: Vibe Coding
|
|
132
144
|
|
|
@@ -145,7 +157,7 @@ The result? Teams spend 40% of their time on rework because requirements were ne
|
|
|
145
157
|
| **Markdown** | The universal language that both humans and AI read fluently | All spec artifacts are `.md` files in your repo, versioned with Git |
|
|
146
158
|
| **MCP** | Model Context Protocol — an open standard that lets AI assistants call external tools | Specky is an MCP server; any AI IDE can connect to it |
|
|
147
159
|
| **EARS Notation** | A method for writing requirements that forces precision with 6 patterns | Eliminates vague statements like "the system should be fast" |
|
|
148
|
-
| **Agents and Skills** | Specialized AI roles that invoke Specky tools with domain expertise | 13 agents +
|
|
160
|
+
| **Agents and Skills** | Specialized AI roles that invoke Specky tools with domain expertise | 13 agents + 14 skills orchestrate the full pipeline |
|
|
149
161
|
| **CLI Toolkit** | A complete AI development package: agents + prompts + skills + hooks + MCP server | Installed via npm: `npm install -g specky-sdd` |
|
|
150
162
|
|
|
151
163
|
### How Specky Enforces Determinism
|
|
@@ -163,31 +175,30 @@ Specky adds a **deterministic engine** between your intent and your code:
|
|
|
163
175
|
|
|
164
176
|
| Capability | Specky |
|
|
165
177
|
|---|---|
|
|
166
|
-
| Complete CLI toolkit | 13 agents, 22 prompts,
|
|
178
|
+
| Complete CLI toolkit | 13 agents, 22 prompts, 14 skills, 16 hooks + 58 MCP tools |
|
|
167
179
|
| Pipeline orchestrator | @specky-orchestrator coordinates all 10 phases end-to-end |
|
|
168
180
|
| Onboarding wizard | @specky-onboarding detects context and guides setup |
|
|
169
181
|
| Any input (PDF, DOCX, PPTX, transcript, Figma) to spec | 58 MCP tools handle all input formats |
|
|
170
182
|
| EARS validation (programmatic, not AI guessing) | 6 patterns enforced at schema level |
|
|
171
183
|
| Enforced pipeline (not suggestions) | 10 phases with actual gates that block advancement |
|
|
172
|
-
| Pre/post hooks on every phase | artifact-validator, branch-validator, phase-gate, lgtm-gate |
|
|
184
|
+
| Pre/post hooks on every phase | specky-artifact-validator, specky-branch-validator, specky-phase-gate, specky-lgtm-gate |
|
|
173
185
|
| 17 diagram types generated automatically | C4 (4 levels), sequence, ER, activity, use case, DFD, deployment, network |
|
|
174
186
|
| Infrastructure as Code | Terraform, Bicep, Dockerfile from DESIGN.md |
|
|
175
187
|
| Work item export | GitHub Issues, Azure Boards, Jira via MCP-to-MCP routing |
|
|
176
188
|
| 6 compliance frameworks | HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001 built-in |
|
|
177
189
|
| Cross-artifact traceability | Requirement to design to task to test to code |
|
|
178
190
|
| Gitflow-SDD branching | spec/NNN → develop → stage → main |
|
|
179
|
-
| Unified CLI distribution | `npm install -g specky-sdd && specky install --
|
|
180
|
-
|
|
|
191
|
+
| Unified CLI distribution | `npm install -g specky-sdd && specky install --target=copilot` — one binary, multi-OS (macOS/Linux/Windows/WSL) |
|
|
192
|
+
| First-class harness targets | VS Code + Copilot, Claude Code, Cursor, OpenCode, plus shared `.agents/skills` |
|
|
181
193
|
| Zero outbound calls from the MCP server | Air-gap friendly; code never leaves your machine. The CLI's once-daily update check is [opt-out](#staying-up-to-date) |
|
|
182
194
|
| MIT open source | Fork it, extend it, audit it. No vendor lock, no seat pricing |
|
|
183
195
|
|
|
184
|
-
|
|
185
196
|
## Quick Start
|
|
186
197
|
|
|
187
198
|
### Prerequisites
|
|
188
199
|
|
|
189
200
|
- **Node.js 20+**: [Download here](https://nodejs.org/) (Node 20 LTS recommended)
|
|
190
|
-
- **An AI IDE**: VS Code with Copilot, Claude Code, Cursor, or
|
|
201
|
+
- **An AI IDE or agent CLI**: VS Code with Copilot, Claude Code, Cursor, or OpenCode
|
|
191
202
|
|
|
192
203
|
### Install the Plugin
|
|
193
204
|
|
|
@@ -204,7 +215,7 @@ cd your-project
|
|
|
204
215
|
specky install
|
|
205
216
|
```
|
|
206
217
|
|
|
207
|
-
That's it. The CLI auto-detects
|
|
218
|
+
That's it. The CLI auto-detects supported harnesses or uses the explicit target and installs the 13 agents, 22 prompts, 14 skills, 16 hooks, and MCP server registration with least-privilege tool scope for the selected harness.
|
|
208
219
|
|
|
209
220
|
**Other install modes:**
|
|
210
221
|
|
|
@@ -252,7 +263,6 @@ The orchestrator coordinates all 10 phases: Init → Discover → Specify → Cl
|
|
|
252
263
|
|
|
253
264
|
> **Tip:** **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.
|
|
254
265
|
|
|
255
|
-
|
|
256
266
|
## Where Specifications Live
|
|
257
267
|
|
|
258
268
|
Every feature gets its own numbered directory inside `.specs/`. This keeps specifications, design documents, and quality reports together as a self-contained package.
|
|
@@ -281,12 +291,27 @@ your-project/
|
|
|
281
291
|
|
|
282
292
|
**Naming convention:** `NNN-feature-name`, zero-padded number + kebab-case name. Each directory is independent; you can work on multiple features simultaneously.
|
|
283
293
|
|
|
284
|
-
|
|
285
294
|
## Input Methods: 6 Ways to Start
|
|
286
295
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
296
|
+
```mermaid
|
|
297
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
298
|
+
flowchart TB
|
|
299
|
+
P["Natural language prompt"] --> I["Specky input layer"]
|
|
300
|
+
T["Meeting transcript"] --> I
|
|
301
|
+
D["Documents<br/>PDF, DOCX, PPTX, MD"] --> I
|
|
302
|
+
F["Figma or FigJam"] --> I
|
|
303
|
+
C["Existing codebase"] --> I
|
|
304
|
+
R["Raw pasted text"] --> I
|
|
305
|
+
I --> S["sdd_init + sdd_discover"]
|
|
306
|
+
S --> A[".specs/NNN-feature<br/>research, requirements, design, tasks"]
|
|
307
|
+
|
|
308
|
+
classDef input fill:#ffffff,stroke:#9ca3af,color:#111827,stroke-width:1px;
|
|
309
|
+
classDef engine fill:#f3f4f6,stroke:#6b7280,color:#111827,stroke-width:1px;
|
|
310
|
+
classDef output fill:#f8fafc,stroke:#374151,color:#111827,stroke-width:1px;
|
|
311
|
+
class P,T,D,F,C,R input;
|
|
312
|
+
class I,S engine;
|
|
313
|
+
class A output;
|
|
314
|
+
```
|
|
290
315
|
|
|
291
316
|
Specky accepts multiple input types. Choose the one that matches your starting point:
|
|
292
317
|
|
|
@@ -312,6 +337,7 @@ Import a transcript from Teams, Zoom, or Google Meet. Specky extracts topics, de
|
|
|
312
337
|
```
|
|
313
338
|
|
|
314
339
|
The AI calls `sdd_import_transcript` → extracts:
|
|
340
|
+
|
|
315
341
|
- Participants and speakers
|
|
316
342
|
- Topics discussed with summaries
|
|
317
343
|
- Decisions made
|
|
@@ -406,15 +432,23 @@ No file? Just paste the content directly. Every import tool accepts a `raw_text`
|
|
|
406
432
|
Import this and create a specification.
|
|
407
433
|
```
|
|
408
434
|
|
|
409
|
-
|
|
410
435
|
## Three Project Types, One Pipeline
|
|
411
436
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
437
|
+
```mermaid
|
|
438
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
439
|
+
flowchart LR
|
|
440
|
+
G["Greenfield<br/>new product idea"] --> D["Discover"]
|
|
441
|
+
B["Brownfield<br/>existing codebase"] --> D
|
|
442
|
+
M["Modernization<br/>legacy migration"] --> D
|
|
443
|
+
D --> S["Specify"] --> A["Analyze"] --> I["Implement"] --> V["Verify"] --> R["Release"]
|
|
415
444
|
|
|
416
|
-
|
|
445
|
+
classDef start fill:#ffffff,stroke:#9ca3af,color:#111827,stroke-width:1px;
|
|
446
|
+
classDef phase fill:#f8fafc,stroke:#6b7280,color:#111827,stroke-width:1px;
|
|
447
|
+
class G,B,M start;
|
|
448
|
+
class D,S,A,I,V,R phase;
|
|
449
|
+
```
|
|
417
450
|
|
|
451
|
+
Specky adapts to any project type. The pipeline is the same; the **starting point** is what changes.
|
|
418
452
|
|
|
419
453
|
## Greenfield Project: Start from Scratch
|
|
420
454
|
|
|
@@ -472,6 +506,7 @@ system shall return a 400 status with a descriptive error message.
|
|
|
472
506
|
```
|
|
473
507
|
|
|
474
508
|
The AI calls `sdd_write_design` → creates `DESIGN.md` with:
|
|
509
|
+
|
|
475
510
|
- System architecture diagram (Mermaid)
|
|
476
511
|
- Data model / ER diagram
|
|
477
512
|
- API contracts with endpoints, request/response schemas
|
|
@@ -495,6 +530,7 @@ The AI calls `sdd_write_tasks` → creates `TASKS.md` with implementation tasks
|
|
|
495
530
|
```
|
|
496
531
|
|
|
497
532
|
The AI calls:
|
|
533
|
+
|
|
498
534
|
- `sdd_run_analysis` → completeness audit, orphaned criteria detection
|
|
499
535
|
- `sdd_compliance_check` → SOC2 controls validation
|
|
500
536
|
- `sdd_generate_all_diagrams` → architecture, sequence, ER, flow, dependency, traceability diagrams
|
|
@@ -506,6 +542,7 @@ The AI calls:
|
|
|
506
542
|
```
|
|
507
543
|
|
|
508
544
|
The AI calls:
|
|
545
|
+
|
|
509
546
|
- `sdd_generate_iac` → Terraform configuration
|
|
510
547
|
- `sdd_generate_dockerfile` → Dockerfile + docker-compose
|
|
511
548
|
- `sdd_generate_tests` → Test stubs with acceptance criteria mapped to test cases
|
|
@@ -520,7 +557,6 @@ The AI calls `sdd_export_work_items` + `sdd_create_pr` → generates work item p
|
|
|
520
557
|
|
|
521
558
|
> **Next:** Learn about [EARS notation](#ears-notation) to understand the requirement patterns, or see [All 58 Tools](#all-58-tools) for a complete reference.
|
|
522
559
|
|
|
523
|
-
|
|
524
560
|
## Brownfield Project: Add Features to Existing Code
|
|
525
561
|
|
|
526
562
|
**Scenario:** You have a running application and need to add a new feature with proper specifications.
|
|
@@ -591,7 +627,6 @@ The AI calls `sdd_cross_analyze` → checks for contradictions, shared dependenc
|
|
|
591
627
|
|
|
592
628
|
> **Next:** **Next:** See [compliance frameworks](#compliance-frameworks) for regulatory validation, or [MCP integration](#mcp-integration-architecture) for routing to external tools.
|
|
593
629
|
|
|
594
|
-
|
|
595
630
|
## Modernization Project: Assess and Upgrade Legacy Systems
|
|
596
631
|
|
|
597
632
|
**Scenario:** You have a legacy system that needs assessment, documentation, and incremental modernization.
|
|
@@ -633,6 +668,7 @@ The AI calls `sdd_batch_transcripts` → extracts decisions, requirements, const
|
|
|
633
668
|
```
|
|
634
669
|
|
|
635
670
|
The specification accounts for:
|
|
671
|
+
|
|
636
672
|
- Current system behavior (from codebase scan)
|
|
637
673
|
- Existing documentation (from imported docs)
|
|
638
674
|
- Stakeholder decisions (from meeting transcripts)
|
|
@@ -656,6 +692,7 @@ The AI calls `sdd_compliance_check` → validates the specification against regu
|
|
|
656
692
|
```
|
|
657
693
|
|
|
658
694
|
The AI calls:
|
|
695
|
+
|
|
659
696
|
- `sdd_implement` → phased implementation plan with checkpoints
|
|
660
697
|
- `sdd_generate_iac` → infrastructure configuration for the target environment
|
|
661
698
|
- `sdd_generate_runbook` → operational runbook with rollback procedures
|
|
@@ -668,14 +705,27 @@ The AI calls:
|
|
|
668
705
|
|
|
669
706
|
The AI calls `sdd_generate_onboarding` → creates a guide covering architecture decisions, codebase navigation, development workflow, and testing strategy.
|
|
670
707
|
|
|
671
|
-
> **Next:**
|
|
672
|
-
|
|
708
|
+
> **Next:** See [compliance frameworks](#compliance-frameworks) for regulatory validation during modernization, or [project configuration](#project-configuration) to customize Specky for your team.
|
|
673
709
|
|
|
674
710
|
## Pipeline and LGTM Gates
|
|
675
711
|
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
712
|
+
```mermaid
|
|
713
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
714
|
+
flowchart LR
|
|
715
|
+
I["Init"] --> D["Discover"] --> S["Specify"] --> G1{"LGTM gate"}
|
|
716
|
+
G1 -->|approved| C["Clarify"] --> A["Design"] --> G2{"LGTM gate"}
|
|
717
|
+
G2 -->|approved| T["Tasks"] --> G3{"LGTM gate"}
|
|
718
|
+
G3 -->|approved| N["Analyze"] --> P["Implement"] --> V["Verify"] --> R["Release"]
|
|
719
|
+
G1 -->|changes requested| S
|
|
720
|
+
G2 -->|changes requested| A
|
|
721
|
+
G3 -->|changes requested| T
|
|
722
|
+
V -->|drift detected| S
|
|
723
|
+
|
|
724
|
+
classDef phase fill:#f8fafc,stroke:#6b7280,color:#111827,stroke-width:1px;
|
|
725
|
+
classDef gate fill:#f3f4f6,stroke:#374151,color:#111827,stroke-width:1px;
|
|
726
|
+
class I,D,S,C,A,T,N,P,V,R phase;
|
|
727
|
+
class G1,G2,G3 gate;
|
|
728
|
+
```
|
|
679
729
|
|
|
680
730
|
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.
|
|
681
731
|
|
|
@@ -691,9 +741,14 @@ Every Specky project follows the same 10-phase pipeline. The state machine **blo
|
|
|
691
741
|
|
|
692
742
|
The AI calls `sdd_advance_phase` → moves the pipeline forward if all prerequisites are met.
|
|
693
743
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
744
|
+
```mermaid
|
|
745
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
746
|
+
flowchart LR
|
|
747
|
+
P0["0 Init"] --> P1["1 Discover"] --> P2["2 Specify"] --> P3["3 Clarify"] --> P4["4 Design"] --> P5["5 Tasks"] --> P6["6 Analyze"] --> P7["7 Implement"] --> P8["8 Verify"] --> P9["9 Release"]
|
|
748
|
+
|
|
749
|
+
classDef phase fill:#ffffff,stroke:#9ca3af,color:#111827,stroke-width:1px;
|
|
750
|
+
class P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 phase;
|
|
751
|
+
```
|
|
697
752
|
|
|
698
753
|
| Phase | What Happens | Required Output |
|
|
699
754
|
|-------|-------------|----------------|
|
|
@@ -710,7 +765,6 @@ The AI calls `sdd_advance_phase` → moves the pipeline forward if all prerequis
|
|
|
710
765
|
|
|
711
766
|
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.
|
|
712
767
|
|
|
713
|
-
|
|
714
768
|
## All 58 Tools
|
|
715
769
|
|
|
716
770
|
### Input and Conversion (6)
|
|
@@ -846,22 +900,40 @@ All artifacts are saved in [`.specs/NNN-feature/`](#where-specifications-live).
|
|
|
846
900
|
|------|-------------|
|
|
847
901
|
| `sdd_verify_audit` | Verify the hash-chained audit trail (`.audit.jsonl`) for tamper evidence and report chain integrity |
|
|
848
902
|
|
|
849
|
-
|
|
850
903
|
## The Spec-Driven Development Platform
|
|
851
904
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
905
|
+
```mermaid
|
|
906
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
907
|
+
C4Context
|
|
908
|
+
title Specky C4 Context
|
|
909
|
+
Person(dev, "Developer / AI operator", "Uses an AI IDE to deliver features through SDD")
|
|
910
|
+
System_Boundary(specky, "Specky SDD Platform") {
|
|
911
|
+
System(cli, "specky CLI", "Installs target-native agents, prompts, skills, hooks, and MCP registration")
|
|
912
|
+
System(mcp, "Specky MCP Server", "Executes 58 validated SDD tools and the 10-phase state machine")
|
|
913
|
+
System(apm, "APM Primitive Source", "Canonical .apm agents, prompts, skills, instructions, and hooks")
|
|
914
|
+
}
|
|
915
|
+
System_Ext(specKit, "Spec-Kit", "Methodology and prompt patterns")
|
|
916
|
+
System_Ext(aiIde, "AI IDE", "GitHub Copilot, Claude Code, Cursor, OpenCode")
|
|
917
|
+
System_Ext(externalMcp, "External MCP ecosystem", "GitHub, Azure DevOps, Jira, Terraform, Figma, Docker")
|
|
918
|
+
|
|
919
|
+
Rel(dev, aiIde, "asks for feature delivery")
|
|
920
|
+
Rel(aiIde, cli, "installs assets with")
|
|
921
|
+
Rel(cli, apm, "compiles from")
|
|
922
|
+
Rel(aiIde, mcp, "calls SDD tools through MCP")
|
|
923
|
+
Rel(mcp, externalMcp, "returns routing payloads for")
|
|
924
|
+
Rel(specKit, apm, "informs methodology encoded in")
|
|
925
|
+
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
|
|
926
|
+
```
|
|
855
927
|
|
|
856
928
|
### How Spec-Kit and Specky Complement Each Other
|
|
857
929
|
|
|
858
930
|
**Spec-Kit** — the open-source SDD methodology from [github/spec-kit](https://github.com/github/spec-kit), extended in [paulasilvatech/spec-kit](https://github.com/paulasilvatech/spec-kit) — provides a constitution model, gated workflow phases expressed as prompt templates, and broad coding-assistant support. It defines **what** to do. (Upstream Spec-Kit's phases are advisory prompts; the **EARS** requirements notation and programmatic enforcement below are Specky's additions — EARS was popularized for AI specs by AWS Kiro and originates in the Mavin/Rolls-Royce EARS approach.)
|
|
859
931
|
|
|
860
|
-
**Specky** is the CLI toolkit that reimplements that methodology as 58 enforceable MCP tools with 13 agents, 22 prompts,
|
|
932
|
+
**Specky** is the CLI toolkit that reimplements that methodology as 58 enforceable MCP tools with 13 agents, 22 prompts, 14 skills, and 16 hooks. It enforces **how** to do it.
|
|
861
933
|
|
|
862
934
|
| | Spec-Kit (Methodology) | Specky (Plugin) |
|
|
863
935
|
|--|------------------------|-----------------|
|
|
864
|
-
| **What it is** | Prompt templates + agent definitions | CLI toolkit: 13 agents + 58 MCP tools + 22 prompts +
|
|
936
|
+
| **What it is** | Prompt templates + agent definitions | CLI toolkit: 13 agents + 58 MCP tools + 22 prompts + 14 skills + 16 hooks |
|
|
865
937
|
| **How it works** | AI reads `.md` templates and follows instructions | AI calls agents that orchestrate tools with hook validation |
|
|
866
938
|
| **Validation** | AI tries to follow the prompts | State machine, EARS regex, Zod schemas, pre/post hooks |
|
|
867
939
|
| **Install** | Copy `.github/agents/` and `.claude/commands/` | `npm install -g specky-sdd && specky install` |
|
|
@@ -884,7 +956,7 @@ Together they form the **SDD layer** of the GitHub + Microsoft enterprise platfo
|
|
|
884
956
|
}
|
|
885
957
|
```
|
|
886
958
|
|
|
887
|
-
> **Note:** This example assumes Specky is installed via `specky install --
|
|
959
|
+
> **Note:** This example assumes Specky is installed via `specky install --target=copilot` (after `npm install -g specky-sdd@latest`). See [Quick Start](#quick-start) for details.
|
|
888
960
|
|
|
889
961
|
## Project Configuration
|
|
890
962
|
|
|
@@ -910,7 +982,6 @@ pipeline:
|
|
|
910
982
|
|
|
911
983
|
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. `profile: enterprise` turns audit, RBAC, rate limiting, and fail-closed auditing on by default (explicit values win) — see [docs/ENTERPRISE-DEPLOYMENT.md](docs/ENTERPRISE-DEPLOYMENT.md). With `pipeline.require_lgtm: true`, the LGTM quality gates become server-enforced instead of an agent convention: advancing past Specify/Design/Tasks requires the explicit `lgtm: true` input on `sdd_advance_phase`.
|
|
912
984
|
|
|
913
|
-
|
|
914
985
|
## Staying up to date
|
|
915
986
|
|
|
916
987
|
Specky tells you about new versions in two ways:
|
|
@@ -930,12 +1001,30 @@ Teams pinning per-project (`npm install --save-dev specky-sdd`) should let [Reno
|
|
|
930
1001
|
|
|
931
1002
|
**Opt out** of the registry check with `SPECKY_NO_UPDATE_CHECK=1` in the environment or `update_check: false` in `.specky/config.yml`. The drift warning stays on — it never touches the network.
|
|
932
1003
|
|
|
933
|
-
|
|
934
1004
|
## MCP Integration Architecture
|
|
935
1005
|
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
1006
|
+
```mermaid
|
|
1007
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
1008
|
+
flowchart TB
|
|
1009
|
+
User["Developer / AI operator"] --> Client["AI client<br/>Copilot, Claude, Cursor, OpenCode"]
|
|
1010
|
+
Client --> Specky["Specky MCP Server<br/>58 SDD tools"]
|
|
1011
|
+
Specky --> Payload["Structured routing payload<br/>JSON, artifacts, next actions"]
|
|
1012
|
+
Payload --> Client
|
|
1013
|
+
|
|
1014
|
+
Client --> GitHub["GitHub MCP<br/>issues, PRs, repos"]
|
|
1015
|
+
Client --> AzureBoards["Azure DevOps MCP<br/>work items, boards"]
|
|
1016
|
+
Client --> Jira["Jira MCP<br/>issues, projects"]
|
|
1017
|
+
Client --> Terraform["Terraform MCP<br/>plan, validate, apply"]
|
|
1018
|
+
Client --> Figma["Figma MCP<br/>design context"]
|
|
1019
|
+
Client --> Docker["Docker MCP<br/>local dev environments"]
|
|
1020
|
+
|
|
1021
|
+
classDef core fill:#f8fafc,stroke:#374151,color:#111827,stroke-width:1px;
|
|
1022
|
+
classDef mcp fill:#ffffff,stroke:#9ca3af,color:#111827,stroke-width:1px;
|
|
1023
|
+
classDef payload fill:#f3f4f6,stroke:#6b7280,color:#111827,stroke-width:1px;
|
|
1024
|
+
class User,Client,Specky core;
|
|
1025
|
+
class Payload payload;
|
|
1026
|
+
class GitHub,AzureBoards,Jira,Terraform,Figma,Docker mcp;
|
|
1027
|
+
```
|
|
939
1028
|
|
|
940
1029
|
Specky outputs structured JSON with routing instructions. Your AI client calls the appropriate external MCP server:
|
|
941
1030
|
|
|
@@ -962,7 +1051,6 @@ Specky --> sdd_figma_to_spec(file_key: "abc123") --> Figma request
|
|
|
962
1051
|
| **Figma MCP** | Design context, FigJam diagrams |
|
|
963
1052
|
| **Docker MCP** | Local dev environments |
|
|
964
1053
|
|
|
965
|
-
|
|
966
1054
|
## EARS Notation
|
|
967
1055
|
|
|
968
1056
|
Every requirement in Specky follows EARS (Easy Approach to Requirements Syntax):
|
|
@@ -978,7 +1066,6 @@ Every requirement in Specky follows EARS (Easy Approach to Requirements Syntax):
|
|
|
978
1066
|
|
|
979
1067
|
The EARS validator programmatically checks every requirement against these 6 patterns. Vague terms like "fast", "good", "easy" are flagged automatically.
|
|
980
1068
|
|
|
981
|
-
|
|
982
1069
|
## Compliance Frameworks
|
|
983
1070
|
|
|
984
1071
|
Built-in compliance checking against:
|
|
@@ -989,7 +1076,6 @@ Built-in compliance checking against:
|
|
|
989
1076
|
- **PCI-DSS**: Firewall, stored data protection, encryption, user identification
|
|
990
1077
|
- **ISO 27001**: Security policies, access control, cryptography, incident management
|
|
991
1078
|
|
|
992
|
-
|
|
993
1079
|
## Educative Outputs
|
|
994
1080
|
|
|
995
1081
|
Every tool response includes structured guidance:
|
|
@@ -1003,16 +1089,29 @@ Every tool response includes structured guidance:
|
|
|
1003
1089
|
}
|
|
1004
1090
|
```
|
|
1005
1091
|
|
|
1006
|
-
|
|
1007
1092
|
## Complete Pipeline Flow
|
|
1008
1093
|
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1094
|
+
```mermaid
|
|
1095
|
+
%%{init: {"theme":"base","themeVariables":{"background":"#ffffff","primaryColor":"#f8fafc","primaryBorderColor":"#9ca3af","primaryTextColor":"#111827","secondaryColor":"#f3f4f6","tertiaryColor":"#e5e7eb","lineColor":"#6b7280","fontFamily":"Segoe UI, Arial, sans-serif"}}}%%
|
|
1096
|
+
flowchart LR
|
|
1097
|
+
Input["Any input"] --> Research["Discover<br/>research and constraints"]
|
|
1098
|
+
Research --> Spec["Specify<br/>EARS requirements"]
|
|
1099
|
+
Spec --> Design["Design<br/>architecture, APIs, data"]
|
|
1100
|
+
Design --> Tasks["Tasks<br/>dependency-ordered work"]
|
|
1101
|
+
Tasks --> Build["Implement<br/>code, IaC, tests"]
|
|
1102
|
+
Build --> Verify["Verify<br/>drift and phantom task checks"]
|
|
1103
|
+
Verify --> Release["Release<br/>PR, work items, runbook"]
|
|
1104
|
+
Release --> Ops["Production-ready package"]
|
|
1105
|
+
Verify -->|drift found| Spec
|
|
1106
|
+
|
|
1107
|
+
classDef step fill:#ffffff,stroke:#9ca3af,color:#111827,stroke-width:1px;
|
|
1108
|
+
classDef terminal fill:#f3f4f6,stroke:#374151,color:#111827,stroke-width:1px;
|
|
1109
|
+
class Input,Research,Spec,Design,Tasks,Build,Verify,Release step;
|
|
1110
|
+
class Ops terminal;
|
|
1111
|
+
```
|
|
1012
1112
|
|
|
1013
1113
|
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).
|
|
1014
1114
|
|
|
1015
|
-
|
|
1016
1115
|
## Enterprise Ready
|
|
1017
1116
|
|
|
1018
1117
|
Specky is built with enterprise adoption in mind.
|
|
@@ -1030,7 +1129,7 @@ Specky is 100% open source (MIT) — enterprise mode is just an opt-in configura
|
|
|
1030
1129
|
- **No `eval()` or dynamic code execution** — template rendering is string replacement only
|
|
1031
1130
|
- **Path traversal prevention**: FileManager sanitizes all paths, blocks `..` sequences
|
|
1032
1131
|
- **Zod `.strict()` validation** — every tool input is schema-validated; unknown fields rejected
|
|
1033
|
-
- **security-scan hook** blocks commits containing hardcoded secrets (exit code 2)
|
|
1132
|
+
- **specky-security-scan hook** blocks commits containing hardcoded secrets (exit code 2)
|
|
1034
1133
|
- See [SECURITY.md](SECURITY.md) for full OWASP Top 10 coverage
|
|
1035
1134
|
- See [docs/SYSTEM-DESIGN.md](docs/SYSTEM-DESIGN.md) for complete security architecture
|
|
1036
1135
|
- See [docs/ENTERPRISE-CONTROLS.md](docs/ENTERPRISE-CONTROLS.md) for RBAC, audit trail, and tool-enforcement controls
|
|
@@ -1050,7 +1149,7 @@ When using Specky, follow these practices to protect your data:
|
|
|
1050
1149
|
| **Protect the `.specs/` directory** | Contains your specification artifacts (architecture, API contracts, business logic) | Add `.specs/` to `.gitignore` if specs contain sensitive IP, or use a private repo |
|
|
1051
1150
|
| **Protect checkpoints** | `.specs/{feature}/.checkpoints/` stores full artifact snapshots | Same as above — treat checkpoints like source code |
|
|
1052
1151
|
| **Review auto-generated specs before committing** | Turnkey and auto-pipeline generate from natural language — may capture sensitive details | Review SPECIFICATION.md and DESIGN.md before `git add` |
|
|
1053
|
-
| **Keep the security-scan hook enabled** | Detects API keys, passwords, tokens in staged files | Comes pre-configured; don't disable `.claude/hooks/security-scan.sh` |
|
|
1152
|
+
| **Keep the specky-security-scan hook enabled** | Detects API keys, passwords, tokens in staged files | Comes pre-configured; don't disable `.claude/hooks/specky-security-scan.sh` |
|
|
1054
1153
|
| **Use environment variables for secrets** | Specky never stores credentials, but your specs might reference them | Write `$DATABASE_URL` in specs, never the actual connection string |
|
|
1055
1154
|
| **Run `npm audit` regularly** | Catches dependency vulnerabilities | `npm audit` — CI runs this automatically on every PR |
|
|
1056
1155
|
|
|
@@ -1095,7 +1194,6 @@ Every pipeline phase produces a traceable artifact in `.specs/NNN-feature/`. The
|
|
|
1095
1194
|
- **Phase Enforcement** — state machine blocks phase-skipping; required files gate advancement
|
|
1096
1195
|
- **Unit tests** — CI enforces thresholds on every push
|
|
1097
1196
|
|
|
1098
|
-
|
|
1099
1197
|
## Development
|
|
1100
1198
|
|
|
1101
1199
|
```bash
|
|
@@ -1120,9 +1218,9 @@ npm run dev
|
|
|
1120
1218
|
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
|
|
1121
1219
|
|
|
1122
1220
|
# Run the published image from GHCR (multi-arch: linux/amd64 + linux/arm64)
|
|
1123
|
-
docker pull ghcr.io/paulasilvatech/specky:latest # or pin a release: :3.
|
|
1221
|
+
docker pull ghcr.io/paulasilvatech/specky:latest # or pin a release: :3.9.0
|
|
1124
1222
|
docker run --rm -p 3200:3200 ghcr.io/paulasilvatech/specky:latest
|
|
1125
|
-
curl http://localhost:3200/health # -> {"status":"ok","version":"3.
|
|
1223
|
+
curl http://localhost:3200/health # -> {"status":"ok","version":"3.9.0"}
|
|
1126
1224
|
|
|
1127
1225
|
# Or build and run locally from source
|
|
1128
1226
|
docker build -t specky-sdd:dev .
|
|
@@ -1135,7 +1233,6 @@ and serves an unauthenticated `GET /health`. For hardened/authenticated
|
|
|
1135
1233
|
deployments (enterprise profile, token auth, TLS proxy, private packages) see
|
|
1136
1234
|
[docs/ENTERPRISE-DEPLOYMENT.md](docs/ENTERPRISE-DEPLOYMENT.md).
|
|
1137
1235
|
|
|
1138
|
-
|
|
1139
1236
|
## Roadmap
|
|
1140
1237
|
|
|
1141
1238
|
### v3.7 (current)
|
|
@@ -1144,7 +1241,7 @@ deployments (enterprise profile, token auth, TLS proxy, private packages) see
|
|
|
1144
1241
|
|------------|--------|
|
|
1145
1242
|
| 58 MCP tools across 10 enforced pipeline phases | Stable |
|
|
1146
1243
|
| Unified `specky` CLI: install, doctor, status, upgrade, hooks, serve | Stable |
|
|
1147
|
-
|
|
|
1244
|
+
| Target-specific install: `--target=copilot`, `claude`, `cursor`, `opencode`, or `agent-skills` | Stable |
|
|
1148
1245
|
| Copilot-safe hook manifests (no lifecycle event cross-read) | Stable |
|
|
1149
1246
|
| Phase validation on every tool with gate enforcement | Stable |
|
|
1150
1247
|
| 17 software engineering diagram types (C4, sequence, ER, DFD, deployment, network) | Stable |
|
|
@@ -1160,7 +1257,7 @@ deployments (enterprise profile, token auth, TLS proxy, private packages) see
|
|
|
1160
1257
|
| Test traceability: REQ-ID → test coverage mapping | Stable |
|
|
1161
1258
|
| Intent drift detection with amendment suggestions | Stable |
|
|
1162
1259
|
| 16 automation hooks (advisory-default, strict opt-in via SPECKY_GUARD) | Stable |
|
|
1163
|
-
| 13 specialized agents + 22 prompts +
|
|
1260
|
+
| 13 specialized agents + 22 prompts + 14 skills | Stable |
|
|
1164
1261
|
| 6 compliance frameworks (HIPAA, SOC2, GDPR, PCI-DSS, ISO 27001) | Stable |
|
|
1165
1262
|
| 6 input types (transcript, PDF, DOCX, Figma, codebase, raw text) | Stable |
|
|
1166
1263
|
| Test generation for 6 frameworks (vitest, jest, playwright, pytest, junit, xunit) | Stable |
|
|
@@ -1188,7 +1285,6 @@ deployments (enterprise profile, token auth, TLS proxy, private packages) see
|
|
|
1188
1285
|
|
|
1189
1286
|
Have a feature request? [Open an issue](https://github.com/paulasilvatech/specky/issues).
|
|
1190
1287
|
|
|
1191
|
-
|
|
1192
1288
|
## Examples
|
|
1193
1289
|
|
|
1194
1290
|
See [`examples/`](examples/) for a complete, real spec package generated by
|
|
@@ -1197,12 +1293,10 @@ is a greenfield REST API taken from `sdd_init` all the way to an `APPROVE`
|
|
|
1197
1293
|
quality gate at 100% traceability. `examples/specky-verify.example.yml` is a
|
|
1198
1294
|
drop-in GitHub Action that verifies EARS + the quality gate on every PR.
|
|
1199
1295
|
|
|
1200
|
-
|
|
1201
1296
|
## Contributing
|
|
1202
1297
|
|
|
1203
1298
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details and how to add tools, templates, or services.
|
|
1204
1299
|
|
|
1205
|
-
|
|
1206
1300
|
## Links
|
|
1207
1301
|
|
|
1208
1302
|
- [CHANGELOG.md](CHANGELOG.md): Version history and release notes
|
|
@@ -1211,7 +1305,6 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details and how to add t
|
|
|
1211
1305
|
- [Spec-Kit](https://github.com/paulasilvatech/spec-kit): The SDD methodology foundation
|
|
1212
1306
|
- [npm package](https://www.npmjs.com/package/specky-sdd): `specky-sdd` on npm
|
|
1213
1307
|
|
|
1214
|
-
|
|
1215
1308
|
## License
|
|
1216
1309
|
|
|
1217
1310
|
MIT. Created by [Paula Silva](https://github.com/paulasilvatech) | Americas Software GBB, Microsoft
|