@warpgogol/forge 5.3.0 → 5.3.1
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/bin/cli.ts +24 -33
- package/dist/bin/cli.js +20 -32
- package/dist/bin/cli.js.map +1 -1
- package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -1
- package/dist/os/adr/handlers/implement-stamp.js +0 -1
- package/dist/os/adr/handlers/implement-stamp.js.map +1 -1
- package/dist/os/mission/handlers/archive.d.ts.map +1 -1
- package/dist/os/mission/handlers/archive.js +22 -4
- package/dist/os/mission/handlers/archive.js.map +1 -1
- package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
- package/dist/os/rfc/handlers/validate.js +6 -1
- package/dist/os/rfc/handlers/validate.js.map +1 -1
- package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +1 -1
- package/dist/os/werkstatt/handlers/workspace-deps.js +0 -1
- package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -1
- package/dist/src/cli-flags.d.ts +28 -0
- package/dist/src/cli-flags.d.ts.map +1 -0
- package/dist/src/cli-flags.js +232 -0
- package/dist/src/cli-flags.js.map +1 -0
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
- package/dist/src/onboarding/agents-generate.js +18 -5
- package/dist/src/onboarding/agents-generate.js.map +1 -1
- package/os/adr/handlers/implement-stamp.ts +0 -1
- package/os/mission/handlers/archive.test.ts +38 -1
- package/os/mission/handlers/archive.ts +27 -4
- package/os/rfc/handlers/validate.test.ts +71 -0
- package/os/rfc/handlers/validate.ts +6 -1
- package/os/werkstatt/handlers/workspace-deps.ts +0 -1
- package/package.json +1 -1
- package/profiles/forge-shell.yaml +1 -1
- package/profiles/godot-game.yaml +1 -1
- package/profiles/knowledge.yaml +1 -1
- package/profiles/phaser-game.yaml +1 -1
- package/profiles/site-workshop.yaml +1 -1
- package/profiles/typescript.yaml +1 -1
- package/src/cli-flags.ts +285 -0
- package/src/onboarding/agents-generate.ts +20 -5
- package/src/tests/agents-generate.test.ts +22 -1
- package/src/tests/cli-flags.test.ts +169 -0
- package/src/tests/fixtures/agents-generate-business-before.txt +31 -2
- package/AGENTS.md +0 -532
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Argv-to-flags resolution for the standalone forge CLI — a standalone
|
|
4
|
+
port of the kernel's RFC-0260 semantics (resolveCommandFlags for schema-carrying
|
|
5
|
+
commands, the heuristic parser for schema-less ones). Ensures a declared string
|
|
6
|
+
flag never reaches a handler as `true`, which crashed `forge rfc.validate --id`
|
|
7
|
+
with `TypeError: targetId.toLowerCase is not a function`.</purpose>
|
|
8
|
+
<non-goals>
|
|
9
|
+
<item>Do not import from @warpgogol/* — forge is autonomous (FORGE-AUTONOMY-01); keep this a self-contained port.</item>
|
|
10
|
+
<item>Do not call console.* or process.exit — bin/cli.ts renders diagnostics and decides the exit code.</item>
|
|
11
|
+
</non-goals>
|
|
12
|
+
</MODULE_CONTRACT>
|
|
13
|
+
<CHANGE_SUMMARY>
|
|
14
|
+
<item>Standalone port of kernel argv resolution for the forge CLI: strict KERNEL-FLAG-01/02/03 + KERNEL-ARG-01 diagnostics for schema-carrying commands, legacy heuristic parse (with KERNEL-ARG-01) for schema-less commands; repeated single-value string flags diagnose instead of silently promoting to an array that crashes handlers.</item>
|
|
15
|
+
</CHANGE_SUMMARY>
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Flags every CLI command accepts regardless of its own declared schema —
|
|
19
|
+
* mirrors the kernel's KERNEL_UNIVERSAL_FLAGS so both entry points accept the
|
|
20
|
+
* same universal switches.
|
|
21
|
+
*/
|
|
22
|
+
export const CLI_UNIVERSAL_FLAGS = {
|
|
23
|
+
site: { kind: "string", description: "Target a specific site by name." },
|
|
24
|
+
all: { kind: "boolean", description: "Run against every discovered app." },
|
|
25
|
+
json: { kind: "boolean", description: "Emit machine-readable JSON instead of pretty output." },
|
|
26
|
+
quiet: { kind: "boolean", description: "Suppress non-essential log output." },
|
|
27
|
+
verbose: { kind: "boolean", description: "Emit additional diagnostic log output." },
|
|
28
|
+
root: { kind: "string", description: "Override the resolved workspace root." },
|
|
29
|
+
"dry-run": { kind: "boolean", description: "Report intended mutations without writing them." },
|
|
30
|
+
force: { kind: "boolean", description: "Bypass a normally-blocking safety check." },
|
|
31
|
+
help: { kind: "boolean", description: "Print command help instead of executing." },
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Boolean switches for the legacy heuristic path (schema-less commands).
|
|
35
|
+
* Mirrors the kernel's KERNEL_BOOLEAN_FLAGS: a listed flag never consumes the
|
|
36
|
+
* following token as its value.
|
|
37
|
+
*/
|
|
38
|
+
const CLI_BOOLEAN_FLAGS = new Set([
|
|
39
|
+
"all",
|
|
40
|
+
"all-apps",
|
|
41
|
+
"approve-all",
|
|
42
|
+
"dry-run",
|
|
43
|
+
"force",
|
|
44
|
+
"help",
|
|
45
|
+
"inplace",
|
|
46
|
+
"json",
|
|
47
|
+
"mini",
|
|
48
|
+
"packages",
|
|
49
|
+
"page",
|
|
50
|
+
"prod",
|
|
51
|
+
"quiet",
|
|
52
|
+
"regen",
|
|
53
|
+
"regenerate",
|
|
54
|
+
"report-only",
|
|
55
|
+
"show-versions",
|
|
56
|
+
"strict",
|
|
57
|
+
"verbose",
|
|
58
|
+
"version",
|
|
59
|
+
"write",
|
|
60
|
+
]);
|
|
61
|
+
function addFlagValue(target, key, value) {
|
|
62
|
+
const existing = target[key];
|
|
63
|
+
if (existing === undefined) {
|
|
64
|
+
target[key] = value;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (Array.isArray(existing)) {
|
|
68
|
+
if (typeof value === "string") {
|
|
69
|
+
target[key] = [...existing, value];
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (typeof existing === "string") {
|
|
74
|
+
if (typeof value === "string") {
|
|
75
|
+
target[key] = [existing, value];
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
target[key] = existing;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
target[key] = value;
|
|
82
|
+
}
|
|
83
|
+
function positionalDiagnostic(entry, commandName) {
|
|
84
|
+
const scope = commandName ? ` for command "${commandName}"` : "";
|
|
85
|
+
return {
|
|
86
|
+
ruleId: "KERNEL-ARG-01",
|
|
87
|
+
severity: "error",
|
|
88
|
+
message: `Unexpected positional argument "${entry}"${scope}. All arguments must be passed as flags.`,
|
|
89
|
+
fixHint: `Convert "${entry}" to a flag, e.g. --id ${entry}.`,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Legacy heuristic parse for commands without a `flags` schema — mirrors the
|
|
94
|
+
* kernel's parseKernelArgv: unknown flags are accepted, boolean-ness comes
|
|
95
|
+
* from CLI_BOOLEAN_FLAGS, and positional tokens produce KERNEL-ARG-01.
|
|
96
|
+
*/
|
|
97
|
+
export function parseCliArgs(argv) {
|
|
98
|
+
const flags = {};
|
|
99
|
+
const diagnostics = [];
|
|
100
|
+
let passthrough = false;
|
|
101
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
102
|
+
const entry = argv[index];
|
|
103
|
+
if (passthrough) {
|
|
104
|
+
diagnostics.push(positionalDiagnostic(entry));
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (entry === "--") {
|
|
108
|
+
passthrough = true;
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (!entry.startsWith("--")) {
|
|
112
|
+
diagnostics.push(positionalDiagnostic(entry));
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const withoutPrefix = entry.slice(2);
|
|
116
|
+
const [flagName, inlineValue] = withoutPrefix.split("=", 2);
|
|
117
|
+
if (!flagName)
|
|
118
|
+
continue;
|
|
119
|
+
if (inlineValue !== undefined) {
|
|
120
|
+
addFlagValue(flags, flagName, inlineValue);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (CLI_BOOLEAN_FLAGS.has(flagName)) {
|
|
124
|
+
addFlagValue(flags, flagName, true);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
const next = argv[index + 1];
|
|
128
|
+
if (typeof next === "string" && !next.startsWith("--")) {
|
|
129
|
+
addFlagValue(flags, flagName, next);
|
|
130
|
+
index += 1;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
addFlagValue(flags, flagName, true);
|
|
134
|
+
}
|
|
135
|
+
return { flags, diagnostics };
|
|
136
|
+
}
|
|
137
|
+
function resolveStrict(rawArgv, command) {
|
|
138
|
+
const schema = {
|
|
139
|
+
...CLI_UNIVERSAL_FLAGS,
|
|
140
|
+
...(command.flags ?? {}),
|
|
141
|
+
};
|
|
142
|
+
const validFlagNames = Object.keys(schema).sort();
|
|
143
|
+
const flags = {};
|
|
144
|
+
const diagnostics = [];
|
|
145
|
+
let passthrough = false;
|
|
146
|
+
for (let index = 0; index < rawArgv.length; index += 1) {
|
|
147
|
+
const entry = rawArgv[index];
|
|
148
|
+
if (passthrough) {
|
|
149
|
+
diagnostics.push(positionalDiagnostic(entry, command.name));
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (entry === "--") {
|
|
153
|
+
passthrough = true;
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (!entry.startsWith("--")) {
|
|
157
|
+
diagnostics.push(positionalDiagnostic(entry, command.name));
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
const withoutPrefix = entry.slice(2);
|
|
161
|
+
const [flagName, inlineValue] = withoutPrefix.split("=", 2);
|
|
162
|
+
if (!flagName)
|
|
163
|
+
continue;
|
|
164
|
+
const spec = schema[flagName];
|
|
165
|
+
if (!spec) {
|
|
166
|
+
diagnostics.push({
|
|
167
|
+
ruleId: "KERNEL-FLAG-01",
|
|
168
|
+
severity: "error",
|
|
169
|
+
message: `Unknown flag "--${flagName}" for command "${command.name}". Valid flags: ${validFlagNames.join(", ")}`,
|
|
170
|
+
fixHint: `Remove --${flagName}, fix the typo, or add it to the flags schema for ${command.name}.`,
|
|
171
|
+
});
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
if (inlineValue !== undefined) {
|
|
175
|
+
addFlagValue(flags, flagName, spec.kind === "boolean" ? inlineValue !== "false" : inlineValue);
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (spec.kind === "boolean") {
|
|
179
|
+
addFlagValue(flags, flagName, true);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const next = rawArgv[index + 1];
|
|
183
|
+
if (typeof next === "string" && !next.startsWith("--")) {
|
|
184
|
+
addFlagValue(flags, flagName, next);
|
|
185
|
+
index += 1;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
diagnostics.push({
|
|
189
|
+
ruleId: "KERNEL-FLAG-02",
|
|
190
|
+
severity: "error",
|
|
191
|
+
message: `Flag "--${flagName}" for command "${command.name}" requires a value but none was given.`,
|
|
192
|
+
fixHint: `Pass --${flagName} <value> or --${flagName}=<value>.`,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
for (const [flagName, spec] of Object.entries(schema)) {
|
|
196
|
+
const value = flags[flagName];
|
|
197
|
+
if (spec.required && value === undefined) {
|
|
198
|
+
diagnostics.push({
|
|
199
|
+
ruleId: "KERNEL-FLAG-03",
|
|
200
|
+
severity: "error",
|
|
201
|
+
message: `Required flag "--${flagName}" is missing for command "${command.name}".`,
|
|
202
|
+
fixHint: `Pass --${flagName} <value>.`,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
else if (value === undefined && spec.default !== undefined) {
|
|
206
|
+
flags[flagName] = spec.default;
|
|
207
|
+
}
|
|
208
|
+
else if (spec.kind === "string" && Array.isArray(value)) {
|
|
209
|
+
diagnostics.push({
|
|
210
|
+
ruleId: "KERNEL-FLAG-02",
|
|
211
|
+
severity: "error",
|
|
212
|
+
message: `Flag "--${flagName}" for command "${command.name}" accepts a single value but was given multiple.`,
|
|
213
|
+
fixHint: `Pass --${flagName} once, or declare the flag as kind "string[]" if multiple values are intended.`,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return { flags, diagnostics };
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Resolve raw argv against a command's declared flag schema (merged with
|
|
221
|
+
* CLI_UNIVERSAL_FLAGS) — the standalone-CLI counterpart of the kernel's
|
|
222
|
+
* resolveCommandFlags. Schema-carrying commands (`command.flags` set,
|
|
223
|
+
* including `{}`) resolve strictly; schema-less commands keep the legacy
|
|
224
|
+
* heuristic parse. Either way, positional tokens produce KERNEL-ARG-01.
|
|
225
|
+
*/
|
|
226
|
+
export function resolveCliFlags(argv, command) {
|
|
227
|
+
if (command.flags) {
|
|
228
|
+
return resolveStrict(argv, command);
|
|
229
|
+
}
|
|
230
|
+
return parseCliArgs(argv);
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=cli-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-flags.js","sourceRoot":"","sources":["../../src/cli-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-generate.d.ts","sourceRoot":"","sources":["../../../src/onboarding/agents-generate.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,KAAK,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAGlD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CAKR;AAGD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CA0BR;
|
|
1
|
+
{"version":3,"file":"agents-generate.d.ts","sourceRoot":"","sources":["../../../src/onboarding/agents-generate.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,KAAK,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAGlD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CAKR;AAGD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CA0BR;AA6HD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,CAmQnD"}
|
|
@@ -102,8 +102,21 @@ function readRegister(workspaceRoot) {
|
|
|
102
102
|
}
|
|
103
103
|
return "business";
|
|
104
104
|
}
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
/** resolveForgeRoot throws when neither layout exists — routing-table
|
|
106
|
+
* extraction is best-effort, so an unresolvable root yields an empty table. */
|
|
107
|
+
function safeResolveForgeRoot(workspaceRoot) {
|
|
108
|
+
try {
|
|
109
|
+
return resolveForgeRoot(workspaceRoot);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function extractTriggerPhrases(forgeRoot) {
|
|
116
|
+
// Consumer packages have no packages/forge — the root must come from the
|
|
117
|
+
// runtime context (or the installed package), never a hardcoded monorepo path.
|
|
118
|
+
if (!forgeRoot)
|
|
119
|
+
return [];
|
|
107
120
|
const result = [];
|
|
108
121
|
for (const skill of FORGE_SKILLS) {
|
|
109
122
|
if (skill.category !== "fo")
|
|
@@ -143,8 +156,8 @@ function generateTriggersTable(triggerPhrases) {
|
|
|
143
156
|
// section documents the routing contract (matches pre-RFC-1154 behavior).
|
|
144
157
|
return alignMarkdownTable(["Operator says something like", "Skill"], rows) + "\n";
|
|
145
158
|
}
|
|
146
|
-
function generateBehavioralLayer(
|
|
147
|
-
const triggerPhrases = extractTriggerPhrases(
|
|
159
|
+
function generateBehavioralLayer(register, forgeRoot) {
|
|
160
|
+
const triggerPhrases = extractTriggerPhrases(forgeRoot);
|
|
148
161
|
let template;
|
|
149
162
|
try {
|
|
150
163
|
template = fs.readFileSync(BEHAVIORAL_LAYER_CORE_TEMPLATE, "utf8").trimEnd();
|
|
@@ -268,7 +281,7 @@ export async function runAgentsGenerate(_input, context) {
|
|
|
268
281
|
dynamicLines.push("");
|
|
269
282
|
}
|
|
270
283
|
// Behavioral layer section (RFC-0548)
|
|
271
|
-
const behavioralLayer = generateBehavioralLayer(
|
|
284
|
+
const behavioralLayer = generateBehavioralLayer(register, context.forgeRoot ?? safeResolveForgeRoot(workspaceRoot));
|
|
272
285
|
dynamicLines.push(behavioralLayer);
|
|
273
286
|
dynamicLines.push("");
|
|
274
287
|
// RFC-0664: Project memory layer read discipline
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-generate.js","sourceRoot":"","sources":["../../../src/onboarding/agents-generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agents-generate.js","sourceRoot":"","sources":["../../../src/onboarding/agents-generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ and atomically mutates ADR frontmatter.
|
|
|
13
13
|
</MODULE_CONTRACT>
|
|
14
14
|
<CHANGE_SUMMARY>
|
|
15
15
|
<item>RFC-0727: initial implementation — mirrors rfc.implement.stamp for ADRs.</item>
|
|
16
|
-
<item>fix: add ADR-IMP-02 acceptance-criteria gate — block stamping post-cutoff ADRs with unchecked or evidence-less criteria (parity with rfc.implement.stamp RFC-IMP-02; prevents late adr.validate AV-17 failures).</item>
|
|
17
16
|
</CHANGE_SUMMARY>
|
|
18
17
|
*/
|
|
19
18
|
|
|
@@ -318,8 +318,14 @@ describe("mission.archive", () => {
|
|
|
318
318
|
});
|
|
319
319
|
|
|
320
320
|
test("RFC-0801: service folders deleted before move", async () => {
|
|
321
|
-
|
|
321
|
+
// Mission carries a releaseId — already released, so the deferred-release
|
|
322
|
+
// guard does not apply and all service folders are cleaned.
|
|
322
323
|
const missionDir = path.join(missionsDir, "test-m014");
|
|
324
|
+
await fs.mkdir(missionDir, { recursive: true });
|
|
325
|
+
await fs.writeFile(
|
|
326
|
+
path.join(missionDir, "mission.yaml"),
|
|
327
|
+
`missionId: test-m014\nstate: closed\nreleaseId: test-r000014\n`,
|
|
328
|
+
);
|
|
323
329
|
const workpieceDir = path.join(missionDir, "workpiece");
|
|
324
330
|
await fs.mkdir(workpieceDir, { recursive: true });
|
|
325
331
|
|
|
@@ -341,6 +347,37 @@ describe("mission.archive", () => {
|
|
|
341
347
|
}
|
|
342
348
|
});
|
|
343
349
|
|
|
350
|
+
test("deferred-release guard: closed mission without releaseId → node_modules preserved", async () => {
|
|
351
|
+
await writeMissionManifest(missionsDir, "test-m014b", "closed");
|
|
352
|
+
const missionDir = path.join(missionsDir, "test-m014b");
|
|
353
|
+
const workpieceDir = path.join(missionDir, "workpiece");
|
|
354
|
+
await fs.mkdir(workpieceDir, { recursive: true });
|
|
355
|
+
|
|
356
|
+
for (const folder of ["node_modules", "dist", ".astro"]) {
|
|
357
|
+
const folderPath = path.join(workpieceDir, folder);
|
|
358
|
+
await fs.mkdir(folderPath, { recursive: true });
|
|
359
|
+
await fs.writeFile(path.join(folderPath, "dummy.txt"), `content of ${folder}\n`);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
const data = unwrap(await runMissionArchive(makeInput(), makeContext(tmpDir)));
|
|
363
|
+
|
|
364
|
+
expect(data.moved).toHaveLength(1);
|
|
365
|
+
const archivedWorkpiece = path.join(
|
|
366
|
+
missionsDir,
|
|
367
|
+
"archive",
|
|
368
|
+
"closed",
|
|
369
|
+
"test-m014b",
|
|
370
|
+
"workpiece",
|
|
371
|
+
);
|
|
372
|
+
// node_modules preserved so release.prepare can still run on the archived
|
|
373
|
+
// workpiece — archived dirs fall outside the pnpm-workspace glob.
|
|
374
|
+
expect(existsSync(path.join(archivedWorkpiece, "node_modules"))).toBe(true);
|
|
375
|
+
expect(existsSync(path.join(archivedWorkpiece, "node_modules", "dummy.txt"))).toBe(true);
|
|
376
|
+
// Other service folders still cleaned.
|
|
377
|
+
expect(existsSync(path.join(archivedWorkpiece, "dist"))).toBe(false);
|
|
378
|
+
expect(existsSync(path.join(archivedWorkpiece, ".astro"))).toBe(false);
|
|
379
|
+
});
|
|
380
|
+
|
|
344
381
|
test("RFC-0801: mission without workpiece — cleanup skipped gracefully", async () => {
|
|
345
382
|
await writeMissionManifest(missionsDir, "test-m015", "closed");
|
|
346
383
|
// No workpiece/ directory created — simulates aborted mission
|
|
@@ -22,6 +22,7 @@ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten
|
|
|
22
22
|
|
|
23
23
|
Sweep batch 2: real KEY_DECISIONS on 10 files, expanded purposes (CONTRACT-02/PURPOSE-02), headers on mission/index + gen-upstreams, sanitizeItemText in summary.record (literal Compass tags corrupted history), excludedPaths for wrangler types, test-fixtures testPattern. forge+services now 0 diagnostics under --mode error.</item>
|
|
24
24
|
<item>RFC-1138: pipeline hygiene — module-scoped exempt entries, archive gitignore guard, dns upsert to deploy phases, promote auto-sync, rfc.create claim protocol, siteHasRuntime filter</item>
|
|
25
|
+
<item>warpgogol-m000175 fo-fix: deferred-release guard — closed missions without releaseId keep workpiece node_modules on archive (archived dirs fall outside the pnpm-workspace glob, so deps cannot be reinstalled in place and release.prepare would fail on WORKPIECE-IMPORTS-01); released missions still get full service-folder cleanup.</item>
|
|
25
26
|
<history>RFC-0573, RFC-0733, RFC-0801</history>
|
|
26
27
|
</CHANGE_SUMMARY>
|
|
27
28
|
*/
|
|
@@ -56,9 +57,13 @@ const SERVICE_FOLDERS = [
|
|
|
56
57
|
".turbo",
|
|
57
58
|
] as const;
|
|
58
59
|
|
|
59
|
-
async function cleanServiceFolders(
|
|
60
|
+
async function cleanServiceFolders(
|
|
61
|
+
workpieceDir: string,
|
|
62
|
+
keep: readonly string[] = [],
|
|
63
|
+
): Promise<string[]> {
|
|
60
64
|
const removed: string[] = [];
|
|
61
65
|
for (const folder of SERVICE_FOLDERS) {
|
|
66
|
+
if (keep.includes(folder)) continue;
|
|
62
67
|
const target = path.join(workpieceDir, folder);
|
|
63
68
|
if (existsSync(target)) {
|
|
64
69
|
await fs.rm(target);
|
|
@@ -185,11 +190,27 @@ async function moveMissionDir(
|
|
|
185
190
|
// Aborted missions may not have a workpiece/ directory — skip gracefully.
|
|
186
191
|
const workpieceDir = path.join(sourcePath, "workpiece");
|
|
187
192
|
if (existsSync(workpieceDir)) {
|
|
193
|
+
// Deferred-release guard: a closed mission without a releaseId still
|
|
194
|
+
// needs release.prepare (ADR-0085 closed-workpiece rebuild path), and
|
|
195
|
+
// archived dirs fall outside the pnpm-workspace `missions/*/workpiece`
|
|
196
|
+
// glob — node_modules cannot be reinstalled in place. Keep it so the
|
|
197
|
+
// archived workpiece stays release-ready.
|
|
198
|
+
const keepFolders =
|
|
199
|
+
direction === "into-archive" &&
|
|
200
|
+
state === "closed" &&
|
|
201
|
+
!(await readMissionReleaseId(sourcePath))
|
|
202
|
+
? ["node_modules"]
|
|
203
|
+
: [];
|
|
188
204
|
try {
|
|
189
|
-
const removed = await cleanServiceFolders(workpieceDir);
|
|
205
|
+
const removed = await cleanServiceFolders(workpieceDir, keepFolders);
|
|
190
206
|
if (removed.length > 0 && logger) {
|
|
191
207
|
logger.info(` cleaned service folders: ${removed.join(", ")}`);
|
|
192
208
|
}
|
|
209
|
+
if (keepFolders.length > 0 && logger) {
|
|
210
|
+
logger.info(
|
|
211
|
+
" kept node_modules — mission has no releaseId; release.prepare can still run on the archived workpiece",
|
|
212
|
+
);
|
|
213
|
+
}
|
|
193
214
|
} catch (cleanupErr) {
|
|
194
215
|
// Non-fatal: log warning and continue with move
|
|
195
216
|
if (logger) {
|
|
@@ -364,12 +385,14 @@ export async function runMissionArchive(
|
|
|
364
385
|
|
|
365
386
|
// Warn when archiving a closed mission without a release — operator likely
|
|
366
387
|
// forgot to run release.prepare before archiving. Non-blocking: some missions
|
|
367
|
-
// (e.g. aborted, content-only) legitimately have no release.
|
|
388
|
+
// (e.g. aborted, content-only) legitimately have no release. The workpiece
|
|
389
|
+
// node_modules are preserved in this case so the archived mission stays
|
|
390
|
+
// release-ready (see deferred-release guard in moveMissionDir).
|
|
368
391
|
if (state === "closed" && !dryRun) {
|
|
369
392
|
const releaseId = await readMissionReleaseId(missionDir);
|
|
370
393
|
if (!releaseId && outputFormat === "pretty") {
|
|
371
394
|
logger.warn(
|
|
372
|
-
` ⚠ ${missionId}: closed mission has no releaseId —
|
|
395
|
+
` ⚠ ${missionId}: closed mission has no releaseId — keeping workpiece node_modules so release.prepare can still run on the archived workpiece`,
|
|
373
396
|
);
|
|
374
397
|
}
|
|
375
398
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Unit tests for runRfcValidate flag handling — the --id guard that
|
|
4
|
+
rejects non-string values before file scanning.</purpose>
|
|
5
|
+
<non-goals>
|
|
6
|
+
<item>Do not duplicate validate-rules coverage — V-rule behavior lives in validate-rules*.test.ts.</item>
|
|
7
|
+
</non-goals>
|
|
8
|
+
</MODULE_CONTRACT>
|
|
9
|
+
<CHANGE_SUMMARY>
|
|
10
|
+
<item>Initial test — non-string --id (boolean/array from unvalidated flag input) throws a clear flag error instead of TypeError in rfcFileMatchesId.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { test, expect, describe } from "vitest";
|
|
15
|
+
import { mkdtempSync, rmSync } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
import { tmpdir } from "node:os";
|
|
18
|
+
import { runRfcValidate } from "./validate.ts";
|
|
19
|
+
import type {
|
|
20
|
+
ForgeCommandInput,
|
|
21
|
+
ForgeFlagValue,
|
|
22
|
+
ForgeRuntimeContext,
|
|
23
|
+
} from "../../../src/types.ts";
|
|
24
|
+
|
|
25
|
+
function makeContext(workspaceRoot: string): ForgeRuntimeContext {
|
|
26
|
+
return {
|
|
27
|
+
workspaceRoot,
|
|
28
|
+
logger: {
|
|
29
|
+
info: () => {},
|
|
30
|
+
success: () => {},
|
|
31
|
+
warn: () => {},
|
|
32
|
+
error: () => {},
|
|
33
|
+
section: () => {},
|
|
34
|
+
},
|
|
35
|
+
dryRun: false,
|
|
36
|
+
outputFormat: "json",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
describe("runRfcValidate --id flag guard", () => {
|
|
41
|
+
test.each([
|
|
42
|
+
["boolean true", true],
|
|
43
|
+
["string array", ["rfc-0001", "rfc-0002"]],
|
|
44
|
+
])("non-string --id (%s) throws a clear error", async (_label, id) => {
|
|
45
|
+
const dir = mkdtempSync(join(tmpdir(), "rfc-validate-id-"));
|
|
46
|
+
try {
|
|
47
|
+
const input: ForgeCommandInput = {
|
|
48
|
+
argv: [],
|
|
49
|
+
flags: { id: id as ForgeFlagValue },
|
|
50
|
+
};
|
|
51
|
+
await expect(runRfcValidate(input, makeContext(dir))).rejects.toThrow(
|
|
52
|
+
'Flag "--id" for command "rfc.validate" requires a single string value.',
|
|
53
|
+
);
|
|
54
|
+
} finally {
|
|
55
|
+
rmSync(dir, { recursive: true, force: true });
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test("missing --id runs the all-files path without throwing the guard", async () => {
|
|
60
|
+
const dir = mkdtempSync(join(tmpdir(), "rfc-validate-noid-"));
|
|
61
|
+
try {
|
|
62
|
+
const result = await runRfcValidate(
|
|
63
|
+
{ argv: [], flags: {} },
|
|
64
|
+
makeContext(dir),
|
|
65
|
+
);
|
|
66
|
+
expect(result.data?.status).toBe("pass");
|
|
67
|
+
} finally {
|
|
68
|
+
rmSync(dir, { recursive: true, force: true });
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -13,6 +13,7 @@ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten
|
|
|
13
13
|
<item>RFC-1097: sweep — werkstatt-engine clean
|
|
14
14
|
|
|
15
15
|
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.</item>
|
|
16
|
+
<item>Guard --id against non-string values (boolean/array from unvalidated flag input) — throws a clear flag error instead of TypeError in rfcFileMatchesId.</item>
|
|
16
17
|
</CHANGE_SUMMARY>
|
|
17
18
|
*/
|
|
18
19
|
|
|
@@ -48,7 +49,11 @@ export async function runRfcValidate(
|
|
|
48
49
|
const { workspaceRoot, logger, outputFormat } = context;
|
|
49
50
|
const rfcDirPath = path.join(workspaceRoot, RFC_DIR);
|
|
50
51
|
|
|
51
|
-
const
|
|
52
|
+
const rawId = input.flags["id"];
|
|
53
|
+
if (rawId !== undefined && typeof rawId !== "string") {
|
|
54
|
+
throw new Error(`Flag "--id" for command "rfc.validate" requires a single string value.`);
|
|
55
|
+
}
|
|
56
|
+
const targetId = rawId as string | undefined;
|
|
52
57
|
|
|
53
58
|
const allFiles = await listRfcFiles(rfcDirPath);
|
|
54
59
|
const filesToValidate = targetId
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
10
|
<item>RFC-0682: extract dynamic-import helper so forge publishes without workspace:* deps.</item>
|
|
11
11
|
<item>RFC-0940: moved from os/core/handlers/ to os/werkstatt/handlers/ — this module imports @warpgogol/werkstatt-engine and belongs in the adapter directory.</item>
|
|
12
|
-
<item>2026-09-22: fingerprint import switched from @warpgogol/werkstatt-engine/fingerprint to @warpgogol/werkstatt-shared/fingerprint (canonical home since RFC-1104) — breaks the forge↔engine package cycle reported by turbo.</item>
|
|
13
12
|
</CHANGE_SUMMARY>
|
|
14
13
|
*/
|
|
15
14
|
|
package/package.json
CHANGED
|
@@ -525,7 +525,7 @@ workspace:
|
|
|
525
525
|
"hooks": {
|
|
526
526
|
"pre_user_prompt": [
|
|
527
527
|
{
|
|
528
|
-
"command": "node $ROOT_WORKSPACE_PATH/hooks/pre-user-prompt-wrapper.mjs",
|
|
528
|
+
"command": "node \"${ROOT_WORKSPACE_PATH:-$PWD}/hooks/pre-user-prompt-wrapper.mjs\"",
|
|
529
529
|
"show_output": true
|
|
530
530
|
}
|
|
531
531
|
]
|
package/profiles/godot-game.yaml
CHANGED
|
@@ -1002,7 +1002,7 @@ workspace:
|
|
|
1002
1002
|
"hooks": {
|
|
1003
1003
|
"pre_user_prompt": [
|
|
1004
1004
|
{
|
|
1005
|
-
"command": "node $ROOT_WORKSPACE_PATH/hooks/pre-user-prompt-wrapper.mjs",
|
|
1005
|
+
"command": "node \"${ROOT_WORKSPACE_PATH:-$PWD}/hooks/pre-user-prompt-wrapper.mjs\"",
|
|
1006
1006
|
"show_output": true
|
|
1007
1007
|
}
|
|
1008
1008
|
]
|
package/profiles/knowledge.yaml
CHANGED
|
@@ -378,7 +378,7 @@ workspace:
|
|
|
378
378
|
"hooks": {
|
|
379
379
|
"pre_user_prompt": [
|
|
380
380
|
{
|
|
381
|
-
"command": "node $ROOT_WORKSPACE_PATH/hooks/pre-user-prompt-wrapper.mjs",
|
|
381
|
+
"command": "node \"${ROOT_WORKSPACE_PATH:-$PWD}/hooks/pre-user-prompt-wrapper.mjs\"",
|
|
382
382
|
"show_output": true
|
|
383
383
|
}
|
|
384
384
|
]
|
|
@@ -605,7 +605,7 @@ workspace:
|
|
|
605
605
|
"hooks": {
|
|
606
606
|
"pre_user_prompt": [
|
|
607
607
|
{
|
|
608
|
-
"command": "node $ROOT_WORKSPACE_PATH/hooks/pre-user-prompt-wrapper.mjs",
|
|
608
|
+
"command": "node \"${ROOT_WORKSPACE_PATH:-$PWD}/hooks/pre-user-prompt-wrapper.mjs\"",
|
|
609
609
|
"show_output": true
|
|
610
610
|
}
|
|
611
611
|
]
|