forgecraft-mcp 1.0.0 → 1.0.2
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/README.md +95 -49
- package/dist/analyzers/anti-pattern.d.ts.map +1 -1
- package/dist/analyzers/anti-pattern.js +28 -0
- package/dist/analyzers/anti-pattern.js.map +1 -1
- package/dist/cli/assistant-detector.d.ts +28 -0
- package/dist/cli/assistant-detector.d.ts.map +1 -0
- package/dist/cli/assistant-detector.js +107 -0
- package/dist/cli/assistant-detector.js.map +1 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +18 -3
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/help.js +44 -44
- package/dist/http-server-contribute.d.ts +21 -0
- package/dist/http-server-contribute.d.ts.map +1 -0
- package/dist/http-server-contribute.js +168 -0
- package/dist/http-server-contribute.js.map +1 -0
- package/dist/http-server.d.ts +16 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +200 -0
- package/dist/http-server.js.map +1 -0
- package/dist/registry/remote-gates.js +10 -4
- package/dist/registry/remote-gates.js.map +1 -1
- package/dist/tools/check-cascade-report.js +64 -64
- package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
- package/dist/tools/forgecraft-dispatch.js +1 -0
- package/dist/tools/forgecraft-dispatch.js.map +1 -1
- package/dist/tools/forgecraft-schema.d.ts +2 -2
- package/dist/tools/scaffold-spec-stubs.js +24 -24
- package/dist/tools/scaffold-templates.d.ts +1 -1
- package/dist/tools/scaffold-templates.d.ts.map +1 -1
- package/dist/tools/scaffold-templates.js +73 -64
- package/dist/tools/scaffold-templates.js.map +1 -1
- package/dist/tools/setup-phase2.d.ts +1 -0
- package/dist/tools/setup-phase2.d.ts.map +1 -1
- package/dist/tools/setup-phase2.js +24 -6
- package/dist/tools/setup-phase2.js.map +1 -1
- package/dist/tools/setup-project.d.ts +6 -0
- package/dist/tools/setup-project.d.ts.map +1 -1
- package/dist/tools/setup-project.js +25 -8
- package/dist/tools/setup-project.js.map +1 -1
- package/dist/tools/spec-parser-inference.d.ts +10 -0
- package/dist/tools/spec-parser-inference.d.ts.map +1 -1
- package/dist/tools/spec-parser-inference.js +134 -31
- package/dist/tools/spec-parser-inference.js.map +1 -1
- package/package.json +7 -2
|
@@ -15,10 +15,11 @@ import { configureMcpHandler } from "./configure-mcp.js";
|
|
|
15
15
|
import { createLogger } from "../shared/logger/index.js";
|
|
16
16
|
import { parseSpec, inferSensitiveData } from "./spec-parser.js";
|
|
17
17
|
import { buildProjectContext } from "./setup-context.js";
|
|
18
|
+
export { detectProjectMode } from "./setup-detector.js";
|
|
18
19
|
import { buildPhase1Response } from "./setup-phase1.js";
|
|
19
20
|
import { writeForgeYaml, setExperimentGroupIfMissing, writePrd, writeUseCases, initGitRepo, } from "./setup-artifact-writers.js";
|
|
20
21
|
import { deriveCascadeDecisions, buildPhase2Response } from "./setup-phase2.js";
|
|
21
|
-
import { writeCntFiles, writeCoreMd, writeAdrIndex, writeGatesIndex } from "./setup-cnt.js";
|
|
22
|
+
import { writeCntFiles, writeCoreMd, writeAdrIndex, writeGatesIndex, } from "./setup-cnt.js";
|
|
22
23
|
const logger = createLogger("tools/setup-project");
|
|
23
24
|
/** Valid ALL_TAGS values as a Set for fast membership testing. */
|
|
24
25
|
const VALID_TAGS_SET = new Set(ALL_TAGS);
|
|
@@ -36,12 +37,20 @@ export async function setupProjectHandler(args) {
|
|
|
36
37
|
const isPhase2 = args.mvp !== undefined &&
|
|
37
38
|
args.scope_complete !== undefined &&
|
|
38
39
|
args.has_consumers !== undefined;
|
|
39
|
-
logger.info("setup_project", {
|
|
40
|
+
logger.info("setup_project", {
|
|
41
|
+
phase: isPhase2 ? 2 : 1,
|
|
42
|
+
projectDir: args.project_dir,
|
|
43
|
+
});
|
|
40
44
|
const context = await buildProjectContext(args);
|
|
41
45
|
if (!isPhase2) {
|
|
42
46
|
return buildPhase1Response(context);
|
|
43
47
|
}
|
|
44
|
-
return executePhase2({
|
|
48
|
+
return executePhase2({
|
|
49
|
+
...args,
|
|
50
|
+
mvp: args.mvp,
|
|
51
|
+
scope_complete: args.scope_complete,
|
|
52
|
+
has_consumers: args.has_consumers,
|
|
53
|
+
}, context);
|
|
45
54
|
}
|
|
46
55
|
// ── Phase 2 Orchestration ─────────────────────────────────────────────
|
|
47
56
|
/**
|
|
@@ -53,9 +62,12 @@ export async function setupProjectHandler(args) {
|
|
|
53
62
|
*/
|
|
54
63
|
async function executePhase2(args, context) {
|
|
55
64
|
const { projectDir, projectName } = context;
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
const llmCorrectedTags = args.tags && args.tags.length > 0 ? filterToValidTags(args.tags) : null;
|
|
66
|
+
const effectiveTags = llmCorrectedTags
|
|
67
|
+
? [...new Set(["UNIVERSAL", ...llmCorrectedTags])]
|
|
68
|
+
: args.project_type_override
|
|
69
|
+
? applyProjectTypeOverride(context.inferredTags, args.project_type_override)
|
|
70
|
+
: context.inferredTags;
|
|
59
71
|
const decisions = deriveCascadeDecisions(effectiveTags, projectName, args.mvp, args.scope_complete, args.has_consumers);
|
|
60
72
|
const forgeCraftTags = filterToValidTags(effectiveTags);
|
|
61
73
|
const specSummaryForSensitive = context.specContent
|
|
@@ -72,8 +84,12 @@ async function executePhase2(args, context) {
|
|
|
72
84
|
successCriteria: args.success_criteria,
|
|
73
85
|
};
|
|
74
86
|
const hasSpec = !!context.specContent || !!aiFields.problemStatement;
|
|
75
|
-
const prdWritten = hasSpec
|
|
76
|
-
|
|
87
|
+
const prdWritten = hasSpec
|
|
88
|
+
? writePrd(projectDir, projectName, aiFields, context.specContent)
|
|
89
|
+
: false;
|
|
90
|
+
const useCasesWritten = hasSpec
|
|
91
|
+
? writeUseCases(projectDir, projectName, aiFields, context.specContent)
|
|
92
|
+
: false;
|
|
77
93
|
const validTagsForHooks = (forgeCraftTags.length > 0 ? forgeCraftTags : ["UNIVERSAL"]);
|
|
78
94
|
const scaffoldResult = await scaffoldProjectHandler({
|
|
79
95
|
tags: validTagsForHooks,
|
|
@@ -119,6 +135,7 @@ async function executePhase2(args, context) {
|
|
|
119
135
|
adrIndexWritten: writeAdrIndex(projectDir),
|
|
120
136
|
gatesIndexWritten: writeGatesIndex(projectDir),
|
|
121
137
|
gitInitStatus,
|
|
138
|
+
isBrownfield: context.isBrownfield,
|
|
122
139
|
});
|
|
123
140
|
return { content: [{ type: "text", text }] };
|
|
124
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../src/tools/setup-project.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,QAAQ,EACR,aAAa,EACb,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../src/tools/setup-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,16 @@ import type { DirectoryInferenceResult } from "./spec-parser-directory.js";
|
|
|
8
8
|
* Mutates tags and signal arrays in place.
|
|
9
9
|
*/
|
|
10
10
|
export declare function analyzeRootPackageJson(projectDir: string, tags: Set<string>, cliSignals: string[], apiSignals: string[], librarySignals: string[]): void;
|
|
11
|
+
/**
|
|
12
|
+
* Apply directory structure heuristics for API/CLI tag inference.
|
|
13
|
+
* Called unconditionally — does not require a package.json.
|
|
14
|
+
*
|
|
15
|
+
* @param projectDir - Project root
|
|
16
|
+
* @param tags - Tag set to update
|
|
17
|
+
* @param cliSignals - CLI signal accumulator
|
|
18
|
+
* @param apiSignals - API signal accumulator
|
|
19
|
+
*/
|
|
20
|
+
export declare function analyzeDirectoryStructure(projectDir: string, tags: Set<string>, cliSignals: string[], apiSignals: string[]): void;
|
|
11
21
|
/**
|
|
12
22
|
* Analyze Python build files (requirements.txt, pyproject.toml) for tag signals.
|
|
13
23
|
* Mutates tags and signal arrays in place.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-parser-inference.d.ts","sourceRoot":"","sources":["../../src/tools/spec-parser-inference.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"spec-parser-inference.d.ts","sourceRoot":"","sources":["../../src/tools/spec-parser-inference.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,MAAM,EAAE,GACvB,IAAI,CAkEN;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CAoDN;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CA4DN;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,MAAM,EAAE,EACxB,cAAc,EAAE,OAAO,EACvB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAiFjB;AAsCD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC,CA2EnC"}
|
|
@@ -20,7 +20,14 @@ export function analyzeRootPackageJson(projectDir, tags, cliSignals, apiSignals,
|
|
|
20
20
|
...(pkg["devDependencies"] ?? {}),
|
|
21
21
|
};
|
|
22
22
|
const depNames = Object.keys(allDeps).map((d) => d.toLowerCase());
|
|
23
|
-
if (depNames.some((d) => [
|
|
23
|
+
if (depNames.some((d) => [
|
|
24
|
+
"express",
|
|
25
|
+
"fastify",
|
|
26
|
+
"koa",
|
|
27
|
+
"hapi",
|
|
28
|
+
"@nestjs/core",
|
|
29
|
+
"fastify",
|
|
30
|
+
].includes(d))) {
|
|
24
31
|
tags.add("API");
|
|
25
32
|
apiSignals.push("web-framework dependency (express/fastify/koa)");
|
|
26
33
|
}
|
|
@@ -48,18 +55,37 @@ export function analyzeRootPackageJson(projectDir, tags, cliSignals, apiSignals,
|
|
|
48
55
|
const hasBin = !!pkg["bin"];
|
|
49
56
|
if ((hasMain || hasExports) && !hasBin) {
|
|
50
57
|
tags.add("LIBRARY");
|
|
51
|
-
librarySignals.push(hasExports
|
|
58
|
+
librarySignals.push(hasExports
|
|
59
|
+
? "package.json exports field (publishable package)"
|
|
60
|
+
: "package.json main field (publishable module)");
|
|
52
61
|
}
|
|
53
62
|
}
|
|
54
|
-
catch {
|
|
55
|
-
|
|
56
|
-
|
|
63
|
+
catch {
|
|
64
|
+
/* Malformed package.json — skip */
|
|
65
|
+
}
|
|
66
|
+
// Directory structure heuristics — run after package.json analysis
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Apply directory structure heuristics for API/CLI tag inference.
|
|
70
|
+
* Called unconditionally — does not require a package.json.
|
|
71
|
+
*
|
|
72
|
+
* @param projectDir - Project root
|
|
73
|
+
* @param tags - Tag set to update
|
|
74
|
+
* @param cliSignals - CLI signal accumulator
|
|
75
|
+
* @param apiSignals - API signal accumulator
|
|
76
|
+
*/
|
|
77
|
+
export function analyzeDirectoryStructure(projectDir, tags, cliSignals, apiSignals) {
|
|
78
|
+
if (existsSync(join(projectDir, "src", "routes")) ||
|
|
79
|
+
existsSync(join(projectDir, "src", "controllers"))) {
|
|
57
80
|
tags.add("API");
|
|
58
81
|
apiSignals.push("src/routes or src/controllers directory");
|
|
59
82
|
}
|
|
60
|
-
if (existsSync(join(projectDir, "src", "cli")) ||
|
|
83
|
+
if (existsSync(join(projectDir, "src", "cli")) ||
|
|
84
|
+
existsSync(join(projectDir, "bin"))) {
|
|
61
85
|
tags.add("CLI");
|
|
62
|
-
cliSignals.push(existsSync(join(projectDir, "bin"))
|
|
86
|
+
cliSignals.push(existsSync(join(projectDir, "bin"))
|
|
87
|
+
? "bin/ directory"
|
|
88
|
+
: "src/cli/ directory");
|
|
63
89
|
}
|
|
64
90
|
// MCP server files in src/
|
|
65
91
|
const srcDir = join(projectDir, "src");
|
|
@@ -73,19 +99,26 @@ export function analyzeRootPackageJson(projectDir, tags, cliSignals, apiSignals,
|
|
|
73
99
|
apiSignals.push("MCP server file in src/");
|
|
74
100
|
}
|
|
75
101
|
}
|
|
76
|
-
catch {
|
|
102
|
+
catch {
|
|
103
|
+
/* skip */
|
|
104
|
+
}
|
|
77
105
|
}
|
|
78
|
-
// Docker-compose DATABASE
|
|
79
106
|
const composeFile = join(projectDir, "docker-compose.yml");
|
|
80
107
|
const composeYmlFile = join(projectDir, "docker-compose.yaml");
|
|
81
|
-
const composePath = existsSync(composeFile)
|
|
108
|
+
const composePath = existsSync(composeFile)
|
|
109
|
+
? composeFile
|
|
110
|
+
: existsSync(composeYmlFile)
|
|
111
|
+
? composeYmlFile
|
|
112
|
+
: null;
|
|
82
113
|
if (composePath) {
|
|
83
114
|
try {
|
|
84
115
|
const composeContent = readFileSync(composePath, "utf-8").toLowerCase();
|
|
85
116
|
if (/postgres|mysql|mongodb|mongo/.test(composeContent))
|
|
86
117
|
tags.add("DATABASE");
|
|
87
118
|
}
|
|
88
|
-
catch {
|
|
119
|
+
catch {
|
|
120
|
+
/* skip */
|
|
121
|
+
}
|
|
89
122
|
}
|
|
90
123
|
}
|
|
91
124
|
// ── Python project analysis ───────────────────────────────────────────
|
|
@@ -106,14 +139,22 @@ export function analyzePythonProject(projectDir, tags, cliSignals, apiSignals) {
|
|
|
106
139
|
tags.add("CLI");
|
|
107
140
|
cliSignals.push("click/typer dependency (requirements.txt)");
|
|
108
141
|
}
|
|
109
|
-
const PY_DATABASE_DEPS = [
|
|
142
|
+
const PY_DATABASE_DEPS = [
|
|
143
|
+
"sqlalchemy",
|
|
144
|
+
"psycopg2",
|
|
145
|
+
"pymongo",
|
|
146
|
+
"databases",
|
|
147
|
+
"tortoise-orm",
|
|
148
|
+
];
|
|
110
149
|
if (PY_DATABASE_DEPS.some((dep) => reqContent.includes(dep)))
|
|
111
150
|
tags.add("DATABASE");
|
|
112
151
|
const PY_AUTH_DEPS = ["python-jose", "passlib", "authlib", "pyjwt"];
|
|
113
152
|
if (PY_AUTH_DEPS.some((dep) => reqContent.includes(dep)))
|
|
114
153
|
tags.add("AUTH");
|
|
115
154
|
}
|
|
116
|
-
catch {
|
|
155
|
+
catch {
|
|
156
|
+
/* skip */
|
|
157
|
+
}
|
|
117
158
|
}
|
|
118
159
|
const pyprojectPath = join(projectDir, "pyproject.toml");
|
|
119
160
|
if (existsSync(pyprojectPath)) {
|
|
@@ -123,15 +164,24 @@ export function analyzePythonProject(projectDir, tags, cliSignals, apiSignals) {
|
|
|
123
164
|
tags.add("API");
|
|
124
165
|
apiSignals.push("fastapi dependency (pyproject.toml)");
|
|
125
166
|
}
|
|
126
|
-
if (pyprojectContent.includes("click") ||
|
|
167
|
+
if (pyprojectContent.includes("click") ||
|
|
168
|
+
pyprojectContent.includes("typer")) {
|
|
127
169
|
tags.add("CLI");
|
|
128
170
|
cliSignals.push("click/typer dependency (pyproject.toml)");
|
|
129
171
|
}
|
|
130
|
-
const PY_DATABASE_DEPS_TOML = [
|
|
172
|
+
const PY_DATABASE_DEPS_TOML = [
|
|
173
|
+
"sqlalchemy",
|
|
174
|
+
"psycopg2",
|
|
175
|
+
"pymongo",
|
|
176
|
+
"databases",
|
|
177
|
+
"tortoise-orm",
|
|
178
|
+
];
|
|
131
179
|
if (PY_DATABASE_DEPS_TOML.some((dep) => pyprojectContent.includes(dep)))
|
|
132
180
|
tags.add("DATABASE");
|
|
133
181
|
}
|
|
134
|
-
catch {
|
|
182
|
+
catch {
|
|
183
|
+
/* skip */
|
|
184
|
+
}
|
|
135
185
|
}
|
|
136
186
|
}
|
|
137
187
|
// ── Ambiguity builders ────────────────────────────────────────────────
|
|
@@ -145,10 +195,21 @@ export function buildTagAmbiguities(tags, cliSignals, apiSignals, librarySignals
|
|
|
145
195
|
if (hasPythonBuild && hasTypeScriptSrc) {
|
|
146
196
|
ambiguities.push({
|
|
147
197
|
field: "tech_stack",
|
|
148
|
-
signals: [
|
|
198
|
+
signals: [
|
|
199
|
+
"Python build system (requirements.txt/pyproject.toml)",
|
|
200
|
+
"TypeScript src files detected",
|
|
201
|
+
],
|
|
149
202
|
interpretations: [
|
|
150
|
-
{
|
|
151
|
-
|
|
203
|
+
{
|
|
204
|
+
label: "A",
|
|
205
|
+
description: "Python project with TypeScript frontend/tooling (primary: Python)",
|
|
206
|
+
consequence: "Python-oriented gates applied; TypeScript treated as build tooling",
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
label: "B",
|
|
210
|
+
description: "TypeScript project with Python scripts/utilities (primary: TypeScript)",
|
|
211
|
+
consequence: "TypeScript gates applied; Python treated as supplementary tooling",
|
|
212
|
+
},
|
|
152
213
|
],
|
|
153
214
|
});
|
|
154
215
|
}
|
|
@@ -157,9 +218,21 @@ export function buildTagAmbiguities(tags, cliSignals, apiSignals, librarySignals
|
|
|
157
218
|
field: "primary_tag",
|
|
158
219
|
signals: [...cliSignals, ...apiSignals],
|
|
159
220
|
interpretations: [
|
|
160
|
-
{
|
|
161
|
-
|
|
162
|
-
|
|
221
|
+
{
|
|
222
|
+
label: "A",
|
|
223
|
+
description: "Primarily a CLI tool (tag: CLI)",
|
|
224
|
+
consequence: "CLI cascade applied; API-specific gates optional",
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
label: "B",
|
|
228
|
+
description: "Primarily an HTTP API (tag: API)",
|
|
229
|
+
consequence: "API cascade applied; all endpoint contracts required",
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
label: "C",
|
|
233
|
+
description: "Hybrid CLI+API project (tags: CLI, API)",
|
|
234
|
+
consequence: "Most restrictive cascade applied; all steps required",
|
|
235
|
+
},
|
|
163
236
|
],
|
|
164
237
|
});
|
|
165
238
|
}
|
|
@@ -168,9 +241,21 @@ export function buildTagAmbiguities(tags, cliSignals, apiSignals, librarySignals
|
|
|
168
241
|
field: "primary_tag",
|
|
169
242
|
signals: [...cliSignals, ...librarySignals],
|
|
170
243
|
interpretations: [
|
|
171
|
-
{
|
|
172
|
-
|
|
173
|
-
|
|
244
|
+
{
|
|
245
|
+
label: "A",
|
|
246
|
+
description: "Primarily a CLI tool that ships an executable (tag: CLI)",
|
|
247
|
+
consequence: "CLI cascade applied; library-specific contracts optional",
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
label: "B",
|
|
251
|
+
description: "Primarily a reusable library that includes a CLI (tag: LIBRARY)",
|
|
252
|
+
consequence: "Library cascade applied; public API contracts and versioning required",
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
label: "C",
|
|
256
|
+
description: "Dual-purpose CLI+library package (tags: CLI, LIBRARY)",
|
|
257
|
+
consequence: "Most restrictive cascade applied; all steps required",
|
|
258
|
+
},
|
|
174
259
|
],
|
|
175
260
|
});
|
|
176
261
|
}
|
|
@@ -199,7 +284,9 @@ async function loadForgecraftYamlTags(projectDir, tags) {
|
|
|
199
284
|
}
|
|
200
285
|
}
|
|
201
286
|
}
|
|
202
|
-
catch {
|
|
287
|
+
catch {
|
|
288
|
+
/* Invalid yaml — skip */
|
|
289
|
+
}
|
|
203
290
|
}
|
|
204
291
|
// ── Main entry point ──────────────────────────────────────────────────
|
|
205
292
|
/**
|
|
@@ -223,23 +310,39 @@ export async function inferTagsFromDirectory(projectDir) {
|
|
|
223
310
|
tags.add("DOCS");
|
|
224
311
|
ambiguities.push({
|
|
225
312
|
field: "project_type",
|
|
226
|
-
signals: [
|
|
313
|
+
signals: [
|
|
314
|
+
"no package.json",
|
|
315
|
+
"no requirements.txt",
|
|
316
|
+
"no go.mod",
|
|
317
|
+
"markdown files present",
|
|
318
|
+
],
|
|
227
319
|
interpretations: [
|
|
228
|
-
{
|
|
229
|
-
|
|
320
|
+
{
|
|
321
|
+
label: "A",
|
|
322
|
+
description: "Design specification project (tag: DOCS)",
|
|
323
|
+
consequence: "All implementation gates skipped; only spec completeness checked",
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
label: "B",
|
|
327
|
+
description: "Early-stage software project (no build system set up yet)",
|
|
328
|
+
consequence: "Full cascade applied; implementation gates enforced",
|
|
329
|
+
},
|
|
230
330
|
],
|
|
231
331
|
});
|
|
232
332
|
}
|
|
233
333
|
}
|
|
234
334
|
analyzeRootPackageJson(projectDir, tags, cliSignals, apiSignals, librarySignals);
|
|
335
|
+
analyzeDirectoryStructure(projectDir, tags, cliSignals, apiSignals);
|
|
235
336
|
analyzePythonProject(projectDir, tags, cliSignals, apiSignals);
|
|
236
337
|
analyzeSubdirectories(projectDir, tags);
|
|
237
338
|
const hasScrapingPatterns = await scanSourceForSensitivePatterns(projectDir);
|
|
238
339
|
if (hasScrapingPatterns)
|
|
239
340
|
tags.add("SOCIAL");
|
|
240
|
-
const hasPythonBuild = existsSync(join(projectDir, "requirements.txt")) ||
|
|
341
|
+
const hasPythonBuild = existsSync(join(projectDir, "requirements.txt")) ||
|
|
342
|
+
existsSync(join(projectDir, "pyproject.toml"));
|
|
241
343
|
const hasTypeScriptSrc = existsSync(join(projectDir, "src")) &&
|
|
242
|
-
(existsSync(join(projectDir, "tsconfig.json")) ||
|
|
344
|
+
(existsSync(join(projectDir, "tsconfig.json")) ||
|
|
345
|
+
existsSync(join(projectDir, "src", "index.ts")));
|
|
243
346
|
const tagAmbiguities = buildTagAmbiguities(tags, cliSignals, apiSignals, librarySignals, hasPythonBuild, hasTypeScriptSrc, projectDir);
|
|
244
347
|
ambiguities.push(...tagAmbiguities);
|
|
245
348
|
await loadForgecraftYamlTags(projectDir, tags);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-parser-inference.js","sourceRoot":"","sources":["../../src/tools/spec-parser-inference.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spec-parser-inference.js","sourceRoot":"","sources":["../../src/tools/spec-parser-inference.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "forgecraft-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"mcpName": "io.github.jghiringhelli/forgecraft",
|
|
5
5
|
"description": "CLI + MCP sentinel for engineering standards — SOLID, testing, architecture, CI/CD — auto-tailored to your stack. Minimal MCP footprint (~200 tokens) via CLI-first design.",
|
|
6
6
|
"type": "module",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"dev": "tsc --watch",
|
|
14
14
|
"start": "node dist/index.js",
|
|
15
|
+
"serve": "node dist/http-server.js",
|
|
15
16
|
"test": "vitest run",
|
|
16
17
|
"test:watch": "vitest",
|
|
17
18
|
"test:coverage": "vitest run --coverage",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"type": "git",
|
|
52
53
|
"url": "git+https://github.com/jghiringhelli/forgecraft-mcp.git"
|
|
53
54
|
},
|
|
54
|
-
"homepage": "https://
|
|
55
|
+
"homepage": "https://forgecraft.tools",
|
|
55
56
|
"bugs": {
|
|
56
57
|
"url": "https://github.com/jghiringhelli/forgecraft-mcp/issues"
|
|
57
58
|
},
|
|
@@ -71,10 +72,14 @@
|
|
|
71
72
|
"devDependencies": {
|
|
72
73
|
"@stryker-mutator/core": "^9.6.0",
|
|
73
74
|
"@stryker-mutator/vitest-runner": "^9.6.0",
|
|
75
|
+
"@types/express": "^5.0.6",
|
|
74
76
|
"@types/js-yaml": "^4.0.9",
|
|
75
77
|
"@types/node": "^22.13.4",
|
|
78
|
+
"@types/supertest": "^7.2.0",
|
|
76
79
|
"@vitest/coverage-v8": "^3.2.4",
|
|
80
|
+
"express": "^5.2.1",
|
|
77
81
|
"rimraf": "^6.0.1",
|
|
82
|
+
"supertest": "^7.2.2",
|
|
78
83
|
"typescript": "^5.7.3",
|
|
79
84
|
"vitest": "^3.0.5"
|
|
80
85
|
}
|