@entelligentsia/forgecli 1.0.25 → 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 (390) hide show
  1. package/CHANGELOG.md +258 -0
  2. package/README.md +2 -0
  3. package/dist/CHANGELOG-forge-plugin.md +163 -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/add-pipeline.d.ts +19 -0
  16. package/dist/extensions/forgecli/add-pipeline.js +143 -0
  17. package/dist/extensions/forgecli/add-pipeline.js.map +1 -0
  18. package/dist/extensions/forgecli/add-task.d.ts +20 -0
  19. package/dist/extensions/forgecli/add-task.js +154 -0
  20. package/dist/extensions/forgecli/add-task.js.map +1 -0
  21. package/dist/extensions/forgecli/approve.d.ts +22 -0
  22. package/dist/extensions/forgecli/approve.js +152 -0
  23. package/dist/extensions/forgecli/approve.js.map +1 -0
  24. package/dist/extensions/forgecli/banner.d.ts +10 -0
  25. package/dist/extensions/forgecli/banner.js +36 -0
  26. package/dist/extensions/forgecli/banner.js.map +1 -0
  27. package/dist/extensions/forgecli/calibrate.d.ts +64 -0
  28. package/dist/extensions/forgecli/calibrate.js +481 -0
  29. package/dist/extensions/forgecli/calibrate.js.map +1 -0
  30. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.d.ts +40 -0
  31. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js +593 -0
  32. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js.map +1 -0
  33. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.d.ts +46 -0
  34. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.js +245 -0
  35. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.js.map +1 -0
  36. package/dist/extensions/forgecli/claude-bootstrap/uninstall.d.ts +23 -0
  37. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js +215 -0
  38. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js.map +1 -0
  39. package/dist/extensions/forgecli/collate.d.ts +22 -0
  40. package/dist/extensions/forgecli/collate.js +134 -0
  41. package/dist/extensions/forgecli/collate.js.map +1 -0
  42. package/dist/extensions/forgecli/commit.d.ts +22 -0
  43. package/dist/extensions/forgecli/commit.js +152 -0
  44. package/dist/extensions/forgecli/commit.js.map +1 -0
  45. package/dist/extensions/forgecli/config-command.d.ts +8 -0
  46. package/dist/extensions/forgecli/config-command.js +67 -0
  47. package/dist/extensions/forgecli/config-command.js.map +1 -0
  48. package/dist/extensions/forgecli/config-layer.d.ts +53 -0
  49. package/dist/extensions/forgecli/config-layer.js +72 -0
  50. package/dist/extensions/forgecli/config-layer.js.map +1 -0
  51. package/dist/extensions/forgecli/config-writer.d.ts +16 -0
  52. package/dist/extensions/forgecli/config-writer.js +69 -0
  53. package/dist/extensions/forgecli/config-writer.js.map +1 -0
  54. package/dist/extensions/forgecli/dashboard/component.js +10 -7
  55. package/dist/extensions/forgecli/dashboard/component.js.map +1 -1
  56. package/dist/extensions/forgecli/enhance.d.ts +27 -0
  57. package/dist/extensions/forgecli/enhance.js +199 -0
  58. package/dist/extensions/forgecli/enhance.js.map +1 -0
  59. package/dist/extensions/forgecli/fix-bug.d.ts +85 -0
  60. package/dist/extensions/forgecli/fix-bug.js +1580 -0
  61. package/dist/extensions/forgecli/fix-bug.js.map +1 -0
  62. package/dist/extensions/forgecli/forge-header.d.ts +12 -0
  63. package/dist/extensions/forgecli/forge-header.js +114 -0
  64. package/dist/extensions/forgecli/forge-header.js.map +1 -0
  65. package/dist/extensions/forgecli/forge-init.d.ts +26 -0
  66. package/dist/extensions/forgecli/forge-init.js +514 -0
  67. package/dist/extensions/forgecli/forge-init.js.map +1 -0
  68. package/dist/extensions/forgecli/forge-root.d.ts +10 -0
  69. package/dist/extensions/forgecli/forge-root.js +62 -0
  70. package/dist/extensions/forgecli/forge-root.js.map +1 -0
  71. package/dist/extensions/forgecli/forge-update-command.d.ts +100 -0
  72. package/dist/extensions/forgecli/forge-update-command.js +435 -0
  73. package/dist/extensions/forgecli/forge-update-command.js.map +1 -0
  74. package/dist/extensions/forgecli/friction-emit.d.ts +99 -0
  75. package/dist/extensions/forgecli/friction-emit.js +245 -0
  76. package/dist/extensions/forgecli/friction-emit.js.map +1 -0
  77. package/dist/extensions/forgecli/implement.d.ts +22 -0
  78. package/dist/extensions/forgecli/implement.js +170 -0
  79. package/dist/extensions/forgecli/implement.js.map +1 -0
  80. package/dist/extensions/forgecli/init-context.d.ts +99 -0
  81. package/dist/extensions/forgecli/init-context.js +178 -0
  82. package/dist/extensions/forgecli/init-context.js.map +1 -0
  83. package/dist/extensions/forgecli/init-progress.d.ts +39 -0
  84. package/dist/extensions/forgecli/init-progress.js +117 -0
  85. package/dist/extensions/forgecli/init-progress.js.map +1 -0
  86. package/dist/extensions/forgecli/input-router.d.ts +33 -0
  87. package/dist/extensions/forgecli/input-router.js +136 -0
  88. package/dist/extensions/forgecli/input-router.js.map +1 -0
  89. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +59 -0
  90. package/dist/extensions/forgecli/lib/halt-advisor.js +113 -0
  91. package/dist/extensions/forgecli/lib/halt-advisor.js.map +1 -0
  92. package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +46 -0
  93. package/dist/extensions/forgecli/lib/orchestrator-preflight.js +64 -0
  94. package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +1 -0
  95. package/dist/extensions/forgecli/materialize.d.ts +16 -0
  96. package/dist/extensions/forgecli/materialize.js +195 -0
  97. package/dist/extensions/forgecli/materialize.js.map +1 -0
  98. package/dist/extensions/forgecli/migrate.d.ts +22 -0
  99. package/dist/extensions/forgecli/migrate.js +260 -0
  100. package/dist/extensions/forgecli/migrate.js.map +1 -0
  101. package/dist/extensions/forgecli/migration-engine.d.ts +117 -0
  102. package/dist/extensions/forgecli/migration-engine.js +563 -0
  103. package/dist/extensions/forgecli/migration-engine.js.map +1 -0
  104. package/dist/extensions/forgecli/model-registry.d.ts +61 -0
  105. package/dist/extensions/forgecli/model-registry.js +127 -0
  106. package/dist/extensions/forgecli/model-registry.js.map +1 -0
  107. package/dist/extensions/forgecli/model-resolver.d.ts +32 -0
  108. package/dist/extensions/forgecli/model-resolver.js +65 -0
  109. package/dist/extensions/forgecli/model-resolver.js.map +1 -0
  110. package/dist/extensions/forgecli/model-validator.d.ts +29 -0
  111. package/dist/extensions/forgecli/model-validator.js +107 -0
  112. package/dist/extensions/forgecli/model-validator.js.map +1 -0
  113. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +26 -0
  114. package/dist/extensions/forgecli/orchestrator-status-bar.js +213 -0
  115. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +1 -0
  116. package/dist/extensions/forgecli/orchestrators/bug/bug-body.d.ts +1 -0
  117. package/dist/extensions/forgecli/orchestrators/bug/bug-body.js +65 -0
  118. package/dist/extensions/forgecli/orchestrators/bug/bug-body.js.map +1 -0
  119. package/dist/extensions/forgecli/orchestrators/bug/bug-id.d.ts +23 -0
  120. package/dist/extensions/forgecli/orchestrators/bug/bug-id.js +140 -0
  121. package/dist/extensions/forgecli/orchestrators/bug/bug-id.js.map +1 -0
  122. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.d.ts +54 -0
  123. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.js +349 -0
  124. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.js.map +1 -0
  125. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.d.ts +8 -0
  126. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js +60 -0
  127. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js.map +1 -0
  128. package/dist/extensions/forgecli/orchestrators/bug/bug-state.d.ts +14 -0
  129. package/dist/extensions/forgecli/orchestrators/bug/bug-state.js +100 -0
  130. package/dist/extensions/forgecli/orchestrators/bug/bug-state.js.map +1 -0
  131. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.d.ts +72 -0
  132. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.js +204 -0
  133. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.js.map +1 -0
  134. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.d.ts +38 -0
  135. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js +166 -0
  136. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js.map +1 -0
  137. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.d.ts +3 -0
  138. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.js +55 -0
  139. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.js.map +1 -0
  140. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.d.ts +7 -0
  141. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.js +293 -0
  142. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.js.map +1 -0
  143. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.d.ts +2 -0
  144. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js +501 -0
  145. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js.map +1 -0
  146. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.d.ts +41 -0
  147. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.js +5 -0
  148. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.js.map +1 -0
  149. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.d.ts +43 -0
  150. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.js +85 -0
  151. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.js.map +1 -0
  152. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.d.ts +8 -0
  153. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.js +37 -0
  154. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.js.map +1 -0
  155. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.d.ts +28 -0
  156. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.js +45 -0
  157. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.js.map +1 -0
  158. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.d.ts +26 -0
  159. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.js +75 -0
  160. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.js.map +1 -0
  161. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.d.ts +24 -0
  162. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.js +37 -0
  163. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.js.map +1 -0
  164. package/dist/extensions/forgecli/orchestrators/fix-bug.d.ts +9 -93
  165. package/dist/extensions/forgecli/orchestrators/fix-bug.js +23 -1721
  166. package/dist/extensions/forgecli/orchestrators/fix-bug.js.map +1 -1
  167. package/dist/extensions/forgecli/orchestrators/run-sprint.d.ts +3 -12
  168. package/dist/extensions/forgecli/orchestrators/run-sprint.js +48 -270
  169. package/dist/extensions/forgecli/orchestrators/run-sprint.js.map +1 -1
  170. package/dist/extensions/forgecli/orchestrators/run-task.d.ts +10 -214
  171. package/dist/extensions/forgecli/orchestrators/run-task.js +31 -1481
  172. package/dist/extensions/forgecli/orchestrators/run-task.js.map +1 -1
  173. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.d.ts +33 -0
  174. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.js +135 -0
  175. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.js.map +1 -0
  176. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.d.ts +18 -0
  177. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.js +55 -0
  178. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.js.map +1 -0
  179. package/dist/extensions/forgecli/orchestrators/task/run-task-command.d.ts +9 -0
  180. package/dist/extensions/forgecli/orchestrators/task/run-task-command.js +174 -0
  181. package/dist/extensions/forgecli/orchestrators/task/run-task-command.js.map +1 -0
  182. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.d.ts +2 -0
  183. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js +494 -0
  184. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js.map +1 -0
  185. package/dist/extensions/forgecli/orchestrators/task/run-task-types.d.ts +62 -0
  186. package/dist/extensions/forgecli/orchestrators/task/run-task-types.js +5 -0
  187. package/dist/extensions/forgecli/orchestrators/task/run-task-types.js.map +1 -0
  188. package/dist/extensions/forgecli/orchestrators/task/task-body.d.ts +4 -0
  189. package/dist/extensions/forgecli/orchestrators/task/task-body.js +48 -0
  190. package/dist/extensions/forgecli/orchestrators/task/task-body.js.map +1 -0
  191. package/dist/extensions/forgecli/orchestrators/task/task-events.d.ts +63 -0
  192. package/dist/extensions/forgecli/orchestrators/task/task-events.js +185 -0
  193. package/dist/extensions/forgecli/orchestrators/task/task-events.js.map +1 -0
  194. package/dist/extensions/forgecli/orchestrators/task/task-gates.d.ts +34 -0
  195. package/dist/extensions/forgecli/orchestrators/task/task-gates.js +78 -0
  196. package/dist/extensions/forgecli/orchestrators/task/task-gates.js.map +1 -0
  197. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.d.ts +42 -0
  198. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.js +370 -0
  199. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.js.map +1 -0
  200. package/dist/extensions/forgecli/orchestrators/task/task-phases.d.ts +14 -0
  201. package/dist/extensions/forgecli/orchestrators/task/task-phases.js +26 -0
  202. package/dist/extensions/forgecli/orchestrators/task/task-phases.js.map +1 -0
  203. package/dist/extensions/forgecli/orchestrators/task/task-record.d.ts +9 -0
  204. package/dist/extensions/forgecli/orchestrators/task/task-record.js +58 -0
  205. package/dist/extensions/forgecli/orchestrators/task/task-record.js.map +1 -0
  206. package/dist/extensions/forgecli/orchestrators/task/task-state.d.ts +14 -0
  207. package/dist/extensions/forgecli/orchestrators/task/task-state.js +35 -0
  208. package/dist/extensions/forgecli/orchestrators/task/task-state.js.map +1 -0
  209. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.d.ts +36 -0
  210. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js +152 -0
  211. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js.map +1 -0
  212. package/dist/extensions/forgecli/plan.d.ts +22 -0
  213. package/dist/extensions/forgecli/plan.js +167 -0
  214. package/dist/extensions/forgecli/plan.js.map +1 -0
  215. package/dist/extensions/forgecli/quiz-agent.d.ts +17 -0
  216. package/dist/extensions/forgecli/quiz-agent.js +98 -0
  217. package/dist/extensions/forgecli/quiz-agent.js.map +1 -0
  218. package/dist/extensions/forgecli/read-command.d.ts +2 -0
  219. package/dist/extensions/forgecli/read-command.js +100 -0
  220. package/dist/extensions/forgecli/read-command.js.map +1 -0
  221. package/dist/extensions/forgecli/regenerate.d.ts +40 -0
  222. package/dist/extensions/forgecli/regenerate.js +438 -0
  223. package/dist/extensions/forgecli/regenerate.js.map +1 -0
  224. package/dist/extensions/forgecli/remove-command.d.ts +17 -0
  225. package/dist/extensions/forgecli/remove-command.js +124 -0
  226. package/dist/extensions/forgecli/remove-command.js.map +1 -0
  227. package/dist/extensions/forgecli/report-bug.d.ts +25 -0
  228. package/dist/extensions/forgecli/report-bug.js +159 -0
  229. package/dist/extensions/forgecli/report-bug.js.map +1 -0
  230. package/dist/extensions/forgecli/retrospective.d.ts +20 -0
  231. package/dist/extensions/forgecli/retrospective.js +126 -0
  232. package/dist/extensions/forgecli/retrospective.js.map +1 -0
  233. package/dist/extensions/forgecli/review-code.d.ts +35 -0
  234. package/dist/extensions/forgecli/review-code.js +196 -0
  235. package/dist/extensions/forgecli/review-code.js.map +1 -0
  236. package/dist/extensions/forgecli/review-plan.d.ts +35 -0
  237. package/dist/extensions/forgecli/review-plan.js +200 -0
  238. package/dist/extensions/forgecli/review-plan.js.map +1 -0
  239. package/dist/extensions/forgecli/run-sprint.d.ts +27 -0
  240. package/dist/extensions/forgecli/run-sprint.js +716 -0
  241. package/dist/extensions/forgecli/run-sprint.js.map +1 -0
  242. package/dist/extensions/forgecli/run-task.d.ts +204 -0
  243. package/dist/extensions/forgecli/run-task.js +1403 -0
  244. package/dist/extensions/forgecli/run-task.js.map +1 -0
  245. package/dist/extensions/forgecli/skill-curation-flag.d.ts +21 -0
  246. package/dist/extensions/forgecli/skill-curation-flag.js +71 -0
  247. package/dist/extensions/forgecli/skill-curation-flag.js.map +1 -0
  248. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +102 -0
  249. package/dist/extensions/forgecli/skill-curator-subagent.js +339 -0
  250. package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -0
  251. package/dist/extensions/forgecli/skill-retriever.d.ts +84 -0
  252. package/dist/extensions/forgecli/skill-retriever.js +246 -0
  253. package/dist/extensions/forgecli/skill-retriever.js.map +1 -0
  254. package/dist/extensions/forgecli/skill-usage-tracker.d.ts +91 -0
  255. package/dist/extensions/forgecli/skill-usage-tracker.js +224 -0
  256. package/dist/extensions/forgecli/skill-usage-tracker.js.map +1 -0
  257. package/dist/extensions/forgecli/sprint-intake.d.ts +10 -0
  258. package/dist/extensions/forgecli/sprint-intake.js +91 -0
  259. package/dist/extensions/forgecli/sprint-intake.js.map +1 -0
  260. package/dist/extensions/forgecli/sprint-plan.d.ts +14 -0
  261. package/dist/extensions/forgecli/sprint-plan.js +122 -0
  262. package/dist/extensions/forgecli/sprint-plan.js.map +1 -0
  263. package/dist/extensions/forgecli/status-command.d.ts +19 -0
  264. package/dist/extensions/forgecli/status-command.js +140 -0
  265. package/dist/extensions/forgecli/status-command.js.map +1 -0
  266. package/dist/extensions/forgecli/store-error-remediation.d.ts +65 -0
  267. package/dist/extensions/forgecli/store-error-remediation.js +307 -0
  268. package/dist/extensions/forgecli/store-error-remediation.js.map +1 -0
  269. package/dist/extensions/forgecli/store-query.d.ts +22 -0
  270. package/dist/extensions/forgecli/store-query.js +107 -0
  271. package/dist/extensions/forgecli/store-query.js.map +1 -0
  272. package/dist/extensions/forgecli/store-repair.d.ts +17 -0
  273. package/dist/extensions/forgecli/store-repair.js +123 -0
  274. package/dist/extensions/forgecli/store-repair.js.map +1 -0
  275. package/dist/extensions/forgecli/store-resolver.d.ts +56 -0
  276. package/dist/extensions/forgecli/store-resolver.js +263 -0
  277. package/dist/extensions/forgecli/store-resolver.js.map +1 -0
  278. package/dist/extensions/forgecli/store-validator.d.ts +16 -0
  279. package/dist/extensions/forgecli/store-validator.js +32 -0
  280. package/dist/extensions/forgecli/store-validator.js.map +1 -0
  281. package/dist/extensions/forgecli/test-orchestrate.d.ts +2 -0
  282. package/dist/extensions/forgecli/test-orchestrate.js +182 -0
  283. package/dist/extensions/forgecli/test-orchestrate.js.map +1 -0
  284. package/dist/extensions/forgecli/thread-switcher.d.ts +5 -0
  285. package/dist/extensions/forgecli/thread-switcher.js +189 -0
  286. package/dist/extensions/forgecli/thread-switcher.js.map +1 -0
  287. package/dist/extensions/forgecli/transition-guard.d.ts +20 -0
  288. package/dist/extensions/forgecli/transition-guard.js +89 -0
  289. package/dist/extensions/forgecli/transition-guard.js.map +1 -0
  290. package/dist/extensions/forgecli/update/forge-update-command.js +10 -7
  291. package/dist/extensions/forgecli/update/forge-update-command.js.map +1 -1
  292. package/dist/extensions/forgecli/update-check.d.ts +37 -0
  293. package/dist/extensions/forgecli/update-check.js +185 -0
  294. package/dist/extensions/forgecli/update-check.js.map +1 -0
  295. package/dist/extensions/forgecli/update-tools.d.ts +23 -0
  296. package/dist/extensions/forgecli/update-tools.js +135 -0
  297. package/dist/extensions/forgecli/update-tools.js.map +1 -0
  298. package/dist/extensions/forgecli/validate.d.ts +22 -0
  299. package/dist/extensions/forgecli/validate.js +152 -0
  300. package/dist/extensions/forgecli/validate.js.map +1 -0
  301. package/dist/extensions/forgecli/viewport-events.d.ts +78 -0
  302. package/dist/extensions/forgecli/viewport-events.js +243 -0
  303. package/dist/extensions/forgecli/viewport-events.js.map +1 -0
  304. package/dist/extensions/forgecli/viewport-renderer.d.ts +83 -0
  305. package/dist/extensions/forgecli/viewport-renderer.js +233 -0
  306. package/dist/extensions/forgecli/viewport-renderer.js.map +1 -0
  307. package/dist/extensions/forgecli/viewport-theme.d.ts +11 -0
  308. package/dist/extensions/forgecli/viewport-theme.js +128 -0
  309. package/dist/extensions/forgecli/viewport-theme.js.map +1 -0
  310. package/dist/extensions/forgecli/whats-new-widget.d.ts +26 -0
  311. package/dist/extensions/forgecli/whats-new-widget.js +376 -0
  312. package/dist/extensions/forgecli/whats-new-widget.js.map +1 -0
  313. package/dist/extensions/forgecli/whats-new.d.ts +120 -0
  314. package/dist/extensions/forgecli/whats-new.js +470 -0
  315. package/dist/extensions/forgecli/whats-new.js.map +1 -0
  316. package/dist/forge-payload/.base-pack/commands/approve.md +2 -2
  317. package/dist/forge-payload/.base-pack/commands/check-agent.md +2 -2
  318. package/dist/forge-payload/.base-pack/commands/collate.md +2 -2
  319. package/dist/forge-payload/.base-pack/commands/commit.md +2 -2
  320. package/dist/forge-payload/.base-pack/commands/enhance.md +2 -2
  321. package/dist/forge-payload/.base-pack/commands/fix-bug.md +2 -2
  322. package/dist/forge-payload/.base-pack/commands/implement.md +2 -2
  323. package/dist/forge-payload/.base-pack/commands/init.md +278 -0
  324. package/dist/forge-payload/.base-pack/commands/new-sprint.md +2 -2
  325. package/dist/forge-payload/.base-pack/commands/plan-sprint.md +2 -2
  326. package/dist/forge-payload/.base-pack/commands/plan.md +2 -2
  327. package/dist/forge-payload/.base-pack/commands/retro.md +2 -2
  328. package/dist/forge-payload/.base-pack/commands/review-code.md +2 -2
  329. package/dist/forge-payload/.base-pack/commands/review-plan.md +2 -2
  330. package/dist/forge-payload/.base-pack/commands/run-sprint.md +2 -2
  331. package/dist/forge-payload/.base-pack/commands/run-task.md +2 -2
  332. package/dist/forge-payload/.base-pack/commands/validate.md +2 -2
  333. package/dist/forge-payload/.base-pack/workflows/collator_agent.md +5 -6
  334. package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +1 -1
  335. package/dist/forge-payload/.base-pack/workflows-js/wfl-init.js +449 -0
  336. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  337. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  338. package/dist/forge-payload/.schemas/migrations.json +85 -0
  339. package/dist/forge-payload/commands/add-pipeline.md +1 -1
  340. package/dist/forge-payload/commands/add-task.md +3 -3
  341. package/dist/forge-payload/commands/ask.md +1 -1
  342. package/dist/forge-payload/commands/check-agent.md +1 -1
  343. package/dist/forge-payload/commands/config.md +1 -1
  344. package/dist/forge-payload/commands/health.md +1 -1
  345. package/dist/forge-payload/commands/init.md +62 -7
  346. package/dist/forge-payload/commands/rebuild.md +3 -3
  347. package/dist/forge-payload/commands/remove.md +1 -1
  348. package/dist/forge-payload/commands/repair.md +1 -1
  349. package/dist/forge-payload/commands/report-bug.md +1 -1
  350. package/dist/forge-payload/commands/status.md +1 -1
  351. package/dist/forge-payload/commands/update.md +3 -3
  352. package/dist/forge-payload/hooks/lib/common.cjs +228 -0
  353. package/dist/forge-payload/hooks/lib/plugin-detection.cjs +106 -0
  354. package/dist/forge-payload/hooks/lib/update-msg.cjs +23 -0
  355. package/dist/forge-payload/hooks/lib/update-url.cjs +46 -0
  356. package/dist/forge-payload/hooks/lib/write-registry.js +53 -0
  357. package/dist/forge-payload/init/discovery/discover-database.md +32 -0
  358. package/dist/forge-payload/init/discovery/discover-processes.md +31 -0
  359. package/dist/forge-payload/init/discovery/discover-routing.md +31 -0
  360. package/dist/forge-payload/init/discovery/discover-stack.md +33 -0
  361. package/dist/forge-payload/init/discovery/discover-testing.md +34 -0
  362. package/dist/forge-payload/init/generation/generate-commands.md +171 -0
  363. package/dist/forge-payload/init/generation/generate-kb-doc.md +60 -0
  364. package/dist/forge-payload/init/generation/generate-knowledge-base.md +56 -0
  365. package/dist/forge-payload/init/generation/generate-persona.md +73 -0
  366. package/dist/forge-payload/init/generation/generate-personas.md +54 -0
  367. package/dist/forge-payload/init/generation/generate-skill.md +66 -0
  368. package/dist/forge-payload/init/generation/generate-skills.md +36 -0
  369. package/dist/forge-payload/init/generation/generate-template.md +60 -0
  370. package/dist/forge-payload/init/generation/generate-templates.md +39 -0
  371. package/dist/forge-payload/init/generation/generate-tools.md +133 -0
  372. package/dist/forge-payload/init/generation/generate-workflows.md +78 -0
  373. package/dist/forge-payload/init/phases/phase-1-collect.md +10 -2
  374. package/dist/forge-payload/init/phases/phase-3-materialize.md +1 -1
  375. package/dist/forge-payload/init/phases/phase-4-register.md +8 -0
  376. package/dist/forge-payload/init/workflow-gen-plan.json +17 -0
  377. package/dist/forge-payload/integrity.json +16 -16
  378. package/dist/forge-payload/meta/workflows/meta-collate.md +5 -6
  379. package/dist/forge-payload/meta/workflows/meta-migrate.md +1 -1
  380. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  381. package/dist/forge-payload/schemas/structure-manifest.json +3 -12
  382. package/dist/forge-payload/tools/forge-preflight.cjs +268 -0
  383. package/dist/forge-payload/tools/lib/paths.cjs +12 -11
  384. package/dist/forge-payload/tools/lib/pricing.cjs +31 -11
  385. package/dist/forge-payload/tools/query-logger.cjs +34 -0
  386. package/dist/forge-payload/tools/substitute-placeholders.cjs +5 -6
  387. package/node_modules/@mariozechner/clipboard/package.json +1 -2
  388. package/package.json +2 -2
  389. package/node_modules/@mariozechner/clipboard-linux-x64-musl/README.md +0 -3
  390. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +0 -25
package/CHANGELOG.md CHANGED
@@ -7,6 +7,264 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - **`4ge uninstall claude [dir] [--purge] [--yes]`** — the counterpart to
13
+ `4ge init claude`. Deterministically reverses the bootstrap: removes the
14
+ vendored Forge scaffold (`.forge/{tools,schemas,init,.base-pack,meta,
15
+ .claude-plugin,cache}`, `.bootstrap-manifest.json`, `.claude/commands/forge`,
16
+ `.claude/workflows`, and the payload's agents/skills), un-merges the Forge
17
+ hooks from `.claude/settings.json`, and un-appends the Forge block from
18
+ `.gitignore`. Safety: **preserves user data by default** (`.forge/config.json`,
19
+ `.forge/store/**`, the KB folder); `--purge` also removes config + store (KB
20
+ is never auto-removed). Refuses to act without a `.bootstrap-manifest.json`
21
+ (proof the project was forge-bootstrapped), edits `settings.json`/`.gitignore`
22
+ rather than deleting them, preserves user-authored agents/skills not in the
23
+ payload, and is idempotent. A `[y/N]` confirm guards it unless `--yes`/`-y` or
24
+ `FORGE_NON_INTERACTIVE=1`.
25
+
26
+ ## [1.0.36] — 2026-06-09
27
+
28
+ Orchestrator dashboard logs + autonomous run-sprint + KB-refresh, re-landed onto
29
+ the modular-orchestrator decomposition.
30
+
31
+ ### Added
32
+
33
+ - **Orchestrator decision logs on the dashboard.** The shared
34
+ `withOrchestratorTranscript` notify-interception now mirrors every
35
+ orchestrator notify onto its root node (`tree.appendTail(entityId, …)`), and
36
+ the dashboard renders the Activity log for ALL node kinds (not just leaf). The
37
+ task/sprint/bug root node now carries the orchestrator's own narrative — gate
38
+ results, review verdicts, escalations, halts — alongside the per-phase leaf
39
+ nodes' subagent tool-call activity. New granular per-phase lines: `〇 preflight
40
+ ok`, `dispatch persona/model`, resolved `verdict`, `〇 postflight ok`.
41
+ - **KB-link refresh is orchestrator-owned in run-task.** After the writeback
42
+ phase, the pipeline calls `runRefreshKbLinks(cwd)` directly (forge-cli
43
+ subagents run via the Pi runtime and have no Skill tool, so the prior
44
+ `forge:refresh-kb-links` Skill-tool instruction caused a multi-call probe
45
+ loop).
46
+
47
+ ### Changed
48
+
49
+ - **`/forge:run-sprint` runs to completion.** Removed the per-task "Continue to
50
+ next task?" confirm and the partial-ceremony-on-decline branch. A sprint
51
+ command now runs all of its tasks, then the single clean-complete ceremony.
52
+ The mid-sprint modal previously turned any UI hiccup into a premature partial
53
+ ceremony (ceremony firing after task 1 with later tasks still draft).
54
+ Deliberate cancellation (abort signal / task halt) still stops the sprint.
55
+
56
+ ### Fixed
57
+
58
+ - Dispatch line printed `model=[object Object]` — `modelResolution.model` is a
59
+ `{provider, model}` object; now formatted as `provider:model`.
60
+
61
+ ## [1.0.35] — 2026-06-07
62
+
63
+ Re-bundle forge-plugin 1.4.4 — CLI-first field-test gap fixes: paths.commands
64
+ no longer prefix-derived (always `.claude/commands/forge`), explicit
65
+ `paths.forgeRoot=".forge"` write, dev-only tools excluded from the
66
+ structure manifest (instance expectation 49/49, no false /forge:health gaps).
67
+
68
+ ## [1.0.34] — 2026-06-07
69
+
70
+ No-dead-vendored-references gate (closes the forge#112 failure class).
71
+
72
+ ### Added
73
+
74
+ - **`tools/check-vendored-refs.cjs`** — scans every vendored text file
75
+ (commands, drivers, rulebooks, settings, agents, skills) for
76
+ `.forge/…` / `$FORGE_ROOT/…` path references and fails on any whose
77
+ target doesn't exist post-bootstrap. Wired in twice: vitest
78
+ (`vendored-refs.test.ts`, against the real payload) and `tmp-smoke.sh`
79
+ BOOTSTRAP-9.
80
+
81
+ ### Fixed
82
+
83
+ - Two dead references the new gate caught immediately:
84
+ **`forge-preflight.cjs`** (referenced by the run-task driver +
85
+ meta-fix-bug/meta-orchestrate — /forge:run-task would have hit a dead tool
86
+ on first use) added to `TOOLS_TO_COPY`, and
87
+ **`init/workflow-gen-plan.json`** (referenced by rebuild.md) bundled.
88
+
89
+ ## [1.0.33] — 2026-06-07
90
+
91
+ Re-bundle forge-plugin 1.4.3 — wfl-init.js Phase 2 verify invocations carry
92
+ the required `--kb-path` ([forge#112](https://github.com/Entelligentsia/forge/issues/112) follow-up).
93
+
94
+ ## [1.0.32] — 2026-06-07
95
+
96
+ Re-bundle forge-plugin 1.4.2 — wfl-init.js Workflow-API rewrite
97
+ ([forge#112](https://github.com/Entelligentsia/forge/issues/112): phase
98
+ callbacks silently discarded → init ran 0 agents but reported success;
99
+ parallel() thunks; agent(prompt, opts) arg order; missing schema opts).
100
+
101
+ ### Fixed
102
+
103
+ - **`build-payload` bundles the full `init/` rulebook tree** — `discovery/`
104
+ (5 prompts) and `generation/` (11 rulebooks) join `phases/`. Bundling only
105
+ `phases/` left wfl-init.js discovery/KB-doc subagents with dead rulebook
106
+ references in vendored projects.
107
+
108
+ ## [1.0.31] — 2026-06-07
109
+
110
+ Re-bundle forge-plugin 1.4.1 — wfl-init.js Workflow-harness parse fix
111
+ (`export default` wrapper stripped; every `/forge:init` dispatch previously
112
+ failed at launch with "SyntaxError: Unexpected keyword 'export'").
113
+ Projects bootstrapped with the broken driver: re-run `4ge init claude .`
114
+ (idempotent repair overwrites `.claude/workflows/wfl-init.js`).
115
+
116
+ ## [1.0.30] — 2026-06-07
117
+
118
+ Fixed `/forge:*` command namespace — full project vendoring (bundles forge-plugin 1.4.0).
119
+
120
+ ### Changed
121
+
122
+ - **Bootstrap Step 4 — full `/forge:*` command surface vendored.** Replaces the
123
+ init.md-only install: the union of `.base-pack/commands/` (17 sprint-workflow
124
+ shims, now static `/forge:*` files) and `commands/` (utility commands) vendors
125
+ into `.claude/commands/forge/`. On name collision (`init.md`, `check-agent.md`,
126
+ `enhance.md`) the `.base-pack` version wins. Project-prefix namespaces
127
+ (`/acme:*`, `/hello:*`) are retired — wfl:init no longer generates them
128
+ (plugin 1.4.0 `getCommandsSubdir()` is fixed to `forge`).
129
+
130
+ - **Bootstrap Step 4c — Forge-root content vendored into `.forge/`.** `init/`
131
+ (wfl:init phase rulebooks), `.base-pack/` (Phase 3 materialization source —
132
+ substitute-placeholders probes it first), `meta/` (rebuild/migrate sources +
133
+ skill-recommendations), and `.claude-plugin/plugin.json` (version source).
134
+ The vendored `.forge/` now serves as a complete Forge root for the
135
+ `${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}` fallback every command carries.
136
+
137
+ - **Bootstrap Step 4d — Claude Code assets vendored into `.claude/`.**
138
+ `agents/` (store-query-validator, tomoshibi) and `skills/` (4 skill dirs).
139
+
140
+ - **`forge.bundledVersion`** corrected to track the actually-bundled plugin
141
+ (1.4.0; had drifted at 1.2.21).
142
+
143
+ ### Fixed
144
+
145
+ - **`composeUpdateKickoff` directive patch** handles both the plugin ≥ 1.4.0
146
+ `${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}` form and the legacy
147
+ `${CLAUDE_PLUGIN_ROOT}` form when retargeting `update.md`.
148
+
149
+ ## [1.0.29] — 2026-06-07
150
+
151
+ `4ge init claude` bootstrap repair, round 2 — hook runtime deps (PostToolUse MODULE_NOT_FOUND in 1.0.28).
152
+
153
+ ### Fixed
154
+
155
+ - **`hooks/lib/` vendored (bootstrap Step 3b + build-payload 2e4).** Hook scripts
156
+ require `./lib/common.cjs` / `./lib/write-registry.js` at runtime; neither the
157
+ payload nor the bootstrap shipped `hooks/lib/`, so `validate-write`, `post-init`,
158
+ and `post-sprint` failed with MODULE_NOT_FOUND on every matching tool call
159
+ (fail-open, but noisy in the Claude Code UI).
160
+
161
+ - **`query-logger.cjs` added to `TOOLS_TO_COPY`.** The settings.json PostToolUse:Bash
162
+ hook points at `.forge/tools/query-logger.cjs`, but the tool was never bundled into
163
+ the payload — a hard exit-1 hook error on every Bash call in a bootstrapped project.
164
+
165
+ - **`tools/package.json` CJS scope marker vendored (FORGE-BUG-030 parity).** The
166
+ bootstrap copy filter (`*.cjs`/`*.js` only) dropped the `{"type":"commonjs"}`
167
+ marker build-payload writes into `tools/` — vendored `lib/*.js` would resolve as
168
+ ESM and crash in `"type":"module"` host projects.
169
+
170
+ ## [1.0.28] — 2026-06-07
171
+
172
+ `4ge init claude` bootstrap repair — vendor hook scripts + schemas (first-field-test regressions in 1.0.27).
173
+
174
+ ### Fixed
175
+
176
+ - **Bootstrap Step 3b — hook scripts vendored.** `bootstrapClaudeProject()` now copies
177
+ `payload/hooks/*.cjs` into `.forge/tools/hooks/` — the exact paths the Step 7 settings
178
+ wiring points at. In 1.0.27 the copy step was missing entirely, so every wired hook
179
+ (SessionStart, PreToolUse, PostToolUse, PermissionRequest) fired `node` against a
180
+ nonexistent file and failed with MODULE_NOT_FOUND on session start.
181
+
182
+ - **Bootstrap Step 3c — schemas vendored.** `payload/schemas/*.json` + `schemas/_defs/`
183
+ are now copied into `.forge/schemas/` (previously scaffolded empty), per the
184
+ cli-first-bootstrap ADR ("vendor tools → `.forge/tools/` + schemas").
185
+
186
+ - **`settings-merge.ts` — query-logger retarget.** `query-logger.cjs` is a tool, not a
187
+ hook script (plugin `hooks.json` points it at `tools/query-logger.cjs`); the settings
188
+ block now targets `$CLAUDE_PROJECT_DIR/.forge/tools/query-logger.cjs` instead of the
189
+ nonexistent `tools/hooks/query-logger.cjs`.
190
+
191
+ - Bootstrap manifest `steps` now records `vendor-hooks` and `vendor-schemas`.
192
+
193
+ ## [1.0.27] — 2026-06-07
194
+
195
+ `4ge init claude` — settings hooks wiring, gitignore, preflight, hand-off UX (FORGE-S31-T03).
196
+
197
+ ### Added
198
+
199
+ - **`settings-merge.ts`** — new `mergeForgeHooks()` + `buildForgeHooksBlock()` module with
200
+ merge-not-clobber semantics for wiring Forge hooks into project `.claude/settings.json`.
201
+ Handles 6 branches: absent file (create), empty object (add hooks key), existing without hooks
202
+ (merge in), unrelated hooks (merge Forge entries without overwriting), already-present (no-op),
203
+ malformed JSON (error, never overwrites). Fully idempotent: second run returns `"already-present"`.
204
+
205
+ - **Bootstrap Step 7** — `bootstrapClaudeProject()` now wires Forge hooks into project
206
+ `.claude/settings.json` via `mergeForgeHooks()`. All 8 hook entries (7 task-workflow hooks +
207
+ `forge-permissions`) are written with commands pointing at
208
+ `$CLAUDE_PROJECT_DIR/.forge/tools/hooks/<name>.cjs`. Outcome (`created`/`skipped`/`warnings`)
209
+ reported in `BootstrapResult` per existing conventions.
210
+
211
+ - **Bootstrap Step 8** — idempotent `.gitignore` append. Ported `updateGitignore()` from
212
+ `phase4-register.ts` as a pure standalone function (no `ctx.ui`). If `.gitignore` is present
213
+ and does not already contain a `.forge/store/events/` parent pattern, appends the standard
214
+ Forge gitignore block. Skips silently when absent or already covered.
215
+
216
+ - **Bootstrap Step 9** — preflight check for Claude Code availability (`runPreflight()`). Detects
217
+ `claude` binary reachability via `execFileSync("claude", ["--version"])`. Non-fatal: adds an
218
+ actionable warning to `result.warnings` if unavailable, but does not flip `result.ok`. Returns
219
+ `BootstrapPreflight { claudeAvailable, workflowToolChecked, warnings }` attached to `BootstrapResult`.
220
+
221
+ - **`BootstrapPreflight` type** — new sub-object on `BootstrapResult` with `claudeAvailable: boolean`,
222
+ `workflowToolChecked: boolean` (always `false` in T03 — no reliable offline check), and `warnings: string[]`.
223
+ Additive change — T02 tests remain green.
224
+
225
+ - **Hand-off UX** — `init.ts` now prints a structured multi-line message naming `/forge:init`,
226
+ explaining the one-time hooks-approval prompt, and listing all 7 task-workflow hooks by name
227
+ and event type. Prepends a warning line if Claude Code was not found on PATH.
228
+
229
+ - **Test suite** — 9-fixture `settings-merge.test.ts` covering all merge branches; 11 new assertions
230
+ in `bootstrap.test.ts` for Steps 7–9 and idempotency.
231
+
232
+ ## [1.0.26] — 2026-06-07
233
+
234
+ CLI-first bootstrap: new `4ge init claude [dir]` bin subcommand (FORGE-S31-T02).
235
+
236
+ ### Added
237
+
238
+ - **`forge init claude [dir]` subcommand** — new bin route that deterministically
239
+ bootstraps a Claude Code project from the bundled forge-payload in seconds.
240
+ Zero LLM tokens, zero network access, pure fs. Scaffolds `.forge/` skeleton
241
+ + store dirs, vendors tools+lib into `.forge/tools/`, installs
242
+ `.claude/commands/forge/init.md` from payload, and installs all four
243
+ `.claude/workflows/wfl-*.js` drivers. Writes `.forge/.bootstrap-manifest.json`
244
+ with payload version and integrity hash. Idempotent repair: a second consecutive
245
+ run is a byte-identical no-op; partial bootstraps are repaired file-by-file.
246
+ `.forge/config.json` and `.forge/store/**` are never touched.
247
+
248
+ - **`src/extensions/forgecli/claude-bootstrap/bootstrap.ts`** — the pure-fs
249
+ bootstrap module (`bootstrapClaudeProject(opts)`) with clean/partial/complete
250
+ idempotency, fast-fail payload validation, and structured `BootstrapResult`
251
+ (created/skipped/warnings). Grep-negative: no fetch/network, no store writes,
252
+ no sendUserMessage, no ctx.ui.
253
+
254
+ - **Vitest tests** in
255
+ `test/extensions/forgecli/claude-bootstrap/bootstrap.test.ts` — 17 tests
256
+ covering clean / partial / complete (no-op) / non-writable / payload-validation
257
+ / init.md install / wfl-drivers / grep-negative ACs branches. All integration-
258
+ style against the real function (no fs mocking).
259
+
260
+ - **argv.ts**: extended `ForgeAction` union with `"init"`; added `init claude [dir]`
261
+ parse branch before the fast-path subcommand block.
262
+
263
+ - **`src/bin/init.ts`** — `parseInitArgs()` + `runInit()` handler following the
264
+ `runDoctor` / `runUpdate` / `runConfig` structural convention.
265
+
266
+ - **forge.ts**: wired `forgeAction === "init"` dispatch branch; updated help text.
267
+
10
268
  ## [1.0.25] — 2026-06-06
11
269
 
12
270
  Coordinated release matching forge plugin **v1.2.21**. Both changes come from
package/README.md CHANGED
@@ -18,6 +18,8 @@
18
18
 
19
19
  forge-cli generates a project-specific engineering knowledge base, sprint workflows, agent personas, and an SDLC pipeline — then drives them from your terminal on the [pi-coding-agent] runtime. Model-agnostic. No editor lock-in.
20
20
 
21
+ > **Two ways to run Forge.** Drive it headless in your terminal on the pi runtime (this README), **or** scaffold Forge into a Claude Code project with `4ge init claude .` and run the `/forge:*` slash commands inside Claude Code — remove it with `4ge uninstall claude`. The `4ge init` path is the supported way to add Forge to Claude Code and **replaces the deprecated marketplace plugin install** ([why](https://github.com/Entelligentsia/forge#distribution)).
22
+
21
23
  ## Why
22
24
 
23
25
  - **Structured SDLC, in any terminal.** Plan → implement → review → validate → commit chains, gated by your own personas and audience rules.
@@ -5,6 +5,169 @@ Format: newest first. Breaking changes are marked **△ Breaking**.
5
5
 
6
6
  ---
7
7
 
8
+ ## [1.4.5] — 2026-06-09
9
+
10
+ Collate-workflow KB-link refresh is orchestrator-owned under forge-cli. The
11
+ generated collate workflow no longer instructs the collator subagent to invoke
12
+ the `forge:refresh-kb-links` Skill tool — forge-cli subagents run via the Pi
13
+ runtime, which has no Skill tool, so the instruction triggered a multi-call
14
+ bash-probe loop before falling back. The Claude Code TUI standalone path still
15
+ uses the Skill tool; under forge-cli the run-task orchestrator owns the KB
16
+ refresh after the writeback phase. Prose-only change to `collator_agent.md`
17
+ (base-pack) and `meta-collate.md`.
18
+
19
+ **Regenerate:** workflows:collator_agent
20
+
21
+ > Manual: run `/forge:update` (or `/forge:rebuild`) to regenerate the collate workflow.
22
+
23
+ ---
24
+
25
+ ## [1.4.4] — 2026-06-07
26
+
27
+ First full CLI-first field test (git.git, ~500 source files) — `/forge:init`
28
+ passed all phases; gap analysis surfaced three config/manifest defects.
29
+
30
+ ### Fixed
31
+
32
+ - **`paths.commands` config drift** — `phase-1-collect.md` still carried a
33
+ prefix-derived instruction ("if prefix is `HELLO`, write
34
+ `.claude/commands/hello`") that survived the 1.4.0 namespace redesign; the
35
+ config-writer followed it and check-structure reported commands 0/14. The
36
+ path is ALWAYS `.claude/commands/forge`.
37
+ - **`paths.forgeRoot` written as an absolute npm-global payload path** — no
38
+ rulebook said what to write, so the register agent improvised. New explicit
39
+ `generate-tools.md` step: `paths.forgeRoot = ".forge"` (the vendored
40
+ `.forge/` IS the Forge root; absolute paths break on upgrades/nvm switches).
41
+ - **False "missing tools" gaps (49/59)** — `build-manifest.cjs` now excludes
42
+ the 10 plugin-development tools (`build-manifest`, `gen-integrity`,
43
+ `token-forensics`, …) from the `tools` namespace: the structure manifest
44
+ describes project instances, and dev tools are never vendored.
45
+ `structure-manifest.json` regenerated; instance expectation is now 49/49.
46
+
47
+ ## [1.4.3] — 2026-06-07
48
+
49
+ ### Fixed
50
+
51
+ - **`wfl-init.js` Phase 2 verify invocations matched the tool's real CLI**
52
+ ([forge#112](https://github.com/Entelligentsia/forge/issues/112) follow-up).
53
+ Prompts said `verify-phase.cjs --phase 2` bare; the tool requires
54
+ `--phase 2 --kb-path <path>` and exits 2 without it. Both invocations now
55
+ pass `--kb-path "${kbFolder}"`. Contract gates added: every driver
56
+ verify-phase invocation must use a supported phase (1–3) and `--phase 2`
57
+ must carry `--kb-path`.
58
+
59
+ ## [1.4.2] — 2026-06-07
60
+
61
+ ### Fixed
62
+
63
+ - **`wfl-init.js` ran zero agents but reported fabricated success
64
+ ([forge#112](https://github.com/Entelligentsia/forge/issues/112)).** Four
65
+ Workflow-API misuses: `phase(title, callback)` callbacks (containing every
66
+ phase body) were silently discarded by the harness; `parallel()` received
67
+ in-flight promises instead of thunks; `agent()` got the model tier as first
68
+ arg instead of `opts.model`; structured results lacked `opts.schema` so
69
+ `.ok` reads were undefined. `/forge:init` "completed" in ~3 ms with 0 agents
70
+ and hardcoded `ok: true`. Phase bodies now run inline, fan-outs use thunks,
71
+ every agent call is `agent(prompt, { model, label, phase, schema })`, and
72
+ the final report reflects real phase results (halts return `ok: false` with
73
+ the failure reason). Rulebook reads use vendored `.forge/init/...` paths
74
+ with a direct-analysis fallback for absent prompt files. Fix ported from
75
+ the field-validated patch authored against the live testbench run.
76
+
77
+ ### Added
78
+
79
+ - **`wfl-drivers-parse.test.cjs` API-contract gates** — all drivers checked
80
+ for phase-callback misuse, promise-instead-of-thunk `parallel()` calls,
81
+ reversed `agent()` args, and dead `init/**.md` rulebook references.
82
+
83
+ ## [1.4.1] — 2026-06-07
84
+
85
+ ### Fixed
86
+
87
+ - **`wfl-init.js` failed to launch — "SyntaxError: Unexpected keyword 'export'".**
88
+ The driver shipped wrapped in `export default async function wflInit(args)`,
89
+ but the Workflow harness permits exactly one export (the leading `meta`
90
+ literal) and evaluates the remainder as an async function body. The body now
91
+ runs at top level reading the `args` global, matching the other three
92
+ drivers. Every `/forge:init` → `workflow('wfl:init')` dispatch was dead on
93
+ arrival before this fix.
94
+
95
+ ### Added
96
+
97
+ - **`wfl-drivers-parse.test.cjs`** — regression gate that parses all base-pack
98
+ `wfl-*.js` drivers exactly the way the Workflow harness does (single meta
99
+ export, body as async function body with workflow globals in scope).
100
+
101
+ ## [1.4.0] — 2026-06-07
102
+
103
+ ### Changed — △ Breaking
104
+
105
+ - **Fixed `/forge:*` command namespace (CLI-first redesign).** Project-prefix
106
+ command namespaces (`/acme:*`, `/hello:*`) are retired — every project gets
107
+ the same `/forge:*` surface, with full parity between Claude Code and the
108
+ pure CLI (`4ge`):
109
+ - `tools/lib/paths.cjs` — `getCommandsSubdir()` returns `'forge'`
110
+ unconditionally (prefix arg is vestigial, kept for caller compat).
111
+ - `init/base-pack/commands/*.md` — `/{{PREFIX}}:` → literal `/forge:`
112
+ (26 occurrences, 17 files). Command templates are now fully static.
113
+ - `tools/substitute-placeholders.cjs` — materializes commands to
114
+ `.claude/commands/forge/` regardless of project prefix.
115
+ - Rulebooks updated: `generate-commands.md`, `phase-3-materialize.md`,
116
+ `phase-1-collect.md` (config `paths.commands` example), `meta-migrate.md`,
117
+ `migrate_structural.md`, `commands/add-task.md` next-steps text.
118
+ - The prefix-derived namespace existed to avoid collisions with the Forge
119
+ *plugin's* own `/forge:*` commands — moot now that the plugin mechanism
120
+ is retired in favour of project-vendored commands.
121
+ - **Migration:** existing projects keep working with their old
122
+ `.claude/commands/<prefix>/` files; re-materialize to get
123
+ `.claude/commands/forge/`, then delete the prefix directory.
124
+
125
+ - **`FORGE_ROOT` vendored fallback in every command.** All 33 resolution
126
+ lines across `commands/*.md` and `init/base-pack/commands/*.md` change from
127
+ `${CLAUDE_PLUGIN_ROOT}` to `${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}` — in a
128
+ plugin-installed session the plugin root still wins; in a plugin-less
129
+ project bootstrapped by `4ge init claude` the vendored `.forge/` (tools,
130
+ schemas, hooks, init, meta) serves as the Forge root.
131
+
132
+ ## [1.3.0] — 2026-06-07
133
+
134
+ ### Added
135
+
136
+ - **`init/base-pack/commands/init.md`** — new project-local command wrapper
137
+ installed by `4ge init claude .` into `.claude/commands/forge/`. Contains
138
+ the full hoisted-prompt flow (KB folder prompt, CLAUDE.md offer, timestamp
139
+ minting), dispatches `workflow('wfl:init', args)`, handles the
140
+ Workflow-tool-missing error explicitly, presents the marketplace-skills offer
141
+ from `result.skillMatches` post-workflow, invokes `forge:refresh-kb-links`
142
+ via the Skill tool, and emits the final report (KB doc count, workflow count,
143
+ command count, accepted/skipped skills). Uses vendored `.forge/tools/` paths
144
+ only — no `$FORGE_ROOT` / `${CLAUDE_PLUGIN_ROOT}` references.
145
+
146
+ ### Changed
147
+
148
+ - **`commands/init.md` (plugin-side)** — Execute section rewritten to dispatch
149
+ `workflow('wfl:init', args)` with hoisted interactive prompts (KB folder
150
+ prompt, CLAUDE.md offer, timestamp minting). Replaces the previous
151
+ `Read $FORGE_ROOT/init/sdlc-init.md` instruction. Includes the explicit
152
+ Workflow-tool-missing error halt (Iron Law 5 — no silent degradation or
153
+ fallback to `sdlc-init.md`).
154
+
155
+ - **`init/phases/phase-1-collect.md`** — Pre-flight Knowledge Base Folder block
156
+ and Step 5 (Marketplace Skills) annotated as orchestrator-owned when the
157
+ orchestrator pre-supplies the values. Annotations are informational — no step
158
+ renames or renumbers (forge-cli `run-phases.ts` glob freeze maintained).
159
+
160
+ - **`init/phases/phase-4-register.md`** — Step 11 (Tomoshibi/refresh-kb-links)
161
+ and Step 13 (CLAUDE.md prompt) annotated as orchestrator-owned. Same
162
+ semantics-preserving annotation policy.
163
+
164
+ - **`init/sdlc-init.md`** — Body reduced to a spec-pointer paragraph: points
165
+ to `wfl-init.js` (orchestration), `commands/init.md` (dispatch surface), and
166
+ `init/phases/` (canonical per-phase contracts). Phase/verify table preserved
167
+ for human readers. File not deleted.
168
+
169
+ ---
170
+
8
171
  ## [1.2.21] — 2026-06-06
9
172
 
10
173
  ### Fixed
@@ -1,5 +1,5 @@
1
- /** Parsed result when `--version`, `--help`, `doctor`, `update`, `config`, or a fast-path subcommand is requested. */
2
- export type ForgeAction = "version" | "help" | "doctor" | "update" | "config" | "subcommand" | null;
1
+ /** Parsed result when `--version`, `--help`, `doctor`, `update`, `config`, `init`, or a fast-path subcommand is requested. */
2
+ export type ForgeAction = "version" | "help" | "doctor" | "update" | "config" | "init" | "uninstall" | "subcommand" | null;
3
3
  /**
4
4
  * Whitelist of bare subcommands that bypass pi and exec a bundled cjs tool
5
5
  * directly. Each entry maps the user-typed subcommand to the cjs filename
package/dist/bin/argv.js CHANGED
@@ -155,6 +155,31 @@ export function parseForgeArgv(argv) {
155
155
  subcommandArgs: argv.slice(i + 1),
156
156
  };
157
157
  }
158
+ // ── `forge init` — deterministic bootstrap (FORGE-S31-T02) ─────────
159
+ // Bootstraps a Claude Code project from the bundled forge-payload.
160
+ // Subcommand args (["claude", "[dir]", ...flags]) are forwarded to
161
+ // init.ts for further parsing. Only matches the first bare token,
162
+ // no flags collected yet.
163
+ if (token === "init" && piArgv.length === 0) {
164
+ return {
165
+ forgeAction: "init",
166
+ piArgv: [],
167
+ env,
168
+ subcommandArgs: argv.slice(i + 1),
169
+ };
170
+ }
171
+ // ── `forge uninstall` — deterministic reverse of `init` ─────────────
172
+ // Removes the Forge scaffold a prior `init claude` placed in a project.
173
+ // Subcommand args (["claude", "[dir]", "--purge", "--yes"]) forwarded to
174
+ // uninstall.ts. Only matches the first bare token, no flags collected yet.
175
+ if (token === "uninstall" && piArgv.length === 0) {
176
+ return {
177
+ forgeAction: "uninstall",
178
+ piArgv: [],
179
+ env,
180
+ subcommandArgs: argv.slice(i + 1),
181
+ };
182
+ }
158
183
  // ── Fast-path subcommand (forge store, forge collate, etc.) ──────────
159
184
  // Only matches the FIRST bare token, and only when no flags have
160
185
  // been collected yet (so `forge --cwd /tmp store ...` still treats
@@ -1 +1 @@
1
- {"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/bin/argv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/bin/argv.ts"],"names":[],"mappings":"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"}
package/dist/bin/forge.js CHANGED
@@ -14,6 +14,8 @@ import { isParseError, parseForgeArgv } from "./argv.js";
14
14
  import { runConfig } from "./config.js";
15
15
  import { runDoctor } from "./doctor.js";
16
16
  import { applyForgeOwnedEnvDefaults } from "./env-defaults.js";
17
+ import { runInit } from "./init.js";
18
+ import { runUninstall } from "./uninstall.js";
17
19
  import { runUpdate } from "./update-cli.js";
18
20
  // ---------------------------------------------------------------------------
19
21
  // Version information (resolved at startup from package.json files)
@@ -64,6 +66,8 @@ Subcommands:
64
66
  doctor [--json] Preflight check — pi auth, model availability, settings
65
67
  update [--check] [--yes] [--version <spec>] Guided upgrade (npm i -g)
66
68
  config show [--resolved] [--json] Model routing config inspector
69
+ init claude [dir] Bootstrap a Claude Code project from the bundled forge-payload
70
+ uninstall claude [dir] [--purge] [--yes] Remove the Forge scaffold (--purge also removes config + store)
67
71
 
68
72
  Slash commands (inside a Forge project):
69
73
  /forge:init Bootstrap a new Forge SDLC project
@@ -113,6 +117,14 @@ async function run() {
113
117
  const exitCode = await runConfig(parsed.subcommandArgs ?? []);
114
118
  process.exit(exitCode);
115
119
  }
120
+ if (parsed.forgeAction === "init") {
121
+ const exitCode = await runInit(parsed.subcommandArgs ?? []);
122
+ process.exit(exitCode);
123
+ }
124
+ if (parsed.forgeAction === "uninstall") {
125
+ const exitCode = await runUninstall(parsed.subcommandArgs ?? []);
126
+ process.exit(exitCode);
127
+ }
116
128
  // Apply forge env overrides
117
129
  Object.assign(process.env, parsed.env);
118
130
  applyForgeOwnedEnvDefaults();
@@ -1 +1 @@
1
- {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/bin/forge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/bin/forge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface InitArgs {
2
+ platform: "claude";
3
+ dir: string;
4
+ }
5
+ export interface InitArgsError {
6
+ error: string;
7
+ }
8
+ /**
9
+ * Parse subcommand args for `forge init`.
10
+ *
11
+ * Expected forms:
12
+ * forge init claude → dir = process.cwd()
13
+ * forge init claude <dir> → dir = <dir>
14
+ * forge init → error: platform required
15
+ * forge init <other> → error: unknown platform
16
+ */
17
+ export declare function parseInitArgs(args: readonly string[]): InitArgs | InitArgsError;
18
+ /**
19
+ * Entry point invoked from bin/forge.ts.
20
+ *
21
+ * Returns exit code: 0 on success, 1 on bootstrap error.
22
+ */
23
+ export declare function runInit(args: readonly string[]): Promise<number>;