@entelligentsia/forgecli 1.0.21 → 1.0.36

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 (218) hide show
  1. package/CHANGELOG.md +346 -0
  2. package/README.md +2 -0
  3. package/dist/CHANGELOG-forge-plugin.md +281 -0
  4. package/dist/bin/argv.d.ts +2 -2
  5. package/dist/bin/argv.js +25 -0
  6. package/dist/bin/argv.js.map +1 -1
  7. package/dist/bin/forge.js +12 -0
  8. package/dist/bin/forge.js.map +1 -1
  9. package/dist/bin/init.d.ts +23 -0
  10. package/dist/bin/init.js +123 -0
  11. package/dist/bin/init.js.map +1 -0
  12. package/dist/bin/uninstall.d.ts +20 -0
  13. package/dist/bin/uninstall.js +141 -0
  14. package/dist/bin/uninstall.js.map +1 -0
  15. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.d.ts +40 -0
  16. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js +593 -0
  17. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js.map +1 -0
  18. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.d.ts +46 -0
  19. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.js +245 -0
  20. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.js.map +1 -0
  21. package/dist/extensions/forgecli/claude-bootstrap/uninstall.d.ts +23 -0
  22. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js +215 -0
  23. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js.map +1 -0
  24. package/dist/extensions/forgecli/dashboard/component.js +10 -7
  25. package/dist/extensions/forgecli/dashboard/component.js.map +1 -1
  26. package/dist/extensions/forgecli/forge-tools.d.ts +1 -0
  27. package/dist/extensions/forgecli/forge-tools.js +73 -0
  28. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  29. package/dist/extensions/forgecli/lib/forge-root.d.ts +5 -0
  30. package/dist/extensions/forgecli/lib/forge-root.js +14 -1
  31. package/dist/extensions/forgecli/lib/forge-root.js.map +1 -1
  32. package/dist/extensions/forgecli/orchestrators/bug/bug-body.d.ts +1 -0
  33. package/dist/extensions/forgecli/orchestrators/bug/bug-body.js +65 -0
  34. package/dist/extensions/forgecli/orchestrators/bug/bug-body.js.map +1 -0
  35. package/dist/extensions/forgecli/orchestrators/bug/bug-id.d.ts +23 -0
  36. package/dist/extensions/forgecli/orchestrators/bug/bug-id.js +140 -0
  37. package/dist/extensions/forgecli/orchestrators/bug/bug-id.js.map +1 -0
  38. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.d.ts +54 -0
  39. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.js +349 -0
  40. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.js.map +1 -0
  41. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.d.ts +8 -0
  42. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js +60 -0
  43. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js.map +1 -0
  44. package/dist/extensions/forgecli/orchestrators/bug/bug-state.d.ts +14 -0
  45. package/dist/extensions/forgecli/orchestrators/bug/bug-state.js +100 -0
  46. package/dist/extensions/forgecli/orchestrators/bug/bug-state.js.map +1 -0
  47. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.d.ts +72 -0
  48. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.js +204 -0
  49. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.js.map +1 -0
  50. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.d.ts +38 -0
  51. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js +166 -0
  52. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js.map +1 -0
  53. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.d.ts +3 -0
  54. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.js +55 -0
  55. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.js.map +1 -0
  56. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.d.ts +7 -0
  57. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.js +293 -0
  58. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.js.map +1 -0
  59. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.d.ts +2 -0
  60. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js +501 -0
  61. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js.map +1 -0
  62. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.d.ts +41 -0
  63. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.js +5 -0
  64. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.js.map +1 -0
  65. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.d.ts +43 -0
  66. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.js +85 -0
  67. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.js.map +1 -0
  68. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.d.ts +8 -0
  69. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.js +37 -0
  70. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.js.map +1 -0
  71. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.d.ts +28 -0
  72. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.js +45 -0
  73. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.js.map +1 -0
  74. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.d.ts +26 -0
  75. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.js +75 -0
  76. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.js.map +1 -0
  77. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.d.ts +24 -0
  78. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.js +37 -0
  79. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.js.map +1 -0
  80. package/dist/extensions/forgecli/orchestrators/fix-bug.d.ts +9 -92
  81. package/dist/extensions/forgecli/orchestrators/fix-bug.js +23 -1695
  82. package/dist/extensions/forgecli/orchestrators/fix-bug.js.map +1 -1
  83. package/dist/extensions/forgecli/orchestrators/run-sprint.d.ts +3 -12
  84. package/dist/extensions/forgecli/orchestrators/run-sprint.js +97 -270
  85. package/dist/extensions/forgecli/orchestrators/run-sprint.js.map +1 -1
  86. package/dist/extensions/forgecli/orchestrators/run-task.d.ts +10 -214
  87. package/dist/extensions/forgecli/orchestrators/run-task.js +31 -1481
  88. package/dist/extensions/forgecli/orchestrators/run-task.js.map +1 -1
  89. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.d.ts +33 -0
  90. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.js +135 -0
  91. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.js.map +1 -0
  92. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.d.ts +18 -0
  93. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.js +55 -0
  94. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.js.map +1 -0
  95. package/dist/extensions/forgecli/orchestrators/task/run-task-command.d.ts +9 -0
  96. package/dist/extensions/forgecli/orchestrators/task/run-task-command.js +174 -0
  97. package/dist/extensions/forgecli/orchestrators/task/run-task-command.js.map +1 -0
  98. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.d.ts +2 -0
  99. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js +494 -0
  100. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js.map +1 -0
  101. package/dist/extensions/forgecli/orchestrators/task/run-task-types.d.ts +62 -0
  102. package/dist/extensions/forgecli/orchestrators/task/run-task-types.js +5 -0
  103. package/dist/extensions/forgecli/orchestrators/task/run-task-types.js.map +1 -0
  104. package/dist/extensions/forgecli/orchestrators/task/task-body.d.ts +4 -0
  105. package/dist/extensions/forgecli/orchestrators/task/task-body.js +48 -0
  106. package/dist/extensions/forgecli/orchestrators/task/task-body.js.map +1 -0
  107. package/dist/extensions/forgecli/orchestrators/task/task-events.d.ts +63 -0
  108. package/dist/extensions/forgecli/orchestrators/task/task-events.js +185 -0
  109. package/dist/extensions/forgecli/orchestrators/task/task-events.js.map +1 -0
  110. package/dist/extensions/forgecli/orchestrators/task/task-gates.d.ts +34 -0
  111. package/dist/extensions/forgecli/orchestrators/task/task-gates.js +78 -0
  112. package/dist/extensions/forgecli/orchestrators/task/task-gates.js.map +1 -0
  113. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.d.ts +42 -0
  114. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.js +370 -0
  115. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.js.map +1 -0
  116. package/dist/extensions/forgecli/orchestrators/task/task-phases.d.ts +14 -0
  117. package/dist/extensions/forgecli/orchestrators/task/task-phases.js +26 -0
  118. package/dist/extensions/forgecli/orchestrators/task/task-phases.js.map +1 -0
  119. package/dist/extensions/forgecli/orchestrators/task/task-record.d.ts +9 -0
  120. package/dist/extensions/forgecli/orchestrators/task/task-record.js +58 -0
  121. package/dist/extensions/forgecli/orchestrators/task/task-record.js.map +1 -0
  122. package/dist/extensions/forgecli/orchestrators/task/task-state.d.ts +14 -0
  123. package/dist/extensions/forgecli/orchestrators/task/task-state.js +35 -0
  124. package/dist/extensions/forgecli/orchestrators/task/task-state.js.map +1 -0
  125. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.d.ts +36 -0
  126. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js +152 -0
  127. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js.map +1 -0
  128. package/dist/extensions/forgecli/update/forge-update-command.js +10 -7
  129. package/dist/extensions/forgecli/update/forge-update-command.js.map +1 -1
  130. package/dist/forge-payload/.base-pack/commands/approve.md +2 -2
  131. package/dist/forge-payload/.base-pack/commands/check-agent.md +2 -2
  132. package/dist/forge-payload/.base-pack/commands/collate.md +2 -2
  133. package/dist/forge-payload/.base-pack/commands/commit.md +2 -2
  134. package/dist/forge-payload/.base-pack/commands/enhance.md +2 -2
  135. package/dist/forge-payload/.base-pack/commands/fix-bug.md +2 -2
  136. package/dist/forge-payload/.base-pack/commands/implement.md +2 -2
  137. package/dist/forge-payload/.base-pack/commands/init.md +278 -0
  138. package/dist/forge-payload/.base-pack/commands/new-sprint.md +2 -2
  139. package/dist/forge-payload/.base-pack/commands/plan-sprint.md +2 -2
  140. package/dist/forge-payload/.base-pack/commands/plan.md +2 -2
  141. package/dist/forge-payload/.base-pack/commands/retro.md +2 -2
  142. package/dist/forge-payload/.base-pack/commands/review-code.md +2 -2
  143. package/dist/forge-payload/.base-pack/commands/review-plan.md +2 -2
  144. package/dist/forge-payload/.base-pack/commands/run-sprint.md +2 -2
  145. package/dist/forge-payload/.base-pack/commands/run-task.md +2 -2
  146. package/dist/forge-payload/.base-pack/commands/validate.md +2 -2
  147. package/dist/forge-payload/.base-pack/workflows/_fragments/event-emission-schema.md +4 -0
  148. package/dist/forge-payload/.base-pack/workflows/_fragments/event-vocabulary.md +88 -0
  149. package/dist/forge-payload/.base-pack/workflows/collator_agent.md +5 -6
  150. package/dist/forge-payload/.base-pack/workflows/commit_task.md +41 -38
  151. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +3 -3
  152. package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +1 -1
  153. package/dist/forge-payload/.base-pack/workflows-js/wfl-fix-bug.js +42 -6
  154. package/dist/forge-payload/.base-pack/workflows-js/wfl-init.js +449 -0
  155. package/dist/forge-payload/.base-pack/workflows-js/wfl-run-task.js +32 -1
  156. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  157. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  158. package/dist/forge-payload/.schemas/event.schema.json +8 -3
  159. package/dist/forge-payload/.schemas/migrations.json +141 -0
  160. package/dist/forge-payload/commands/add-pipeline.md +1 -1
  161. package/dist/forge-payload/commands/add-task.md +3 -3
  162. package/dist/forge-payload/commands/ask.md +1 -1
  163. package/dist/forge-payload/commands/check-agent.md +1 -1
  164. package/dist/forge-payload/commands/config.md +1 -1
  165. package/dist/forge-payload/commands/health.md +1 -1
  166. package/dist/forge-payload/commands/init.md +62 -7
  167. package/dist/forge-payload/commands/rebuild.md +3 -3
  168. package/dist/forge-payload/commands/remove.md +1 -1
  169. package/dist/forge-payload/commands/repair.md +1 -1
  170. package/dist/forge-payload/commands/report-bug.md +1 -1
  171. package/dist/forge-payload/commands/status.md +1 -1
  172. package/dist/forge-payload/commands/update.md +3 -3
  173. package/dist/forge-payload/hooks/lib/common.cjs +228 -0
  174. package/dist/forge-payload/hooks/lib/plugin-detection.cjs +106 -0
  175. package/dist/forge-payload/hooks/lib/update-msg.cjs +23 -0
  176. package/dist/forge-payload/hooks/lib/update-url.cjs +46 -0
  177. package/dist/forge-payload/hooks/lib/write-registry.js +53 -0
  178. package/dist/forge-payload/init/discovery/discover-database.md +32 -0
  179. package/dist/forge-payload/init/discovery/discover-processes.md +31 -0
  180. package/dist/forge-payload/init/discovery/discover-routing.md +31 -0
  181. package/dist/forge-payload/init/discovery/discover-stack.md +33 -0
  182. package/dist/forge-payload/init/discovery/discover-testing.md +34 -0
  183. package/dist/forge-payload/init/generation/generate-commands.md +171 -0
  184. package/dist/forge-payload/init/generation/generate-kb-doc.md +60 -0
  185. package/dist/forge-payload/init/generation/generate-knowledge-base.md +56 -0
  186. package/dist/forge-payload/init/generation/generate-persona.md +73 -0
  187. package/dist/forge-payload/init/generation/generate-personas.md +54 -0
  188. package/dist/forge-payload/init/generation/generate-skill.md +66 -0
  189. package/dist/forge-payload/init/generation/generate-skills.md +36 -0
  190. package/dist/forge-payload/init/generation/generate-template.md +60 -0
  191. package/dist/forge-payload/init/generation/generate-templates.md +39 -0
  192. package/dist/forge-payload/init/generation/generate-tools.md +133 -0
  193. package/dist/forge-payload/init/generation/generate-workflows.md +78 -0
  194. package/dist/forge-payload/init/phases/phase-1-collect.md +10 -2
  195. package/dist/forge-payload/init/phases/phase-3-materialize.md +1 -1
  196. package/dist/forge-payload/init/phases/phase-4-register.md +8 -0
  197. package/dist/forge-payload/init/workflow-gen-plan.json +17 -0
  198. package/dist/forge-payload/integrity.json +16 -16
  199. package/dist/forge-payload/meta/store-schema/event.schema.md +7 -0
  200. package/dist/forge-payload/meta/workflows/_fragments/event-emission-schema.md +4 -0
  201. package/dist/forge-payload/meta/workflows/_fragments/event-vocabulary.md +88 -0
  202. package/dist/forge-payload/meta/workflows/meta-collate.md +5 -6
  203. package/dist/forge-payload/meta/workflows/meta-commit.md +46 -43
  204. package/dist/forge-payload/meta/workflows/meta-fix-bug.md +7 -2
  205. package/dist/forge-payload/meta/workflows/meta-implement.md +3 -3
  206. package/dist/forge-payload/meta/workflows/meta-migrate.md +1 -1
  207. package/dist/forge-payload/meta/workflows/meta-orchestrate.md +4 -1
  208. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  209. package/dist/forge-payload/schemas/event.schema.json +8 -3
  210. package/dist/forge-payload/schemas/structure-manifest.json +5 -12
  211. package/dist/forge-payload/tools/commit-task.cjs +218 -0
  212. package/dist/forge-payload/tools/forge-preflight.cjs +268 -0
  213. package/dist/forge-payload/tools/lib/paths.cjs +12 -11
  214. package/dist/forge-payload/tools/lib/pricing.cjs +31 -11
  215. package/dist/forge-payload/tools/query-logger.cjs +34 -0
  216. package/dist/forge-payload/tools/store-cli.cjs +6 -1
  217. package/dist/forge-payload/tools/substitute-placeholders.cjs +5 -6
  218. package/package.json +2 -2
@@ -0,0 +1,152 @@
1
+ // task-verdict-loop.ts — review-phase verdict + revision/loopback handling
2
+ // for the run-task pipeline. Extracted VERBATIM from run-task.ts's phase loop
3
+ // (FORGE-S31 file-size refactor) as a pure decision function: it performs the
4
+ // same store reads, ctx.ui notifications, state writes, transcript records,
5
+ // tree-node finalization, and halt-advisor dispatch the inline block did, and
6
+ // returns a small discriminated result the caller's loop switches on.
7
+ //
8
+ // Behavior-preserving: no logic changes. The only structural change is that the
9
+ // inline `return {...}` paths now return `{ kind: "return"; result }`, the
10
+ // `continue` path returns `{ kind: "loopback"; toIndex }`, and the fall-through
11
+ // (approved) path returns `{ kind: "advance" }`.
12
+ import { resolveAdvisorModel, runHaltAdvisor } from "../halt-advisor.js";
13
+ import { recoverPhaseSummary } from "../common/summary-recovery.js";
14
+ import { findPredecessorIndex } from "./task-body.js";
15
+ import { PHASES, SUMMARY_KEY_BY_ROLE } from "./task-phases.js";
16
+ import { readVerdict } from "./task-record.js";
17
+ import { writeState } from "./task-state.js";
18
+ /**
19
+ * Evaluate the review-phase verdict and decide the loop's next move.
20
+ * Mirrors the inline block that previously lived in runTaskPipelineInner.
21
+ */
22
+ export function handleReviewVerdict(p) {
23
+ const { phase, taskId, storeCli, cwd, forgeRoot, iterationCounts, currentPhaseIndex, modelRoutingConfig, ctx } = p;
24
+ const { orchTranscript, finishPhaseNode, recoveredPhases } = p;
25
+ let verdict = readVerdict(taskId, phase.role, storeCli, cwd);
26
+ // Completion recovery (forge-engineering#41): a clean stop with no verdict in
27
+ // the store is most often the subagent writing the {PHASE}-SUMMARY.json
28
+ // sidecar but eliding the set-summary that registers it. Register the sidecar
29
+ // ourselves (once per phase), then re-read. Phases whose verdict comes from
30
+ // task.status (approve → summaryKey null) are not recoverable this way.
31
+ if (verdict === "missing") {
32
+ const summaryKey = SUMMARY_KEY_BY_ROLE[phase.role];
33
+ if (summaryKey && !recoveredPhases.has(phase.role)) {
34
+ recoveredPhases.add(phase.role);
35
+ const rec = recoverPhaseSummary({ storeCli, entityId: taskId, summaryKey, cwd });
36
+ if (rec.ok) {
37
+ const recheck = readVerdict(taskId, phase.role, storeCli, cwd);
38
+ if (recheck !== "missing") {
39
+ ctx.ui.notify(`⟳ forge:run-task — ${phase.role}: subagent skipped set-summary; orchestrator registered ` +
40
+ `the '${summaryKey}' sidecar and the verdict is now present.`, "info");
41
+ verdict = recheck;
42
+ }
43
+ }
44
+ }
45
+ }
46
+ // Surface the resolved verdict on the dashboard (mirrored to the root node).
47
+ ctx.ui.notify(` verdict: ${phase.role} → ${verdict === "approved" ? "〇 approved" : verdict === "revision" ? "⟳ revision" : `× ${verdict}`}`, verdict === "approved" || verdict === "revision" ? "info" : "error");
48
+ if (verdict === "missing") {
49
+ ctx.ui.notify(`× forge:run-task — verdict missing for phase ${phase.role} after subagent completed. ` +
50
+ "Subagent may have crashed or failed to write summaries. Halting for advisory.", "error");
51
+ finishPhaseNode("failed");
52
+ writeState(cwd, {
53
+ taskId,
54
+ phaseIndex: currentPhaseIndex,
55
+ iterationCounts,
56
+ halted: true,
57
+ lastError: `verdict missing for ${phase.role}`,
58
+ savedAt: new Date().toISOString(),
59
+ });
60
+ // A missing verdict IS a postflight-outputs failure: the canonical
61
+ // phase summary the subagent must write (e.g. summaries.code_review)
62
+ // was never recorded, so there is no verdict to route on. review-phase
63
+ // workflows declare no `outputs` block, so runPostflightGate is a
64
+ // pass-through here — this readVerdict check is the effective gate.
65
+ // Route it through the halt-recovery advisor (FORGE-S26-T18), the same
66
+ // hand-off the postflight-gate-unsatisfied branch uses, instead of a
67
+ // bare escalation — so the strongest configured model can diagnose the
68
+ // missing-summary cause. Best-effort, non-fatal (FORGE-S26-T19 parity).
69
+ const gateFailure = {
70
+ phase: phase.role,
71
+ reasonCode: "verdict-missing",
72
+ detail: `Phase '${phase.role}' completed but no verdict was found in the store. ` +
73
+ "The canonical phase summary was not written, so the orchestrator has no verdict to route on.",
74
+ remediation: "Re-run the phase and ensure the subagent's forge_store set-summary call " +
75
+ 'uses args:["<recordId>", "<phaseKey>"] with the literal phase key as args[1] ' +
76
+ "(e.g. code_review), and that the call exits zero before the subagent returns.",
77
+ };
78
+ const advisorModel = resolveAdvisorModel(modelRoutingConfig, ctx.model);
79
+ void runHaltAdvisor({
80
+ gateFailure,
81
+ advisorModel,
82
+ taskId,
83
+ cwd,
84
+ ctx: { ui: ctx.ui },
85
+ forgeRoot,
86
+ });
87
+ return {
88
+ kind: "return",
89
+ result: {
90
+ status: "halted",
91
+ lastPhaseIndex: currentPhaseIndex,
92
+ iterationCounts,
93
+ lastError: `verdict missing for ${phase.role}`,
94
+ },
95
+ };
96
+ }
97
+ if (verdict === "revision") {
98
+ // Increment iteration count for this review phase
99
+ iterationCounts[phase.role] = (iterationCounts[phase.role] ?? 0) + 1;
100
+ if (iterationCounts[phase.role] >= phase.maxIterations) {
101
+ ctx.ui.notify(`× forge:run-task — revision cap reached for phase ${phase.role} ` +
102
+ `(${iterationCounts[phase.role]}/${phase.maxIterations} iterations). Escalating.`, "error");
103
+ finishPhaseNode("escalated");
104
+ writeState(cwd, {
105
+ taskId,
106
+ phaseIndex: currentPhaseIndex,
107
+ iterationCounts,
108
+ halted: true,
109
+ lastError: `revision cap reached for ${phase.role}`,
110
+ savedAt: new Date().toISOString(),
111
+ });
112
+ return {
113
+ kind: "return",
114
+ result: {
115
+ status: "escalated",
116
+ lastPhaseIndex: currentPhaseIndex,
117
+ iterationCounts,
118
+ lastError: `revision cap reached for ${phase.role}`,
119
+ },
120
+ };
121
+ }
122
+ // Loop back to predecessor non-review phase. The review
123
+ // subagent itself finished cleanly — `revision` is its verdict,
124
+ // not a failure — so its node closes as completed before the
125
+ // predecessor re-dispatches under a fresh node ID.
126
+ finishPhaseNode("completed");
127
+ const predIndex = findPredecessorIndex(PHASES, currentPhaseIndex);
128
+ ctx.ui.notify(`⟳ forge:run-task — ${phase.role} returned revision; looping to ${PHASES[predIndex]?.role ?? predIndex} ` +
129
+ `(attempt ${iterationCounts[phase.role]}/${phase.maxIterations})`, "info");
130
+ orchTranscript.record({
131
+ kind: "phase-loopback",
132
+ ts: new Date().toISOString(),
133
+ fromPhase: phase.role,
134
+ toPhase: PHASES[predIndex]?.role ?? String(predIndex),
135
+ fromPhaseIndex: currentPhaseIndex,
136
+ toPhaseIndex: predIndex,
137
+ reason: `${phase.role} returned revision (attempt ${iterationCounts[phase.role]}/${phase.maxIterations})`,
138
+ });
139
+ // Write intermediate state (not halted — still running)
140
+ writeState(cwd, {
141
+ taskId,
142
+ phaseIndex: predIndex,
143
+ iterationCounts,
144
+ halted: false,
145
+ savedAt: new Date().toISOString(),
146
+ });
147
+ return { kind: "loopback", toIndex: predIndex };
148
+ }
149
+ // verdict === "approved": advance
150
+ return { kind: "advance" };
151
+ }
152
+ //# sourceMappingURL=task-verdict-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-verdict-loop.js","sourceRoot":"","sources":["../../../../../src/extensions/forgecli/orchestrators/task/task-verdict-loop.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,sEAAsE;AACtE,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,iDAAiD;AAKjD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAwB,MAAM,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAqB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0BhE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAoB;IACvD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnH,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;IAE/D,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE7D,8EAA8E;IAC9E,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,UAAU,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACjF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC/D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,sBAAsB,KAAK,CAAC,IAAI,0DAA0D;wBACzF,QAAQ,UAAU,2CAA2C,EAC9D,MAAM,CACN,CAAC;oBACF,OAAO,GAAG,OAAO,CAAC;gBACnB,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,6EAA6E;IAC7E,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,cAAc,KAAK,CAAC,IAAI,MAAM,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,EAAE,EAC9H,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACnE,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,gDAAgD,KAAK,CAAC,IAAI,6BAA6B;YACtF,+EAA+E,EAChF,OAAO,CACP,CAAC;QACF,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE;YACf,MAAM;YACN,UAAU,EAAE,iBAAiB;YAC7B,eAAe;YACf,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,uBAAuB,KAAK,CAAC,IAAI,EAAE;YAC9C,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACV,CAAC,CAAC;QAC1B,mEAAmE;QACnE,qEAAqE;QACrE,uEAAuE;QACvE,kEAAkE;QAClE,oEAAoE;QACpE,uEAAuE;QACvE,qEAAqE;QACrE,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,WAAW,GAAoB;YACpC,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,UAAU,EAAE,iBAAiB;YAC7B,MAAM,EACL,UAAU,KAAK,CAAC,IAAI,qDAAqD;gBACzE,8FAA8F;YAC/F,WAAW,EACV,0EAA0E;gBAC1E,+EAA+E;gBAC/E,+EAA+E;SAChF,CAAC;QACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,KAAY,CAAC,CAAC;QAC/E,KAAK,cAAc,CAAC;YACnB,WAAW;YACX,YAAY;YACZ,MAAM;YACN,GAAG;YACH,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAS,EAAE;YAC1B,SAAS;SACT,CAAC,CAAC;QACH,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACP,MAAM,EAAE,QAAQ;gBAChB,cAAc,EAAE,iBAAiB;gBACjC,eAAe;gBACf,SAAS,EAAE,uBAAuB,KAAK,CAAC,IAAI,EAAE;aAC9C;SACD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5B,kDAAkD;QAClD,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAErE,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxD,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,qDAAqD,KAAK,CAAC,IAAI,GAAG;gBACjE,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,2BAA2B,EAClF,OAAO,CACP,CAAC;YACF,eAAe,CAAC,WAAW,CAAC,CAAC;YAC7B,UAAU,CAAC,GAAG,EAAE;gBACf,MAAM;gBACN,UAAU,EAAE,iBAAiB;gBAC7B,eAAe;gBACf,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,4BAA4B,KAAK,CAAC,IAAI,EAAE;gBACnD,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACV,CAAC,CAAC;YAC1B,OAAO;gBACN,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACP,MAAM,EAAE,WAAW;oBACnB,cAAc,EAAE,iBAAiB;oBACjC,eAAe;oBACf,SAAS,EAAE,4BAA4B,KAAK,CAAC,IAAI,EAAE;iBACnD;aACD,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,gEAAgE;QAChE,6DAA6D;QAC7D,mDAAmD;QACnD,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAClE,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,sBAAsB,KAAK,CAAC,IAAI,kCAAkC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,SAAS,GAAG;YACxG,YAAY,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG,EAClE,MAAM,CACN,CAAC;QACF,cAAc,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC;YACrD,cAAc,EAAE,iBAAiB;YACjC,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,+BAA+B,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG;SACzG,CAAC,CAAC;QACH,wDAAwD;QACxD,UAAU,CAAC,GAAG,EAAE;YACf,MAAM;YACN,UAAU,EAAE,SAAS;YACrB,eAAe;YACf,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACV,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACjD,CAAC;IAED,kCAAkC;IAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC5B,CAAC"}
@@ -230,14 +230,17 @@ export async function checkBundledForgeDrift(opts) {
230
230
  export function composeUpdateKickoff(updateMd, bundleRoot, preflight) {
231
231
  let patched = updateMd;
232
232
  // Patch 1: FORGE_ROOT — replace Claude Code directive with literal path
233
- // Original: FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
234
- // Patched: FORGE_ROOT = <bundledPayloadRoot>
235
- const forgeRootDirective = '!`echo "${CLAUDE_PLUGIN_ROOT}"`';
236
- if (patched.includes(forgeRootDirective)) {
237
- patched = patched.replaceAll(forgeRootDirective, bundleRoot);
233
+ // plugin >= 1.4.0: FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
234
+ // plugin <= 1.3.x: FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
235
+ // Patched: FORGE_ROOT = <bundledPayloadRoot>
236
+ const forgeRootDirectives = ['!`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`', '!`echo "${CLAUDE_PLUGIN_ROOT}"`'];
237
+ for (const directive of forgeRootDirectives) {
238
+ if (patched.includes(directive)) {
239
+ patched = patched.replaceAll(directive, bundleRoot);
240
+ }
238
241
  }
239
- // Patch 1b: Second occurrence is in Step 3's "Re-derive FORGE_ROOT"
240
- // Same directive appears there. Already handled by replaceAll above.
242
+ // Patch 1b: Later occurrences (Step 3 "Re-derive FORGE_ROOT", etc.)
243
+ // are the same directive already handled by replaceAll above.
241
244
  // Patch 2: CLAUDE_PLUGIN_DATA — used for legacy cache fallback
242
245
  // Replace with bundle root since forge-cli doesn't have plugin data dir
243
246
  if (patched.includes("${CLAUDE_PLUGIN_DATA}")) {
@@ -1 +1 @@
1
- {"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/update/forge-update-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/update/forge-update-command.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@ name: approve
3
3
  description: Final architect approval gate for a completed task
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:approve
6
+ # /forge:approve
7
7
 
8
8
  Read the approve workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -3,14 +3,14 @@ name: check-agent
3
3
  description: Verify an agent has loaded and understood the project knowledge base
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:check-agent
6
+ # /forge:check-agent
7
7
 
8
8
  Read the check-agent workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -3,14 +3,14 @@ name: collate
3
3
  description: Regenerate KB documents from the JSON store
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:collate
6
+ # /forge:collate
7
7
 
8
8
  Read the collate workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -3,14 +3,14 @@ name: commit
3
3
  description: Stage and commit completed task artifacts
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:commit
6
+ # /forge:commit
7
7
 
8
8
  Read the commit workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -3,14 +3,14 @@ name: enhance
3
3
  description: Progressive project-specific enrichment of structural elements
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:enhance
6
+ # /forge:enhance
7
7
 
8
8
  Run the enhancement agent to enrich structural elements with project-specific knowledge.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Purpose
@@ -3,14 +3,14 @@ name: fix-bug
3
3
  description: Triage, diagnose, and fix a bug
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:fix-bug
6
+ # /forge:fix-bug
7
7
 
8
8
  Read the fix-bug workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -3,14 +3,14 @@ name: implement
3
3
  description: Execute the approved implementation plan for a task
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:implement
6
+ # /forge:implement
7
7
 
8
8
  Read the implement workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -0,0 +1,278 @@
1
+ ---
2
+ name: init
3
+ description: Bootstrap Forge's LLM half — KB discovery, config generation, and artifact registration. Run once after `4ge init claude .` has scaffolded the project structure.
4
+ ---
5
+
6
+ # /forge:init
7
+
8
+ You are the Forge init orchestrator. Your job is to run the LLM half of the
9
+ Forge bootstrap — knowledge-base discovery, config generation, and artifact
10
+ registration — in the current working directory. The CLI half (`4ge init claude .`)
11
+ has already scaffolded the project structure, installed the wfl-init.js driver,
12
+ and installed this command wrapper.
13
+
14
+ ## Resume Detection
15
+
16
+ Before showing the pre-flight plan, check for an existing checkpoint:
17
+
18
+ ```sh
19
+ cat .forge/init-progress.json 2>/dev/null
20
+ ```
21
+
22
+ If the file exists and contains valid JSON, inspect it:
23
+
24
+ - If `lastPhase > 4`, contains a `mode` field, contains a `phase-7-substep-map` key,
25
+ or is missing a `timestamp` field — treat as a stale checkpoint from a previous
26
+ run of the old 12-phase init. Delete the file:
27
+ ```sh
28
+ rm -f .forge/init-progress.json
29
+ ```
30
+ Then proceed to the **Pre-flight interactive prompts** (new 4-phase flow, no mode prompt).
31
+ Set `startPhase = 1`.
32
+
33
+ - If the file contains valid JSON with `lastPhase` in range 1–4 and a `timestamp`
34
+ field, emit the resume banner:
35
+
36
+ ```
37
+ 〇 Previous init detected — last completed phase: {lastPhase} of 4
38
+
39
+ Resume from Phase {nextPhase}? [Y] Start over [n]
40
+ ```
41
+
42
+ Use the following mapping:
43
+
44
+ | lastPhase | Resume from (nextPhase) |
45
+ |-----------|-------------------------|
46
+ | 1 | Phase 2 |
47
+ | 2 | Phase 3 |
48
+ | 3 | Phase 4 |
49
+
50
+ If the user chooses to resume: set `startPhase = nextPhase`.
51
+ If the user chooses to start over: delete `.forge/init-progress.json`
52
+ (`rm -f .forge/init-progress.json`) and set `startPhase = 1`.
53
+
54
+ If the file does not exist, or contains invalid JSON, or contains an
55
+ unrecognised `lastPhase` value outside 1–4: delete any corrupt file and
56
+ set `startPhase = 1`.
57
+
58
+ If parsing the file throws (malformed JSON): log a one-line warning
59
+ `△ init-progress.json is malformed — deleting and starting fresh.`, delete
60
+ the file, and set `startPhase = 1`.
61
+
62
+ ## Hero
63
+
64
+ Render the Forge hero block once per session:
65
+
66
+ ```sh
67
+ node .forge/tools/banners.cjs forge
68
+ node .forge/tools/banners.cjs --subtitle "AI SDLC bootstrapper · forge:init"
69
+ ```
70
+
71
+ The hero runs once. If the user resumes mid-init, do NOT re-render the hero —
72
+ just emit the phase banner for the resume target phase.
73
+
74
+ ## Flag Handling
75
+
76
+ `--fast` and `--full` are accepted as no-ops for backwards compatibility with
77
+ scripts and CI pipelines. Both flags proceed with the standard 4-phase flow.
78
+
79
+ **`--migrate` flag:** When `$ARGUMENTS` contains `--migrate`, redirect to the
80
+ store migration workflow. Read `.forge/config.json` to locate `paths.forgeRoot`,
81
+ then read `{forgeRoot}/meta/workflows/meta-migrate.md` and follow it.
82
+ Do NOT proceed to the pre-flight prompts when `--migrate` is present.
83
+
84
+ ## Pre-flight Interactive Prompts
85
+
86
+ Gather these values before dispatching the workflow:
87
+
88
+ ### a. KB Folder Prompt
89
+
90
+ ```
91
+ What should your engineering knowledge base folder be named?
92
+ Default: engineering
93
+ (This is where Forge writes sprint artifacts, docs, and KB files.)
94
+
95
+ KB folder name [engineering]: ___
96
+ ```
97
+
98
+ If the user provides a custom name (non-empty, not "engineering"), write it now:
99
+
100
+ ```sh
101
+ node .forge/tools/manage-config.cjs set paths.engineering "{name}"
102
+ ```
103
+
104
+ Set `kbFolder` to the chosen name (default: `"engineering"`).
105
+
106
+ ### b. CLAUDE.md Offer
107
+
108
+ Check whether any agent instruction file exists:
109
+
110
+ ```sh
111
+ ls CLAUDE.md AGENTS.md CLAUDE.local.md .cursorrules 2>/dev/null
112
+ ```
113
+
114
+ If NONE of those files exists, ask:
115
+
116
+ ```
117
+ No CLAUDE.md / AGENTS.md found in this project.
118
+ Create a minimal CLAUDE.md with Forge KB links? [Y/n]: ___
119
+ ```
120
+
121
+ Set `createClaudeMd = true` if user answers Y (or presses Enter); `false` otherwise.
122
+ If any of those files already exists, set `createClaudeMd = false` (silently skip the offer).
123
+
124
+ ### c. Timestamp
125
+
126
+ Mint the ISO timestamp now (before workflow dispatch, in this command wrapper context):
127
+
128
+ ```js
129
+ isoTimestamp = new Date().toISOString()
130
+ ```
131
+
132
+ ## Pre-flight Plan
133
+
134
+ Before dispatching, emit a summary and wait for confirmation:
135
+
136
+ ```
137
+ ## Forge Init — <project-name if discoverable, otherwise current directory name>
138
+
139
+ 4 phases will run via the wfl:init workflow:
140
+
141
+ 1 Collect — 5 parallel discovery scans → config.json
142
+ KB folder prompt already answered above
143
+ 2 Discover — KB doc generation (LLM fan-out) + project-context.json
144
+ 3 Materialize — substitute-placeholders.cjs → fully functional workflows
145
+ 4 Register — versioning, manifest, cache, store entries, Tomoshibi
146
+
147
+ Starting from Phase {startPhase}.
148
+
149
+ Proceed? [Y/n]: ___
150
+ ```
151
+
152
+ If the user declines, stop and advise them to run `/forge:init` again when ready.
153
+
154
+ ## Workflow Dispatch
155
+
156
+ Execute the workflow:
157
+
158
+ ```
159
+ workflow('wfl:init', {
160
+ forgeRoot,
161
+ kbFolder,
162
+ startPhase,
163
+ createClaudeMd,
164
+ isoTimestamp,
165
+ rawArguments: $ARGUMENTS
166
+ })
167
+ ```
168
+
169
+ Where `forgeRoot` is resolved from `.forge/config.json`'s `paths.forgeRoot` field.
170
+
171
+ **Workflow-tool-missing error** — if the Workflow tool is unavailable, halt immediately
172
+ with this message:
173
+
174
+ > The Workflow tool is required to run `/forge:init`. This Claude Code build does not
175
+ > support the Workflow tool. Upgrade Claude Code and try again.
176
+ >
177
+ > (Alternatively, run `4ge init claude .` again to re-scaffold, then upgrade Claude Code.)
178
+
179
+ Do NOT fall back to reading any other document — halt with the above message only.
180
+
181
+ ## Post-Workflow (on success)
182
+
183
+ When `workflow('wfl:init', ...)` returns with `result.ok === true`:
184
+
185
+ ### Closing Banner
186
+
187
+ ```sh
188
+ node .forge/tools/banners.cjs forge
189
+ node .forge/tools/banners.cjs --subtitle "灯 SDLC ready — welcome to your Forge SDLC"
190
+ ```
191
+
192
+ ### Welcome Block
193
+
194
+ Emit the welcome summary:
195
+
196
+ ```
197
+ ✓ Forge SDLC initialised
198
+
199
+ Your project is now configured with:
200
+ · Knowledge base in {kbFolder}/
201
+ · Workflows, personas, and skills in .forge/
202
+ · Sprint-ready store in .forge/store/
203
+
204
+ Next steps:
205
+ · /forge:new-sprint — plan your first sprint
206
+ · /forge:health — verify store health
207
+ · /forge:plan — plan a single task
208
+ ```
209
+
210
+ ### Marketplace Skills Offer
211
+
212
+ If `result.skillMatches` is present and non-empty, present skill buckets by
213
+ confidence (High → Medium → Low). For each bucket, list skill IDs and descriptions.
214
+ Ask: `Install recommended skills? [Y/n]` (per bucket or all at once — your call).
215
+
216
+ For each skill the user accepts:
217
+
218
+ ```sh
219
+ node .forge/tools/manage-config.cjs set installedSkills.{skillId} true
220
+ ```
221
+
222
+ Track accepted/skipped counts for the final report. **If the user skips the
223
+ entire offer, proceed without blocking.**
224
+
225
+ ### KB Links Refresh
226
+
227
+ Invoke the `forge:refresh-kb-links` skill via the Skill tool:
228
+
229
+ ```
230
+ Skill('forge:refresh-kb-links')
231
+ ```
232
+
233
+ If the Skill tool is unavailable or the skill fails, emit:
234
+
235
+ ```
236
+ △ Could not auto-refresh KB links — run /forge:refresh-kb-links manually
237
+ to wire your CLAUDE.md to your new KB docs.
238
+ ```
239
+
240
+ ### Final Report
241
+
242
+ ```
243
+ Forge init complete.
244
+
245
+ KB docs generated: {count from result.kbDocCount or "see .forge/"}
246
+ Workflows installed: {count from result.workflowCount or "see .forge/workflows/"}
247
+ Commands installed: {count from result.commandCount or "see .claude/commands/"}
248
+ Skills accepted: {acceptedCount}
249
+ Skills skipped: {skippedCount}
250
+
251
+ Run `/forge:health` to verify the installation.
252
+ ```
253
+
254
+ ## Post-Workflow (on failure)
255
+
256
+ When `workflow('wfl:init', ...)` returns with `result.ok === false`, surface the
257
+ failure as structured JSON and offer a bug report:
258
+
259
+ ```
260
+ ✗ Forge init failed.
261
+
262
+ Failure details:
263
+ {result.failure as formatted JSON}
264
+
265
+ This looks like a Forge bug. Would you like to file a report?
266
+ Run `/forge:report-bug` — I'll pre-fill the report from this conversation.
267
+ ```
268
+
269
+ ## Arguments
270
+
271
+ $ARGUMENTS
272
+
273
+ ## On Error
274
+
275
+ If any step above fails unexpectedly, describe what went wrong and ask:
276
+
277
+ > "This looks like a Forge bug. Would you like to file a report to help improve it?
278
+ > Run `/forge:report-bug` — I'll pre-fill the report from this conversation."