@entelligentsia/forgecli 0.21.0 → 1.0.3

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 (364) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +31 -33
  3. package/dist/CHANGELOG-forge-plugin.md +142 -0
  4. package/dist/CHANGELOG-pi.md +24 -1
  5. package/dist/bin/forgecli.d.ts +2 -0
  6. package/dist/bin/forgecli.js +6 -0
  7. package/dist/bin/forgecli.js.map +1 -0
  8. package/dist/extensions/forgecli/add-pipeline.js +1 -1
  9. package/dist/extensions/forgecli/add-pipeline.js.map +1 -1
  10. package/dist/extensions/forgecli/add-task.js +1 -1
  11. package/dist/extensions/forgecli/add-task.js.map +1 -1
  12. package/dist/extensions/forgecli/approve.js +17 -2
  13. package/dist/extensions/forgecli/approve.js.map +1 -1
  14. package/dist/extensions/forgecli/audience-gate.js +1 -1
  15. package/dist/extensions/forgecli/audience-gate.js.map +1 -1
  16. package/dist/extensions/forgecli/calibrate.js +11 -8
  17. package/dist/extensions/forgecli/calibrate.js.map +1 -1
  18. package/dist/extensions/forgecli/collate.js +1 -1
  19. package/dist/extensions/forgecli/collate.js.map +1 -1
  20. package/dist/extensions/forgecli/commit.js +17 -2
  21. package/dist/extensions/forgecli/commit.js.map +1 -1
  22. package/dist/extensions/forgecli/enhance.js +1 -1
  23. package/dist/extensions/forgecli/enhance.js.map +1 -1
  24. package/dist/extensions/forgecli/fix-bug.d.ts +1 -2
  25. package/dist/extensions/forgecli/fix-bug.js +678 -609
  26. package/dist/extensions/forgecli/fix-bug.js.map +1 -1
  27. package/dist/extensions/forgecli/forge-artifact-tool.d.ts +6 -8
  28. package/dist/extensions/forgecli/forge-artifact-tool.js +94 -197
  29. package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
  30. package/dist/extensions/forgecli/forge-commands.js +57 -18
  31. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  32. package/dist/extensions/forgecli/forge-init/phase4-register.js +6 -7
  33. package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
  34. package/dist/extensions/forgecli/forge-init/run-phases.d.ts +4 -0
  35. package/dist/extensions/forgecli/forge-init/run-phases.js +304 -0
  36. package/dist/extensions/forgecli/forge-init/run-phases.js.map +1 -0
  37. package/dist/extensions/forgecli/forge-init/verifiers.d.ts +14 -5
  38. package/dist/extensions/forgecli/forge-init/verifiers.js +79 -62
  39. package/dist/extensions/forgecli/forge-init/verifiers.js.map +1 -1
  40. package/dist/extensions/forgecli/forge-init.js +131 -76
  41. package/dist/extensions/forgecli/forge-init.js.map +1 -1
  42. package/dist/extensions/forgecli/forge-subagent.d.ts +26 -0
  43. package/dist/extensions/forgecli/forge-subagent.js +42 -18
  44. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  45. package/dist/extensions/forgecli/forge-tools.d.ts +34 -4
  46. package/dist/extensions/forgecli/forge-tools.js +191 -79
  47. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  48. package/dist/extensions/forgecli/health-check.js +3 -3
  49. package/dist/extensions/forgecli/health-check.js.map +1 -1
  50. package/dist/extensions/forgecli/hook-dispatcher.d.ts +1 -1
  51. package/dist/extensions/forgecli/hooks/check-update.d.ts +8 -0
  52. package/dist/extensions/forgecli/hooks/check-update.js +29 -1
  53. package/dist/extensions/forgecli/hooks/check-update.js.map +1 -1
  54. package/dist/extensions/forgecli/hooks/post-init-hook.js +6 -6
  55. package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -1
  56. package/dist/extensions/forgecli/hooks/post-sprint-hook.js +6 -6
  57. package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -1
  58. package/dist/extensions/forgecli/hooks/triage-error.js +1 -0
  59. package/dist/extensions/forgecli/hooks/triage-error.js.map +1 -1
  60. package/dist/extensions/forgecli/implement.js +20 -2
  61. package/dist/extensions/forgecli/implement.js.map +1 -1
  62. package/dist/extensions/forgecli/index.js +39 -32
  63. package/dist/extensions/forgecli/index.js.map +1 -1
  64. package/dist/extensions/forgecli/lib/pipeline-guard.d.ts +41 -0
  65. package/dist/extensions/forgecli/lib/pipeline-guard.js +100 -0
  66. package/dist/extensions/forgecli/lib/pipeline-guard.js.map +1 -0
  67. package/dist/extensions/forgecli/loaders/persona-skill-loader.js +2 -2
  68. package/dist/extensions/forgecli/loaders/persona-skill-loader.js.map +1 -1
  69. package/dist/extensions/forgecli/migrate.d.ts +3 -0
  70. package/dist/extensions/forgecli/migrate.js +4 -2
  71. package/dist/extensions/forgecli/migrate.js.map +1 -1
  72. package/dist/extensions/forgecli/plan.js +21 -2
  73. package/dist/extensions/forgecli/plan.js.map +1 -1
  74. package/dist/extensions/forgecli/quiz-agent.js +7 -7
  75. package/dist/extensions/forgecli/quiz-agent.js.map +1 -1
  76. package/dist/extensions/forgecli/regenerate.js +49 -18
  77. package/dist/extensions/forgecli/regenerate.js.map +1 -1
  78. package/dist/extensions/forgecli/remove-command.js +1 -1
  79. package/dist/extensions/forgecli/remove-command.js.map +1 -1
  80. package/dist/extensions/forgecli/report-bug.js +1 -1
  81. package/dist/extensions/forgecli/report-bug.js.map +1 -1
  82. package/dist/extensions/forgecli/retrospective.js +9 -9
  83. package/dist/extensions/forgecli/retrospective.js.map +1 -1
  84. package/dist/extensions/forgecli/review-code.d.ts +13 -0
  85. package/dist/extensions/forgecli/review-code.js +62 -3
  86. package/dist/extensions/forgecli/review-code.js.map +1 -1
  87. package/dist/extensions/forgecli/review-plan.d.ts +13 -0
  88. package/dist/extensions/forgecli/review-plan.js +65 -3
  89. package/dist/extensions/forgecli/review-plan.js.map +1 -1
  90. package/dist/extensions/forgecli/run-task.js +461 -391
  91. package/dist/extensions/forgecli/run-task.js.map +1 -1
  92. package/dist/extensions/forgecli/session-registry.d.ts +12 -0
  93. package/dist/extensions/forgecli/session-registry.js +23 -0
  94. package/dist/extensions/forgecli/session-registry.js.map +1 -1
  95. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +2 -1
  96. package/dist/extensions/forgecli/skill-curator-subagent.js +2 -1
  97. package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -1
  98. package/dist/extensions/forgecli/sprint-intake.js +6 -6
  99. package/dist/extensions/forgecli/sprint-intake.js.map +1 -1
  100. package/dist/extensions/forgecli/sprint-plan.js +9 -9
  101. package/dist/extensions/forgecli/sprint-plan.js.map +1 -1
  102. package/dist/extensions/forgecli/status-command.js +1 -1
  103. package/dist/extensions/forgecli/status-command.js.map +1 -1
  104. package/dist/extensions/forgecli/store-query.js +11 -11
  105. package/dist/extensions/forgecli/store-query.js.map +1 -1
  106. package/dist/extensions/forgecli/store-repair.js +7 -7
  107. package/dist/extensions/forgecli/store-repair.js.map +1 -1
  108. package/dist/extensions/forgecli/subagent/caller-context.d.ts +35 -11
  109. package/dist/extensions/forgecli/subagent/caller-context.js +49 -21
  110. package/dist/extensions/forgecli/subagent/caller-context.js.map +1 -1
  111. package/dist/extensions/forgecli/subagent/orchestrator-transcript.d.ts +66 -0
  112. package/dist/extensions/forgecli/subagent/orchestrator-transcript.js +66 -0
  113. package/dist/extensions/forgecli/subagent/orchestrator-transcript.js.map +1 -0
  114. package/dist/extensions/forgecli/subagent/phase-guard.d.ts +34 -0
  115. package/dist/extensions/forgecli/subagent/phase-guard.js +139 -0
  116. package/dist/extensions/forgecli/subagent/phase-guard.js.map +1 -0
  117. package/dist/extensions/forgecli/subagent/phase-summary-map.d.ts +1 -0
  118. package/dist/extensions/forgecli/subagent/phase-summary-map.js +22 -0
  119. package/dist/extensions/forgecli/subagent/phase-summary-map.js.map +1 -0
  120. package/dist/extensions/forgecli/thread-switcher.js +2 -2
  121. package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
  122. package/dist/extensions/forgecli/validate.js +17 -2
  123. package/dist/extensions/forgecli/validate.js.map +1 -1
  124. package/dist/extensions/forgecli/viewport-events.d.ts +4 -0
  125. package/dist/extensions/forgecli/viewport-events.js +18 -1
  126. package/dist/extensions/forgecli/viewport-events.js.map +1 -1
  127. package/dist/extensions/forgecli/viewport-renderer.d.ts +12 -2
  128. package/dist/extensions/forgecli/viewport-renderer.js +8 -6
  129. package/dist/extensions/forgecli/viewport-renderer.js.map +1 -1
  130. package/dist/forge-payload/.base-pack/commands/check-agent.md +22 -0
  131. package/dist/forge-payload/.base-pack/commands/new-sprint.md +22 -0
  132. package/dist/forge-payload/.base-pack/commands/plan-sprint.md +22 -0
  133. package/dist/forge-payload/.base-pack/commands/quiz-agent.md +2 -18
  134. package/dist/forge-payload/.base-pack/commands/retro.md +22 -0
  135. package/dist/forge-payload/.base-pack/commands/retrospective.md +2 -18
  136. package/dist/forge-payload/.base-pack/commands/sprint-intake.md +2 -18
  137. package/dist/forge-payload/.base-pack/commands/sprint-plan.md +2 -18
  138. package/dist/forge-payload/.base-pack/workflows/_fragments/friction-emit.md +2 -2
  139. package/dist/forge-payload/.base-pack/workflows/_fragments/generation-instructions.md +4 -4
  140. package/dist/forge-payload/.base-pack/workflows/_fragments/iron-laws.md +1 -1
  141. package/dist/forge-payload/.base-pack/workflows/architect_approve.md +13 -1
  142. package/dist/forge-payload/.base-pack/workflows/commit_task.md +12 -1
  143. package/dist/forge-payload/.base-pack/workflows/enhance.md +6 -6
  144. package/dist/forge-payload/.base-pack/workflows/fix_bug.md +11 -29
  145. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +14 -2
  146. package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +2 -2
  147. package/dist/forge-payload/.base-pack/workflows/orchestrate_task.md +20 -4
  148. package/dist/forge-payload/.base-pack/workflows/plan_task.md +14 -2
  149. package/dist/forge-payload/.base-pack/workflows/review_code.md +37 -7
  150. package/dist/forge-payload/.base-pack/workflows/review_plan.md +36 -6
  151. package/dist/forge-payload/.base-pack/workflows/run_sprint.md +2 -2
  152. package/dist/forge-payload/.base-pack/workflows/triage.md +190 -0
  153. package/dist/forge-payload/.base-pack/workflows/validate_task.md +37 -7
  154. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  155. package/dist/forge-payload/.schemas/config.schema.json +0 -5
  156. package/dist/forge-payload/.schemas/enum-catalog.json +9 -13
  157. package/dist/forge-payload/.schemas/migrations.json +63 -0
  158. package/dist/forge-payload/agents/tomoshibi.md +150 -6
  159. package/dist/forge-payload/commands/add-pipeline.md +1 -1
  160. package/dist/forge-payload/commands/add-task.md +1 -1
  161. package/dist/forge-payload/commands/calibrate.md +4 -350
  162. package/dist/forge-payload/commands/check-agent.md +38 -0
  163. package/dist/forge-payload/commands/config.md +3 -113
  164. package/dist/forge-payload/commands/enhance.md +5 -32
  165. package/dist/forge-payload/commands/health.md +155 -13
  166. package/dist/forge-payload/commands/init.md +25 -31
  167. package/dist/forge-payload/commands/migrate.md +6 -154
  168. package/dist/forge-payload/commands/quiz-agent.md +2 -34
  169. package/dist/forge-payload/commands/rebuild.md +664 -0
  170. package/dist/forge-payload/commands/regenerate.md +2 -774
  171. package/dist/forge-payload/commands/remove.md +10 -13
  172. package/dist/forge-payload/commands/repair.md +187 -0
  173. package/dist/forge-payload/commands/search.md +73 -0
  174. package/dist/forge-payload/commands/status.md +105 -0
  175. package/dist/forge-payload/commands/store-query.md +2 -69
  176. package/dist/forge-payload/commands/store-repair.md +2 -183
  177. package/dist/forge-payload/commands/update-tools.md +4 -50
  178. package/dist/forge-payload/commands/update.md +64 -58
  179. package/dist/forge-payload/hooks/check-update.cjs +1 -1
  180. package/dist/forge-payload/hooks/post-init.cjs +2 -2
  181. package/dist/forge-payload/hooks/post-sprint.cjs +2 -2
  182. package/dist/forge-payload/hooks/triage-error.cjs +11 -10
  183. package/dist/forge-payload/init/phases/phase-1-collect.md +138 -0
  184. package/dist/forge-payload/init/phases/phase-2-discover.md +127 -0
  185. package/dist/forge-payload/init/phases/phase-3-materialize.md +113 -0
  186. package/dist/forge-payload/init/phases/phase-4-register.md +159 -0
  187. package/dist/forge-payload/integrity.json +21 -24
  188. package/dist/forge-payload/meta/fragments/tool-discipline.md +41 -0
  189. package/dist/forge-payload/meta/templates/meta-retro.md +28 -0
  190. package/dist/forge-payload/meta/workflows/_fragments/friction-emit.md +2 -2
  191. package/dist/forge-payload/meta/workflows/_fragments/generation-instructions.md +4 -4
  192. package/dist/forge-payload/meta/workflows/_fragments/iron-laws.md +1 -1
  193. package/dist/forge-payload/meta/workflows/meta-approve.md +13 -1
  194. package/dist/forge-payload/meta/workflows/meta-bug-triage.md +210 -0
  195. package/dist/forge-payload/meta/workflows/meta-check-agent.md +138 -0
  196. package/dist/forge-payload/meta/workflows/meta-commit.md +12 -1
  197. package/dist/forge-payload/meta/workflows/meta-enhance.md +5 -5
  198. package/dist/forge-payload/meta/workflows/meta-fix-bug.md +11 -29
  199. package/dist/forge-payload/meta/workflows/meta-implement.md +13 -1
  200. package/dist/forge-payload/meta/workflows/meta-migrate.md +3 -3
  201. package/dist/forge-payload/meta/workflows/meta-new-sprint.md +84 -0
  202. package/dist/forge-payload/meta/workflows/meta-orchestrate.md +20 -4
  203. package/dist/forge-payload/meta/workflows/meta-plan-sprint.md +152 -0
  204. package/dist/forge-payload/meta/workflows/meta-plan-task.md +13 -1
  205. package/dist/forge-payload/meta/workflows/meta-retro.md +73 -0
  206. package/dist/forge-payload/meta/workflows/meta-review-implementation.md +37 -7
  207. package/dist/forge-payload/meta/workflows/meta-review-plan.md +36 -6
  208. package/dist/forge-payload/meta/workflows/meta-validate.md +37 -7
  209. package/dist/forge-payload/schemas/config.schema.json +0 -5
  210. package/dist/forge-payload/schemas/enum-catalog.json +9 -13
  211. package/dist/forge-payload/schemas/structure-manifest.json +25 -8
  212. package/dist/forge-payload/tools/artifact.cjs +324 -0
  213. package/dist/forge-payload/tools/banners.cjs +3 -4
  214. package/dist/forge-payload/tools/build-context-pack.cjs +1 -1
  215. package/dist/forge-payload/tools/check-structure.cjs +8 -3
  216. package/dist/forge-payload/tools/store-cli.cjs +67 -7
  217. package/dist/forge-payload/tools/substitute-placeholders.cjs +1 -1
  218. package/dist/forge-payload/tools/verify-apply.cjs +75 -0
  219. package/dist/forge-payload/tools/verify-phase.cjs +259 -0
  220. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  221. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +0 -17
  222. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  223. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +21 -38
  224. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  225. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
  226. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +5 -4
  227. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  228. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +2 -1
  229. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  230. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +5 -2
  231. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  232. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  233. package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +24 -1
  234. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.d.ts.map +1 -1
  235. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +2 -3
  236. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js.map +1 -1
  237. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.d.ts +1 -0
  238. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.d.ts.map +1 -1
  239. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js +52 -22
  240. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js.map +1 -1
  241. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  242. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +16 -4
  243. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  244. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
  245. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +45 -50
  246. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
  247. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -1
  248. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +43 -81
  249. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js.map +1 -1
  250. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  251. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.js +27 -12
  252. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.js.map +1 -1
  253. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  254. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +2 -3
  255. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  256. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
  257. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +3 -3
  258. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
  259. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
  260. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +5 -5
  261. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
  262. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.d.ts +2 -0
  263. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.d.ts.map +1 -1
  264. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js +37 -0
  265. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js.map +1 -1
  266. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
  267. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +9 -8
  268. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
  269. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
  270. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +20 -35
  271. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
  272. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +3 -0
  273. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  274. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +64 -7
  275. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -1
  276. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  277. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +15 -3
  278. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  279. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.d.ts +3 -1
  280. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.d.ts.map +1 -1
  281. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js +14 -8
  282. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js.map +1 -1
  283. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.d.ts +30 -0
  284. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.d.ts.map +1 -0
  285. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js +124 -0
  286. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js.map +1 -0
  287. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.d.ts +2 -0
  288. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.d.ts.map +1 -0
  289. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js +31 -0
  290. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js.map +1 -0
  291. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts +7 -27
  292. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -1
  293. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js +75 -115
  294. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
  295. package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +6 -0
  296. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
  297. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  298. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
  299. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
  300. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -14
  301. package/node_modules/@earendil-works/pi-coding-agent/package.json +5 -5
  302. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts +3 -0
  303. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -0
  304. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +53 -0
  305. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -0
  306. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
  307. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +4 -1
  308. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
  309. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +2 -0
  310. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  311. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +13 -1
  312. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  313. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  314. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  315. package/node_modules/@earendil-works/pi-tui/package.json +2 -2
  316. package/node_modules/@entelligentsia/forge-compress/dist/compressor.d.ts +6 -0
  317. package/node_modules/@entelligentsia/forge-compress/dist/compressor.js +137 -0
  318. package/node_modules/@entelligentsia/forge-compress/dist/entropy.d.ts +3 -0
  319. package/node_modules/@entelligentsia/forge-compress/dist/entropy.js +99 -0
  320. package/node_modules/@entelligentsia/forge-compress/dist/forge/entity.d.ts +8 -0
  321. package/node_modules/@entelligentsia/forge-compress/dist/forge/entity.js +149 -0
  322. package/node_modules/@entelligentsia/forge-compress/dist/forge/index.d.ts +7 -0
  323. package/node_modules/@entelligentsia/forge-compress/dist/forge/index.js +4 -0
  324. package/node_modules/@entelligentsia/forge-compress/dist/forge/markdown.d.ts +5 -0
  325. package/node_modules/@entelligentsia/forge-compress/dist/forge/markdown.js +92 -0
  326. package/node_modules/@entelligentsia/forge-compress/dist/forge/query.d.ts +7 -0
  327. package/node_modules/@entelligentsia/forge-compress/dist/forge/query.js +60 -0
  328. package/node_modules/@entelligentsia/forge-compress/dist/forge/validate.d.ts +1 -0
  329. package/node_modules/@entelligentsia/forge-compress/dist/forge/validate.js +82 -0
  330. package/node_modules/@entelligentsia/forge-compress/dist/index.d.ts +6 -0
  331. package/node_modules/@entelligentsia/forge-compress/dist/index.js +5 -0
  332. package/node_modules/@entelligentsia/forge-compress/dist/progressive.d.ts +1 -0
  333. package/node_modules/@entelligentsia/forge-compress/dist/progressive.js +108 -0
  334. package/node_modules/@entelligentsia/forge-compress/dist/strip.d.ts +4 -0
  335. package/node_modules/@entelligentsia/forge-compress/dist/strip.js +55 -0
  336. package/node_modules/@entelligentsia/forge-compress/dist/tokens.d.ts +2 -0
  337. package/node_modules/@entelligentsia/forge-compress/dist/tokens.js +17 -0
  338. package/node_modules/@entelligentsia/forge-compress/package.json +45 -0
  339. package/node_modules/@entelligentsia/forge-compress/src/__tests__/compress.test.ts +409 -0
  340. package/node_modules/@entelligentsia/forge-compress/src/compressor.ts +147 -0
  341. package/node_modules/@entelligentsia/forge-compress/src/entropy.ts +105 -0
  342. package/node_modules/@entelligentsia/forge-compress/src/forge/entity.ts +184 -0
  343. package/node_modules/@entelligentsia/forge-compress/src/forge/index.ts +10 -0
  344. package/node_modules/@entelligentsia/forge-compress/src/forge/markdown.ts +122 -0
  345. package/node_modules/@entelligentsia/forge-compress/src/forge/query.ts +105 -0
  346. package/node_modules/@entelligentsia/forge-compress/src/forge/validate.ts +86 -0
  347. package/node_modules/@entelligentsia/forge-compress/src/index.ts +22 -0
  348. package/node_modules/@entelligentsia/forge-compress/src/progressive.ts +123 -0
  349. package/node_modules/@entelligentsia/forge-compress/src/strip.ts +58 -0
  350. package/node_modules/@entelligentsia/forge-compress/src/tokens.ts +19 -0
  351. package/package.json +10 -15
  352. package/dist/extensions/forgecli/forge-init/phase-descriptors.d.ts +0 -72
  353. package/dist/extensions/forgecli/forge-init/phase-descriptors.js +0 -359
  354. package/dist/extensions/forgecli/forge-init/phase-descriptors.js.map +0 -1
  355. package/dist/extensions/forgecli/forge-init/prompts.d.ts +0 -10
  356. package/dist/extensions/forgecli/forge-init/prompts.js +0 -91
  357. package/dist/extensions/forgecli/forge-init/prompts.js.map +0 -1
  358. package/dist/extensions/forgecli/lib/store-error-remediation.d.ts +0 -65
  359. package/dist/extensions/forgecli/lib/store-error-remediation.js +0 -298
  360. package/dist/extensions/forgecli/lib/store-error-remediation.js.map +0 -1
  361. package/dist/forge-payload/hooks/check-update.js +0 -378
  362. package/dist/forge-payload/hooks/forge-permissions.js +0 -164
  363. package/dist/forge-payload/hooks/triage-error.js +0 -77
  364. package/dist/forge-payload/hooks/validate-write.js +0 -250
@@ -1,187 +1,6 @@
1
1
  ---
2
2
  name: store-repair
3
- description: Diagnose and repair corrupted store records. Use when validate-store reports errors or store data seems wrong.
3
+ description: Renamed in v1.0 use /forge:repair
4
4
  ---
5
5
 
6
- # /forge:store:repair
7
-
8
- Diagnose and repair corruption in the Forge JSON store.
9
-
10
- ## Arguments
11
-
12
- $ARGUMENTS
13
-
14
- | Argument | Purpose |
15
- |----------|---------|
16
- | `--dry-run` | Show what would be repaired without making any changes |
17
-
18
- ## How to Run
19
-
20
- 1. Resolve the plugin root:
21
- ```
22
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
23
- ```
24
-
25
- 2. Run the four-phase repair workflow below. If `--dry-run` is in `$ARGUMENTS`,
26
- preview all changes without writing — skip Phase 2 writes and Phase 3
27
- writes, and skip Phase 4 verification since nothing changed.
28
-
29
- ## Phase 1: Diagnosis
30
-
31
- Run the deterministic validator in JSON mode:
32
-
33
- ```sh
34
- node "$FORGE_ROOT/tools/validate-store.cjs" --dry-run --json
35
- ```
36
-
37
- Parse the JSON output. Categorize each error by its `category` field:
38
-
39
- | Category | Example | Deterministic fix? |
40
- |----------|---------|--------------------|
41
- | `missing-required` | `"sprintId": null` on a sprint | Yes — backfill |
42
- | `type-mismatch` | `"iteration": "1"` instead of `1` | Yes — coerce |
43
- | `invalid-enum` | `"status": "in-progress"` on a bug | No — needs judgment |
44
- | `undeclared-field` | `"priority": "high"` on a task | No — needs judgment |
45
- | `orphaned-fk` | `taskId` pointing to deleted task in event | No — needs judgment |
46
- | `filename-mismatch` | Event filename != eventId | Yes — rename |
47
- | `minimum-violation` | `"iteration": 0` | Yes — coerce |
48
- | `orphan-directory` | Sprint dir with no sprint record | No — needs judgment |
49
- | `stale-path` | `path` pointing to nonexistent dir | No — needs judgment |
50
-
51
- ## Phase 2: Auto-Fix
52
-
53
- Run the deterministic validator with `--fix`:
54
-
55
- ```sh
56
- node "$FORGE_ROOT/tools/validate-store.cjs" --fix --json
57
- ```
58
-
59
- For dry-run, preview without writing:
60
-
61
- ```sh
62
- node "$FORGE_ROOT/tools/validate-store.cjs" --fix --dry-run --json
63
- ```
64
-
65
- Report each fix to the user (entity, field, what was backfilled or nullified).
66
-
67
- ## Phase 3: LLM-Judgment Fixes
68
-
69
- For each remaining error from Phase 1 that was not auto-fixed, apply LLM judgment:
70
-
71
- 1. **Read the corrupted record**:
72
- ```sh
73
- node "$FORGE_ROOT/tools/store-cli.cjs" read <entity> <id> --json
74
- ```
75
-
76
- 2. **Determine the correct value** based on schema definitions, store context, and
77
- the judgment rules below.
78
-
79
- 3. **Present the proposed fix** to the user with:
80
- - Entity ID and field affected
81
- - Current (corrupted) value
82
- - Proposed (corrected) value
83
- - Reasoning
84
-
85
- If the user declines, skip the fix and note it in the report.
86
-
87
- 4. **Apply the fix** using the appropriate command:
88
-
89
- | Corruption Pattern | Repair Action | Command |
90
- |-------------------|---------------|---------|
91
- | Invalid enum value | Map to nearest valid enum | `store-cli.cjs update-status <entity> <id> <field> <value> [--force]` |
92
- | Undeclared field | Remove the field by rewriting | `store-cli.cjs write <entity> '<fixed-json>'` |
93
- | Type mismatch | Coerce to correct type and rewrite | `store-cli.cjs write <entity> '<fixed-json>'` |
94
- | Orphaned FK | Nullify or remap to existing entity | `store-cli.cjs write <entity> '<fixed-json>'` |
95
- | Dangling sprint.taskIds | Remove taskIds referencing non-existent tasks | `store-cli.cjs write sprint '<fixed-json>'` |
96
- | Illegal status transition | Force-correct to valid state | `store-cli.cjs update-status <entity> <id> status <value> --force` |
97
- | Stale COLLATION_STATE | Regenerate via collate | `node "$FORGE_ROOT/tools/collate.cjs"` |
98
-
99
- ### Judgment Rules: Invalid Enum Values
100
-
101
- Map common misspellings and variant forms to canonical values:
102
-
103
- | Entity | Field | Common Misspellings | Canonical Values |
104
- |--------|-------|--------------------|------------------|
105
- | Sprint | status | "in-progress" | active |
106
- | Sprint | status | "done", "finished" | completed |
107
- | Task | status | "in-progress" | implementing |
108
- | Task | status | "in-review", "review" | review-approved |
109
- | Task | status | "done", "finished" | committed |
110
- | Bug | severity | "high", "critical" | critical |
111
- | Bug | severity | "medium" | major |
112
- | Bug | severity | "low" | minor |
113
- | Bug | status | "open" | reported |
114
- | Bug | status | "working" | in-progress |
115
- | Feature | status | "complete", "done" | shipped |
116
-
117
- When no reasonable mapping exists, ask the user to choose from valid values.
118
-
119
- ### Judgment Rules: Orphaned References
120
-
121
- - **Event.taskId → deleted task**: If the event's sprintId is valid, nullify the
122
- taskId. If the sprint also doesn't exist, ask the user whether to delete the
123
- event or create a stub sprint.
124
- - **Sprint.taskIds containing deleted task IDs**: Remove the deleted IDs from the
125
- array and rewrite the sprint.
126
- - **Undeclared fields**: Remove the field and rewrite. Mention the removed data in
127
- the report so the user can decide whether to add it to the schema.
128
-
129
- ### Hard Rules
130
-
131
- 1. **Never fall back to direct file writes.** All repairs go through
132
- `store-cli.cjs`. If it rejects a write, fix the data and retry (max 2).
133
- 2. **Never delete data without confirmation.** Ask the user before deleting any
134
- record.
135
- 3. **Never skip Phase 4 verification.** Always re-run validate-store after
136
- repairs.
137
- 4. **Preserve data priority.** Prefer corrections that retain more original data.
138
- Mapping "in-progress" → "implementing" is better than resetting to "draft".
139
-
140
- ## Phase 4: Verification
141
-
142
- Re-run the validator to confirm the store is clean:
143
-
144
- ```sh
145
- node "$FORGE_ROOT/tools/validate-store.cjs" --dry-run --json
146
- ```
147
-
148
- If `"ok": true`, report success. If errors remain, report them as unresolved
149
- with suggestions for next steps.
150
-
151
- ## Repair Report
152
-
153
- After all phases, output a structured report:
154
-
155
- ```
156
- # Store Repair Report
157
-
158
- ## Phase 1: Diagnosis
159
- - Errors found: N
160
- - Warnings found: M
161
- - Categories: {breakdown by category}
162
-
163
- ## Phase 2: Auto-Fix
164
- - Fixes applied: N
165
- - Details: {list of each fix}
166
-
167
- ## Phase 3: LLM-Judgment Fixes
168
- - Fixes proposed: N
169
- - Fixes applied: M (with user approval)
170
- - Fixes skipped: K (user declined)
171
- - Details: {list of each proposed change with reasoning}
172
-
173
- ## Phase 4: Verification
174
- - Errors remaining: N
175
- - Warnings remaining: M
176
- - Status: PASS / FAIL
177
-
178
- ## Unresolved Issues
179
- {List of issues that could not be automatically resolved, with suggestions}
180
- ```
181
-
182
- ## On Error
183
-
184
- If `validate-store.cjs` crashes or returns unexpected output, report the error
185
- and suggest running `/forge:report-bug` if it appears to be a Forge bug. Do NOT
186
- attempt to continue repairs after an unexpected error in a deterministic tool —
187
- the store state is unknown and further writes could cause additional corruption.
6
+ × /forge:store-repair was renamed to /forge:repair in v1.0.
@@ -1,56 +1,10 @@
1
1
  ---
2
2
  name: update-tools
3
- description: Use when you want to refresh .forge/schemas/ to match the currently installed Forge plugin version
3
+ description: REMOVED in v1.0 use /forge:update instead
4
4
  ---
5
5
 
6
- # /forge:update-tools
6
+ # /forge:update-tools — Removed
7
7
 
8
- Refresh the JSON schemas in `.forge/schemas/` from the installed Forge plugin.
8
+ × `/forge:update-tools` was removed in v1.0. Schema refresh now happens automatically as part of `/forge:update`.
9
9
 
10
- Forge tools (`collate.cjs`, `manage-config.cjs`, etc.) ship with the plugin and
11
- are invoked directly from `$FORGE_ROOT/tools/` — they are not copied to the project.
12
- This command only manages schemas.
13
-
14
- ## Locate the plugin
15
-
16
- ```
17
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
18
- ```
19
-
20
- ## Steps
21
-
22
- ### 1 — Copy schemas
23
-
24
- Copy all JSON Schema files from `$FORGE_ROOT/schemas/` to `.forge/schemas/`.
25
- Create `.forge/schemas/` if it does not exist.
26
-
27
- ```sh
28
- mkdir -p .forge/schemas
29
- cp "$FORGE_ROOT/schemas/"*.schema.json .forge/schemas/
30
- ```
31
-
32
- ### 2 — Record hashes
33
-
34
- Record each copied schema file in the generation manifest so health checks
35
- can detect modifications:
36
-
37
- ```sh
38
- for f in .forge/schemas/*.schema.json; do
39
- node "$FORGE_ROOT/tools/generation-manifest.cjs" record "$f"
40
- done
41
- ```
42
-
43
- ### 3 — Verify
44
-
45
- ```sh
46
- node "$FORGE_ROOT/tools/validate-store.cjs" --dry-run
47
- ```
48
-
49
- Print `〇 Schemas updated and store validation passed.` on success.
50
- Print `× Validation failed — {output}` on non-zero exit.
51
-
52
- ## On error
53
-
54
- If any step above fails unexpectedly, describe what went wrong and ask:
55
-
56
- > "This looks like a Forge bug. Would you like to file a report to help improve it? Run `/forge:report-bug` — I'll pre-fill the report from this conversation."
10
+ Run `/forge:update` to refresh schemas along with other project artifacts.
@@ -95,8 +95,7 @@ node "$FORGE_ROOT/tools/banners.cjs" --subtitle "Updating Forge — checking rem
95
95
  At the start of each step, emit a step header via `banners.cjs --phase`:
96
96
 
97
97
  ```sh
98
- node "$FORGE_ROOT/tools/banners.cjs" --phase {N} 7 "{Step Name}" {bannerKey} \
99
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
98
+ node "$FORGE_ROOT/tools/banners.cjs" --phase {N} 7 "{Step Name}" {bannerKey}
100
99
  ```
101
100
 
102
101
  Step ↔ banner key map:
@@ -130,7 +129,7 @@ If `updateStatus === "pending"`:
130
129
  △ Previous update is incomplete — pending migration(s): {pendingMigrations}
131
130
  Reason: {pendingReason}
132
131
 
133
- Run /forge:migrate to complete the pending migration, then re-run
132
+ Run /forge:init --migrate to complete the pending migration, then re-run
134
133
  /forge:update to verify.
135
134
  ```
136
135
 
@@ -138,7 +137,7 @@ If `updateStatus === "pending"`:
138
137
  were completed in the previous run. The project already has the correct
139
138
  plugin version installed; only the migration chain remains.
140
139
 
141
- 3. Exit. The user runs `/forge:migrate` to complete, then re-runs `/forge:update`.
140
+ 3. Exit. The user runs `/forge:init --migrate` to complete, then re-runs `/forge:update`.
142
141
 
143
142
  If `updateStatus !== "pending"` (or field absent): proceed normally with Step 1.
144
143
 
@@ -147,8 +146,7 @@ If `updateStatus !== "pending"` (or field absent): proceed normally with Step 1.
147
146
  ## Step 1 — Check for updates
148
147
 
149
148
  ```sh
150
- node "$FORGE_ROOT/tools/banners.cjs" --phase 1 7 "Check for updates" north \
151
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
149
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 1 7 "Check for updates" north
152
150
  ```
153
151
 
154
152
  Read `$FORGE_ROOT/.claude-plugin/plugin.json`. Extract `"version"` → `LOCAL_VERSION`.
@@ -263,8 +261,7 @@ Now evaluate — **stop at the first matching row and follow only that row's act
263
261
  ## Step 2A — Plugin update available
264
262
 
265
263
  ```sh
266
- node "$FORGE_ROOT/tools/banners.cjs" --phase 2 7 "Plugin update available" rift \
267
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
264
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 2 7 "Plugin update available" rift
268
265
  ```
269
266
 
270
267
  > **Only reached when `REMOTE_VERSION` != `LOCAL_VERSION` (row 4 above).**
@@ -320,7 +317,7 @@ Present the update summary:
320
317
  ```
321
318
 
322
319
  If no migration path can be constructed, show available notes and recommend
323
- `/forge:regenerate workflows`.
320
+ `/forge:rebuild workflows`.
324
321
 
325
322
  Ask the user to choose. If they choose **[2]**, exit.
326
323
 
@@ -359,8 +356,7 @@ Wait for the user to confirm the install completed.
359
356
  ## Step 2B — Project migration pending (plugin already current)
360
357
 
361
358
  ```sh
362
- node "$FORGE_ROOT/tools/banners.cjs" --phase 2 7 "Apply project migrations" drift \
363
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
359
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 2 7 "Apply project migrations" drift
364
360
  ```
365
361
 
366
362
  > **Only reached from rows 2 or 3 — the plugin is already at the right version.**
@@ -420,8 +416,7 @@ Then jump to **Step 4** to execute the regeneration.
420
416
  ## Step 3 — Verify installation
421
417
 
422
418
  ```sh
423
- node "$FORGE_ROOT/tools/banners.cjs" --phase 3 7 "Verify installation" lumen \
424
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
419
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 3 7 "Verify installation" lumen
425
420
  ```
426
421
 
427
422
  After the user confirms the install:
@@ -461,8 +456,7 @@ path) — skip the re-derivation and keep the original value.
461
456
  ## Step 4 — Apply migrations
462
457
 
463
458
  ```sh
464
- node "$FORGE_ROOT/tools/banners.cjs" --phase 4 7 "Apply migrations" forge \
465
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
459
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 4 7 "Apply migrations" forge
466
460
  ```
467
461
 
468
462
  > **Sequencing note:** `paths.forgeRoot` is written at the very start of Step 4,
@@ -507,6 +501,19 @@ If the project was recently initialized and all fields are already present, the
507
501
  command prints `〇 No missing fields to backfill.` and exits cleanly —
508
502
  no changes, no side effects.
509
503
 
504
+ **Fix `paths.commands` prefix (v1.0.2+):** Pre-v1.0.2 projects may have
505
+ `paths.commands` set to `.claude/commands/forge` regardless of the project
506
+ prefix. Correct it to use the lowercased project prefix:
507
+
508
+ ```sh
509
+ PREFIX=$(node -e "try{console.log(require('./.forge/config.json').project.prefix.toLowerCase())}catch{console.log('forge')}")
510
+ CURRENT_COMMANDS=$(node "$FORGE_ROOT/tools/manage-config.cjs" get paths.commands 2>/dev/null || echo "")
511
+ EXPECTED_COMMANDS=".claude/commands/$PREFIX"
512
+ if [ "$CURRENT_COMMANDS" != "$EXPECTED_COMMANDS" ]; then
513
+ node "$FORGE_ROOT/tools/manage-config.cjs" set paths.commands "$EXPECTED_COMMANDS"
514
+ fi
515
+ ```
516
+
510
517
  Determine the baseline version:
511
518
  - Use `migratedFrom` from `CACHE_FILE` (set in Step 1)
512
519
  - Or the `--from <version>` argument if provided
@@ -540,7 +547,7 @@ Walk the migration chain from baseline forward to `LOCAL_VERSION`:
540
547
  - Collect the ordered list of migration steps that bridge baseline → current.
541
548
  - If no path exists, warn:
542
549
  > No migration path found from {baseline} to {LOCAL_VERSION}. Running
543
- > `/forge:regenerate workflows` is recommended.
550
+ > `/forge:rebuild workflows` is recommended.
544
551
  Then exit.
545
552
 
546
553
  Aggregate across all steps in the path, applying the dominance rule:
@@ -568,7 +575,7 @@ Execute regeneration targets in this order:
568
575
  | 4 | `personas` | — (independent) | — |
569
576
  | 5 | `commands` | Must run after `workflows` | — |
570
577
  | 6 | `knowledge-base` sub-targets | — (independent) | — |
571
- | 7 | `schemas` | — (independent) | **Delegate to `/forge:update-tools`.** Emit: `Delegating schemas regeneration to /forge:update-tools…` then read and follow `$FORGE_ROOT/commands/update-tools.md`. |
578
+ | 7 | `schemas` | — (independent) | **Run schema refresh inline** (see Schema Refresh below). Emit: `〇 Refreshing schemas…` |
572
579
 
573
580
  > **Known special targets — note for migration authors:** `hooks` and `schemas` are
574
581
  > special-cased here. Future `migrations.json` entries should only use recognised
@@ -650,19 +657,37 @@ If the user declines, exit without modifying anything.
650
657
  If `breaking: true`, require the user to confirm they have completed the manual
651
658
  steps before proceeding.
652
659
 
653
- For each category in the aggregated result, invoke `/forge:regenerate` by
660
+ For each category in the aggregated result, invoke `/forge:rebuild` by
654
661
  reading and following `$FORGE_ROOT/commands/regenerate.md`:
655
- - If flagged for full rebuild: invoke `/forge:regenerate <category>`
656
- - If sub-targets collected: invoke `/forge:regenerate <category> <sub-target>`
662
+ - If flagged for full rebuild: invoke `/forge:rebuild <category>`
663
+ - If sub-targets collected: invoke `/forge:rebuild <category> <sub-target>`
657
664
  for each sub-target in order
658
665
 
659
666
  **Category-to-command mapping:** most categories are handled by
660
- `/forge:regenerate`, but the `tools` category is special. When `tools`
661
- appears in the aggregated result, invoke `/forge:update-tools` instead of
662
- `/forge:regenerate tools`. The update-tools command copies JSON schemas from
663
- `$FORGE_ROOT/schemas/` to `.forge/schemas/` and validates the store. It does
664
- not use the regeneration framework — tools ship with the plugin and are invoked
665
- directly via `$FORGE_ROOT/tools/`.
667
+ `/forge:rebuild`, but the `tools` and `schemas` categories are special.
668
+
669
+ When `tools` appears in the aggregated result, run the schema refresh inline
670
+ (see **Schema Refresh** section below) instead of invoking `/forge:rebuild tools`.
671
+ Tools ship with the plugin and are invoked directly via `$FORGE_ROOT/tools/`.
672
+
673
+ When `schemas` appears in the aggregated result, run the schema refresh inline
674
+ (same **Schema Refresh** section). Do NOT delegate to the removed `/forge:update-tools` command.
675
+
676
+ ### Schema Refresh
677
+
678
+ When the migration chain includes a `schemas` or `tools` target, refresh schemas inline:
679
+
680
+ ```sh
681
+ mkdir -p .forge/schemas
682
+ cp "$FORGE_ROOT/schemas/"*.schema.json .forge/schemas/
683
+ for f in .forge/schemas/*.schema.json; do
684
+ node "$FORGE_ROOT/tools/generation-manifest.cjs" record "$f"
685
+ done
686
+ node "$FORGE_ROOT/tools/validate-store.cjs" --dry-run
687
+ ```
688
+
689
+ Emit `〇 Schemas updated and store validation passed.` on success.
690
+ Emit `× Validation failed — {output}` on non-zero exit from `validate-store.cjs`.
666
691
 
667
692
  Run non-knowledge-base targets first (workflows, templates, commands, tools),
668
693
  then knowledge-base sub-targets if present.
@@ -685,9 +710,9 @@ If exit 1 (gaps remain):
685
710
  > △ Structure check: N file(s) still missing after migration:
686
711
  > (list missing files)
687
712
  >
688
- > This may indicate a failed regeneration step. Re-run `/forge:regenerate <namespace>`
689
- > for each affected namespace, or `/forge:regenerate` to rebuild all targets.
690
- > Note: skills entries require an explicit `/forge:regenerate skills` — they are not
713
+ > This may indicate a failed regeneration step. Re-run `/forge:rebuild <namespace>`
714
+ > for each affected namespace, or `/forge:rebuild` to rebuild all targets.
715
+ > Note: skills entries require an explicit `/forge:rebuild skills` — they are not
691
716
  > included in the default regenerate run.
692
717
 
693
718
  Do NOT block migration success on gaps — surface them as a warning only. The user
@@ -699,7 +724,7 @@ is an additional safety net.
699
724
  After the structure check, if at least one regeneration target was applied (the
700
725
  aggregated `regenerate` list was non-empty), refresh `calibrationBaseline` in
701
726
  `.forge/config.json`. This keeps the calibration baseline in sync with the newly
702
- materialized artifacts so `/forge:calibrate` does not report false drift.
727
+ materialized artifacts so `/forge:health --fix` does not report false drift.
703
728
 
704
729
  Skip this step if no regeneration targets were applied (e.g. all targets were absent
705
730
  from the migration path, or Step 4 was entered with `baseline == LOCAL_VERSION`).
@@ -798,7 +823,7 @@ ADR-S14-01 decision criteria to determine the update outcome:
798
823
  - No changes to `calibrationBaseline` semantics
799
824
 
800
825
  Concretely, a low-risk step is one where the only actions are: schema-only
801
- changes (`/forge:update-tools` for schemas), file-copy from base-pack
826
+ changes (inline schema refresh for schemas), file-copy from base-pack
802
827
  (templates, workflows, personas), or config-key additions with deterministic
803
828
  defaults.
804
829
 
@@ -834,7 +859,7 @@ pass:
834
859
  only performs operations that can be completed without any user prompts.
835
860
  - **Deterministic file copies from base-pack:** if
836
861
  `structure-versions.json` already exists (post-T05 install), the
837
- deterministic path is simply running any remaining `/forge:regenerate`
862
+ deterministic path is simply running any remaining `/forge:rebuild`
838
863
  targets that were not already applied in the main Step 4 regeneration
839
864
  sequence.
840
865
 
@@ -850,7 +875,7 @@ pass:
850
875
  - Write `updateStatus: "pending"`, `pendingReason: "Auto-invoke failed:
851
876
  {error description}"`, and `pendingMigrations: [list]` to
852
877
  `.forge/update-check-cache.json`.
853
- - Print: "Update Pending — auto-invoke failed. Run `/forge:migrate` to
878
+ - Print: "Update Pending — auto-invoke failed. Run `/forge:init --migrate` to
854
879
  complete" with the failure details.
855
880
  - Exit without proceeding to Steps 5-7.
856
881
 
@@ -865,7 +890,7 @@ If any step is user-affecting (and the chain was NOT auto-invoked), enter the
865
890
  - Do NOT bump `calibrationBaseline.version`.
866
891
  - Write `updateStatus: "pending"`, `pendingReason`, and `pendingMigrations` to
867
892
  `.forge/update-check-cache.json`.
868
- - Print: "Update Pending — run `/forge:migrate` to complete" with the list of
893
+ - Print: "Update Pending — run `/forge:init --migrate` to complete" with the list of
869
894
  pending migrations and next steps.
870
895
  - Exit without proceeding to Steps 5-7.
871
896
 
@@ -890,8 +915,7 @@ On the "Update Complete" path (all migrations applied,
890
915
  ## Step 5 — Pipeline and configuration audit
891
916
 
892
917
  ```sh
893
- node "$FORGE_ROOT/tools/banners.cjs" --phase 5 7 "Pipeline audit" oracle \
894
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
918
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 5 7 "Pipeline audit" oracle
895
919
  ```
896
920
 
897
921
  Runs on every update. Collects all findings first, then presents a single
@@ -1007,7 +1031,7 @@ For each file containing legacy `model:` fields, add item:
1007
1031
  `type: legacy-model-field`, `required: false`,
1008
1032
  `path: .forge/workflows/{filename}`,
1009
1033
  `label: ".forge/workflows/{filename} — legacy model: field detected"`,
1010
- `action: "Will be auto-migrated by /forge:regenerate workflows"`
1034
+ `action: "Will be auto-migrated by /forge:rebuild workflows"`
1011
1035
 
1012
1036
  **5b-rename — Retired command names in pipeline config.** Scan every configured
1013
1037
  pipeline for phases that use retired built-in command names.
@@ -1153,7 +1177,7 @@ and emit:
1153
1177
  [1] △ .claude/commands/supervisor.md — retired name, user edits detected.
1154
1178
  Merge into review-plan.md before deleting. Delete old file?
1155
1179
  [2] 〇 .forge/workflows/architect_sprint_plan.md — legacy model: field detected.
1156
- Will be auto-migrated by /forge:regenerate workflows. No action needed.
1180
+ Will be auto-migrated by /forge:rebuild workflows. No action needed.
1157
1181
  [3] 〇 pipeline "main" phase 3 — no workflow field.
1158
1182
  Add: "workflow": "engineering/commands/qa.md"
1159
1183
  [4] 〇 pipeline "main" phase 4 — command file missing.
@@ -1287,8 +1311,7 @@ Proceed to **Step 6**.
1287
1311
  ## Step 6 — Record state and summarise
1288
1312
 
1289
1313
  ```sh
1290
- node "$FORGE_ROOT/tools/banners.cjs" --phase 6 7 "Record state" drift \
1291
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
1314
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 6 7 "Record state" drift
1292
1315
  ```
1293
1316
 
1294
1317
  > **Note:** `paths.forgeRoot` and `paths.forgeRef` were already written at the start
@@ -1347,29 +1370,12 @@ Print the final summary:
1347
1370
  Subagent isolation: {used | bypassed (inline)}
1348
1371
  ```
1349
1372
 
1350
- **Fast-mode promotion hint.** After printing the summary, read
1351
- `.forge/config.json` `mode`:
1352
-
1353
- ```sh
1354
- CURRENT_MODE=$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo "unset")
1355
- ```
1356
-
1357
- If `CURRENT_MODE == "fast"`, also emit:
1358
-
1359
- ```
1360
- 〇 Migration applied in fast mode. Materialized artifacts refreshed; stubs will pick up changes on first use.
1361
- 〇 To fully promote: /forge:config mode full
1362
- ```
1363
-
1364
- This is informational only — no behavioural change. Do not block on it.
1365
-
1366
1373
  ---
1367
1374
 
1368
1375
  ## Step 7 — Link KB to Agent Instruction Files
1369
1376
 
1370
1377
  ```sh
1371
- node "$FORGE_ROOT/tools/banners.cjs" --phase 7 7 "Tomoshibi" lumen \
1372
- "$(node "$FORGE_ROOT/tools/manage-config.cjs" get mode 2>/dev/null || echo full)"
1378
+ node "$FORGE_ROOT/tools/banners.cjs" --phase 7 7 "Tomoshibi" lumen
1373
1379
  ```
1374
1380
 
1375
1381
  Invoke Tomoshibi to ensure every coding-agent instruction file in the project
@@ -162,7 +162,7 @@ if (hasForge && projectCache && projectCache.updateStatus === 'pending') {
162
162
  : '(unknown)';
163
163
  pendingStateMsg =
164
164
  `Forge update is incomplete — pending migration(s): ${pendingMigrations}.` +
165
- ` Run /forge:update to continue or /forge:migrate to complete.`;
165
+ ` Run /forge:update to continue or /forge:init --migrate to complete.`;
166
166
  }
167
167
 
168
168
  const elapsed = pluginCache ? now - (pluginCache.lastCheck || 0) : Infinity;
@@ -4,7 +4,7 @@
4
4
  // Forge hook: post-init
5
5
  // PostToolUse hook that fires once at the END of a successful /forge:init
6
6
  // Phase 4 (NOT on Resume "start over" or stale-checkpoint cleanup) and
7
- // invokes /forge:enhance --phase 1 --auto.
7
+ // invokes /forge:rebuild --enrich --phase 1 --auto.
8
8
  //
9
9
  // Trigger detection uses a positive end-of-flow signal: the hook matches
10
10
  // `rm -f .forge/init-progress.json` AND requires `.forge/structure-versions.json`
@@ -112,7 +112,7 @@ try {
112
112
  hookSpecificOutput: {
113
113
  hookEventName: 'PostToolUse',
114
114
  additionalContext:
115
- 'Forge: /forge:init has completed Phase 4. Run /forge:enhance --phase 1 --auto to materialise project-specific starter-pack content from the freshly captured structural snapshot.',
115
+ 'Forge: /forge:init has completed Phase 4. Run /forge:rebuild --enrich --phase 1 --auto to materialise project-specific starter-pack content from the freshly captured structural snapshot.',
116
116
  },
117
117
  }) + '\n');
118
118
  } catch (outputErr) { logSwallowedError('post-init:output', outputErr, process.env.CLAUDE_PLUGIN_DATA); }
@@ -4,7 +4,7 @@
4
4
  // Forge hook: post-sprint
5
5
  // PostToolUse hook that fires after a sprint retrospective completes
6
6
  // (`collate.cjs <SPRINT_ID> --purge-events` where the ID matches the
7
- // `*-S\d+` shape) and invokes /forge:enhance --phase 2.
7
+ // `*-S\d+` shape) and invokes /forge:rebuild --enrich --phase 2.
8
8
  //
9
9
  // The sprint-ID shape gate ensures bug-fix invocations like
10
10
  // `collate.cjs FORGE-B07 --purge-events` (which run after every successful
@@ -100,7 +100,7 @@ try {
100
100
  hookSpecificOutput: {
101
101
  hookEventName: 'PostToolUse',
102
102
  additionalContext:
103
- `Forge: sprint ${detectedSprintId} retrospective has completed. Run /forge:enhance --phase 2 to propose KB enhancements derived from the sprint's lessons (proposals are written for review, not auto-applied).`,
103
+ `Forge: sprint ${detectedSprintId} retrospective has completed. Run /forge:rebuild --enrich --phase 2 to propose KB enhancements derived from the sprint's lessons (proposals are written for review, not auto-applied).`,
104
104
  },
105
105
  }) + '\n');
106
106
  } catch (outputErr) { logSwallowedError('post-sprint:output', outputErr, process.env.CLAUDE_PLUGIN_DATA); }
@@ -24,7 +24,7 @@ const FORGE_PATTERNS = [
24
24
  /engineering\/tools\//,
25
25
  /forge:init/,
26
26
  /forge:health/,
27
- /forge:regenerate/,
27
+ /forge:rebuild/,
28
28
  /forge:update/,
29
29
  /forge:add-pipeline/,
30
30
  /forge:add-task/,
@@ -33,21 +33,22 @@ const FORGE_PATTERNS = [
33
33
  /forge:approve/,
34
34
  /forge:commit/,
35
35
  /forge:review/,
36
- /forge:sprint/,
36
+ /forge:new-sprint/,
37
+ /forge:plan-sprint/,
37
38
  /forge:run-task/,
38
39
  /forge:run-sprint/,
39
40
  /forge:fix-bug/,
40
- /forge:retrospective/,
41
- /forge:quiz-agent/,
41
+ /forge:retro/,
42
+ /forge:check-agent/,
42
43
  /forge:report-bug/,
43
- /forge:enhance/,
44
- /forge:collate/,
44
+ // forge:enhance removed in v1.0 (T03) — absorbed into forge:rebuild --enrich
45
+ // forge:collate removed from user-facing surface in v1.0 (T03) — internal tool only
45
46
  /forge:validate/,
46
- /forge:calibrate/,
47
- /forge:materialize/,
47
+ // forge:calibrate removed in v1.0 (T03) — absorbed into forge:health --fix (T04)
48
+ // forge:materialize removed in v1.0 (T03) — fast-mode eliminated in T01
48
49
  /forge:remove/,
49
- /forge:store-query/,
50
- /forge:store-repair/,
50
+ /forge:search/,
51
+ /forge:repair/,
51
52
  /forge:store-custodian/,
52
53
  /forge:config/,
53
54
  /forge:ask/,