@warpgogol/forge 5.3.0 → 5.3.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.
Files changed (45) 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/compass/compass.module.d.ts.map +1 -1
  8. package/dist/os/compass/compass.module.js +6 -2
  9. package/dist/os/compass/compass.module.js.map +1 -1
  10. package/dist/os/mission/handlers/archive.d.ts.map +1 -1
  11. package/dist/os/mission/handlers/archive.js +22 -4
  12. package/dist/os/mission/handlers/archive.js.map +1 -1
  13. package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
  14. package/dist/os/rfc/handlers/validate.js +6 -1
  15. package/dist/os/rfc/handlers/validate.js.map +1 -1
  16. package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +1 -1
  17. package/dist/os/werkstatt/handlers/workspace-deps.js +0 -1
  18. package/dist/os/werkstatt/handlers/workspace-deps.js.map +1 -1
  19. package/dist/src/cli-flags.d.ts +28 -0
  20. package/dist/src/cli-flags.d.ts.map +1 -0
  21. package/dist/src/cli-flags.js +236 -0
  22. package/dist/src/cli-flags.js.map +1 -0
  23. package/dist/src/onboarding/agents-generate.d.ts.map +1 -1
  24. package/dist/src/onboarding/agents-generate.js +18 -5
  25. package/dist/src/onboarding/agents-generate.js.map +1 -1
  26. package/os/adr/handlers/implement-stamp.ts +0 -1
  27. package/os/compass/compass.module.ts +7 -2
  28. package/os/mission/handlers/archive.test.ts +38 -1
  29. package/os/mission/handlers/archive.ts +27 -4
  30. package/os/rfc/handlers/validate.test.ts +71 -0
  31. package/os/rfc/handlers/validate.ts +6 -1
  32. package/os/werkstatt/handlers/workspace-deps.ts +0 -1
  33. package/package.json +1 -1
  34. package/profiles/forge-shell.yaml +1 -1
  35. package/profiles/godot-game.yaml +1 -1
  36. package/profiles/knowledge.yaml +1 -1
  37. package/profiles/phaser-game.yaml +1 -1
  38. package/profiles/site-workshop.yaml +1 -1
  39. package/profiles/typescript.yaml +1 -1
  40. package/src/cli-flags.ts +284 -0
  41. package/src/onboarding/agents-generate.ts +20 -5
  42. package/src/tests/agents-generate.test.ts +22 -1
  43. package/src/tests/cli-flags.test.ts +175 -0
  44. package/src/tests/fixtures/agents-generate-business-before.txt +31 -2
  45. package/AGENTS.md +0 -532
@@ -0,0 +1,28 @@
1
+ import type { Diagnostic, ForgeCommandDefinition, ForgeFlagSpec, ForgeFlagValue } from "./types.ts";
2
+ /**
3
+ * Flags every CLI command accepts regardless of its own declared schema —
4
+ * mirrors the kernel's KERNEL_UNIVERSAL_FLAGS so both entry points accept the
5
+ * same universal switches.
6
+ */
7
+ export declare const CLI_UNIVERSAL_FLAGS: Record<string, ForgeFlagSpec>;
8
+ /**
9
+ * Legacy heuristic parse for commands without a `flags` schema — mirrors the
10
+ * kernel's parseKernelArgv: unknown flags are accepted, boolean-ness comes
11
+ * from CLI_BOOLEAN_FLAGS, and positional tokens produce KERNEL-ARG-01.
12
+ */
13
+ export declare function parseCliArgs(argv: string[]): {
14
+ flags: Record<string, ForgeFlagValue>;
15
+ diagnostics: Diagnostic[];
16
+ };
17
+ /**
18
+ * Resolve raw argv against a command's declared flag schema (merged with
19
+ * CLI_UNIVERSAL_FLAGS) — the standalone-CLI counterpart of the kernel's
20
+ * resolveCommandFlags. Schema-carrying commands (`command.flags` set,
21
+ * including `{}`) resolve strictly; schema-less commands keep the legacy
22
+ * heuristic parse. Either way, positional tokens produce KERNEL-ARG-01.
23
+ */
24
+ export declare function resolveCliFlags(argv: string[], command: ForgeCommandDefinition): {
25
+ flags: Record<string, ForgeFlagValue>;
26
+ diagnostics: Diagnostic[];
27
+ };
28
+ //# sourceMappingURL=cli-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-flags.d.ts","sourceRoot":"","sources":["../../src/cli-flags.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpG;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAU7D,CAAC;AAyEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAkDA;AAuGD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,sBAAsB,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAKtE"}
@@ -0,0 +1,236 @@
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 (RFC-0260 lineage): 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; indexOf-based inline-value split preserves values containing "=" that split("=", 2) silently truncated.</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 eqIndex = withoutPrefix.indexOf("=");
117
+ const flagName = eqIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIndex);
118
+ const inlineValue = eqIndex === -1 ? undefined : withoutPrefix.slice(eqIndex + 1);
119
+ if (!flagName)
120
+ continue;
121
+ if (inlineValue !== undefined) {
122
+ addFlagValue(flags, flagName, inlineValue);
123
+ continue;
124
+ }
125
+ if (CLI_BOOLEAN_FLAGS.has(flagName)) {
126
+ addFlagValue(flags, flagName, true);
127
+ continue;
128
+ }
129
+ const next = argv[index + 1];
130
+ if (typeof next === "string" && !next.startsWith("--")) {
131
+ addFlagValue(flags, flagName, next);
132
+ index += 1;
133
+ continue;
134
+ }
135
+ addFlagValue(flags, flagName, true);
136
+ }
137
+ return { flags, diagnostics };
138
+ }
139
+ function resolveStrict(rawArgv, command) {
140
+ const schema = {
141
+ ...CLI_UNIVERSAL_FLAGS,
142
+ ...(command.flags ?? {}),
143
+ };
144
+ const validFlagNames = Object.keys(schema).sort();
145
+ const flags = {};
146
+ const diagnostics = [];
147
+ let passthrough = false;
148
+ for (let index = 0; index < rawArgv.length; index += 1) {
149
+ const entry = rawArgv[index];
150
+ if (passthrough) {
151
+ diagnostics.push(positionalDiagnostic(entry, command.name));
152
+ continue;
153
+ }
154
+ if (entry === "--") {
155
+ passthrough = true;
156
+ continue;
157
+ }
158
+ if (!entry.startsWith("--")) {
159
+ diagnostics.push(positionalDiagnostic(entry, command.name));
160
+ continue;
161
+ }
162
+ const withoutPrefix = entry.slice(2);
163
+ const eqIndex = withoutPrefix.indexOf("=");
164
+ const flagName = eqIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIndex);
165
+ const inlineValue = eqIndex === -1 ? undefined : withoutPrefix.slice(eqIndex + 1);
166
+ if (!flagName)
167
+ continue;
168
+ const spec = schema[flagName];
169
+ if (!spec) {
170
+ diagnostics.push({
171
+ ruleId: "KERNEL-FLAG-01",
172
+ severity: "error",
173
+ message: `Unknown flag "--${flagName}" for command "${command.name}". Valid flags: ${validFlagNames.join(", ")}`,
174
+ fixHint: `Remove --${flagName}, fix the typo, or add it to the flags schema for ${command.name}.`,
175
+ });
176
+ continue;
177
+ }
178
+ if (inlineValue !== undefined) {
179
+ addFlagValue(flags, flagName, spec.kind === "boolean" ? inlineValue !== "false" : inlineValue);
180
+ continue;
181
+ }
182
+ if (spec.kind === "boolean") {
183
+ addFlagValue(flags, flagName, true);
184
+ continue;
185
+ }
186
+ const next = rawArgv[index + 1];
187
+ if (typeof next === "string" && !next.startsWith("--")) {
188
+ addFlagValue(flags, flagName, next);
189
+ index += 1;
190
+ continue;
191
+ }
192
+ diagnostics.push({
193
+ ruleId: "KERNEL-FLAG-02",
194
+ severity: "error",
195
+ message: `Flag "--${flagName}" for command "${command.name}" requires a value but none was given.`,
196
+ fixHint: `Pass --${flagName} <value> or --${flagName}=<value>.`,
197
+ });
198
+ }
199
+ for (const [flagName, spec] of Object.entries(schema)) {
200
+ const value = flags[flagName];
201
+ if (spec.required && value === undefined) {
202
+ diagnostics.push({
203
+ ruleId: "KERNEL-FLAG-03",
204
+ severity: "error",
205
+ message: `Required flag "--${flagName}" is missing for command "${command.name}".`,
206
+ fixHint: `Pass --${flagName} <value>.`,
207
+ });
208
+ }
209
+ else if (value === undefined && spec.default !== undefined) {
210
+ flags[flagName] = spec.default;
211
+ }
212
+ else if (spec.kind === "string" && Array.isArray(value)) {
213
+ diagnostics.push({
214
+ ruleId: "KERNEL-FLAG-02",
215
+ severity: "error",
216
+ message: `Flag "--${flagName}" for command "${command.name}" accepts a single value but was given multiple.`,
217
+ fixHint: `Pass --${flagName} once, or declare the flag as kind "string[]" if multiple values are intended.`,
218
+ });
219
+ }
220
+ }
221
+ return { flags, diagnostics };
222
+ }
223
+ /**
224
+ * Resolve raw argv against a command's declared flag schema (merged with
225
+ * CLI_UNIVERSAL_FLAGS) — the standalone-CLI counterpart of the kernel's
226
+ * resolveCommandFlags. Schema-carrying commands (`command.flags` set,
227
+ * including `{}`) resolve strictly; schema-less commands keep the legacy
228
+ * heuristic parse. Either way, positional tokens produce KERNEL-ARG-01.
229
+ */
230
+ export function resolveCliFlags(argv, command) {
231
+ if (command.flags) {
232
+ return resolveStrict(argv, command);
233
+ }
234
+ return parseCliArgs(argv);
235
+ }
236
+ //# 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;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":"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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
 
@@ -6,14 +6,14 @@
6
6
  </non-goals>
7
7
  </MODULE_CONTRACT>
8
8
  <CHANGE_SUMMARY>
9
- <item>RFC-0538: renamed compass.changesummary.tidy to compass.summary.trim, removed compass.annotate, compass.clear, compass.markup.migrate, compass.invariant.add.</item>
10
9
  <item>RFC-0556: removed dynamic import of @warpgogol/site-kernel-checks, all handlers now inlined in forge/os/compass/handlers/.</item>
11
10
  <item>RFC-1095: compass.summary.record, trim repair rewrite, commit integration</item>
12
11
  <item>RFC-1097: steps 1-4 — compass.migrate codemod
13
12
 
14
13
  Add the v1 to v2 Compass header codemod: migrateFile pure transform (collapse, strip, seed, reorder, purpose-flag actions), migrateWorkspace walker, runCompassMigrate handler with dirty-tree refusal and --force/--files/--dry-run flags, module registration, and 15 unit tests.</item>
15
14
  <item>RFC-1173: declare mutatesState on all kernel commands — collectDeclarationDiagnostics emits error-severity MUTATES-STATE-DECLARED, command.manifest.validate is the blocking consumer in packages.check, sweep declares the flag on every command definition (factories hardcode false for read-only check specs)</item>
16
- <history>RFC-0374</history>
15
+ <item>Declare compass --root as kind "string[]" — resolveScanRoots reads it as multi-value via getFlagValues, so repeated --root stays legal now that repeated kind-"string" flags are rejected at flag resolution.</item>
16
+ <history>RFC-0374, RFC-0538</history>
17
17
  </CHANGE_SUMMARY>
18
18
  */
19
19
 
@@ -44,6 +44,11 @@ const compassScanFlags = {
44
44
  description:
45
45
  "Scan a mission workpiece directory (RFC-0617). Mutually exclusive with --packages and --site.",
46
46
  },
47
+ root: {
48
+ kind: "string[]",
49
+ description:
50
+ "Scan root directory (repeatable — overrides the universal --root workspace override on scan commands).",
51
+ },
47
52
  } satisfies Record<string, ForgeFlagSpec>;
48
53
 
49
54
  // RFC-1094: --mode governs v2 rule severity on the two validating commands only.
@@ -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
+ });