@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.
Files changed (41) hide show
  1. package/bin/cli.ts +24 -33
  2. package/dist/bin/cli.js +20 -32
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -1
  5. package/dist/os/adr/handlers/implement-stamp.js +0 -1
  6. package/dist/os/adr/handlers/implement-stamp.js.map +1 -1
  7. package/dist/os/mission/handlers/archive.d.ts.map +1 -1
  8. package/dist/os/mission/handlers/archive.js +22 -4
  9. package/dist/os/mission/handlers/archive.js.map +1 -1
  10. package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
  11. package/dist/os/rfc/handlers/validate.js +6 -1
  12. package/dist/os/rfc/handlers/validate.js.map +1 -1
  13. package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +1 -1
  14. package/dist/os/werkstatt/handlers/workspace-deps.js +0 -1
  15. package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -1
  16. package/dist/src/cli-flags.d.ts +28 -0
  17. package/dist/src/cli-flags.d.ts.map +1 -0
  18. package/dist/src/cli-flags.js +232 -0
  19. package/dist/src/cli-flags.js.map +1 -0
  20. package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
  21. package/dist/src/onboarding/agents-generate.js +18 -5
  22. package/dist/src/onboarding/agents-generate.js.map +1 -1
  23. package/os/adr/handlers/implement-stamp.ts +0 -1
  24. package/os/mission/handlers/archive.test.ts +38 -1
  25. package/os/mission/handlers/archive.ts +27 -4
  26. package/os/rfc/handlers/validate.test.ts +71 -0
  27. package/os/rfc/handlers/validate.ts +6 -1
  28. package/os/werkstatt/handlers/workspace-deps.ts +0 -1
  29. package/package.json +1 -1
  30. package/profiles/forge-shell.yaml +1 -1
  31. package/profiles/godot-game.yaml +1 -1
  32. package/profiles/knowledge.yaml +1 -1
  33. package/profiles/phaser-game.yaml +1 -1
  34. package/profiles/site-workshop.yaml +1 -1
  35. package/profiles/typescript.yaml +1 -1
  36. package/src/cli-flags.ts +285 -0
  37. package/src/onboarding/agents-generate.ts +20 -5
  38. package/src/tests/agents-generate.test.ts +22 -1
  39. package/src/tests/cli-flags.test.ts +169 -0
  40. package/src/tests/fixtures/agents-generate-business-before.txt +31 -2
  41. 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":"AAAA;;;;;;;;;;;;;;;EAeE;AASF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;IACxE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;IAC1E,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sDAAsD,EAAE;IAC9F,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;IAC7E,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC9E,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;IAC9F,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE;IACnF,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0CAA0C,EAAE;CACnF,CAAC;AAEF;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,KAAK;IACL,UAAU;IACV,aAAa;IACb,SAAS;IACT,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,YAAY;IACZ,aAAa;IACb,eAAe;IACf,QAAQ;IACR,SAAS;IACT,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,YAAY,CACnB,MAAsC,EACtC,GAAW,EACX,KAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,WAAoB;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,mCAAmC,KAAK,IAAI,KAAK,0CAA0C;QACpG,OAAO,EAAE,YAAY,KAAK,0BAA0B,KAAK,GAAG;KAC7D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IAIzC,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QAE3B,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CACpB,OAAiB,EACjB,OAA+B;IAE/B,MAAM,MAAM,GAAkC;QAC5C,GAAG,mBAAmB;QACtB,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAE,CAAC;QAE9B,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mBAAmB,QAAQ,kBAAkB,OAAO,CAAC,IAAI,mBAAmB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChH,OAAO,EAAE,YAAY,QAAQ,qDAAqD,OAAO,CAAC,IAAI,GAAG;aAClG,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,YAAY,CACV,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAChE,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW,QAAQ,kBAAkB,OAAO,CAAC,IAAI,wCAAwC;YAClG,OAAO,EAAE,UAAU,QAAQ,iBAAiB,QAAQ,WAAW;SAChE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,oBAAoB,QAAQ,6BAA6B,OAAO,CAAC,IAAI,IAAI;gBAClF,OAAO,EAAE,UAAU,QAAQ,WAAW;aACvC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7D,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,QAAQ,kBAAkB,OAAO,CAAC,IAAI,kDAAkD;gBAC5G,OAAO,EAAE,UAAU,QAAQ,gFAAgF;aAC5G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAc,EACd,OAA+B;IAE/B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
@@ -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;AAiHD,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,CAgQnD"}
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
- function extractTriggerPhrases(workspaceRoot) {
106
- const forgeRoot = path.join(workspaceRoot, "packages", "forge");
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(workspaceRoot, register) {
147
- const triggerPhrases = extractTriggerPhrases(workspaceRoot);
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(workspaceRoot, register);
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":"AAAA;;;;;;;;;;;;;;;;;;;;EAoBE;AAEF,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzK,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAWjE,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,WAAmC;IAEnC,OAAO,OAAO,CAAC,OAAO,CACpB,6BAA6B,EAC7B,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAC5C,CAAC;AACJ,CAAC;AAUD,iCAAiC;AACjC,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5C,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,CAAC;AACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;AACnF,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;AAEnF,kCAAkC;AAClC,MAAM,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;AAC5F,MAAM,kCAAkC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;AAEpG,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,OAAsB;IAEtB,sDAAsD;IACtD,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACjD,qDAAqD;QACrD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC5D,oDAAoD;YACpD,IAAI,YAAY,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;gBACpF,IAAI,CAAC;oBACH,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBACP,oEAAoE;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC/F,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,gGAAgG;QAChG,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAgB,EAChB,MAA0C,EAC1C,eAAuB;IAEvB,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/H,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,eAAe,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,aAAqB;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAA4B,CAAC;YAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,UAAU;gBAAE,OAAO,UAAU,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAC5B,aAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,MAAM,GAAsD,EAAE,CAAC;IACrE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;YAAE,SAAS;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAA4B,CAAC;YAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,cAAc,EAAG,EAAE,CAAC,gBAAgB,CAAe,CAAC,MAAM,CACxD,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,6DAA6D;AAC7D,SAAS,qBAAqB,CAC5B,cAAiE;IAEjE,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,cAAc,EAAE,CAAC;QACrE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,uEAAuE;IACvE,0EAA0E;IAC1E,OAAO,kBAAkB,CAAC,CAAC,8BAA8B,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AACpF,CAAC;AAED,SAAS,uBAAuB,CAC9B,aAAqB,EACrB,QAA4B;IAE5B,MAAM,cAAc,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAE5D,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAE5D,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ;SACpB,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC;SAChD,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC;SACtC,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAyB,EACzB,OAA4B;IAE5B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;QACnC,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,uBAAuB;gBAChC,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,YAAY;gBACxB,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,CAAC,GAAG,CAAC;aACd;YACD,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,mCAAmC,GAAG,EAAE;SAClD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAE3D,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CACT,yHAAyH,CAC1H,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,uBAAuB;QACrC,aAAa,EAAE,OAAO;QACtB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAE7C,wEAAwE;IACxE,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,0EAA0E;IAC1E,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,YAAY,CAAC,IAAI,CACf,kBAAkB,CAChB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,EAC9C,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC5F,CACF,CAAC;IACF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtB,kCAAkC;IAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,WAAW,GAAG;YAClB,sBAAsB;YACtB,sBAAsB;YACtB,oBAAoB;YACpB,eAAe;YACf,sBAAsB;YACtB,uBAAuB;YACvB,sBAAsB;YACtB,sBAAsB;YACtB,kBAAkB;YAClB,mBAAmB;YACnB,mBAAmB;SACpB,CAAC;QAEF,MAAM,cAAc,GAAe,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;YACtD,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,cAAc,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAElF,cAAc;QACd,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxE,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,sCAAsC;IACtC,MAAM,eAAe,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACzE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtB,iDAAiD;IACjD,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,YAAY,CAAC,IAAI,CAAC,gJAAgJ,CAAC,CAAC;IACpK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,YAAY,CAAC,IAAI,CAAC,wOAAwO,CAAC,CAAC;IAC5P,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtB,sFAAsF;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAmC,CAAC;IAC3D,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,OAAO,GAAG,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAEhF,oDAAoD;IACpD,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAEpC,sEAAsE;IACtE,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAkC,EAAE,CAAC;IACxD,MAAM,OAAO,GAAwF,EAAE,CAAC;IACxG,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,MAAM,EAAE,CAAC;QACX,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,8DAA8D;YAChE,CAAC;QACH,CAAC;QACD,IAAI,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/D,wEAAwE;gBACxE,wEAAwE;gBACxE,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACnD,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CACT,uJAAuJ,CACxJ,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,gFAAgF;IAChF,8FAA8F;IAC9F,IAAI,cAAkD,CAAC;IACvD,IAAI,OAAO,EAAE,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;gBAC5D,IAAI,YAAY,EAAE,cAAc,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3E,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;oBAC7C,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IACtG,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAEzD,yCAAyC;IACzC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,uBAAuB;YAChC,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,YAAY;YACxB,SAAS;YACT,OAAO;YACP,MAAM,EAAE,EAAE;YACV,OAAO;YACP,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC;QACD,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,mDAAmD,SAAS,CAAC,MAAM,kBAAkB,OAAO,CAAC,MAAM,EAAE;YACvG,CAAC,CAAC,+BAA+B,SAAS,CAAC,MAAM,uBAAuB,OAAO,CAAC,MAAM,WAAW,WAAW,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,EAAE,EAAE;KACnK,CAAC;AACJ,CAAC"}
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
- await writeMissionManifest(missionsDir, "test-m014", "closed");
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(workpieceDir: string): Promise<string[]> {
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 — run release.prepare before archiving if this mission needs deployment`,
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 targetId = input.flags["id"] as string | undefined;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warpgogol/forge",
3
- "version": "5.3.0",
3
+ "version": "5.3.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -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
  ]
@@ -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
  ]
@@ -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
  ]