specky-sdd 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +446 -0
  3. package/dist/constants.d.ts +68 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +120 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/index.d.ts +10 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +95 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/schemas/common.d.ts +8 -0
  12. package/dist/schemas/common.d.ts.map +1 -0
  13. package/dist/schemas/common.js +18 -0
  14. package/dist/schemas/common.js.map +1 -0
  15. package/dist/schemas/pipeline.d.ts +296 -0
  16. package/dist/schemas/pipeline.d.ts.map +1 -0
  17. package/dist/schemas/pipeline.js +132 -0
  18. package/dist/schemas/pipeline.js.map +1 -0
  19. package/dist/schemas/transcript.d.ts +59 -0
  20. package/dist/schemas/transcript.d.ts.map +1 -0
  21. package/dist/schemas/transcript.js +61 -0
  22. package/dist/schemas/transcript.js.map +1 -0
  23. package/dist/schemas/utility.d.ts +92 -0
  24. package/dist/schemas/utility.d.ts.map +1 -0
  25. package/dist/schemas/utility.js +82 -0
  26. package/dist/schemas/utility.js.map +1 -0
  27. package/dist/services/codebase-scanner.d.ts +24 -0
  28. package/dist/services/codebase-scanner.d.ts.map +1 -0
  29. package/dist/services/codebase-scanner.js +185 -0
  30. package/dist/services/codebase-scanner.js.map +1 -0
  31. package/dist/services/ears-validator.d.ts +29 -0
  32. package/dist/services/ears-validator.d.ts.map +1 -0
  33. package/dist/services/ears-validator.js +163 -0
  34. package/dist/services/ears-validator.js.map +1 -0
  35. package/dist/services/file-manager.d.ts +56 -0
  36. package/dist/services/file-manager.d.ts.map +1 -0
  37. package/dist/services/file-manager.js +203 -0
  38. package/dist/services/file-manager.js.map +1 -0
  39. package/dist/services/state-machine.d.ts +46 -0
  40. package/dist/services/state-machine.d.ts.map +1 -0
  41. package/dist/services/state-machine.js +167 -0
  42. package/dist/services/state-machine.js.map +1 -0
  43. package/dist/services/template-engine.d.ts +37 -0
  44. package/dist/services/template-engine.d.ts.map +1 -0
  45. package/dist/services/template-engine.js +111 -0
  46. package/dist/services/template-engine.js.map +1 -0
  47. package/dist/services/transcript-parser.d.ts +61 -0
  48. package/dist/services/transcript-parser.d.ts.map +1 -0
  49. package/dist/services/transcript-parser.js +810 -0
  50. package/dist/services/transcript-parser.js.map +1 -0
  51. package/dist/tools/analysis.d.ts +10 -0
  52. package/dist/tools/analysis.d.ts.map +1 -0
  53. package/dist/tools/analysis.js +95 -0
  54. package/dist/tools/analysis.js.map +1 -0
  55. package/dist/tools/pipeline.d.ts +11 -0
  56. package/dist/tools/pipeline.d.ts.map +1 -0
  57. package/dist/tools/pipeline.js +583 -0
  58. package/dist/tools/pipeline.js.map +1 -0
  59. package/dist/tools/transcript.d.ts +14 -0
  60. package/dist/tools/transcript.d.ts.map +1 -0
  61. package/dist/tools/transcript.js +813 -0
  62. package/dist/tools/transcript.js.map +1 -0
  63. package/dist/tools/utility.d.ts +10 -0
  64. package/dist/tools/utility.d.ts.map +1 -0
  65. package/dist/tools/utility.js +239 -0
  66. package/dist/tools/utility.js.map +1 -0
  67. package/dist/types.d.ts +161 -0
  68. package/dist/types.d.ts.map +1 -0
  69. package/dist/types.js +6 -0
  70. package/dist/types.js.map +1 -0
  71. package/package.json +53 -0
  72. package/templates/analysis.md +54 -0
  73. package/templates/bugfix.md +45 -0
  74. package/templates/constitution.md +56 -0
  75. package/templates/design.md +47 -0
  76. package/templates/specification.md +49 -0
  77. package/templates/sync-report.md +43 -0
  78. package/templates/tasks.md +38 -0
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Paula Silva (@paulasilvatech, @paulanunes85)
4
+ Americas Software GBB
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,446 @@
1
+ # Specky
2
+
3
+ **The open-source MCP server for Spec-Driven Development (SDD).**
4
+
5
+ *The fun name, the serious engine.*
6
+
7
+ ![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)
8
+ ![License](https://img.shields.io/badge/license-MIT-green.svg)
9
+ ![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)
10
+ ![MCP](https://img.shields.io/badge/MCP-compatible-purple.svg)
11
+ ![Tools](https://img.shields.io/badge/MCP_tools-17-orange.svg)
12
+
13
+ **Created by [Paula Silva](https://github.com/paulasilvatech)** ([@paulanunes85](https://twitter.com/paulanunes85)) | Americas Software GBB
14
+
15
+ ---
16
+
17
+ ## What is Specky?
18
+
19
+ Specky is an **MCP server** that transforms natural language project ideas — or meeting transcripts — into production-grade specifications. It enforces **EARS notation** (Easy Approach to Requirements Syntax), maintains a **state machine** across 7 pipeline phases, and writes real files to disk.
20
+
21
+ ```
22
+ You ──→ AI Assistant ──→ Specky (17 tools) ──→ .specs/ files on disk
23
+ (Copilot/Claude) CONSTITUTION.md
24
+ SPECIFICATION.md
25
+ DESIGN.md
26
+ TASKS.md
27
+ ANALYSIS.md
28
+ ```
29
+
30
+ ### What is MCP?
31
+
32
+ **MCP (Model Context Protocol)** is an open standard that lets AI assistants call external tools. Think of it like USB — a universal plug between any AI and any tool. Specky is a "device" that speaks MCP, giving Copilot and Claude the ability to create structured specification files.
33
+
34
+ ### Key Features
35
+
36
+ - **17 MCP tools** for the full specification lifecycle
37
+ - **EARS notation** validation with 6 pattern types and improvement suggestions
38
+ - **7-phase pipeline** with state machine enforcement
39
+ - **Meeting transcript → full spec** — VTT, SRT, TXT, MD formats
40
+ - **Power Automate + OneDrive** integration for automated workflows
41
+ - **Quality gates** with traceability matrix and coverage analysis
42
+ - **Atomic file writes** — safe, no corruption on crash
43
+ - **Auto-steering** — scans your codebase to tailor discovery questions
44
+ - **Zero external dependencies** — runs entirely local, no API calls
45
+ - **GitHub Copilot agents** + **Claude Code commands** included
46
+
47
+ ### Two Ways to Use
48
+
49
+ | Mode | How | Best For |
50
+ |------|-----|----------|
51
+ | **Interactive** | Conversation with AI, step by step | New projects, learning SDD |
52
+ | **Transcript** | Feed a meeting recording, get full spec | Existing meetings, automation |
53
+
54
+ ---
55
+
56
+ ## Quick Start
57
+
58
+ ### npx (recommended)
59
+
60
+ ```bash
61
+ npx specky
62
+ ```
63
+
64
+ ### npm global install
65
+
66
+ ```bash
67
+ npm install -g specky
68
+ specky
69
+ ```
70
+
71
+ ### Docker
72
+
73
+ ```bash
74
+ docker compose up
75
+ # Server starts on http://localhost:3200
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Setup
81
+
82
+ ### VS Code (GitHub Copilot)
83
+
84
+ Create or update `.vscode/mcp.json`:
85
+
86
+ ```json
87
+ {
88
+ "servers": {
89
+ "specky": {
90
+ "command": "npx",
91
+ "args": ["-y", "specky"],
92
+ "env": {
93
+ "SDD_WORKSPACE": "${workspaceFolder}"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ ```
99
+
100
+ ### Claude Code
101
+
102
+ ```bash
103
+ # Quick setup (one command):
104
+ claude mcp add specky npx -y specky --env SDD_WORKSPACE=$(pwd)
105
+ ```
106
+
107
+ Or manually add to MCP settings:
108
+
109
+ ```json
110
+ {
111
+ "mcpServers": {
112
+ "specky": {
113
+ "command": "npx",
114
+ "args": ["-y", "specky"],
115
+ "env": {
116
+ "SDD_WORKSPACE": "/path/to/your/project"
117
+ }
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ ### Claude Desktop
124
+
125
+ Add to `claude_desktop_config.json`:
126
+
127
+ | OS | Config File Location |
128
+ |----|---------------------|
129
+ | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
130
+ | Linux | `~/.config/Claude/claude_desktop_config.json` |
131
+ | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
132
+
133
+ ```json
134
+ {
135
+ "mcpServers": {
136
+ "specky": {
137
+ "command": "npx",
138
+ "args": ["-y", "specky"],
139
+ "env": {
140
+ "SDD_WORKSPACE": "/path/to/your/project"
141
+ }
142
+ }
143
+ }
144
+ }
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Meeting Transcript to Specs (Auto Pipeline)
150
+
151
+ **One command. Full specification from a Teams/Zoom meeting.**
152
+
153
+ ```
154
+ /sdd:transcript meeting.vtt my-project
155
+ ```
156
+
157
+ Or call the tool directly:
158
+
159
+ ```json
160
+ {
161
+ "name": "sdd_auto_pipeline",
162
+ "arguments": {
163
+ "file_path": "meeting.vtt",
164
+ "project_name": "my-project"
165
+ }
166
+ }
167
+ ```
168
+
169
+ **What happens automatically:**
170
+
171
+ 1. Parses the VTT/SRT/TXT/MD transcript
172
+ 2. Extracts participants, topics, decisions, action items
173
+ 3. Generates EARS requirements from meeting content
174
+ 4. Creates all 6 spec files in one call:
175
+
176
+ | File | Content |
177
+ |------|---------|
178
+ | `CONSTITUTION.md` | Project charter with principles from the meeting |
179
+ | `SPECIFICATION.md` | EARS requirements extracted from decisions and discussions |
180
+ | `DESIGN.md` | Architecture overview based on topics discussed |
181
+ | `TASKS.md` | Implementation tasks from requirements + action items |
182
+ | `ANALYSIS.md` | Traceability matrix and quality gate |
183
+ | `TRANSCRIPT.md` | Clean markdown version of the meeting |
184
+
185
+ **Supported formats:**
186
+
187
+ | Format | Source | Extension |
188
+ |--------|--------|-----------|
189
+ | WebVTT | Microsoft Teams | `.vtt` |
190
+ | SubRip | Zoom | `.srt` |
191
+ | Plain text | Otter.ai, manual notes | `.txt` |
192
+ | Markdown | Any structured notes | `.md` |
193
+
194
+ ### Power Automate + OneDrive Integration
195
+
196
+ For fully automated meeting-to-spec workflows:
197
+
198
+ ```
199
+ Teams Meeting → Power Automate → OneDrive/Transcripts/ → sdd_batch_transcripts → .specs/
200
+ ```
201
+
202
+ **Power Automate flow:**
203
+ 1. Trigger: "When a Teams meeting recording is available"
204
+ 2. Action: Get the meeting transcript
205
+ 3. Action: Convert to Markdown
206
+ 4. Action: Save to `OneDrive/Transcripts/{meeting-title}.md`
207
+
208
+ **Specky picks up from there:**
209
+
210
+ ```json
211
+ {
212
+ "name": "sdd_batch_transcripts",
213
+ "arguments": {
214
+ "transcripts_dir": "~/OneDrive/Transcripts"
215
+ }
216
+ }
217
+ ```
218
+
219
+ Each transcript in the folder becomes its own numbered feature spec package (`001-sprint-planning/`, `002-architecture-review/`, etc.) with 6 files each.
220
+
221
+ ---
222
+
223
+ ## Pipeline Overview
224
+
225
+ ```
226
+ sdd_init → sdd_discover → sdd_write_spec → sdd_clarify → sdd_write_design → sdd_write_tasks → sdd_run_analysis
227
+ ```
228
+
229
+ Each phase produces a Markdown artifact in `.specs/001-your-feature/`:
230
+
231
+ | Phase | Tool | Output |
232
+ |-------|------|--------|
233
+ | Init | `sdd_init` | `CONSTITUTION.md` |
234
+ | Discover | `sdd_discover` | 7 structured questions (JSON) |
235
+ | Specify | `sdd_write_spec` | `SPECIFICATION.md` |
236
+ | Clarify | `sdd_clarify` | 5 disambiguation questions (JSON) |
237
+ | Design | `sdd_write_design` | `DESIGN.md` |
238
+ | Tasks | `sdd_write_tasks` | `TASKS.md` |
239
+ | Analyze | `sdd_run_analysis` | `ANALYSIS.md` + gate decision |
240
+
241
+ ---
242
+
243
+ ## Tool Reference
244
+
245
+ ### Pipeline Tools (8)
246
+
247
+ | Tool | Description | R/W |
248
+ |------|-------------|-----|
249
+ | `sdd_init` | Creates `.specs/` directory, writes CONSTITUTION.md, initializes state machine | Write |
250
+ | `sdd_discover` | Returns 7 tailored discovery questions based on your project idea | Read |
251
+ | `sdd_write_spec` | Validates EARS notation and writes SPECIFICATION.md | Write |
252
+ | `sdd_clarify` | Identifies ambiguous requirements, returns disambiguation questions | Read |
253
+ | `sdd_write_design` | Writes DESIGN.md with Mermaid diagrams, ADRs, and API contracts | Write |
254
+ | `sdd_write_tasks` | Writes TASKS.md with gates, parallel markers, and traceability | Write |
255
+ | `sdd_run_analysis` | Generates traceability matrix, returns APPROVE/CHANGES_NEEDED/BLOCK | Write |
256
+ | `sdd_advance_phase` | Validates prerequisites and advances the state machine | Write |
257
+
258
+ ### Utility Tools (6)
259
+
260
+ | Tool | Description | R/W |
261
+ |------|-------------|-----|
262
+ | `sdd_get_status` | Returns current phase, completion %, files on disk, next action | Read |
263
+ | `sdd_get_template` | Returns raw template with {{placeholders}} intact | Read |
264
+ | `sdd_write_bugfix` | Writes BUGFIX_SPEC.md (not gated by state machine) | Write |
265
+ | `sdd_check_sync` | Compares spec requirements vs code references, reports drift | Read |
266
+ | `sdd_scan_codebase` | Scans project structure, detects tech stack for auto-steering | Read |
267
+ | `sdd_amend` | Appends amendment to CONSTITUTION.md changelog | Write |
268
+
269
+ ### Transcript Automation Tools (3)
270
+
271
+ | Tool | Description | R/W |
272
+ |------|-------------|-----|
273
+ | `sdd_import_transcript` | Parses VTT/SRT/TXT/MD, extracts topics, decisions, requirements | Read |
274
+ | `sdd_auto_pipeline` | FULL AUTOMATION: transcript → all 6 spec files in one call | Write |
275
+ | `sdd_batch_transcripts` | Scan folder for transcripts, process ALL in one call (Power Automate + OneDrive) | Write |
276
+
277
+ ---
278
+
279
+ ## EARS Notation
280
+
281
+ Specky validates all requirements against 6 EARS patterns:
282
+
283
+ | Pattern | Syntax | Example |
284
+ |---------|--------|---------|
285
+ | Ubiquitous | The system shall ... | The system shall log all API requests. |
286
+ | Event-driven | When X, the system shall ... | When a user logs in, the system shall create a session. |
287
+ | State-driven | While X, the system shall ... | While in maintenance mode, the system shall reject writes. |
288
+ | Optional | Where X, the system shall ... | Where dark mode is enabled, the system shall use dark theme. |
289
+ | Unwanted | If X, then the system shall ... | If the database is unreachable, then the system shall retry. |
290
+ | Complex | Combination of above | While online, when a message arrives, the system shall notify. |
291
+
292
+ ---
293
+
294
+ ## GitHub Copilot Agents
295
+
296
+ Specky ships with 4 GitHub Copilot custom agents in `.github/agents/`:
297
+
298
+ | Agent | Role | Tools |
299
+ |-------|------|-------|
300
+ | `@spec-engineer` | Full pipeline orchestrator | All 17 tools |
301
+ | `@design-architect` | Architecture and design | 7 design tools |
302
+ | `@task-planner` | Task decomposition | 5 task tools |
303
+ | `@spec-reviewer` | Quality audit and analysis | 7 analysis tools |
304
+
305
+ ---
306
+
307
+ ## Claude Code Commands
308
+
309
+ | Command | Purpose |
310
+ |---------|---------|
311
+ | `/sdd:spec` | Start specification workflow |
312
+ | `/sdd:design` | Create architecture design |
313
+ | `/sdd:tasks` | Break down into implementation tasks |
314
+ | `/sdd:analyze` | Run quality gate analysis |
315
+ | `/sdd:bugfix` | Create bugfix specification |
316
+ | `/sdd:transcript` | Convert meeting transcript to full spec (VTT/SRT/TXT/MD) |
317
+ | `/sdd:onedrive` | Batch process all transcripts from OneDrive folder |
318
+
319
+ ---
320
+
321
+ ## Environment Variables
322
+
323
+ | Variable | Default | Description |
324
+ |----------|---------|-------------|
325
+ | `SDD_WORKSPACE` | `process.cwd()` | Workspace root for file operations |
326
+ | `PORT` | `3200` | HTTP port (with `--http` flag) |
327
+
328
+ ---
329
+
330
+ ## HTTP Mode
331
+
332
+ For remote deployment or MCP Inspector testing:
333
+
334
+ ```bash
335
+ # Direct
336
+ node dist/index.js --http
337
+
338
+ # Docker
339
+ docker compose up
340
+ ```
341
+
342
+ The server listens on `http://localhost:3200/mcp` for Streamable HTTP transport.
343
+
344
+ ---
345
+
346
+ ## Project Structure
347
+
348
+ ```
349
+ .specs/
350
+ 001-your-feature/
351
+ CONSTITUTION.md # Project charter, principles, constraints
352
+ SPECIFICATION.md # EARS requirements with acceptance criteria
353
+ DESIGN.md # Architecture, Mermaid diagrams, ADRs
354
+ TASKS.md # Implementation tasks with gates
355
+ ANALYSIS.md # Traceability matrix, quality gate
356
+ .sdd-state.json # Pipeline state (phase, timestamps)
357
+ ```
358
+
359
+ ---
360
+
361
+ ## Comparison with Alternatives
362
+
363
+ | Feature | Specky | Manual Specs | Kiro | Traditional |
364
+ |---------|--------|-------------|------|-------------|
365
+ | MCP native | Yes | No | Yes | No |
366
+ | EARS notation | Yes | Manual | No | No |
367
+ | State machine | Yes | No | Yes | No |
368
+ | File generation | Yes | Manual | Yes | Manual |
369
+ | Quality gates | Yes | Manual | Yes | No |
370
+ | Open source | MIT | N/A | Proprietary | Varies |
371
+ | GitHub Copilot agents | Yes | No | No | No |
372
+ | Claude Code commands | Yes | No | No | No |
373
+
374
+ ---
375
+
376
+ ## How It Works Inside
377
+
378
+ ```
379
+ ┌─────────────────────────────────────────────────────────────┐
380
+ │ SPECKY MCP SERVER │
381
+ │ │
382
+ │ Transport: stdio (default) or HTTP (:3200) │
383
+ │ Protocol: JSON-RPC 2.0 (MCP standard) │
384
+ │ │
385
+ │ ┌─── 17 Tools ───────────────────────────────────────────┐ │
386
+ │ │ Pipeline (8) │ Utility (6) │ Transcript (3) │ │
387
+ │ └────────────────┴───────────────┴───────────────────────┘ │
388
+ │ │ │
389
+ │ ┌─── 6 Services ────────────────────────────────────────┐ │
390
+ │ │ FileManager │ StateMachine │ TemplateEngine │ │
391
+ │ │ EarsValidator │ CodebaseScanner│ TranscriptParser │ │
392
+ │ └────────────────────┴────────────────┴─────────────────┘ │
393
+ │ │ │
394
+ │ ┌─── 7 Templates ──────────────────────────────────────┐ │
395
+ │ │ constitution │ specification │ design │ tasks │ │
396
+ │ │ analysis │ bugfix │ sync-report │ │
397
+ │ └───────────────┴───────────────┴───────────────────────┘ │
398
+ └─────────────────────────────────────────────────────────────┘
399
+ ```
400
+
401
+ **Key design principle:** Tools are thin (validate input, call service, format output). Services are fat (all business logic). FileManager owns all disk I/O.
402
+
403
+ ---
404
+
405
+ ## Documentation
406
+
407
+ | Document | Purpose |
408
+ |----------|---------|
409
+ | [GETTING-STARTED.md](GETTING-STARTED.md) | Step-by-step tutorial from zero to first spec |
410
+ | [CONTRIBUTING.md](CONTRIBUTING.md) | How to add tools, templates, and services |
411
+ | [PUBLISH.md](PUBLISH.md) | How to publish to GitHub, npm, and Docker |
412
+
413
+ ---
414
+
415
+ ## Development
416
+
417
+ ```bash
418
+ # Clone and setup
419
+ git clone https://github.com/paulasilvatech/specky.git
420
+ cd specky
421
+ npm install
422
+
423
+ # Build
424
+ npm run build
425
+
426
+ # Development mode (auto-reload)
427
+ npm run dev
428
+
429
+ # Verify MCP handshake
430
+ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | node dist/index.js 2>/dev/null
431
+
432
+ # Clean build artifacts
433
+ npm run clean
434
+ ```
435
+
436
+ ---
437
+
438
+ ## License
439
+
440
+ MIT License - see [LICENSE](LICENSE) for details.
441
+
442
+ ---
443
+
444
+ **Created by [Paula Silva](https://github.com/paulasilvatech)** ([@paulanunes85](https://twitter.com/paulanunes85)) | Americas Software GBB
445
+
446
+ *Specky — The fun name, the serious engine.*
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Specky MCP Server — Constants
3
+ * All shared constants, enums, and configuration values.
4
+ */
5
+ /** Specky server version — matches package.json */
6
+ export declare const VERSION = "1.0.0";
7
+ /** Server name for MCP handshake */
8
+ export declare const SERVER_NAME = "specky";
9
+ /** Maximum response size in characters before truncation */
10
+ export declare const CHARACTER_LIMIT = 25000;
11
+ /** Default directory for SDD specifications */
12
+ export declare const DEFAULT_SPEC_DIR = ".specs";
13
+ /** State file name */
14
+ export declare const STATE_FILE = ".sdd-state.json";
15
+ /** Default HTTP port for Streamable HTTP transport */
16
+ export declare const DEFAULT_HTTP_PORT = 3200;
17
+ /** Default scan depth for codebase scanner */
18
+ export declare const DEFAULT_SCAN_DEPTH = 3;
19
+ /** Maximum scan depth allowed */
20
+ export declare const MAX_SCAN_DEPTH = 5;
21
+ /** Default exclude patterns for codebase scanning */
22
+ export declare const DEFAULT_EXCLUDE_PATTERNS: readonly string[];
23
+ /**
24
+ * SDD Pipeline phases in order.
25
+ * Each phase requires its predecessor to be completed.
26
+ */
27
+ export declare enum Phase {
28
+ Init = "init",
29
+ Discover = "discover",
30
+ Specify = "specify",
31
+ Clarify = "clarify",
32
+ Design = "design",
33
+ Tasks = "tasks",
34
+ Analyze = "analyze"
35
+ }
36
+ /** Ordered array of all phases for iteration */
37
+ export declare const PHASE_ORDER: readonly Phase[];
38
+ /** Maps each phase to the required file(s) that must exist before advancing past it */
39
+ export declare const PHASE_REQUIRED_FILES: Record<Phase, readonly string[]>;
40
+ /** All MCP tool names — prefixed with sdd_ */
41
+ export declare const TOOL_NAMES: {
42
+ readonly INIT: "sdd_init";
43
+ readonly DISCOVER: "sdd_discover";
44
+ readonly WRITE_SPEC: "sdd_write_spec";
45
+ readonly CLARIFY: "sdd_clarify";
46
+ readonly WRITE_DESIGN: "sdd_write_design";
47
+ readonly WRITE_TASKS: "sdd_write_tasks";
48
+ readonly RUN_ANALYSIS: "sdd_run_analysis";
49
+ readonly ADVANCE_PHASE: "sdd_advance_phase";
50
+ readonly GET_STATUS: "sdd_get_status";
51
+ readonly GET_TEMPLATE: "sdd_get_template";
52
+ readonly WRITE_BUGFIX: "sdd_write_bugfix";
53
+ readonly CHECK_SYNC: "sdd_check_sync";
54
+ readonly SCAN_CODEBASE: "sdd_scan_codebase";
55
+ readonly AMEND: "sdd_amend";
56
+ readonly IMPORT_TRANSCRIPT: "sdd_import_transcript";
57
+ readonly AUTO_PIPELINE: "sdd_auto_pipeline";
58
+ readonly BATCH_TRANSCRIPTS: "sdd_batch_transcripts";
59
+ };
60
+ /** Template names matching files in templates/ directory */
61
+ export declare const TEMPLATE_NAMES: readonly ["constitution", "specification", "design", "tasks", "analysis", "bugfix", "sync_report"];
62
+ export type TemplateName = (typeof TEMPLATE_NAMES)[number];
63
+ /** EARS pattern names */
64
+ export declare const EARS_PATTERNS: readonly ["ubiquitous", "event_driven", "state_driven", "optional", "unwanted", "complex", "unknown"];
65
+ export type EarsPatternName = (typeof EARS_PATTERNS)[number];
66
+ /** Package manifest files for tech stack detection, in priority order */
67
+ export declare const PACKAGE_MANIFESTS: readonly string[];
68
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mDAAmD;AACnD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,oCAAoC;AACpC,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,4DAA4D;AAC5D,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,sBAAsB;AACtB,eAAO,MAAM,UAAU,oBAAoB,CAAC;AAE5C,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,iCAAiC;AACjC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAUrD,CAAC;AAEF;;;GAGG;AACH,oBAAY,KAAK;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,gDAAgD;AAChD,eAAO,MAAM,WAAW,EAAE,SAAS,KAAK,EAQvC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAQjE,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;CAqBb,CAAC;AAEX,4DAA4D;AAC5D,eAAO,MAAM,cAAc,oGAQjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,yBAAyB;AACzB,eAAO,MAAM,aAAa,uGAQhB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAQ9C,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Specky MCP Server — Constants
3
+ * All shared constants, enums, and configuration values.
4
+ */
5
+ /** Specky server version — matches package.json */
6
+ export const VERSION = "1.0.0";
7
+ /** Server name for MCP handshake */
8
+ export const SERVER_NAME = "specky";
9
+ /** Maximum response size in characters before truncation */
10
+ export const CHARACTER_LIMIT = 25_000;
11
+ /** Default directory for SDD specifications */
12
+ export const DEFAULT_SPEC_DIR = ".specs";
13
+ /** State file name */
14
+ export const STATE_FILE = ".sdd-state.json";
15
+ /** Default HTTP port for Streamable HTTP transport */
16
+ export const DEFAULT_HTTP_PORT = 3200;
17
+ /** Default scan depth for codebase scanner */
18
+ export const DEFAULT_SCAN_DEPTH = 3;
19
+ /** Maximum scan depth allowed */
20
+ export const MAX_SCAN_DEPTH = 5;
21
+ /** Default exclude patterns for codebase scanning */
22
+ export const DEFAULT_EXCLUDE_PATTERNS = [
23
+ "node_modules",
24
+ ".git",
25
+ "dist",
26
+ ".next",
27
+ "__pycache__",
28
+ ".venv",
29
+ "target",
30
+ "build",
31
+ "coverage",
32
+ ];
33
+ /**
34
+ * SDD Pipeline phases in order.
35
+ * Each phase requires its predecessor to be completed.
36
+ */
37
+ export var Phase;
38
+ (function (Phase) {
39
+ Phase["Init"] = "init";
40
+ Phase["Discover"] = "discover";
41
+ Phase["Specify"] = "specify";
42
+ Phase["Clarify"] = "clarify";
43
+ Phase["Design"] = "design";
44
+ Phase["Tasks"] = "tasks";
45
+ Phase["Analyze"] = "analyze";
46
+ })(Phase || (Phase = {}));
47
+ /** Ordered array of all phases for iteration */
48
+ export const PHASE_ORDER = [
49
+ Phase.Init,
50
+ Phase.Discover,
51
+ Phase.Specify,
52
+ Phase.Clarify,
53
+ Phase.Design,
54
+ Phase.Tasks,
55
+ Phase.Analyze,
56
+ ];
57
+ /** Maps each phase to the required file(s) that must exist before advancing past it */
58
+ export const PHASE_REQUIRED_FILES = {
59
+ [Phase.Init]: ["CONSTITUTION.md"],
60
+ [Phase.Discover]: [],
61
+ [Phase.Specify]: ["SPECIFICATION.md"],
62
+ [Phase.Clarify]: ["SPECIFICATION.md"],
63
+ [Phase.Design]: ["DESIGN.md"],
64
+ [Phase.Tasks]: ["TASKS.md"],
65
+ [Phase.Analyze]: ["ANALYSIS.md"],
66
+ };
67
+ /** All MCP tool names — prefixed with sdd_ */
68
+ export const TOOL_NAMES = {
69
+ // Pipeline tools
70
+ INIT: "sdd_init",
71
+ DISCOVER: "sdd_discover",
72
+ WRITE_SPEC: "sdd_write_spec",
73
+ CLARIFY: "sdd_clarify",
74
+ WRITE_DESIGN: "sdd_write_design",
75
+ WRITE_TASKS: "sdd_write_tasks",
76
+ RUN_ANALYSIS: "sdd_run_analysis",
77
+ ADVANCE_PHASE: "sdd_advance_phase",
78
+ // Utility tools
79
+ GET_STATUS: "sdd_get_status",
80
+ GET_TEMPLATE: "sdd_get_template",
81
+ WRITE_BUGFIX: "sdd_write_bugfix",
82
+ CHECK_SYNC: "sdd_check_sync",
83
+ SCAN_CODEBASE: "sdd_scan_codebase",
84
+ AMEND: "sdd_amend",
85
+ // Transcript automation tools
86
+ IMPORT_TRANSCRIPT: "sdd_import_transcript",
87
+ AUTO_PIPELINE: "sdd_auto_pipeline",
88
+ BATCH_TRANSCRIPTS: "sdd_batch_transcripts",
89
+ };
90
+ /** Template names matching files in templates/ directory */
91
+ export const TEMPLATE_NAMES = [
92
+ "constitution",
93
+ "specification",
94
+ "design",
95
+ "tasks",
96
+ "analysis",
97
+ "bugfix",
98
+ "sync_report",
99
+ ];
100
+ /** EARS pattern names */
101
+ export const EARS_PATTERNS = [
102
+ "ubiquitous",
103
+ "event_driven",
104
+ "state_driven",
105
+ "optional",
106
+ "unwanted",
107
+ "complex",
108
+ "unknown",
109
+ ];
110
+ /** Package manifest files for tech stack detection, in priority order */
111
+ export const PACKAGE_MANIFESTS = [
112
+ "package.json",
113
+ "requirements.txt",
114
+ "pyproject.toml",
115
+ "go.mod",
116
+ "Cargo.toml",
117
+ "pom.xml",
118
+ "build.gradle",
119
+ ];
120
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Specky MCP Server — Entry Point
4
+ * Spec-Driven Development engine for AI agents.
5
+ *
6
+ * Creator: Paula Silva @paulasilvatech @paulanunes85 | Americas Software GBB
7
+ * License: MIT
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}