specky-sdd 3.5.0 → 3.7.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 (101) hide show
  1. package/.apm/hooks/scripts/ears-validator.sh +56 -17
  2. package/.apm/prompts/specky-api.prompt.md +1 -1
  3. package/.apm/prompts/specky-research.prompt.md +2 -2
  4. package/.apm/skills/research-analyst/SKILL.md +2 -2
  5. package/.apm/skills/specky-onboarding/SKILL.md +6 -4
  6. package/CHANGELOG.md +52 -0
  7. package/README.md +44 -8
  8. package/SECURITY.md +19 -9
  9. package/apm.yml +1 -1
  10. package/config.yml +1 -1
  11. package/dist/cli/commands/doctor.d.ts.map +1 -1
  12. package/dist/cli/commands/doctor.js +5 -0
  13. package/dist/cli/commands/doctor.js.map +1 -1
  14. package/dist/cli/commands/status.d.ts.map +1 -1
  15. package/dist/cli/commands/status.js +17 -2
  16. package/dist/cli/commands/status.js.map +1 -1
  17. package/dist/cli/index.js +32 -0
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/lib/update-check.d.ts +36 -0
  20. package/dist/cli/lib/update-check.d.ts.map +1 -0
  21. package/dist/cli/lib/update-check.js +165 -0
  22. package/dist/cli/lib/update-check.js.map +1 -0
  23. package/dist/config.d.ts +4 -0
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js +14 -0
  26. package/dist/config.js.map +1 -1
  27. package/dist/index.js +18 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/services/diagram-generator.d.ts +53 -4
  30. package/dist/services/diagram-generator.d.ts.map +1 -1
  31. package/dist/services/diagram-generator.js +565 -178
  32. package/dist/services/diagram-generator.js.map +1 -1
  33. package/dist/services/doc-generator.d.ts +44 -0
  34. package/dist/services/doc-generator.d.ts.map +1 -1
  35. package/dist/services/doc-generator.js +352 -50
  36. package/dist/services/doc-generator.js.map +1 -1
  37. package/dist/services/document-converter.d.ts +10 -7
  38. package/dist/services/document-converter.d.ts.map +1 -1
  39. package/dist/services/document-converter.js +113 -38
  40. package/dist/services/document-converter.js.map +1 -1
  41. package/dist/services/iac-generator.d.ts +31 -3
  42. package/dist/services/iac-generator.d.ts.map +1 -1
  43. package/dist/services/iac-generator.js +509 -41
  44. package/dist/services/iac-generator.js.map +1 -1
  45. package/dist/services/pbt-generator.d.ts +12 -0
  46. package/dist/services/pbt-generator.d.ts.map +1 -1
  47. package/dist/services/pbt-generator.js +296 -145
  48. package/dist/services/pbt-generator.js.map +1 -1
  49. package/dist/services/state-machine.d.ts +15 -1
  50. package/dist/services/state-machine.d.ts.map +1 -1
  51. package/dist/services/state-machine.js +21 -3
  52. package/dist/services/state-machine.js.map +1 -1
  53. package/dist/services/test-generator.d.ts +8 -0
  54. package/dist/services/test-generator.d.ts.map +1 -1
  55. package/dist/services/test-generator.js +134 -33
  56. package/dist/services/test-generator.js.map +1 -1
  57. package/dist/services/test-traceability-mapper.d.ts.map +1 -1
  58. package/dist/services/test-traceability-mapper.js +8 -3
  59. package/dist/services/test-traceability-mapper.js.map +1 -1
  60. package/dist/services/work-item-exporter.d.ts +70 -9
  61. package/dist/services/work-item-exporter.d.ts.map +1 -1
  62. package/dist/services/work-item-exporter.js +115 -53
  63. package/dist/services/work-item-exporter.js.map +1 -1
  64. package/dist/templates/checklist.md +2 -3
  65. package/dist/templates/cross-analysis.md +2 -4
  66. package/dist/tools/documentation.d.ts.map +1 -1
  67. package/dist/tools/documentation.js +9 -3
  68. package/dist/tools/documentation.js.map +1 -1
  69. package/dist/tools/environment.d.ts.map +1 -1
  70. package/dist/tools/environment.js +75 -12
  71. package/dist/tools/environment.js.map +1 -1
  72. package/dist/tools/infrastructure.d.ts.map +1 -1
  73. package/dist/tools/infrastructure.js +7 -39
  74. package/dist/tools/infrastructure.js.map +1 -1
  75. package/dist/tools/input.js +4 -4
  76. package/dist/tools/input.js.map +1 -1
  77. package/dist/tools/integration.js +4 -4
  78. package/dist/tools/integration.js.map +1 -1
  79. package/dist/tools/pipeline.d.ts.map +1 -1
  80. package/dist/tools/pipeline.js +42 -4
  81. package/dist/tools/pipeline.js.map +1 -1
  82. package/dist/tools/quality.d.ts.map +1 -1
  83. package/dist/tools/quality.js +36 -9
  84. package/dist/tools/quality.js.map +1 -1
  85. package/dist/tools/testing.d.ts +10 -0
  86. package/dist/tools/testing.d.ts.map +1 -1
  87. package/dist/tools/testing.js +66 -13
  88. package/dist/tools/testing.js.map +1 -1
  89. package/dist/tools/transcript.d.ts.map +1 -1
  90. package/dist/tools/transcript.js +66 -41
  91. package/dist/tools/transcript.js.map +1 -1
  92. package/dist/tools/utility.d.ts.map +1 -1
  93. package/dist/tools/utility.js +22 -12
  94. package/dist/tools/utility.js.map +1 -1
  95. package/dist/tools/visualization.d.ts +21 -0
  96. package/dist/tools/visualization.d.ts.map +1 -1
  97. package/dist/tools/visualization.js +130 -29
  98. package/dist/tools/visualization.js.map +1 -1
  99. package/package.json +5 -2
  100. package/templates/checklist.md +2 -3
  101. package/templates/cross-analysis.md +2 -4
@@ -2,13 +2,53 @@
2
2
  * Environment Tools — sdd_setup_local_env, sdd_setup_codespaces, sdd_generate_devcontainer.
3
3
  */
4
4
  import { formatError, truncate } from "./tool-result.js";
5
+ import { detectServicesFromDesign, detectTechStackFromDesign } from "../services/iac-generator.js";
5
6
  import { setupLocalEnvInputSchema, setupCodespacesInputSchema, generateDevcontainerInputSchema, } from "../schemas/environment.js";
6
7
  import { enrichResponse } from "./response-builder.js";
8
+ /** Read the feature's DESIGN.md; returns "" when the feature or file is absent. */
9
+ async function readFeatureDesign(fileManager, specDir, featureNumber) {
10
+ try {
11
+ const features = await fileManager.listFeatures(specDir);
12
+ const feature = features.find((f) => f.number === featureNumber);
13
+ if (!feature)
14
+ return "";
15
+ return await fileManager.readSpecFile(feature.directory, "DESIGN.md");
16
+ }
17
+ catch {
18
+ return "";
19
+ }
20
+ }
21
+ function designToTechStack(design) {
22
+ switch (design.language) {
23
+ case "Python":
24
+ return { language: "Python", framework: design.framework, package_manager: "pip", runtime: "Python" };
25
+ case "Go":
26
+ return { language: "Go", framework: design.framework, package_manager: "go modules", runtime: "Go" };
27
+ case "Java":
28
+ return { language: "Java", framework: design.framework, package_manager: "maven", runtime: "JVM" };
29
+ default:
30
+ return { language: design.language, framework: design.framework, package_manager: "npm", runtime: "Node.js" };
31
+ }
32
+ }
33
+ /**
34
+ * Resolve the tech stack: codebase manifests first, DESIGN.md prose as the
35
+ * fallback (the schemas promise DESIGN.md-based detection, so a DESIGN-only
36
+ * workspace must not degrade to a generic ubuntu environment).
37
+ */
38
+ async function resolveTechStack(codebaseScanner, designContent) {
39
+ const scanned = await codebaseScanner.detectTechStack();
40
+ if (scanned.language !== "unknown")
41
+ return { stack: scanned, source: "codebase" };
42
+ const fromDesign = detectTechStackFromDesign(designContent);
43
+ if (fromDesign)
44
+ return { stack: designToTechStack(fromDesign), source: "DESIGN.md" };
45
+ return { stack: scanned, source: "none" };
46
+ }
7
47
  export function registerEnvironmentTools(server, fileManager, stateMachine, iacGenerator, codebaseScanner) {
8
48
  // ─── sdd_setup_local_env ───
9
49
  server.registerTool("sdd_setup_local_env", {
10
50
  title: "Setup Local Dev Environment",
11
- description: "Detects the project tech stack and generates a Docker-based local development environment (Dockerfile + docker-compose.yml). Returns a payload with routing_instructions for Docker MCP to create and manage containers.",
51
+ description: "Detects the project tech stack (codebase manifests, falling back to DESIGN.md) and generates a Docker-based local development environment (Dockerfile + docker-compose.yml with auto-detected sidecar services). Returns a payload with routing_instructions for Docker MCP to create and manage containers.",
12
52
  inputSchema: setupLocalEnvInputSchema,
13
53
  annotations: {
14
54
  readOnlyHint: false,
@@ -18,18 +58,33 @@ export function registerEnvironmentTools(server, fileManager, stateMachine, iacG
18
58
  },
19
59
  }, async ({ feature_number, spec_dir, services, port }) => {
20
60
  try {
21
- const techStack = await codebaseScanner.detectTechStack();
61
+ const designContent = await readFeatureDesign(fileManager, spec_dir, feature_number);
62
+ const { stack: techStack, source: techStackSource } = await resolveTechStack(codebaseScanner, designContent);
63
+ // Sidecar services: explicit list wins; otherwise auto-detect from
64
+ // DESIGN.md keywords + package.json dependencies (as the schema promises).
65
+ let packageJson = "";
66
+ try {
67
+ packageJson = await fileManager.readProjectFile("package.json");
68
+ }
69
+ catch {
70
+ // No package.json — DESIGN.md keywords only
71
+ }
72
+ const additionalServices = services && services.length > 0
73
+ ? services
74
+ : detectServicesFromDesign(designContent, packageJson);
22
75
  const envResult = iacGenerator.generateDockerfile({ language: techStack.language, framework: techStack.framework, runtime: techStack.runtime }, true, // includeCompose
23
- true // multiStage
24
- );
76
+ true, // multiStage
77
+ additionalServices);
25
78
  const result = {
26
79
  status: "local_env_generated",
27
80
  feature_number,
28
81
  tech_stack: techStack,
82
+ tech_stack_source: techStackSource,
29
83
  type: envResult.type,
30
84
  files: envResult.files,
31
85
  port,
32
- additional_services: services || [],
86
+ additional_services: additionalServices,
87
+ services_source: services && services.length > 0 ? "explicit" : "auto-detected (DESIGN.md + package.json)",
33
88
  routing_instructions: {
34
89
  mcp_server: "docker",
35
90
  tool_name: "compose_up",
@@ -52,7 +107,7 @@ export function registerEnvironmentTools(server, fileManager, stateMachine, iacG
52
107
  // ─── sdd_setup_codespaces ───
53
108
  server.registerTool("sdd_setup_codespaces", {
54
109
  title: "Setup GitHub Codespaces",
55
- description: "Detects the project tech stack and generates a devcontainer configuration suitable for GitHub Codespaces. Returns a payload with routing_instructions for GitHub MCP's create_codespace tool.",
110
+ description: "Detects the project tech stack (codebase manifests, falling back to DESIGN.md) and generates a devcontainer configuration suitable for GitHub Codespaces. Returns the devcontainer.json payload with routing_instructions to commit it via GitHub MCP, plus the GitHub UI/CLI/API steps to create the Codespace (the official GitHub MCP does not expose Codespace creation).",
56
111
  inputSchema: setupCodespacesInputSchema,
57
112
  annotations: {
58
113
  readOnlyHint: false,
@@ -62,23 +117,29 @@ export function registerEnvironmentTools(server, fileManager, stateMachine, iacG
62
117
  },
63
118
  }, async ({ feature_number, spec_dir, machine_type, extensions }) => {
64
119
  try {
65
- const techStack = await codebaseScanner.detectTechStack();
120
+ const designContent = await readFeatureDesign(fileManager, spec_dir, feature_number);
121
+ const { stack: techStack, source: techStackSource } = await resolveTechStack(codebaseScanner, designContent);
66
122
  const envResult = iacGenerator.generateDevcontainer({ language: techStack.language, framework: techStack.framework }, undefined, // features auto-detected
67
123
  extensions);
68
124
  const result = {
69
125
  status: "codespaces_config_generated",
70
126
  feature_number,
71
127
  tech_stack: techStack,
128
+ tech_stack_source: techStackSource,
72
129
  machine_type,
73
130
  type: envResult.type,
74
131
  files: envResult.files,
75
132
  routing_instructions: {
76
133
  mcp_server: "github",
77
- tool_name: "create_codespace",
78
- note: "Route this payload to GitHub MCP's create_codespace tool to provision a cloud development environment.",
134
+ tool_name: "create_or_update_file",
135
+ note: "Commit the generated config to .devcontainer/devcontainer.json on the target branch (GitHub MCP: create_or_update_file or push_files). " +
136
+ "The official GitHub MCP exposes no Codespace-creation tool — after committing, create the Codespace via the GitHub UI (Code → Codespaces → 'Create codespace'), " +
137
+ `the GitHub CLI ('gh codespace create --repo <owner>/<repo> --machine ${machine_type}'), or the REST API ('POST /repos/{owner}/{repo}/codespaces').`,
79
138
  },
80
139
  explanation: envResult.explanation,
81
- next_steps: "The AI client should route the devcontainer config to GitHub MCP to create a Codespace with the specified machine type.",
140
+ next_steps: "1. Commit .devcontainer/devcontainer.json to the repository (GitHub MCP create_or_update_file or push_files). " +
141
+ `2. Create the Codespace with machine type '${machine_type}' via the GitHub UI (Code → Codespaces → 'Create codespace'), ` +
142
+ `'gh codespace create --repo <owner>/<repo> --machine ${machine_type}', or 'POST /repos/{owner}/{repo}/codespaces'.`,
82
143
  learning_note: "GitHub Codespaces provides cloud-hosted dev environments. The devcontainer.json defines the container image, extensions, and port forwarding.",
83
144
  };
84
145
  const enriched = await enrichResponse("sdd_setup_codespaces", result, stateMachine, spec_dir);
@@ -94,7 +155,7 @@ export function registerEnvironmentTools(server, fileManager, stateMachine, iacG
94
155
  // ─── sdd_generate_devcontainer ───
95
156
  server.registerTool("sdd_generate_devcontainer", {
96
157
  title: "Generate Devcontainer Config",
97
- description: "Generates .devcontainer/devcontainer.json from the detected tech stack and DESIGN.md. Writes the file to disk for local use with VS Code Dev Containers or GitHub Codespaces.",
158
+ description: "Generates .devcontainer/devcontainer.json from the detected tech stack (codebase manifests, falling back to DESIGN.md). Writes the file to disk for local use with VS Code Dev Containers or GitHub Codespaces.",
98
159
  inputSchema: generateDevcontainerInputSchema,
99
160
  annotations: {
100
161
  readOnlyHint: false,
@@ -104,7 +165,8 @@ export function registerEnvironmentTools(server, fileManager, stateMachine, iacG
104
165
  },
105
166
  }, async ({ feature_number, spec_dir, base_image, features: devFeatures }) => {
106
167
  try {
107
- const techStack = await codebaseScanner.detectTechStack();
168
+ const designContent = await readFeatureDesign(fileManager, spec_dir, feature_number);
169
+ const { stack: techStack, source: techStackSource } = await resolveTechStack(codebaseScanner, designContent);
108
170
  const envResult = iacGenerator.generateDevcontainer({ language: techStack.language, framework: techStack.framework }, devFeatures, undefined // extensions auto-detected
109
171
  );
110
172
  // Write the devcontainer.json file
@@ -129,6 +191,7 @@ export function registerEnvironmentTools(server, fileManager, stateMachine, iacG
129
191
  status: "devcontainer_written",
130
192
  feature_number,
131
193
  tech_stack: techStack,
194
+ tech_stack_source: techStackSource,
132
195
  file: writtenPath || ".devcontainer/devcontainer.json",
133
196
  files: envResult.files,
134
197
  explanation: envResult.explanation,
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/tools/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/tools/environment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"infrastructure.d.ts","sourceRoot":"","sources":["../../src/tools/infrastructure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAQjE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,GACzB,IAAI,CAkON"}
1
+ {"version":3,"file":"infrastructure.d.ts","sourceRoot":"","sources":["../../src/tools/infrastructure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AASjE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,GACzB,IAAI,CAsON"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { formatError, truncate } from "./tool-result.js";
5
5
  import { join } from "node:path";
6
+ import { detectTechStackFromDesign } from "../services/iac-generator.js";
6
7
  import { generateIacInputSchema, validateIacInputSchema, generateDockerfileInputSchema, } from "../schemas/infrastructure.js";
7
8
  import { enrichResponse } from "./response-builder.js";
8
9
  export function registerInfrastructureTools(server, fileManager, stateMachine, iacGenerator) {
@@ -137,7 +138,10 @@ export function registerInfrastructureTools(server, fileManager, stateMachine, i
137
138
  catch {
138
139
  // DESIGN.md is optional; fall back to defaults
139
140
  }
140
- const techStack = detectTechStack(designContent);
141
+ // Detect from DESIGN.md prose; default to TypeScript/Node.js when the
142
+ // design names no recognizable stack.
143
+ const techStack = detectTechStackFromDesign(designContent) ??
144
+ { language: "TypeScript", framework: undefined, runtime: "node22" };
141
145
  const dockerResult = iacGenerator.generateDockerfile(techStack, include_compose, multi_stage);
142
146
  // Write generated files to feature directory
143
147
  const writtenPaths = [];
@@ -175,42 +179,6 @@ export function registerInfrastructureTools(server, fileManager, stateMachine, i
175
179
  }
176
180
  });
177
181
  }
178
- /**
179
- * Detects tech stack from DESIGN.md content using keyword matching.
180
- * Falls back to TypeScript/Node.js if nothing is detected.
181
- */
182
- function detectTechStack(designContent) {
183
- const lower = designContent.toLowerCase();
184
- if (/\bpython\b/.test(lower)) {
185
- const framework = /\bdjango\b/.test(lower)
186
- ? "Django"
187
- : /\bfastapi\b/.test(lower)
188
- ? "FastAPI"
189
- : /\bflask\b/.test(lower)
190
- ? "Flask"
191
- : undefined;
192
- return { language: "Python", framework, runtime: "python3.12" };
193
- }
194
- if (/\bgo\b|\bgolang\b/.test(lower)) {
195
- const framework = /\bgin\b/.test(lower)
196
- ? "Gin"
197
- : /\becho\b/.test(lower)
198
- ? "Echo"
199
- : undefined;
200
- return { language: "Go", framework, runtime: "go1.22" };
201
- }
202
- if (/\bjava\b/.test(lower) && !/\bjavascript\b/.test(lower)) {
203
- const framework = /\bspring\b/.test(lower) ? "Spring Boot" : undefined;
204
- return { language: "Java", framework, runtime: "java21" };
205
- }
206
- // Default: TypeScript/Node.js
207
- const framework = /\bnext\.?js\b/.test(lower)
208
- ? "Next.js"
209
- : /\bexpress\b/.test(lower)
210
- ? "Express"
211
- : /\bfastify\b/.test(lower)
212
- ? "Fastify"
213
- : undefined;
214
- return { language: "TypeScript", framework, runtime: "node22" };
215
- }
182
+ // Tech stack detection from DESIGN.md lives in services/iac-generator.ts
183
+ // (detectTechStackFromDesign) so the environment tools can reuse it.
216
184
  //# sourceMappingURL=infrastructure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"infrastructure.js","sourceRoot":"","sources":["../../src/tools/infrastructure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infrastructure.js","sourceRoot":"","sources":["../../src/tools/infrastructure.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export function registerInputTools(server, fileManager, documentConverter, state
9
9
  // ─── sdd_import_document ───
10
10
  server.registerTool("sdd_import_document", {
11
11
  title: "Import Document",
12
- description: "Imports a document (PDF, DOCX, PPTX, TXT, MD, VTT, SRT) or raw text and converts it to Markdown for SDD processing. Returns the converted content, metadata, and word count.",
12
+ description: "Imports a document (PDF, DOCX, PPTX, TXT, MD, VTT, SRT) or raw text and converts it to Markdown for SDD processing. Returns the converted content, metadata, and word count. Native support: MD, TXT, VTT, SRT, and raw text are fully supported; PDF/DOCX/PPTX are natively readable only when UNCOMPRESSED — typical real-world (compressed) Office/PDF files fail with an actionable error. For those, install the MarkItDown MCP integration (uvx markitdown-mcp) or convert to md/txt first.",
13
13
  inputSchema: importDocumentInputSchema,
14
14
  annotations: {
15
15
  readOnlyHint: true,
@@ -33,7 +33,7 @@ export function registerInputTools(server, fileManager, documentConverter, state
33
33
  format: result.format,
34
34
  word_count: result.word_count,
35
35
  ...(result.page_count !== undefined && { page_count: result.page_count }),
36
- explanation: "The document has been converted to Markdown format. You can now use this content as input for the SDD specification pipeline (sdd_discover or sdd_gen_spec).",
36
+ explanation: "The document has been converted to Markdown format. You can now use this content as input for the SDD specification pipeline (sdd_discover or sdd_write_spec).",
37
37
  next_steps: [
38
38
  "Review the converted Markdown for accuracy and completeness.",
39
39
  "Use sdd_discover to analyze the content and identify features.",
@@ -86,7 +86,7 @@ export function registerInputTools(server, fileManager, documentConverter, state
86
86
  " to retrieve the design structure, components, and layout information.",
87
87
  step_2: "Parse the Figma design context to identify UI components, user flows, and interaction patterns.",
88
88
  step_3: `Use sdd_discover with the extracted design context to generate a specification in '${featureDir}'.`,
89
- step_4: "Proceed through the SDD pipeline: sdd_gen_spec, sdd_gen_design, sdd_gen_tasks.",
89
+ step_4: "Proceed through the SDD pipeline: sdd_write_spec, sdd_write_design, sdd_write_tasks.",
90
90
  },
91
91
  explanation: "This tool generates a routing payload for Figma-to-spec conversion. The AI client orchestrates the multi-step process: first fetching design context from Figma MCP, then feeding it into the SDD pipeline.",
92
92
  next_steps: [
@@ -109,7 +109,7 @@ export function registerInputTools(server, fileManager, documentConverter, state
109
109
  // ─── sdd_batch_import ───
110
110
  server.registerTool("sdd_batch_import", {
111
111
  title: "Batch Import Documents",
112
- description: "Scans a directory for supported documents (PDF, DOCX, PPTX, TXT, MD) and converts each to Markdown. Returns an array of conversion results with total count and per-file metadata.",
112
+ description: "Scans a directory for supported documents (PDF, DOCX, PPTX, TXT, MD, VTT, SRT) and converts each to Markdown. Returns an array of conversion results with total count and per-file metadata. Compressed PDF/DOCX/PPTX files (what Office/PDF exporters typically produce) are counted as failed with the reason — only uncompressed ones convert natively; use the MarkItDown MCP integration (uvx markitdown-mcp) for full Office/PDF support.",
113
113
  inputSchema: batchImportInputSchema,
114
114
  annotations: {
115
115
  readOnlyHint: true,
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ export function registerIntegrationTools(server, fileManager, stateMachine, _tem
44
44
  // ─── sdd_export_work_items ───
45
45
  server.registerTool("sdd_export_work_items", {
46
46
  title: "Export Work Items",
47
- description: "Transforms TASKS.md into platform-specific work item payloads (GitHub Issues, Azure Boards, or Jira). Returns routing_instructions for the AI client to create items via the appropriate MCP server.",
47
+ description: "Transforms TASKS.md into platform-specific work item payloads: GitHub Issues {title, body, labels}, Jira {fields: {project.key, summary, description, issuetype}} (project_key required), or Azure Boards {work_item_type, fields: System.Title/System.Description/System.AreaPath/System.IterationPath}. Honors include_subtasks and preserves REQ/task traceability in every shape. Returns routing_instructions for the AI client to create items via the appropriate MCP server.",
48
48
  inputSchema: exportWorkItemsInputSchema,
49
49
  annotations: {
50
50
  readOnlyHint: true,
@@ -90,9 +90,9 @@ export function registerIntegrationTools(server, fileManager, stateMachine, _tem
90
90
  metadata: exportResult.metadata,
91
91
  routing_instructions: exportResult.routing_instructions,
92
92
  recommended_servers: [serverRecommendations[platform]].filter(Boolean),
93
- explanation: `Exported ${exportResult.items.length} work items for ${platform}. Route to ${exportResult.routing_instructions.mcp_server} MCP to create them.`,
94
- next_steps: `The AI client should call ${exportResult.routing_instructions.mcp_server} MCP's ${exportResult.routing_instructions.tool_name} for each item in the items array.`,
95
- learning_note: "Work items maintain traceability from TASKS.md through to your project management platform via the traces_to field.",
93
+ explanation: `Exported ${exportResult.items.length} work items in the ${platform}-native payload shape. Route to ${exportResult.routing_instructions.mcp_server} MCP to create them.`,
94
+ next_steps: `The AI client should call ${exportResult.routing_instructions.mcp_server} MCP's ${exportResult.routing_instructions.tool_name} for each item in the items array. ${exportResult.routing_instructions.note}`,
95
+ learning_note: "Work items maintain traceability from TASKS.md through to your project management platform: every item carries task_id and traces_to, and the rendered body/description repeats the REQ references.",
96
96
  };
97
97
  const enriched = await enrichResponse("sdd_export_work_items", result, stateMachine, spec_dir);
98
98
  return { content: [{ type: "text", text: truncate(JSON.stringify(enriched, null, 2)) }] };
@@ -1 +1 @@
1
- {"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/tools/integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/tools/integration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAgCnE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,GAC3B,IAAI,CA81BN"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAuCnE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,GAC3B,IAAI,CAi4BN"}
@@ -2,15 +2,23 @@
2
2
  * Pipeline Tools — 8 tools for the SDD pipeline.
3
3
  * Thin tools: validate input → call service → format output.
4
4
  */
5
+ import { z } from "zod";
5
6
  import { formatError, truncate } from "./tool-result.js";
6
7
  import { join } from "node:path";
7
8
  import { Phase, PHASE_ORDER } from "../constants.js";
9
+ import { loadConfig } from "../config.js";
8
10
  import { FeaturePackageGenerator, SPECKY_SCAFFOLD_MARKER } from "../services/feature-package-generator.js";
9
11
  import { AnalysisEngine } from "../services/analysis-engine.js";
10
12
  import { enrichResponse } from "./response-builder.js";
11
13
  import { routingEngine } from "../utils/routing-helper.js";
12
14
  import { slugify } from "../utils/slug.js";
13
15
  import { initInputSchema, discoverInputSchema, writeSpecInputSchema, clarifyInputSchema, writeDesignInputSchema, writeTasksInputSchema, runAnalysisInputSchema, advancePhaseInputSchema, } from "../schemas/pipeline.js";
16
+ /**
17
+ * Phases whose completion is an LGTM quality gate. When pipeline.require_lgtm
18
+ * is enabled in .specky/config.yml, sdd_advance_phase refuses to complete
19
+ * these phases unless the caller passes lgtm: true.
20
+ */
21
+ const LGTM_GATE_PHASES = [Phase.Specify, Phase.Design, Phase.Tasks];
14
22
  async function shouldOverwriteScaffold(fileManager, featureDir, fileName, force) {
15
23
  if (force)
16
24
  return true;
@@ -25,6 +33,10 @@ async function shouldOverwriteScaffold(fileManager, featureDir, fileName, force)
25
33
  export function registerPipelineTools(server, fileManager, stateMachine, templateEngine, earsValidator) {
26
34
  const featurePackageGenerator = new FeaturePackageGenerator(fileManager);
27
35
  const analysisEngine = new AnalysisEngine(earsValidator);
36
+ // Project config (.specky/config.yml) — read from the same workspace root
37
+ // the server resolved, so pipeline gating (pipeline.require_lgtm) works
38
+ // without changing the registration signature in index.ts.
39
+ const config = loadConfig(fileManager.workspaceRoot);
28
40
  // ─── sdd_init ───
29
41
  server.registerTool("sdd_init", {
30
42
  title: "Initialize SDD Pipeline",
@@ -695,19 +707,41 @@ export function registerPipelineTools(server, fileManager, stateMachine, templat
695
707
  // ─── sdd_advance_phase ───
696
708
  server.registerTool("sdd_advance_phase", {
697
709
  title: "Advance Pipeline Phase",
698
- description: "Validates that the current phase's required files exist, then transitions the state machine to the next phase.",
699
- inputSchema: advancePhaseInputSchema,
710
+ description: "Validates that the current phase's required files exist, then transitions the state machine to the next phase. When pipeline.require_lgtm is enabled, completing the specify/design/tasks quality gates requires lgtm: true.",
711
+ inputSchema: advancePhaseInputSchema.extend({
712
+ lgtm: z
713
+ .boolean()
714
+ .optional()
715
+ .describe("Explicit human approval (LGTM) for the phase being completed. Required at the specify/design/tasks gates when pipeline.require_lgtm is enabled in .specky/config.yml."),
716
+ }),
700
717
  annotations: {
701
718
  readOnlyHint: false,
702
719
  destructiveHint: false,
703
720
  idempotentHint: false,
704
721
  openWorldHint: false,
705
722
  },
706
- }, async ({ spec_dir, feature_number }) => {
723
+ }, async ({ spec_dir, feature_number, lgtm }) => {
707
724
  try {
708
725
  // Capture phase before advancing for gate instrumentation
709
726
  const priorState = await stateMachine.loadState(spec_dir);
710
727
  const completedPhase = priorState.current_phase;
728
+ // Server-side LGTM gate (opt-in): with pipeline.require_lgtm enabled,
729
+ // completing a review-gated phase demands explicit human approval
730
+ // instead of relying on the agent-layer "reply LGTM" convention.
731
+ if (config.pipeline.require_lgtm &&
732
+ LGTM_GATE_PHASES.includes(completedPhase) &&
733
+ lgtm !== true) {
734
+ return {
735
+ content: [{ type: "text", text: JSON.stringify({
736
+ error: "lgtm_required",
737
+ tool: "sdd_advance_phase",
738
+ phase: completedPhase,
739
+ message: `Cannot advance: completing the "${completedPhase}" phase is an LGTM quality gate and pipeline.require_lgtm is enabled. Explicit human approval is required.`,
740
+ fix: "Review the phase artifact, then call sdd_advance_phase again with lgtm: true to record the approval.",
741
+ }, null, 2) }],
742
+ isError: true,
743
+ };
744
+ }
711
745
  const state = await stateMachine.advancePhase(spec_dir, feature_number);
712
746
  const currentIndex = PHASE_ORDER.indexOf(state.current_phase);
713
747
  const nextPhase = currentIndex < PHASE_ORDER.length - 1
@@ -722,7 +756,11 @@ export function registerPipelineTools(server, fileManager, stateMachine, templat
722
756
  const artifactPath = requiredFiles[0]
723
757
  ? `${feature.directory}/${requiredFiles[0]}`
724
758
  : feature.directory;
725
- gateEntry = await stateMachine.recordGateEvent(spec_dir, completedPhase, artifactPath);
759
+ // Record LGTM presence on every advance so gate history captures
760
+ // review approvals, not just artifact-modification signals.
761
+ gateEntry = await stateMachine.recordGateEvent(spec_dir, completedPhase, artifactPath, {
762
+ lgtm: lgtm === true,
763
+ });
726
764
  }
727
765
  const result = {
728
766
  status: "phase_advanced",