@warpgogol/forge 5.3.3 → 5.3.4

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 (65) hide show
  1. package/dist/os/compass/compass.module.js +1 -1
  2. package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -1
  3. package/dist/os/compass/handlers/compass-inventory.js +5 -2
  4. package/dist/os/compass/handlers/compass-inventory.js.map +1 -1
  5. package/dist/os/compass/handlers/summary-record.d.ts +6 -1
  6. package/dist/os/compass/handlers/summary-record.d.ts.map +1 -1
  7. package/dist/os/compass/handlers/summary-record.js +14 -5
  8. package/dist/os/compass/handlers/summary-record.js.map +1 -1
  9. package/dist/os/compass/handlers/tests/forge-yaml-fixture.d.ts +18 -0
  10. package/dist/os/compass/handlers/tests/forge-yaml-fixture.d.ts.map +1 -0
  11. package/dist/os/compass/handlers/tests/forge-yaml-fixture.js +64 -0
  12. package/dist/os/compass/handlers/tests/forge-yaml-fixture.js.map +1 -0
  13. package/dist/os/compass/policy.d.ts +6 -1
  14. package/dist/os/compass/policy.d.ts.map +1 -1
  15. package/dist/os/compass/policy.js +8 -2
  16. package/dist/os/compass/policy.js.map +1 -1
  17. package/dist/os/mission/handlers/archive.d.ts.map +1 -1
  18. package/dist/os/mission/handlers/archive.js +1 -2
  19. package/dist/os/mission/handlers/archive.js.map +1 -1
  20. package/dist/os/rfc/handlers/validate.js +1 -1
  21. package/dist/src/config/forge-config.d.ts +21 -3
  22. package/dist/src/config/forge-config.d.ts.map +1 -1
  23. package/dist/src/config/forge-config.js +36 -7
  24. package/dist/src/config/forge-config.js.map +1 -1
  25. package/dist/src/onboarding/create.d.ts.map +1 -1
  26. package/dist/src/onboarding/create.js +26 -10
  27. package/dist/src/onboarding/create.js.map +1 -1
  28. package/dist/src/onboarding/doctor.d.ts.map +1 -1
  29. package/dist/src/onboarding/doctor.js +49 -2
  30. package/dist/src/onboarding/doctor.js.map +1 -1
  31. package/dist/src/onboarding/upgrade.d.ts.map +1 -1
  32. package/dist/src/onboarding/upgrade.js +24 -8
  33. package/dist/src/onboarding/upgrade.js.map +1 -1
  34. package/dist/src/validators/skill-validate.d.ts.map +1 -1
  35. package/dist/src/validators/skill-validate.js +42 -15
  36. package/dist/src/validators/skill-validate.js.map +1 -1
  37. package/os/compass/compass.module.ts +1 -1
  38. package/os/compass/handlers/compass-inventory.ts +6 -3
  39. package/os/compass/handlers/summary-record.ts +14 -5
  40. package/os/compass/handlers/tests/compass-policy.test.ts +15 -18
  41. package/os/compass/handlers/tests/compass-v2-contract.test.ts +38 -0
  42. package/os/compass/handlers/tests/forge-yaml-fixture.ts +69 -0
  43. package/os/compass/handlers/tests/summary-record.test.ts +25 -0
  44. package/os/compass/policy.ts +8 -2
  45. package/os/mission/handlers/archive.ts +1 -2
  46. package/os/rfc/handlers/validate.ts +1 -1
  47. package/package.json +1 -1
  48. package/skills/fo/fo-compass-annotate/SKILL.md +1 -1
  49. package/skills/fo/fo-handoff/SKILL.md +2 -2
  50. package/skills/fo/fo-idea-audit/SKILL.md +1 -1
  51. package/skills/fo/fo-idea-create-rfc/SKILL.md +1 -1
  52. package/skills/fo/fo-idea-implement/SKILL.md +4 -3
  53. package/skills/fo/fo-session-retro/SKILL.md +1 -1
  54. package/skills/fo/fo-session-save/SKILL.md +1 -1
  55. package/src/config/forge-config.ts +102 -57
  56. package/src/onboarding/create.ts +25 -9
  57. package/src/onboarding/doctor.ts +51 -2
  58. package/src/onboarding/upgrade.ts +36 -6
  59. package/src/tests/bindings-schema.test.ts +53 -1
  60. package/src/tests/doctor-bindings.test.ts +7 -2
  61. package/src/tests/doctor-skills-unmanaged.test.ts +145 -0
  62. package/src/tests/forge-config.test.ts +106 -2
  63. package/src/tests/skill-validate.test.ts +180 -0
  64. package/src/tests/upgrade.test.ts +60 -0
  65. package/src/validators/skill-validate.ts +43 -16
@@ -1 +1 @@
1
- {"version":3,"file":"skill-validate.js","sourceRoot":"","sources":["../../../src/validators/skill-validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-validate.js","sourceRoot":"","sources":["../../../src/validators/skill-validate.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
 
13
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>
14
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>
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>
15
+ <item>KERNEL-FLAG-02: 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
16
  <history>RFC-0374, RFC-0538</history>
17
17
  </CHANGE_SUMMARY>
18
18
  */
@@ -15,7 +15,6 @@ for Compass source-file inventory.</purpose>
15
15
  <item>Policy literals come from resolveCompassPolicy — no stack- or consumer-specific values live in this module.</item>
16
16
  </KEY_DECISIONS>
17
17
  <CHANGE_SUMMARY>
18
- <item>RFC-1095: compass.summary.record, trim repair rewrite, commit integration</item>
19
18
  <item>RFC-1096: all policy literals externalized to resolveCompassPolicy — scan roots, extensions, ignored dirs/paths, layer/risk rules, governance-ID and boilerplate patterns come from generic defaults + profile + bindings.compass.</item>
20
19
  <item>RFC-1097: sweep — SKILL.md headers + classification fixes
21
20
 
@@ -24,7 +23,8 @@ Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from
24
23
 
25
24
  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>
26
25
  <item>RFC-1111: normalize dynamic-route bracket stems in deriveFileTokens — [token]/[...slug]/[lang] segments strip brackets and dots so PURPOSE-02 is satisfiable for Astro dynamic routes.</item>
27
- <history>RFC-0348, RFC-0556, RFC-1094</history>
26
+ <item>RFC-1220: step 2 — fail-closed guards in history paths</item>
27
+ <history>RFC-0348, RFC-0556, RFC-1094, RFC-1095</history>
28
28
  </CHANGE_SUMMARY>
29
29
 
30
30
  */
@@ -520,7 +520,10 @@ function validateHistoryIds(historyIds: string[], policy: CompassPolicy): string
520
520
  }
521
521
  const lastSeenByNamespace = new Map<string, number>();
522
522
  for (const token of historyIds) {
523
- const parts = parseGovernanceIdParts(token)!;
523
+ const parts = parseGovernanceIdParts(token);
524
+ if (!parts) {
525
+ return `<history> contains an unparseable governance-ID token: "${token}"`;
526
+ }
524
527
  const last = lastSeenByNamespace.get(parts.namespace);
525
528
  if (last !== undefined && parts.numeric <= last) {
526
529
  return `<history> IDs are not in per-namespace ascending numeric order (${token} after ${parts.namespace}-${last})`;
@@ -15,7 +15,6 @@ items to CHANGE_SUMMARY blocks per RFC-1095. Collapses the 5-item window into
15
15
  <item>Item text is sanitized on record — literal Compass tags would corrupt history parsing.</item>
16
16
  </KEY_DECISIONS>
17
17
  <CHANGE_SUMMARY>
18
- <item>RFC-1095: header-region guard in summary.record, restore test fixture with dynamic tags</item>
19
18
  <item>RFC-1097: steps 1-4 — compass.migrate codemod
20
19
 
21
20
  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>
@@ -28,6 +27,7 @@ Sweep batch 4: 73 Compass headers on headerless engine files (certification, com
28
27
  <item>RFC-1097: AC-4 banned literal in os/compass handlers
29
28
 
30
29
  compass-migrate-handler hint used a consumer-specific run command — switched to generic 'pnpm exec forge run' convention. Reworded recorded CHANGE_SUMMARY items in 3 handlers to drop the consumer-specific literal. compass-policy AC-4 test green (65/65).</item>
30
+ <item>RFC-1220: step 2 — fail-closed guards in history paths</item>
31
31
  <history>RFC-1095</history>
32
32
  </CHANGE_SUMMARY>
33
33
  */
@@ -111,7 +111,12 @@ function leadingGovernanceId(item: string, policy: CompassPolicy): string | null
111
111
  return match && match.index === 0 ? match[0] : null;
112
112
  }
113
113
 
114
- /** Merge existing + new history IDs: dedupe, per-namespace ascending numeric order. */
114
+ /**
115
+ * Merge existing + new history IDs: dedupe, per-namespace ascending numeric order.
116
+ * Tokens that pass `idPatternFull` yet fail `parseGovernanceIdParts` (policy/parser
117
+ * drift) are kept appended after the sorted parseable tokens in encounter order —
118
+ * provenance is preserved and the next `compass.validate` emits CS-07 (RFC-1220).
119
+ */
115
120
  export function mergeHistoryIds(
116
121
  existing: string[],
117
122
  incoming: string[],
@@ -120,12 +125,16 @@ export function mergeHistoryIds(
120
125
  const all = [...new Set([...existing, ...incoming])].filter((id) =>
121
126
  policy.idPatternFull.test(id),
122
127
  );
123
- return all.sort((a, b) => {
124
- const pa = parseGovernanceIdParts(a)!;
125
- const pb = parseGovernanceIdParts(b)!;
128
+ const partsById = new Map(all.map((id) => [id, parseGovernanceIdParts(id)]));
129
+ const parseable = all.filter((id) => partsById.get(id) !== null);
130
+ const unparseable = all.filter((id) => partsById.get(id) === null);
131
+ parseable.sort((a, b) => {
132
+ const pa = partsById.get(a)!;
133
+ const pb = partsById.get(b)!;
126
134
  const ns = pa.namespace.localeCompare(pb.namespace);
127
135
  return ns !== 0 ? ns : pa.numeric - pb.numeric;
128
136
  });
137
+ return [...parseable, ...unparseable];
129
138
  }
130
139
 
131
140
  export function getLineCommentPrefix(filePath: string): string | null {
@@ -9,6 +9,8 @@ the named-config-error contract.</purpose>
9
9
  </MODULE_CONTRACT>
10
10
  <CHANGE_SUMMARY>
11
11
  <item>RFC-1096: initial coverage for resolveCompassPolicy (AC-1..AC-5).</item>
12
+ <item>RFC-1220: step 1 — widen governance-ID tail regex</item>
13
+ <item>RFC-1220: fo-review — F-1 shared forge-yaml fixture, F-2 temp-dir cleanup</item>
12
14
  </CHANGE_SUMMARY>
13
15
  */
14
16
 
@@ -23,6 +25,7 @@ import {
23
25
  parseGovernanceIdParts,
24
26
  } from "../../policy.ts";
25
27
  import { runCompassInventory } from "../compass-inventory-handler.ts";
28
+ import { forgeYaml } from "./forge-yaml-fixture.ts";
26
29
  import type { ForgeRuntimeContext } from "../../../../src/types.ts";
27
30
 
28
31
  // packages/forge — real forge root so `profile:` resolution finds shipped profiles.
@@ -30,24 +33,7 @@ const FORGE_ROOT = fileURLToPath(new URL("../../../../", import.meta.url));
30
33
  // os/compass directory — scanned by the AC-4 literal check.
31
34
  const COMPASS_DIR = fileURLToPath(new URL("../../", import.meta.url));
32
35
 
33
- const FORGE_YAML = (bindings: string) => `
34
- schema: forge/config@1
35
- project:
36
- name: test-ws
37
- stack: [typescript]
38
- packageManager: pnpm
39
- paths:
40
- rfcsDir: docs/rfcs
41
- adrsDir: docs/adrs
42
- plansDir: docs/plans
43
- auditsDir: docs/audits
44
- specsDir: docs/specs
45
- skillsDir: .agents/skills
46
- bindings:
47
- schema: forge/bindings@1
48
- commands: {}
49
- paths: {}
50
- ${bindings}`;
36
+ const FORGE_YAML = forgeYaml;
51
37
 
52
38
  const FORGE_YAML_WITH_PROFILE = `
53
39
  schema: forge/config@1
@@ -246,4 +232,15 @@ describe("resolveCompassPolicy (RFC-1096)", () => {
246
232
  });
247
233
  expect(parseGovernanceIdParts("no-number")).toBeNull();
248
234
  });
235
+
236
+ it("parseGovernanceIdParts accepts mission-format tails (RFC-1220)", () => {
237
+ expect(parseGovernanceIdParts("acme-m000175")).toEqual({
238
+ namespace: "acme",
239
+ numeric: 175,
240
+ });
241
+ expect(parseGovernanceIdParts("acme-m1")).toEqual({ namespace: "acme", numeric: 1 });
242
+ // Bare "m" without digits is not a numeric tail.
243
+ expect(parseGovernanceIdParts("acme-m")).toBeNull();
244
+ expect(parseGovernanceIdParts("no-number")).toBeNull();
245
+ });
249
246
  });
@@ -3,6 +3,7 @@ import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
3
3
  import { dirname, join } from "node:path";
4
4
  import { tmpdir } from "node:os";
5
5
  import { runCompassValidation, runCompassInventory } from "../compass-inventory-handler.ts";
6
+ import { writeForgeYaml } from "./forge-yaml-fixture.ts";
6
7
  import type {
7
8
  ForgeCommandInput,
8
9
  ForgeCommandResult,
@@ -51,6 +52,13 @@ const MEDIUM_FILE = "packages/fixture-pkg/src/components/mission-widget.ts";
51
52
  // Low-risk path: bare src/** maps to layer "source" → riskClass low.
52
53
  const LOW_FILE = "packages/fixture-pkg/src/mission-notes.ts";
53
54
 
55
+ // Generic NS-NNN alternative plus a mission-tail alternative (RFC-1220).
56
+ // Single-quoted YAML keeps backslashes literal — JS "\\b" emits regex "\b".
57
+ const MISSION_ID_PATTERN = "\\b(?:[A-Z][A-Z0-9]*-)+\\d+\\b|\\b[a-z][a-z0-9-]*-m\\d{6}\\b";
58
+ // Admits a no-digit-tail token that passes idPatternFull yet cannot parse —
59
+ // simulates future policy/parser drift (RFC-1220 fail-closed path).
60
+ const DRIFT_ID_PATTERN = "\\b(?:[A-Z][A-Z0-9]*-)+\\d+\\b|\\b[A-Z]+-[A-Z]+\\b";
61
+
54
62
  describe("compass v2 contract (RFC-1094)", () => {
55
63
  let tempDir: string;
56
64
 
@@ -214,6 +222,36 @@ describe("compass v2 contract (RFC-1094)", () => {
214
222
  ).toBeDefined();
215
223
  });
216
224
 
225
+ it("CS-07: mission-format history token validates without crash (RFC-1220)", async () => {
226
+ writeForgeYaml(tempDir, ` compass:\n idPattern: '${MISSION_ID_PATTERN}'`);
227
+ writeFixture(
228
+ MEDIUM_FILE,
229
+ wrap(MC(PURPOSE_WITH_TOKEN), KD([KD_ITEM]), CS([CS_ITEM], "acme-m000175")),
230
+ );
231
+
232
+ const result = await runCompassValidation(makeInput(), makeContext(tempDir));
233
+ const cs07 = dataOf(result).diagnostics.filter((d) => d.ruleId === "COMPASS-CS-07");
234
+ expect(
235
+ cs07,
236
+ `mission-format token must be a legal history ID: ${JSON.stringify(cs07)}`,
237
+ ).toHaveLength(0);
238
+ });
239
+
240
+ it("CS-07: token passing idPatternFull but unparseable emits diagnostic, no crash (RFC-1220)", async () => {
241
+ writeForgeYaml(tempDir, ` compass:\n idPattern: '${DRIFT_ID_PATTERN}'`);
242
+ writeFixture(
243
+ MEDIUM_FILE,
244
+ wrap(MC(PURPOSE_WITH_TOKEN), KD([KD_ITEM]), CS([CS_ITEM], "FOO-BAR")),
245
+ );
246
+
247
+ const result = await runCompassValidation(makeInput(), makeContext(tempDir));
248
+ const cs07 = dataOf(result).diagnostics.find(
249
+ (d) => d.ruleId === "COMPASS-CS-07" && d.message.includes("unparseable"),
250
+ );
251
+ expect(cs07, "unparseable token must produce a CS-07 diagnostic").toBeDefined();
252
+ expect(result.exitCode).toBeDefined();
253
+ });
254
+
217
255
  it("empty CHANGE_SUMMARY (no items, no history) is legal", async () => {
218
256
  writeFixture(MEDIUM_FILE, wrap(MC(PURPOSE_WITH_TOKEN), KD([KD_ITEM]), CS([])));
219
257
 
@@ -0,0 +1,69 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Shared forge.yaml fixture helpers for compass tests — one schema-valid minimal workspace shape (bindings placeholder), a sync writer, and a temp-dir policy resolver with tracked cleanup so pattern-specific policy tests never fall back silently to generic defaults or leak mkdtemp roots.</purpose>
4
+ <non-goals>
5
+ <item>Do not build full workspace fixtures — only forge.yaml, created on demand in caller-managed temp dirs.</item>
6
+ </non-goals>
7
+ </MODULE_CONTRACT>
8
+ <CHANGE_SUMMARY>
9
+ <item>RFC-1220: extract shared forge.yaml fixture from triplicated test copies — schema-required paths section included; mkdtemp roots tracked for afterEach cleanup.</item>
10
+ <item>RFC-1220: dedupe auto-stamped CHANGE_SUMMARY item in forge-yaml fixture</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+
14
+ import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
15
+ import { tmpdir } from "node:os";
16
+ import { join } from "node:path";
17
+ import { resolveCompassPolicy, type CompassPolicy } from "../../policy.ts";
18
+
19
+ /**
20
+ * Minimal schema-valid forge.yaml body. `paths:` is REQUIRED — a fixture
21
+ * without it fails `loadForgeConfig` schema validation and the resolver
22
+ * silently falls back to generic policy.
23
+ */
24
+ export function forgeYaml(bindings: string): string {
25
+ return `
26
+ schema: forge/config@1
27
+ project:
28
+ name: test-ws
29
+ stack: [typescript]
30
+ packageManager: pnpm
31
+ paths:
32
+ rfcsDir: docs/rfcs
33
+ adrsDir: docs/adrs
34
+ plansDir: docs/plans
35
+ auditsDir: docs/audits
36
+ specsDir: docs/specs
37
+ skillsDir: .agents/skills
38
+ bindings:
39
+ schema: forge/bindings@1
40
+ commands: {}
41
+ paths: {}
42
+ ${bindings}`;
43
+ }
44
+
45
+ /** Write a minimal forge.yaml into `<dir>/forge.yaml`. */
46
+ export function writeForgeYaml(dir: string, bindings: string): void {
47
+ writeFileSync(join(dir, "forge.yaml"), forgeYaml(bindings));
48
+ }
49
+
50
+ const patternRoots: string[] = [];
51
+
52
+ /**
53
+ * Resolve a Compass policy for a fresh temp workspace whose
54
+ * `bindings.compass.idPattern` is the given union. The temp root is tracked —
55
+ * call {@link cleanupForgeYamlFixtures} from an `afterEach`.
56
+ */
57
+ export function policyWithIdPattern(idPattern: string): CompassPolicy {
58
+ const root = mkdtempSync(join(tmpdir(), "compass-pattern-"));
59
+ patternRoots.push(root);
60
+ writeForgeYaml(root, ` compass:\n idPattern: '${idPattern}'`);
61
+ return resolveCompassPolicy(root);
62
+ }
63
+
64
+ /** Remove every temp root created by {@link policyWithIdPattern}. */
65
+ export function cleanupForgeYamlFixtures(): void {
66
+ for (const root of patternRoots.splice(0)) {
67
+ rmSync(root, { recursive: true, force: true });
68
+ }
69
+ }
@@ -12,6 +12,7 @@ import {
12
12
  CHANGE_SUMMARY_WINDOW,
13
13
  } from "../summary-record.ts";
14
14
  import { resolveCompassPolicy } from "../../policy.ts";
15
+ import { policyWithIdPattern, cleanupForgeYamlFixtures } from "./forge-yaml-fixture.ts";
15
16
  import type { ForgeRuntimeContext } from "../../../../src/types.ts";
16
17
 
17
18
  // Generic policy — this path has no forge.yaml, so resolution falls back to
@@ -216,6 +217,30 @@ describe("summary-record helpers", () => {
216
217
  ]);
217
218
  });
218
219
 
220
+ afterEach(() => {
221
+ cleanupForgeYamlFixtures();
222
+ });
223
+
224
+ it("mergeHistoryIds sorts mission-format tokens under their namespace (RFC-1220)", () => {
225
+ const missionPolicy = policyWithIdPattern(
226
+ "\\b(?:[A-Z][A-Z0-9]*-)+\\d+\\b|\\b[a-z][a-z0-9-]*-m\\d{6}\\b",
227
+ );
228
+ expect(mergeHistoryIds(["acme-m000003"], ["acme-m000001", "RFC-0002"], missionPolicy)).toEqual([
229
+ "acme-m000001",
230
+ "acme-m000003",
231
+ "RFC-0002",
232
+ ]);
233
+ });
234
+
235
+ it("mergeHistoryIds appends unparseable admitted tokens last (RFC-1220)", () => {
236
+ const driftPolicy = policyWithIdPattern("\\b(?:[A-Z][A-Z0-9]*-)+\\d+\\b|\\b[A-Z]+-[A-Z]+\\b");
237
+ expect(mergeHistoryIds(["FOO-BAR"], ["RFC-0002", "RFC-0001"], driftPolicy)).toEqual([
238
+ "RFC-0001",
239
+ "RFC-0002",
240
+ "FOO-BAR",
241
+ ]);
242
+ });
243
+
219
244
  it("buildChangeSummaryBlock omits <history> when empty", () => {
220
245
  const block = buildChangeSummaryBlock(["RFC-1: a"], [], "x.ts");
221
246
  expect(block).not.toContain("<history>");
@@ -12,6 +12,7 @@ are authored, how risky they are, and what counts as a governance ID
12
12
  </MODULE_CONTRACT>
13
13
  <CHANGE_SUMMARY>
14
14
  <item>RFC-1096: initial policy resolver — generic defaults + profile compass section + bindings.compass overrides.</item>
15
+ <item>RFC-1220: step 1 — widen governance-ID tail regex</item>
15
16
  </CHANGE_SUMMARY>
16
17
  */
17
18
 
@@ -212,9 +213,14 @@ function compilePattern(key: string, pattern: string, flags?: string): RegExp {
212
213
  }
213
214
  }
214
215
 
215
- /** Split a `NAMESPACE-NUMBER` governance ID on its last dash. */
216
+ /**
217
+ * Split a `NAMESPACE-NUMBER` governance ID on its last dash.
218
+ * Mission-format tails (`slug-mNNNNNN`) parse as `{ namespace: slug, numeric: N }`.
219
+ * The `m` stays outside the digit capture — `-(m?\d+)$` would capture `m000175`
220
+ * into the numeric group and produce `NaN` (RFC-1220).
221
+ */
216
222
  export function parseGovernanceIdParts(id: string): { namespace: string; numeric: number } | null {
217
- const match = id.match(/^(.*)-(\d+)$/);
223
+ const match = id.match(/^(.*)-m?(\d+)$/);
218
224
  if (!match) return null;
219
225
  return { namespace: match[1]!, numeric: Number(match[2]) };
220
226
  }
@@ -13,7 +13,6 @@ archive subdirectories back to missions/.
13
13
  </non-goals>
14
14
  </MODULE_CONTRACT>
15
15
  <CHANGE_SUMMARY>
16
- <item>RFC-0804: auto-refresh pnpm-lock.yaml after directory moves.</item>
17
16
  <item>RFC-0982: fallback state detection for orphaned workpiece dirs (no mission.yaml) via .closed marker and cache-only heuristic; --clean-orphans flag; improved skip reasons.</item>
18
17
  <item>RFC-1097: step 6 — compass.migrate codemod run
19
18
 
@@ -23,7 +22,7 @@ Mechanical v1 to v2 header migration across the workspace: 942 files rewritten
23
22
  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
23
  <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
24
  <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>
26
- <history>RFC-0573, RFC-0733, RFC-0801</history>
25
+ <history>RFC-0573, RFC-0733, RFC-0801, RFC-0804</history>
27
26
  </CHANGE_SUMMARY>
28
27
  */
29
28
 
@@ -13,7 +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
+ <item>KERNEL-FLAG-02: Guard --id against non-string values (boolean/array from unvalidated flag input) — throws a clear flag error instead of TypeError in rfcFileMatchesId.</item>
17
17
  </CHANGE_SUMMARY>
18
18
  */
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warpgogol/forge",
3
- "version": "5.3.3",
3
+ "version": "5.3.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -139,7 +139,7 @@ Output a summary:
139
139
  ## Completion criteria
140
140
 
141
141
  - All discovered files have `MODULE_CONTRACT` and `CHANGE_SUMMARY` blocks in canonical order; medium/high-risk files also carry `KEY_DECISIONS`.
142
- - Pack-declared Compass contract blocks (RFC-0943, if any are declared in `forge.plugin.yaml` `extensionPoints.compass.contract`) are present in matching files.
142
+ - Pack-declared Compass contract blocks (if any are declared in `forge.plugin.yaml` `extensionPoints.compass.contract`) are present in matching files.
143
143
  - `compass.validate` passes with zero errors.
144
144
  - No `TODO(compass)` sentinels remain (if `--cleanup` was used).
145
145
  - All changes are committed with message `compass: update headers for changed files`.
@@ -47,11 +47,11 @@ Include:
47
47
  - **Suggested skills** — which skills the next agent should invoke and why.
48
48
  - **References to existing artifacts** — specs, plans, ADRs, issues, commits, diffs. Reference them by path or URL instead of duplicating content.
49
49
  - **Current state** — what the codebase looks like now, what's uncommitted, what's in progress.
50
- - **System State Transition (RFC-0884)** — three prose subsections:
50
+ - **System State Transition** — three prose subsections:
51
51
  - **Before** — state N before the session (what the system looked like before changes)
52
52
  - **Change** — what was done (the key changes made during the session)
53
53
  - **After** — state N+1 after the session (what the system looks like now)
54
- - **Resulting Architecture (RFC-0884)** — optional Mermaid diagram of the system state AFTER changes, following the diagram selection rules from `_shared/fo-session-summary.md`. If no diagram is warranted, state: "No diagram: this session did not change system structure."
54
+ - **Resulting Architecture** — optional Mermaid diagram of the system state AFTER changes, following the diagram selection rules from `_shared/fo-session-summary.md`. If no diagram is warranted, state: "No diagram: this session did not change system structure."
55
55
  - **Next steps** — concrete, actionable items the next agent should pick up.
56
56
  - **Memory layer pointer** — tell the next agent to read `.agents/memory/MEMORY.md` and recent `.agents/memory/daily/` files for project context.
57
57
 
@@ -105,7 +105,7 @@ Beyond V-13 (required sections exist) and V-14 (≥3 acceptance items), check th
105
105
  - **Rollout** describes default behavior, adoption path for existing apps, and new-app compliance.
106
106
  - **Alternatives considered** is honest — at least one real alternative with a rejection reason.
107
107
  - **Risks** includes agent misinterpretation risk and false-positive rate for validators.
108
- - **Acceptance criteria** items are checkable (can an agent or human verify each one?) and sufficient (do they cover the decision's full scope?). Run the reject checklist (RFC-1006): no non-atomic "and"-joined claims (V-39), no unbounded quantities like "fast" or "scalable" (V-40), no weasel verbs like "handle gracefully" (V-41). Check that document-readiness criteria (DR-N) are separated from system-conformance criteria (AC-N) if a `## Document readiness` section is present.
108
+ - **Acceptance criteria** items are checkable (can an agent or human verify each one?) and sufficient (do they cover the decision's full scope?). Run the reject checklist: no non-atomic "and"-joined claims (V-39), no unbounded quantities like "fast" or "scalable" (V-40), no weasel verbs like "handle gracefully" (V-41). Check that document-readiness criteria (DR-N) are separated from system-conformance criteria (AC-N) if a `## Document readiness` section is present.
109
109
  - **Implementation notes for agents** are explicit behavioral rules, not vague guidance.
110
110
 
111
111
  #### Axis B — DNA alignment
@@ -102,7 +102,7 @@ Read the generated file and the full template (`docs/rfcs/rfc-0000-template.md`)
102
102
  - **Rollout** — implementation order, generated-file refresh, migration path for existing apps.
103
103
  - **Alternatives considered** — at least one real alternative with a rejection reason.
104
104
  - **Risks** — including agent-misinterpretation risk and false-positive rates for validators.
105
- - **Acceptance criteria** — EARS-form criteria with stable `AC-N:` identifiers, following the authoring standard in `packages/forge/skills/fo/fo-idea-create-rfc/acceptance-criteria-standard.md` (RFC-0996 + RFC-1006). Required mix: at least one behavior, one contract, one negative, and one sync criterion. 3–10 items. Each criterion is a falsifiable claim about an observable artifact, not an effort claim. One claim = one checking mechanism. Run the reject checklist (RFC-1006): no non-atomic "and"-joined claims, no unbounded quantities, no weasel verbs.
105
+ - **Acceptance criteria** — EARS-form criteria with stable `AC-N:` identifiers, following the authoring standard in `packages/forge/skills/fo/fo-idea-create-rfc/acceptance-criteria-standard.md`. Required mix: at least one behavior, one contract, one negative, and one sync criterion. 3–10 items. Each criterion is a falsifiable claim about an observable artifact, not an effort claim. One claim = one checking mechanism. Run the reject checklist: no non-atomic "and"-joined claims, no unbounded quantities, no weasel verbs.
106
106
  - **Implementation notes for agents** — explicit MAY/MUST NOT rules, status-gate reminders, escalation triggers.
107
107
 
108
108
  When a section cannot be filled with confidence, insert `> NEEDS CLARIFICATION: <question>` instead of guessing. Do not leave sections empty or fill them with speculative content. Markers are resolved during the enhance step.
@@ -7,7 +7,7 @@ concerns: code-mutation
7
7
  dependsOn: ['my-preferences']
8
8
  languagePolicy: ref(PREFERENCES.md)
9
9
  bindings:
10
- requires: [commands.validateRfc, commands.typecheck, commands.implementStamp]
10
+ requires: [commands.validateRfc, commands.typecheck, commands.implementStamp, commands.adrImplementStamp]
11
11
  optional: [commands.test, commands.scopedBuild, paths.invariantsFile, paths.compassDocs]
12
12
  triggerPhrases: ["implement this RFC", "execute the implementation plan", "realize this RFC end-to-end"]
13
13
  ---
@@ -23,6 +23,7 @@ triggerPhrases: ["implement this RFC", "execute the implementation plan", "reali
23
23
  <item>RFC-1097: sweep — SKILL.md headers + classification fixes
24
24
 
25
25
  Sweep batch 1: add Compass v2 headers to 45 SKILL.md files (purpose derived from frontmatter description). Fix non-skill-markdown exclusion to check filename not workspace-relative path (packages/AGENTS.md escaped it). Add .coverage to ignoredDirs.</item>
26
+ <item>RFC-1224: preserve operator forge.yaml content on upgrade, promote adrImplementStamp binding</item>
26
27
  </CHANGE_SUMMARY>
27
28
  -->
28
29
 
@@ -187,10 +188,10 @@ Read the RFC's `## Acceptance criteria` section. For each checkbox:
187
188
  1. **Verify the criterion is met semantically** — check the code does what the criterion says, run the relevant command, or inspect the artifact. Mechanical existence (command registered, test passes) is NOT sufficient. The criterion must describe observable behavior that the RFC defines, not just that a command exists.
188
189
  2. **Check for stubs** — if the code contains TODO, stub, not-implemented, or placeholder logic in the path the criterion covers, the criterion is NOT met. Implement the real logic before marking it.
189
190
  3. **If a criterion is not met**, implement the missing work, commit it, and re-verify.
190
- 4. **Annotate every `[x]` with inline evidence** — add `(evidence: ...)` to each checked criterion, pointing to the _checking mechanism_, not just the artifact. Prefer `probe:AC-N` or `test: path/to/file.test.ts`, then `file:line`. This is enforced by V-27 (RFC-0996 evidence discipline).
191
+ 4. **Annotate every `[x]` with inline evidence** — add `(evidence: ...)` to each checked criterion, pointing to the _checking mechanism_, not just the artifact. Prefer `probe:AC-N` or `test: path/to/file.test.ts`, then `file:line`. This is enforced by the V-27 evidence discipline.
191
192
  5. **If a criterion cannot be met** (e.g., requires an external dependency not yet available, requires a pilot that is not registered), do NOT mark it `[x]` and do NOT stamp `implemented`. Instead, split the deferred work into a follow-up RFC via `rfc.supersede.propose`. An RFC with unchecked `[ ]` criteria cannot transition to `implemented` — this is enforced by V-26.
192
193
  6. **Ensure `reviewers` is non-empty** — `rfc.validate` enforces V-25: implemented RFCs with an empty `reviewers` field fail validation. Add at least one reviewer (e.g. `human:<name>`) before stamping `implemented`.
193
- 7. **Check document readiness** (RFC-1006) — if the RFC has a `## Document readiness` section, verify every `DR-N` checkbox is checked `[x]`. Unchecked `DR-N` items block `accepted`/`implemented` status via V-38. Document readiness criteria cover document quality (sections present, risks described, alternatives considered), not system behavior — they are checked by inspecting the RFC itself, not by running code.
194
+ 7. **Check document readiness** — if the RFC has a `## Document readiness` section, verify every `DR-N` checkbox is checked `[x]`. Unchecked `DR-N` items block `accepted`/`implemented` status via V-38. Document readiness criteria cover document quality (sections present, risks described, alternatives considered), not system behavior — they are checked by inspecting the RFC itself, not by running code.
194
195
 
195
196
  Do not proceed to step 4.7 until every acceptance criterion checkbox AND every document readiness checkbox is checked with evidence.
196
197
 
@@ -450,7 +450,7 @@ If any operator insights were routed to `.agents/operator-profile.md`, offer the
450
450
 
451
451
  Present a concise summary in `aiLanguage`. **ALL labels, headings, column names, and prose MUST be translated to `aiLanguage`** — the template below is structural only. Only identifiers (file paths, skill names, RFC/ADR ids, commit hashes) stay untranslated. This is non-negotiable: an English summary when `aiLanguage` is `ru` is a violation of this skill's language contract.
452
452
 
453
- **Engineering Checkpoint (RFC-0884):** The closing block follows the Engineering Checkpoint protocol defined in `_shared/fo-session-summary.md`. The agent MUST:
453
+ **Engineering Checkpoint:** The closing block follows the Engineering Checkpoint protocol defined in `_shared/fo-session-summary.md`. The agent MUST:
454
454
 
455
455
  1. **Select mode** — analyze the session's changes. If the session changed architecture, runtime flow, state machines, persistence models, or public contracts, use **full mode** (6 sections). Otherwise, use **lightweight mode** (3 sections).
456
456
  2. **Diagram selection** (full mode only) — apply the diagram selection rules table from `_shared/fo-session-summary.md` to determine if a Mermaid diagram is warranted. If no structural change warrants a diagram, explicitly state "No diagram: this session did not change system structure..."
@@ -60,7 +60,7 @@ Enhance saved session transcripts with semantic annotations, summaries, and qual
60
60
 
61
61
  6. **Update the session file:**
62
62
  - Update frontmatter: `summary`, `decisions`, refined `types`, corrected metadata.
63
- - **Checkpoint fields (RFC-0884):** When the session produced substantial engineering work, populate the optional checkpoint frontmatter fields:
63
+ - **Checkpoint fields:** When the session produced substantial engineering work, populate the optional checkpoint frontmatter fields:
64
64
  - `checkpoint` — object with `before`, `change`, `after` (each 1-2 sentences describing state N, what was done, state N+1)
65
65
  - `systemDelta` — object with arrays: `changedContracts`, `changedSchemas`, `changedStateMachines`, `changedInvariants`, `changedPersistence`
66
66
  - `diagrams` — array of objects: `type` (flowchart/sequenceDiagram/stateDiagram-v2/erDiagram/none), `scope` (current-system/session-delta), `caption`, `mermaid` (Mermaid syntax or empty string)