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.
- package/.apm/hooks/scripts/ears-validator.sh +56 -17
- package/.apm/prompts/specky-api.prompt.md +1 -1
- package/.apm/prompts/specky-research.prompt.md +2 -2
- package/.apm/skills/research-analyst/SKILL.md +2 -2
- package/.apm/skills/specky-onboarding/SKILL.md +6 -4
- package/CHANGELOG.md +52 -0
- package/README.md +44 -8
- package/SECURITY.md +19 -9
- package/apm.yml +1 -1
- package/config.yml +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +5 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +17 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/index.js +32 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/update-check.d.ts +36 -0
- package/dist/cli/lib/update-check.d.ts.map +1 -0
- package/dist/cli/lib/update-check.js +165 -0
- package/dist/cli/lib/update-check.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/services/diagram-generator.d.ts +53 -4
- package/dist/services/diagram-generator.d.ts.map +1 -1
- package/dist/services/diagram-generator.js +565 -178
- package/dist/services/diagram-generator.js.map +1 -1
- package/dist/services/doc-generator.d.ts +44 -0
- package/dist/services/doc-generator.d.ts.map +1 -1
- package/dist/services/doc-generator.js +352 -50
- package/dist/services/doc-generator.js.map +1 -1
- package/dist/services/document-converter.d.ts +10 -7
- package/dist/services/document-converter.d.ts.map +1 -1
- package/dist/services/document-converter.js +113 -38
- package/dist/services/document-converter.js.map +1 -1
- package/dist/services/iac-generator.d.ts +31 -3
- package/dist/services/iac-generator.d.ts.map +1 -1
- package/dist/services/iac-generator.js +509 -41
- package/dist/services/iac-generator.js.map +1 -1
- package/dist/services/pbt-generator.d.ts +12 -0
- package/dist/services/pbt-generator.d.ts.map +1 -1
- package/dist/services/pbt-generator.js +296 -145
- package/dist/services/pbt-generator.js.map +1 -1
- package/dist/services/state-machine.d.ts +15 -1
- package/dist/services/state-machine.d.ts.map +1 -1
- package/dist/services/state-machine.js +21 -3
- package/dist/services/state-machine.js.map +1 -1
- package/dist/services/test-generator.d.ts +8 -0
- package/dist/services/test-generator.d.ts.map +1 -1
- package/dist/services/test-generator.js +134 -33
- package/dist/services/test-generator.js.map +1 -1
- package/dist/services/test-traceability-mapper.d.ts.map +1 -1
- package/dist/services/test-traceability-mapper.js +8 -3
- package/dist/services/test-traceability-mapper.js.map +1 -1
- package/dist/services/work-item-exporter.d.ts +70 -9
- package/dist/services/work-item-exporter.d.ts.map +1 -1
- package/dist/services/work-item-exporter.js +115 -53
- package/dist/services/work-item-exporter.js.map +1 -1
- package/dist/templates/checklist.md +2 -3
- package/dist/templates/cross-analysis.md +2 -4
- package/dist/tools/documentation.d.ts.map +1 -1
- package/dist/tools/documentation.js +9 -3
- package/dist/tools/documentation.js.map +1 -1
- package/dist/tools/environment.d.ts.map +1 -1
- package/dist/tools/environment.js +75 -12
- package/dist/tools/environment.js.map +1 -1
- package/dist/tools/infrastructure.d.ts.map +1 -1
- package/dist/tools/infrastructure.js +7 -39
- package/dist/tools/infrastructure.js.map +1 -1
- package/dist/tools/input.js +4 -4
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/integration.js +4 -4
- package/dist/tools/integration.js.map +1 -1
- package/dist/tools/pipeline.d.ts.map +1 -1
- package/dist/tools/pipeline.js +42 -4
- package/dist/tools/pipeline.js.map +1 -1
- package/dist/tools/quality.d.ts.map +1 -1
- package/dist/tools/quality.js +36 -9
- package/dist/tools/quality.js.map +1 -1
- package/dist/tools/testing.d.ts +10 -0
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/testing.js +66 -13
- package/dist/tools/testing.js.map +1 -1
- package/dist/tools/transcript.d.ts.map +1 -1
- package/dist/tools/transcript.js +66 -41
- package/dist/tools/transcript.js.map +1 -1
- package/dist/tools/utility.d.ts.map +1 -1
- package/dist/tools/utility.js +22 -12
- package/dist/tools/utility.js.map +1 -1
- package/dist/tools/visualization.d.ts +21 -0
- package/dist/tools/visualization.d.ts.map +1 -1
- package/dist/tools/visualization.js +130 -29
- package/dist/tools/visualization.js.map +1 -1
- package/package.json +5 -2
- package/templates/checklist.md +2 -3
- 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
|
|
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:
|
|
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
|
|
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
|
|
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: "
|
|
78
|
-
note: "
|
|
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: "
|
|
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
|
|
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
|
|
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":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMzD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,WAAwB,EACxB,YAA0B,EAC1B,YAA0B,EAC1B,eAAgC;IAEhC,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,UAAU,2BAA2B,CACzC,MAAiB,EACjB,WAAwB,EACxB,YAA0B,EAC1B,YAA0B;IAE1B,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,0LAA0L;QAC5L,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,WAAW,cAAc,iBAAiB,QAAQ,mEAAmE,CACtH,CAAC;YACJ,CAAC;YAED,gDAAgD;YAChD,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,iBAAiB,CACpD,OAAO,CAAC,SAAS,EACjB,KAAK,EACL,OAAO,CACR,CAAC;YAEF,6CAA6C;YAC7C,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAC9C,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CACL,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK;gBACL,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;iBAC3B,CAAC,CAAC;gBACH,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,aAAa,EAAE,YAAY;gBAC3B,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,aAAa,EACX,2FAA2F;oBAC3F,oFAAoF;oBACpF,wEAAwE;oBACxE,gEAAgE;oBAChE,sEAAsE;aACzE,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC1F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,kBAAkB,EAAE,KAAc,CAAC,EAAE,CAAC;gBAC3F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,qLAAqL;QACvL,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,WAAW,cAAc,iBAAiB,QAAQ,mEAAmE,CACtH,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACpE,MAAM,gBAAgB,GAAG,YAAY,CAAC,yBAAyB,CAC7D,QAAQ,EACR,KAAK,EACL,WAAW,CACZ,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK;gBAC7B,OAAO,EAAE,gBAAgB,CAAC,OAAO;gBACjC,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB;gBAC3D,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,aAAa,EACX,+FAA+F;oBAC/F,+FAA+F;oBAC/F,oFAAoF;oBACpF,mEAAmE;aACtE,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC1F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,kBAAkB,EAAE,KAAc,CAAC,EAAE,CAAC;gBAC3F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,yMAAyM;QAC3M,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE;QACnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,WAAW,cAAc,iBAAiB,QAAQ,mEAAmE,CACtH,CAAC;YACJ,CAAC;YAED,mCAAmC;YACnC,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACjF,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;YACjD,CAAC;YAED,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"infrastructure.js","sourceRoot":"","sources":["../../src/tools/infrastructure.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/input.js
CHANGED
|
@@ -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
|
|
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:
|
|
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,
|
package/dist/tools/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,WAAwB,EACxB,iBAAoC,EACpC,YAA0B;IAE1B,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,
|
|
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
|
|
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
|
|
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
|
|
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;
|
|
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"}
|
package/dist/tools/pipeline.js
CHANGED
|
@@ -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
|
-
|
|
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",
|