forgecraft-mcp 1.3.2 → 1.4.0

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 (58) hide show
  1. package/dist/artifacts/commit-hooks.d.ts +1 -1
  2. package/dist/artifacts/commit-hooks.d.ts.map +1 -1
  3. package/dist/artifacts/commit-hooks.js +2 -0
  4. package/dist/artifacts/commit-hooks.js.map +1 -1
  5. package/dist/cli/commands.d.ts +35 -1
  6. package/dist/cli/commands.d.ts.map +1 -1
  7. package/dist/cli/commands.js +109 -2
  8. package/dist/cli/commands.js.map +1 -1
  9. package/dist/cli/help.d.ts.map +1 -1
  10. package/dist/cli/help.js +7 -0
  11. package/dist/cli/help.js.map +1 -1
  12. package/dist/cli.d.ts.map +1 -1
  13. package/dist/cli.js +10 -1
  14. package/dist/cli.js.map +1 -1
  15. package/dist/shared/result-utils.d.ts +27 -0
  16. package/dist/shared/result-utils.d.ts.map +1 -0
  17. package/dist/shared/result-utils.js +41 -0
  18. package/dist/shared/result-utils.js.map +1 -0
  19. package/dist/tools/close-cycle-helpers.d.ts +21 -2
  20. package/dist/tools/close-cycle-helpers.d.ts.map +1 -1
  21. package/dist/tools/close-cycle-helpers.js +66 -10
  22. package/dist/tools/close-cycle-helpers.js.map +1 -1
  23. package/dist/tools/close-cycle.d.ts +2 -2
  24. package/dist/tools/close-cycle.d.ts.map +1 -1
  25. package/dist/tools/close-cycle.js +1 -1
  26. package/dist/tools/close-cycle.js.map +1 -1
  27. package/dist/tools/consolidate-status.d.ts +81 -0
  28. package/dist/tools/consolidate-status.d.ts.map +1 -0
  29. package/dist/tools/consolidate-status.js +251 -0
  30. package/dist/tools/consolidate-status.js.map +1 -0
  31. package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
  32. package/dist/tools/forgecraft-dispatch.js +10 -0
  33. package/dist/tools/forgecraft-dispatch.js.map +1 -1
  34. package/dist/tools/forgecraft-router.d.ts +8 -0
  35. package/dist/tools/forgecraft-router.d.ts.map +1 -1
  36. package/dist/tools/forgecraft-router.js +21 -1
  37. package/dist/tools/forgecraft-router.js.map +1 -1
  38. package/dist/tools/forgecraft-schema-params.d.ts +4 -4
  39. package/dist/tools/forgecraft-schema.d.ts +5 -5
  40. package/dist/tools/forgecraft-schema.d.ts.map +1 -1
  41. package/dist/tools/forgecraft-schema.js +3 -0
  42. package/dist/tools/forgecraft-schema.js.map +1 -1
  43. package/dist/tools/gate-violations.d.ts +59 -0
  44. package/dist/tools/gate-violations.d.ts.map +1 -0
  45. package/dist/tools/gate-violations.js +152 -0
  46. package/dist/tools/gate-violations.js.map +1 -0
  47. package/dist/tools/generate-session-prompt.d.ts +3 -3
  48. package/dist/tools/generate-session-prompt.d.ts.map +1 -1
  49. package/dist/tools/generate-session-prompt.js +57 -15
  50. package/dist/tools/generate-session-prompt.js.map +1 -1
  51. package/dist/tools/roadmap-builder.d.ts.map +1 -1
  52. package/dist/tools/roadmap-builder.js +19 -9
  53. package/dist/tools/roadmap-builder.js.map +1 -1
  54. package/dist/tools/session-prompt-builders.d.ts.map +1 -1
  55. package/dist/tools/session-prompt-builders.js +34 -10
  56. package/dist/tools/session-prompt-builders.js.map +1 -1
  57. package/package.json +1 -1
  58. package/templates/universal/hooks.yaml +212 -20
@@ -25,7 +25,7 @@ export declare class CommitHooksArtifact implements GenerativeSpec {
25
25
  readonly projectDir: string;
26
26
  readonly name = "Pre-commit Hooks (Automated Enforcement)";
27
27
  readonly purpose = "Rejects non-conforming commits before they enter the repository, making all other spec properties self-defending.";
28
- readonly covers: readonly ["Temporary/draft file prevention", "Secret scanning", "Production anti-pattern detection", "TypeScript compilation gate", "Test + coverage gate", "Dangerous command prevention", "Conventional commit message format enforcement"];
28
+ readonly covers: readonly ["Temporary/draft file prevention", "Secret scanning", "Production anti-pattern detection", "TypeScript compilation gate", "Rust cargo check + cargo clippy gate", "Test + coverage gate", "Dangerous command prevention", "Conventional commit message format enforcement"];
29
29
  readonly excludes: readonly ["Hook implementation details (those live in .claude/hooks/)", "CI/CD pipeline steps (those are post-commit enforcement)"];
30
30
  readonly version: string;
31
31
  readonly specId = "artifact:commit-hooks";
@@ -1 +1 @@
1
- {"version":3,"file":"commit-hooks.d.ts","sourceRoot":"","sources":["../../src/artifacts/commit-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAWhE;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IA2BtD,QAAQ,CAAC,UAAU,EAAE,MAAM;IA1B7B,QAAQ,CAAC,IAAI,8CAA8C;IAC3D,QAAQ,CAAC,OAAO,uHACsG;IACtH,QAAQ,CAAC,MAAM,gPAQJ;IACX,QAAQ,CAAC,QAAQ,sIAGN;IAEX,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,2BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAM;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,CAAM;IACvD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAM;IAE/C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;gBAGhC,UAAU,EAAE,MAAM,EAC3B,OAAO,SAAU;IAsEnB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAQlC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAUtE,MAAM;;;;;;;;IAOZ,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMrD,WAAW,CACT,MAAM,EAAE,cAAc,GAAG,WAAW,GACnC,aAAa,CAAC,mBAAmB,CAAC;IAI/B,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC;CAU7B"}
1
+ {"version":3,"file":"commit-hooks.d.ts","sourceRoot":"","sources":["../../src/artifacts/commit-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAYhE;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IA4BtD,QAAQ,CAAC,UAAU,EAAE,MAAM;IA3B7B,QAAQ,CAAC,IAAI,8CAA8C;IAC3D,QAAQ,CAAC,OAAO,uHACsG;IACtH,QAAQ,CAAC,MAAM,wRASJ;IACX,QAAQ,CAAC,QAAQ,sIAGN;IAEX,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,2BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAM;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,CAAM;IACvD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAM;IAE/C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;gBAGhC,UAAU,EAAE,MAAM,EAC3B,OAAO,SAAU;IAsEnB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAQlC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAUtE,MAAM;;;;;;;;IAOZ,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMrD,WAAW,CACT,MAAM,EAAE,cAAc,GAAG,WAAW,GACnC,aAAa,CAAC,mBAAmB,CAAC;IAI/B,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC;CAU7B"}
@@ -19,6 +19,7 @@ const REQUIRED_HOOKS = [
19
19
  "pre-commit-secrets.sh",
20
20
  "pre-commit-prod-quality.sh",
21
21
  "pre-commit-compile.sh",
22
+ "pre-commit-clippy.sh",
22
23
  "pre-commit-test.sh",
23
24
  "commit-msg.sh",
24
25
  ];
@@ -39,6 +40,7 @@ export class CommitHooksArtifact {
39
40
  "Secret scanning",
40
41
  "Production anti-pattern detection",
41
42
  "TypeScript compilation gate",
43
+ "Rust cargo check + cargo clippy gate",
42
44
  "Test + coverage gate",
43
45
  "Dangerous command prevention",
44
46
  "Conventional commit message format enforcement",
@@ -1 +1 @@
1
- {"version":3,"file":"commit-hooks.js","sourceRoot":"","sources":["../../src/artifacts/commit-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit-hooks.js","sourceRoot":"","sources":["../../src/artifacts/commit-hooks.ts"],"names":[],"mappings":"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"}
@@ -14,15 +14,17 @@ import type { Flags } from "./args.js";
14
14
  export declare function resolveTagsFromConfig(dir: string, flagTags: string[] | undefined): Tag[] | undefined;
15
15
  /**
16
16
  * Extract text from MCP-style handler result and print to stdout.
17
+ * With `json: true`, wraps output in `{ "ok": true, "output": "..." }`.
17
18
  *
18
19
  * @param result - MCP content result with text blocks
20
+ * @param json - When true, output as JSON (for CI/scripting)
19
21
  */
20
22
  export declare function printResult(result: {
21
23
  content: Array<{
22
24
  type: string;
23
25
  text: string;
24
26
  }>;
25
- }): void;
27
+ }, json?: boolean): void;
26
28
  /** @param pos - Positional args @param flags - Parsed flags */
27
29
  export declare function cmdSetup(pos: string[], flags: Flags): Promise<void>;
28
30
  /** @param pos - Positional args @param flags - Parsed flags */
@@ -51,4 +53,36 @@ export declare function cmdAddHook(pos: string[], flags: Flags): Promise<void>;
51
53
  export declare function cmdVerify(pos: string[], flags: Flags): Promise<void>;
52
54
  /** @param pos - Positional args @param flags - Parsed flags */
53
55
  export declare function cmdAddModule(pos: string[], flags: Flags): Promise<void>;
56
+ /**
57
+ * `check-cascade [dir]` — run cascade checks and exit 1 on required failures.
58
+ *
59
+ * With `--json`: outputs structured JSON suitable for CI parsing.
60
+ * Exit codes: 0 = all required steps pass, 1 = one or more required steps fail.
61
+ *
62
+ * @param pos - Positional args (pos[0] = project dir)
63
+ * @param flags - Parsed flags
64
+ */
65
+ export declare function cmdCheckCascade(pos: string[], flags: Flags): Promise<void>;
66
+ /**
67
+ * `violations [dir]` — report active gate violations, exit 1 if any present.
68
+ *
69
+ * Active violations are those recorded after the last git commit. Stale
70
+ * violations (cleared by a commit) are shown but don't trigger exit 1.
71
+ *
72
+ * With `--json`: outputs structured JSON suitable for CI parsing.
73
+ * Exit codes: 0 = no active violations, 1 = active violations present.
74
+ *
75
+ * @param pos - Positional args (pos[0] = project dir)
76
+ * @param flags - Parsed flags
77
+ */
78
+ export declare function cmdViolations(pos: string[], flags: Flags): Promise<void>;
79
+ /**
80
+ * `status [dir]` — print a live project state snapshot (always exits 0).
81
+ *
82
+ * With `--json`: wraps the snapshot text in `{ "ok": true, "output": "..." }`.
83
+ *
84
+ * @param pos - Positional args (pos[0] = project dir)
85
+ * @param flags - Parsed flags
86
+ */
87
+ export declare function cmdStatus(pos: string[], flags: Flags): Promise<void>;
54
88
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,GAAG,EAA6B,MAAM,oBAAoB,CAAC;AAmBzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AASvC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAC7B,GAAG,EAAE,GAAG,SAAS,CAInB;AAID;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD,GAAG,IAAI,CAEP;AAID,+DAA+D;AAC/D,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BzE;AAED,+DAA+D;AAC/D,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3E;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E;AAED,+DAA+D;AAC/D,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3E;AAED,+DAA+D;AAC/D,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAazE;AAED,+DAA+D;AAC/D,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5E;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1E;AAED,+DAA+D;AAC/D,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxE;AAED,+DAA+D;AAC/D,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5E;AAED,+DAA+D;AAC/D,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB5E;AAED,+DAA+D;AAC/D,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3E;AAED,+DAA+D;AAC/D,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAe3E;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1E;AAED,+DAA+D;AAC/D,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB7E"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,9 @@ import { addModuleHandler } from "../tools/add-module.js";
18
18
  import { verifyHandler } from "../tools/verify.js";
19
19
  import { adviceHandler } from "../tools/advice.js";
20
20
  import { metricsHandler } from "../tools/metrics.js";
21
+ import { runCascadeChecks, loadCascadeDecisions, isCascadeComplete, } from "../tools/check-cascade.js";
22
+ import { buildGateViolationReport, formatGateViolationReport, } from "../tools/gate-violations.js";
23
+ import { consolidateStatusHandler } from "../tools/consolidate-status.js";
21
24
  import { str, arr, bool } from "./args.js";
22
25
  import { detectAiAssistant, buildNoAssistantWarning, } from "./assistant-detector.js";
23
26
  // ── Config Resolution ────────────────────────────────────────────────
@@ -37,11 +40,19 @@ export function resolveTagsFromConfig(dir, flagTags) {
37
40
  // ── Output ───────────────────────────────────────────────────────────
38
41
  /**
39
42
  * Extract text from MCP-style handler result and print to stdout.
43
+ * With `json: true`, wraps output in `{ "ok": true, "output": "..." }`.
40
44
  *
41
45
  * @param result - MCP content result with text blocks
46
+ * @param json - When true, output as JSON (for CI/scripting)
42
47
  */
43
- export function printResult(result) {
44
- console.log(result.content[0]?.text ?? "");
48
+ export function printResult(result, json = false) {
49
+ const text = result.content[0]?.text ?? "";
50
+ if (json) {
51
+ console.log(JSON.stringify({ ok: true, output: text }));
52
+ }
53
+ else {
54
+ console.log(text);
55
+ }
45
56
  }
46
57
  // ── Commands ─────────────────────────────────────────────────────────
47
58
  /** @param pos - Positional args @param flags - Parsed flags */
@@ -270,4 +281,100 @@ export async function cmdAddModule(pos, flags) {
270
281
  });
271
282
  printResult(result);
272
283
  }
284
+ // ── CI / Bare Gate Commands ──────────────────────────────────────────
285
+ /**
286
+ * `check-cascade [dir]` — run cascade checks and exit 1 on required failures.
287
+ *
288
+ * With `--json`: outputs structured JSON suitable for CI parsing.
289
+ * Exit codes: 0 = all required steps pass, 1 = one or more required steps fail.
290
+ *
291
+ * @param pos - Positional args (pos[0] = project dir)
292
+ * @param flags - Parsed flags
293
+ */
294
+ export async function cmdCheckCascade(pos, flags) {
295
+ const projectDir = resolve(pos[0] ?? ".");
296
+ const json = bool(flags, "json", false);
297
+ const decisions = loadCascadeDecisions(projectDir);
298
+ const steps = runCascadeChecks(projectDir, decisions);
299
+ const passed = isCascadeComplete(steps);
300
+ if (json) {
301
+ const failedSteps = steps
302
+ .filter((s) => s.status === "FAIL" || s.status === "STUB")
303
+ .map((s) => ({ name: s.name, status: s.status, detail: s.detail }));
304
+ const passingCount = steps.filter((s) => s.status === "PASS" || s.status === "WARN").length;
305
+ console.log(JSON.stringify({
306
+ ok: passed,
307
+ passing: passingCount,
308
+ total: steps.length,
309
+ failedSteps,
310
+ }));
311
+ }
312
+ else {
313
+ for (const s of steps) {
314
+ const icon = s.status === "PASS"
315
+ ? "✅"
316
+ : s.status === "SKIP"
317
+ ? "⏭ "
318
+ : s.status === "WARN"
319
+ ? "⚠️ "
320
+ : "❌";
321
+ console.log(`${icon} ${s.name}: ${s.status}`);
322
+ if (s.status === "FAIL" || s.status === "STUB") {
323
+ console.log(` ${s.detail}`);
324
+ }
325
+ }
326
+ if (!passed) {
327
+ console.error("\n❌ Cascade gate failed — required steps are incomplete.");
328
+ }
329
+ }
330
+ if (!passed)
331
+ process.exit(1);
332
+ }
333
+ /**
334
+ * `violations [dir]` — report active gate violations, exit 1 if any present.
335
+ *
336
+ * Active violations are those recorded after the last git commit. Stale
337
+ * violations (cleared by a commit) are shown but don't trigger exit 1.
338
+ *
339
+ * With `--json`: outputs structured JSON suitable for CI parsing.
340
+ * Exit codes: 0 = no active violations, 1 = active violations present.
341
+ *
342
+ * @param pos - Positional args (pos[0] = project dir)
343
+ * @param flags - Parsed flags
344
+ */
345
+ export async function cmdViolations(pos, flags) {
346
+ const projectDir = resolve(pos[0] ?? ".");
347
+ const json = bool(flags, "json", false);
348
+ const report = buildGateViolationReport(projectDir);
349
+ if (json) {
350
+ console.log(JSON.stringify({
351
+ ok: report.active.length === 0,
352
+ active: report.active,
353
+ stale: report.stale,
354
+ lastCommitAt: report.lastCommitAt,
355
+ }));
356
+ }
357
+ else {
358
+ console.log(formatGateViolationReport(report));
359
+ if (report.active.length > 0) {
360
+ console.error(`\n❌ ${report.active.length} active gate violation(s) — fix before committing.`);
361
+ }
362
+ }
363
+ if (report.active.length > 0)
364
+ process.exit(1);
365
+ }
366
+ /**
367
+ * `status [dir]` — print a live project state snapshot (always exits 0).
368
+ *
369
+ * With `--json`: wraps the snapshot text in `{ "ok": true, "output": "..." }`.
370
+ *
371
+ * @param pos - Positional args (pos[0] = project dir)
372
+ * @param flags - Parsed flags
373
+ */
374
+ export async function cmdStatus(pos, flags) {
375
+ const projectDir = resolve(pos[0] ?? ".");
376
+ const json = bool(flags, "json", false);
377
+ const result = await consolidateStatusHandler({ project_dir: projectDir });
378
+ printResult(result, json);
379
+ }
273
380
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CA8C/B"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAqD/B"}
package/dist/cli/help.js CHANGED
@@ -27,7 +27,14 @@ COMMANDS
27
27
  verify [dir] Run tests + score §4.3 GS properties + report layer violations
28
28
  advice [dir] Quality cycle checklist + tool stack + example configs for your tags
29
29
  metrics [dir] External quality report: LOC, coverage, layer violations, dead code, complexity
30
+
31
+ CI / BARE GATE COMMANDS (exit codes: 0 = pass, 1 = fail)
32
+ check-cascade [dir] Run cascade gate checks — exit 1 if required steps are incomplete
33
+ violations [dir] Report active gate violations — exit 1 if any violations present
34
+ status [dir] Print live project state snapshot (cascade + roadmap + git + Status.md)
35
+
30
36
  FLAGS (vary by command)
37
+ --json Machine-readable JSON output (for CI/scripting)
31
38
  --tags <tags...> Project classification tags (or read from forgecraft.yaml)
32
39
  --tier <tier> Content depth: core | recommended | optional
33
40
  --targets <targets...> AI assistant targets: claude cursor copilot windsurf cline aider
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Cb,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDb,CAAC,CAAC;AACH,CAAC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqE7D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0BH;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA8E7D"}
package/dist/cli.js CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { parseCliArgs } from "./cli/args.js";
9
9
  import { showHelp } from "./cli/help.js";
10
- import { cmdSetup, cmdRefresh, cmdAdvice, cmdMetrics, cmdAudit, cmdScaffold, cmdReview, cmdList, cmdClassify, cmdGenerate, cmdConvert, cmdAddHook, cmdVerify, cmdAddModule, } from "./cli/commands.js";
10
+ import { cmdSetup, cmdRefresh, cmdAdvice, cmdMetrics, cmdAudit, cmdScaffold, cmdReview, cmdList, cmdClassify, cmdGenerate, cmdConvert, cmdAddHook, cmdVerify, cmdAddModule, cmdCheckCascade, cmdViolations, cmdStatus, } from "./cli/commands.js";
11
11
  // ── Entry Point ──────────────────────────────────────────────────────
12
12
  /**
13
13
  * Run CLI mode. Returns `true` when a command was handled, `false` to fall
@@ -61,6 +61,15 @@ export async function runCli(argv) {
61
61
  case "add-module":
62
62
  await cmdAddModule(positional, flags);
63
63
  break;
64
+ case "check-cascade":
65
+ await cmdCheckCascade(positional, flags);
66
+ break;
67
+ case "violations":
68
+ await cmdViolations(positional, flags);
69
+ break;
70
+ case "status":
71
+ await cmdStatus(positional, flags);
72
+ break;
64
73
  case "verify":
65
74
  await cmdVerify(positional, flags);
66
75
  break;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * MCP tool result size utilities.
3
+ *
4
+ * Prevents silent schema truncation at the MCP transport layer by:
5
+ * - Annotating large results with their size (chars + lines)
6
+ * - Truncating results that exceed the limit with an explicit marker
7
+ * so the caller knows to refine their query rather than acting on
8
+ * incomplete data.
9
+ */
10
+ /** Maximum characters returned in a single tool result. */
11
+ export declare const MAX_TOOL_RESULT_CHARS = 50000;
12
+ /**
13
+ * Annotate a tool result text with its size and truncate if necessary.
14
+ *
15
+ * - Under `maxChars` and over `SIZE_ANNOTATION_THRESHOLD`: appends a compact
16
+ * footer showing char/line count.
17
+ * - Over `maxChars`: truncates to `maxChars` and appends a `[TRUNCATED]`
18
+ * footer so the caller knows the response is incomplete.
19
+ * - Under `SIZE_ANNOTATION_THRESHOLD`: returned as-is (no footer noise for
20
+ * short replies like "No violations recorded.").
21
+ *
22
+ * @param text - Raw tool result text
23
+ * @param maxChars - Truncation limit (default: MAX_TOOL_RESULT_CHARS)
24
+ * @returns Annotated (and possibly truncated) text
25
+ */
26
+ export declare function annotateResult(text: string, maxChars?: number): string;
27
+ //# sourceMappingURL=result-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-utils.d.ts","sourceRoot":"","sources":["../../src/shared/result-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAK5C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAA8B,GACvC,MAAM,CAgBR"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * MCP tool result size utilities.
3
+ *
4
+ * Prevents silent schema truncation at the MCP transport layer by:
5
+ * - Annotating large results with their size (chars + lines)
6
+ * - Truncating results that exceed the limit with an explicit marker
7
+ * so the caller knows to refine their query rather than acting on
8
+ * incomplete data.
9
+ */
10
+ /** Maximum characters returned in a single tool result. */
11
+ export const MAX_TOOL_RESULT_CHARS = 50_000;
12
+ /** Minimum size (chars) before a size annotation is appended. */
13
+ const SIZE_ANNOTATION_THRESHOLD = 1_000;
14
+ /**
15
+ * Annotate a tool result text with its size and truncate if necessary.
16
+ *
17
+ * - Under `maxChars` and over `SIZE_ANNOTATION_THRESHOLD`: appends a compact
18
+ * footer showing char/line count.
19
+ * - Over `maxChars`: truncates to `maxChars` and appends a `[TRUNCATED]`
20
+ * footer so the caller knows the response is incomplete.
21
+ * - Under `SIZE_ANNOTATION_THRESHOLD`: returned as-is (no footer noise for
22
+ * short replies like "No violations recorded.").
23
+ *
24
+ * @param text - Raw tool result text
25
+ * @param maxChars - Truncation limit (default: MAX_TOOL_RESULT_CHARS)
26
+ * @returns Annotated (and possibly truncated) text
27
+ */
28
+ export function annotateResult(text, maxChars = MAX_TOOL_RESULT_CHARS) {
29
+ const total = text.length;
30
+ if (total <= SIZE_ANNOTATION_THRESHOLD)
31
+ return text;
32
+ if (total <= maxChars) {
33
+ const lines = text.split("\n").length;
34
+ return `${text}\n\n---\n_↩ ${total.toLocaleString()} chars · ${lines.toLocaleString()} lines_`;
35
+ }
36
+ const truncated = text.slice(0, maxChars);
37
+ return (`${truncated}\n\n---\n` +
38
+ `_[TRUNCATED: showing first ${maxChars.toLocaleString()} of ${total.toLocaleString()} chars — ` +
39
+ `use a more specific query or smaller scope to see the rest]_`);
40
+ }
41
+ //# sourceMappingURL=result-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-utils.js","sourceRoot":"","sources":["../../src/shared/result-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,iEAAiE;AACjE,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,WAAmB,qBAAqB;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAE1B,IAAI,KAAK,IAAI,yBAAyB;QAAE,OAAO,IAAI,CAAC;IAEpD,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACtC,OAAO,GAAG,IAAI,eAAe,KAAK,CAAC,cAAc,EAAE,YAAY,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;IACjG,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1C,OAAO,CACL,GAAG,SAAS,WAAW;QACvB,8BAA8B,QAAQ,CAAC,cAAc,EAAE,OAAO,KAAK,CAAC,cAAc,EAAE,WAAW;QAC/F,8DAA8D,CAC/D,CAAC;AACJ,CAAC"}
@@ -34,6 +34,15 @@ export interface CloseCycleResult {
34
34
  /** Experiment id when experiment mode is active — gates are auto-contributed */
35
35
  readonly experimentId?: string;
36
36
  }
37
+ /** A single item parsed from docs/roadmap.md. */
38
+ export interface RoadmapItem {
39
+ readonly id: string;
40
+ readonly title: string;
41
+ /** IDs that must be status:done before this item can be started. Empty array = no deps. */
42
+ readonly dependsOn: ReadonlyArray<string>;
43
+ readonly status: "pending" | "in-progress" | "done";
44
+ readonly promptPath: string;
45
+ }
37
46
  /**
38
47
  * Derive the test command from project configuration files.
39
48
  * Returns undefined when no recognizable project file is found.
@@ -52,10 +61,19 @@ export declare function deriveTestCommand(projectRoot: string): string | undefin
52
61
  */
53
62
  export declare function findCodeseekerGates(projectRoot: string): string[];
54
63
  /**
55
- * Find the first pending roadmap item from docs/roadmap.md.
64
+ * Parse all roadmap items from docs/roadmap.md content.
65
+ * Handles both the legacy 4-column format (ID | Title | Status | Prompt)
66
+ * and the current 5-column format (ID | Title | Depends On | Status | Prompt).
67
+ *
68
+ * @param content - Raw roadmap.md file content
69
+ * @returns Parsed items in document order
70
+ */
71
+ export declare function parseRoadmapItems(content: string): ReadonlyArray<RoadmapItem>;
72
+ /**
73
+ * Find the first pending roadmap item whose DAG dependencies are all done.
56
74
  *
57
75
  * @param projectDir - Absolute path to project root
58
- * @returns The first pending item ID and title, or null if none found
76
+ * @returns The first unblocked pending item, or null if none exists
59
77
  */
60
78
  export declare function findNextRoadmapItem(projectDir: string): {
61
79
  readonly id: string;
@@ -63,6 +81,7 @@ export declare function findNextRoadmapItem(projectDir: string): {
63
81
  } | null;
64
82
  /**
65
83
  * Mark a roadmap item as done in docs/roadmap.md.
84
+ * Works for both 4-column (legacy) and 5-column (current) formats.
66
85
  *
67
86
  * @param projectDir - Absolute path to project root
68
87
  * @param itemId - Roadmap item ID, e.g. "RM-001"
@@ -1 +1 @@
1
- {"version":3,"file":"close-cycle-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/close-cycle-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkCzE;AA6CD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CASjE;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUxD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAc5E;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA8FvE"}
1
+ {"version":3,"file":"close-cycle-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/close-cycle-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAID,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsCzE;AA6CD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CASjE;AAID;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CA4C7E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcxD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU5E;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA8FvE"}
@@ -39,6 +39,9 @@ export function deriveTestCommand(projectRoot) {
39
39
  // Fall through
40
40
  }
41
41
  }
42
+ if (existsSync(join(projectRoot, "Cargo.toml"))) {
43
+ return "cargo test";
44
+ }
42
45
  if (existsSync(join(projectRoot, "go.mod"))) {
43
46
  return "go test ./...";
44
47
  }
@@ -96,23 +99,78 @@ export function findCodeseekerGates(projectRoot) {
96
99
  }
97
100
  // ── Roadmap Helpers ──────────────────────────────────────────────────
98
101
  /**
99
- * Find the first pending roadmap item from docs/roadmap.md.
102
+ * Parse all roadmap items from docs/roadmap.md content.
103
+ * Handles both the legacy 4-column format (ID | Title | Status | Prompt)
104
+ * and the current 5-column format (ID | Title | Depends On | Status | Prompt).
105
+ *
106
+ * @param content - Raw roadmap.md file content
107
+ * @returns Parsed items in document order
108
+ */
109
+ export function parseRoadmapItems(content) {
110
+ const items = [];
111
+ for (const line of content.split("\n")) {
112
+ const cells = line
113
+ .split("|")
114
+ .map((c) => c.trim())
115
+ .filter((c) => c !== "");
116
+ if (cells.length < 4)
117
+ continue;
118
+ const id = cells[0];
119
+ if (!/^RM-\d+$/.test(id))
120
+ continue;
121
+ let dependsOnRaw;
122
+ let statusRaw;
123
+ let promptPath;
124
+ if (cells.length >= 5) {
125
+ // 5-column: ID | Title | Depends On | Status | Prompt
126
+ dependsOnRaw = cells[2];
127
+ statusRaw = cells[3];
128
+ promptPath = cells[4];
129
+ }
130
+ else {
131
+ // 4-column legacy: ID | Title | Status | Prompt
132
+ dependsOnRaw = "—";
133
+ statusRaw = cells[2];
134
+ promptPath = cells[3];
135
+ }
136
+ const status = ["pending", "in-progress", "done"].includes(statusRaw)
137
+ ? statusRaw
138
+ : "pending";
139
+ const dependsOn = dependsOnRaw === "—" || dependsOnRaw === ""
140
+ ? []
141
+ : dependsOnRaw
142
+ .split(",")
143
+ .map((d) => d.trim())
144
+ .filter((d) => d.length > 0);
145
+ items.push({ id, title: cells[1], dependsOn, status, promptPath });
146
+ }
147
+ return items;
148
+ }
149
+ /**
150
+ * Find the first pending roadmap item whose DAG dependencies are all done.
100
151
  *
101
152
  * @param projectDir - Absolute path to project root
102
- * @returns The first pending item ID and title, or null if none found
153
+ * @returns The first unblocked pending item, or null if none exists
103
154
  */
104
155
  export function findNextRoadmapItem(projectDir) {
105
156
  const roadmapPath = join(projectDir, "docs", "roadmap.md");
106
157
  if (!existsSync(roadmapPath))
107
158
  return null;
108
159
  const content = readFileSync(roadmapPath, "utf-8");
109
- const match = content.match(/\|\s*(RM-\d+)\s*\|\s*([^|]+)\s*\|\s*pending\s*\|/);
110
- if (!match)
111
- return null;
112
- return { id: match[1].trim(), title: match[2].trim() };
160
+ const items = parseRoadmapItems(content);
161
+ const doneIds = new Set(items.filter((i) => i.status === "done").map((i) => i.id));
162
+ for (const item of items) {
163
+ if (item.status !== "pending")
164
+ continue;
165
+ const blocked = item.dependsOn.some((dep) => !doneIds.has(dep));
166
+ if (!blocked)
167
+ return { id: item.id, title: item.title };
168
+ }
169
+ return null;
113
170
  }
114
171
  /**
115
172
  * Mark a roadmap item as done in docs/roadmap.md.
173
+ * Works for both 4-column (legacy) and 5-column (current) formats.
116
174
  *
117
175
  * @param projectDir - Absolute path to project root
118
176
  * @param itemId - Roadmap item ID, e.g. "RM-001"
@@ -123,11 +181,9 @@ export function markRoadmapItemDone(projectDir, itemId) {
123
181
  return;
124
182
  const content = readFileSync(roadmapPath, "utf-8");
125
183
  const escapedId = itemId.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
126
- const rowRegex = new RegExp(`(\\|\\s*${escapedId}\\s*\\|[^|]+\\|\\s*)pending(\\s*\\|)`, "g");
127
- const updated = content.replace(rowRegex, "$1done$2");
128
- if (updated !== content) {
184
+ const updated = content.replace(new RegExp(`(\\|\\s*${escapedId}\\s*\\|[^\\n]*)\\bpending\\b`, "g"), "$1done");
185
+ if (updated !== content)
129
186
  writeFileSync(roadmapPath, updated, "utf-8");
130
- }
131
187
  }
132
188
  // ── Result Formatting ────────────────────────────────────────────────
133
189
  /**