@entelligentsia/forgecli 0.21.0 → 1.0.2

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 (297) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +31 -33
  3. package/dist/CHANGELOG-forge-plugin.md +118 -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/calibrate.js +11 -8
  15. package/dist/extensions/forgecli/calibrate.js.map +1 -1
  16. package/dist/extensions/forgecli/collate.js +1 -1
  17. package/dist/extensions/forgecli/collate.js.map +1 -1
  18. package/dist/extensions/forgecli/commit.js +17 -2
  19. package/dist/extensions/forgecli/commit.js.map +1 -1
  20. package/dist/extensions/forgecli/enhance.js +1 -1
  21. package/dist/extensions/forgecli/enhance.js.map +1 -1
  22. package/dist/extensions/forgecli/forge-artifact-tool.d.ts +6 -8
  23. package/dist/extensions/forgecli/forge-artifact-tool.js +80 -195
  24. package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
  25. package/dist/extensions/forgecli/forge-commands.js +57 -18
  26. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  27. package/dist/extensions/forgecli/forge-init/phase4-register.js +6 -7
  28. package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
  29. package/dist/extensions/forgecli/forge-init/run-phases.d.ts +4 -0
  30. package/dist/extensions/forgecli/forge-init/run-phases.js +304 -0
  31. package/dist/extensions/forgecli/forge-init/run-phases.js.map +1 -0
  32. package/dist/extensions/forgecli/forge-init/verifiers.d.ts +14 -5
  33. package/dist/extensions/forgecli/forge-init/verifiers.js +79 -62
  34. package/dist/extensions/forgecli/forge-init/verifiers.js.map +1 -1
  35. package/dist/extensions/forgecli/forge-init.js +131 -76
  36. package/dist/extensions/forgecli/forge-init.js.map +1 -1
  37. package/dist/extensions/forgecli/forge-subagent.d.ts +9 -0
  38. package/dist/extensions/forgecli/forge-subagent.js +11 -6
  39. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  40. package/dist/extensions/forgecli/forge-tools.d.ts +28 -4
  41. package/dist/extensions/forgecli/forge-tools.js +122 -73
  42. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  43. package/dist/extensions/forgecli/health-check.js +3 -3
  44. package/dist/extensions/forgecli/health-check.js.map +1 -1
  45. package/dist/extensions/forgecli/hook-dispatcher.d.ts +1 -1
  46. package/dist/extensions/forgecli/hooks/check-update.d.ts +8 -0
  47. package/dist/extensions/forgecli/hooks/check-update.js +29 -1
  48. package/dist/extensions/forgecli/hooks/check-update.js.map +1 -1
  49. package/dist/extensions/forgecli/hooks/post-init-hook.js +6 -6
  50. package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -1
  51. package/dist/extensions/forgecli/hooks/post-sprint-hook.js +6 -6
  52. package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -1
  53. package/dist/extensions/forgecli/hooks/triage-error.js +1 -0
  54. package/dist/extensions/forgecli/hooks/triage-error.js.map +1 -1
  55. package/dist/extensions/forgecli/implement.js +20 -2
  56. package/dist/extensions/forgecli/implement.js.map +1 -1
  57. package/dist/extensions/forgecli/index.js +39 -32
  58. package/dist/extensions/forgecli/index.js.map +1 -1
  59. package/dist/extensions/forgecli/lib/pipeline-guard.d.ts +41 -0
  60. package/dist/extensions/forgecli/lib/pipeline-guard.js +100 -0
  61. package/dist/extensions/forgecli/lib/pipeline-guard.js.map +1 -0
  62. package/dist/extensions/forgecli/loaders/persona-skill-loader.js +2 -2
  63. package/dist/extensions/forgecli/loaders/persona-skill-loader.js.map +1 -1
  64. package/dist/extensions/forgecli/migrate.d.ts +3 -0
  65. package/dist/extensions/forgecli/migrate.js +4 -2
  66. package/dist/extensions/forgecli/migrate.js.map +1 -1
  67. package/dist/extensions/forgecli/plan.js +21 -2
  68. package/dist/extensions/forgecli/plan.js.map +1 -1
  69. package/dist/extensions/forgecli/quiz-agent.js +7 -7
  70. package/dist/extensions/forgecli/quiz-agent.js.map +1 -1
  71. package/dist/extensions/forgecli/regenerate.js +49 -18
  72. package/dist/extensions/forgecli/regenerate.js.map +1 -1
  73. package/dist/extensions/forgecli/remove-command.js +1 -1
  74. package/dist/extensions/forgecli/remove-command.js.map +1 -1
  75. package/dist/extensions/forgecli/report-bug.js +1 -1
  76. package/dist/extensions/forgecli/report-bug.js.map +1 -1
  77. package/dist/extensions/forgecli/retrospective.js +9 -9
  78. package/dist/extensions/forgecli/retrospective.js.map +1 -1
  79. package/dist/extensions/forgecli/review-code.d.ts +13 -0
  80. package/dist/extensions/forgecli/review-code.js +62 -3
  81. package/dist/extensions/forgecli/review-code.js.map +1 -1
  82. package/dist/extensions/forgecli/review-plan.d.ts +13 -0
  83. package/dist/extensions/forgecli/review-plan.js +65 -3
  84. package/dist/extensions/forgecli/review-plan.js.map +1 -1
  85. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +2 -1
  86. package/dist/extensions/forgecli/skill-curator-subagent.js +2 -1
  87. package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -1
  88. package/dist/extensions/forgecli/sprint-intake.js +6 -6
  89. package/dist/extensions/forgecli/sprint-intake.js.map +1 -1
  90. package/dist/extensions/forgecli/sprint-plan.js +9 -9
  91. package/dist/extensions/forgecli/sprint-plan.js.map +1 -1
  92. package/dist/extensions/forgecli/status-command.js +1 -1
  93. package/dist/extensions/forgecli/status-command.js.map +1 -1
  94. package/dist/extensions/forgecli/store-query.js +11 -11
  95. package/dist/extensions/forgecli/store-query.js.map +1 -1
  96. package/dist/extensions/forgecli/store-repair.js +7 -7
  97. package/dist/extensions/forgecli/store-repair.js.map +1 -1
  98. package/dist/extensions/forgecli/validate.js +17 -2
  99. package/dist/extensions/forgecli/validate.js.map +1 -1
  100. package/dist/forge-payload/.base-pack/commands/check-agent.md +22 -0
  101. package/dist/forge-payload/.base-pack/commands/new-sprint.md +22 -0
  102. package/dist/forge-payload/.base-pack/commands/plan-sprint.md +22 -0
  103. package/dist/forge-payload/.base-pack/commands/quiz-agent.md +2 -18
  104. package/dist/forge-payload/.base-pack/commands/retro.md +22 -0
  105. package/dist/forge-payload/.base-pack/commands/retrospective.md +2 -18
  106. package/dist/forge-payload/.base-pack/commands/sprint-intake.md +2 -18
  107. package/dist/forge-payload/.base-pack/commands/sprint-plan.md +2 -18
  108. package/dist/forge-payload/.base-pack/workflows/_fragments/friction-emit.md +2 -2
  109. package/dist/forge-payload/.base-pack/workflows/_fragments/generation-instructions.md +4 -4
  110. package/dist/forge-payload/.base-pack/workflows/_fragments/iron-laws.md +1 -1
  111. package/dist/forge-payload/.base-pack/workflows/architect_approve.md +13 -1
  112. package/dist/forge-payload/.base-pack/workflows/commit_task.md +12 -1
  113. package/dist/forge-payload/.base-pack/workflows/enhance.md +6 -6
  114. package/dist/forge-payload/.base-pack/workflows/fix_bug.md +1 -1
  115. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +14 -2
  116. package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +2 -2
  117. package/dist/forge-payload/.base-pack/workflows/orchestrate_task.md +20 -4
  118. package/dist/forge-payload/.base-pack/workflows/plan_task.md +14 -2
  119. package/dist/forge-payload/.base-pack/workflows/review_code.md +37 -7
  120. package/dist/forge-payload/.base-pack/workflows/review_plan.md +36 -6
  121. package/dist/forge-payload/.base-pack/workflows/run_sprint.md +2 -2
  122. package/dist/forge-payload/.base-pack/workflows/validate_task.md +37 -7
  123. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  124. package/dist/forge-payload/.schemas/config.schema.json +0 -5
  125. package/dist/forge-payload/.schemas/enum-catalog.json +9 -13
  126. package/dist/forge-payload/.schemas/migrations.json +54 -0
  127. package/dist/forge-payload/agents/tomoshibi.md +150 -6
  128. package/dist/forge-payload/commands/add-pipeline.md +1 -1
  129. package/dist/forge-payload/commands/add-task.md +1 -1
  130. package/dist/forge-payload/commands/calibrate.md +4 -350
  131. package/dist/forge-payload/commands/check-agent.md +38 -0
  132. package/dist/forge-payload/commands/config.md +3 -113
  133. package/dist/forge-payload/commands/enhance.md +5 -32
  134. package/dist/forge-payload/commands/health.md +155 -13
  135. package/dist/forge-payload/commands/init.md +25 -31
  136. package/dist/forge-payload/commands/migrate.md +6 -154
  137. package/dist/forge-payload/commands/quiz-agent.md +2 -34
  138. package/dist/forge-payload/commands/rebuild.md +664 -0
  139. package/dist/forge-payload/commands/regenerate.md +2 -774
  140. package/dist/forge-payload/commands/remove.md +10 -13
  141. package/dist/forge-payload/commands/repair.md +187 -0
  142. package/dist/forge-payload/commands/search.md +73 -0
  143. package/dist/forge-payload/commands/status.md +105 -0
  144. package/dist/forge-payload/commands/store-query.md +2 -69
  145. package/dist/forge-payload/commands/store-repair.md +2 -183
  146. package/dist/forge-payload/commands/update-tools.md +4 -50
  147. package/dist/forge-payload/commands/update.md +64 -58
  148. package/dist/forge-payload/hooks/check-update.cjs +1 -1
  149. package/dist/forge-payload/hooks/post-init.cjs +2 -2
  150. package/dist/forge-payload/hooks/post-sprint.cjs +2 -2
  151. package/dist/forge-payload/hooks/triage-error.cjs +11 -10
  152. package/dist/forge-payload/init/phases/phase-1-collect.md +138 -0
  153. package/dist/forge-payload/init/phases/phase-2-discover.md +127 -0
  154. package/dist/forge-payload/init/phases/phase-3-materialize.md +113 -0
  155. package/dist/forge-payload/init/phases/phase-4-register.md +159 -0
  156. package/dist/forge-payload/integrity.json +21 -24
  157. package/dist/forge-payload/meta/fragments/tool-discipline.md +22 -0
  158. package/dist/forge-payload/meta/templates/meta-retro.md +28 -0
  159. package/dist/forge-payload/meta/workflows/_fragments/friction-emit.md +2 -2
  160. package/dist/forge-payload/meta/workflows/_fragments/generation-instructions.md +4 -4
  161. package/dist/forge-payload/meta/workflows/_fragments/iron-laws.md +1 -1
  162. package/dist/forge-payload/meta/workflows/meta-approve.md +13 -1
  163. package/dist/forge-payload/meta/workflows/meta-check-agent.md +138 -0
  164. package/dist/forge-payload/meta/workflows/meta-commit.md +12 -1
  165. package/dist/forge-payload/meta/workflows/meta-enhance.md +5 -5
  166. package/dist/forge-payload/meta/workflows/meta-fix-bug.md +1 -1
  167. package/dist/forge-payload/meta/workflows/meta-implement.md +13 -1
  168. package/dist/forge-payload/meta/workflows/meta-migrate.md +3 -3
  169. package/dist/forge-payload/meta/workflows/meta-new-sprint.md +84 -0
  170. package/dist/forge-payload/meta/workflows/meta-orchestrate.md +20 -4
  171. package/dist/forge-payload/meta/workflows/meta-plan-sprint.md +152 -0
  172. package/dist/forge-payload/meta/workflows/meta-plan-task.md +13 -1
  173. package/dist/forge-payload/meta/workflows/meta-retro.md +73 -0
  174. package/dist/forge-payload/meta/workflows/meta-review-implementation.md +37 -7
  175. package/dist/forge-payload/meta/workflows/meta-review-plan.md +36 -6
  176. package/dist/forge-payload/meta/workflows/meta-validate.md +37 -7
  177. package/dist/forge-payload/schemas/config.schema.json +0 -5
  178. package/dist/forge-payload/schemas/enum-catalog.json +9 -13
  179. package/dist/forge-payload/schemas/structure-manifest.json +6 -8
  180. package/dist/forge-payload/tools/artifact.cjs +295 -0
  181. package/dist/forge-payload/tools/banners.cjs +3 -4
  182. package/dist/forge-payload/tools/build-context-pack.cjs +1 -1
  183. package/dist/forge-payload/tools/check-structure.cjs +8 -3
  184. package/dist/forge-payload/tools/store-cli.cjs +67 -7
  185. package/dist/forge-payload/tools/substitute-placeholders.cjs +1 -1
  186. package/dist/forge-payload/tools/verify-apply.cjs +75 -0
  187. package/dist/forge-payload/tools/verify-phase.cjs +259 -0
  188. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  189. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +0 -17
  190. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  191. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +21 -38
  192. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  193. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
  194. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +5 -4
  195. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  196. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +2 -1
  197. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  198. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +5 -2
  199. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  200. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  201. package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +24 -1
  202. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.d.ts.map +1 -1
  203. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +2 -3
  204. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js.map +1 -1
  205. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.d.ts +1 -0
  206. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.d.ts.map +1 -1
  207. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js +52 -22
  208. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js.map +1 -1
  209. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  210. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +16 -4
  211. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  212. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
  213. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +45 -50
  214. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
  215. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -1
  216. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +43 -81
  217. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js.map +1 -1
  218. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  219. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.js +27 -12
  220. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.js.map +1 -1
  221. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  222. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +2 -3
  223. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  224. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
  225. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +3 -3
  226. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
  227. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
  228. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +5 -5
  229. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
  230. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.d.ts +2 -0
  231. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.d.ts.map +1 -1
  232. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js +37 -0
  233. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js.map +1 -1
  234. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
  235. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +9 -8
  236. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
  237. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
  238. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +20 -35
  239. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
  240. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +3 -0
  241. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  242. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +64 -7
  243. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -1
  244. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  245. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +15 -3
  246. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  247. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.d.ts +3 -1
  248. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.d.ts.map +1 -1
  249. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js +14 -8
  250. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js.map +1 -1
  251. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.d.ts +30 -0
  252. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.d.ts.map +1 -0
  253. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js +124 -0
  254. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js.map +1 -0
  255. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.d.ts +2 -0
  256. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.d.ts.map +1 -0
  257. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js +31 -0
  258. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js.map +1 -0
  259. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts +7 -27
  260. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -1
  261. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js +75 -115
  262. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
  263. package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +6 -0
  264. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
  265. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  266. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
  267. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
  268. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -14
  269. package/node_modules/@earendil-works/pi-coding-agent/package.json +5 -5
  270. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts +3 -0
  271. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -0
  272. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +53 -0
  273. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -0
  274. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
  275. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +4 -1
  276. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
  277. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +2 -0
  278. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  279. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +13 -1
  280. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  281. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  282. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  283. package/node_modules/@earendil-works/pi-tui/package.json +2 -2
  284. package/package.json +6 -6
  285. package/dist/extensions/forgecli/forge-init/phase-descriptors.d.ts +0 -72
  286. package/dist/extensions/forgecli/forge-init/phase-descriptors.js +0 -359
  287. package/dist/extensions/forgecli/forge-init/phase-descriptors.js.map +0 -1
  288. package/dist/extensions/forgecli/forge-init/prompts.d.ts +0 -10
  289. package/dist/extensions/forgecli/forge-init/prompts.js +0 -91
  290. package/dist/extensions/forgecli/forge-init/prompts.js.map +0 -1
  291. package/dist/extensions/forgecli/lib/store-error-remediation.d.ts +0 -65
  292. package/dist/extensions/forgecli/lib/store-error-remediation.js +0 -298
  293. package/dist/extensions/forgecli/lib/store-error-remediation.js.map +0 -1
  294. package/dist/forge-payload/hooks/check-update.js +0 -378
  295. package/dist/forge-payload/hooks/forge-permissions.js +0 -164
  296. package/dist/forge-payload/hooks/triage-error.js +0 -77
  297. package/dist/forge-payload/hooks/validate-write.js +0 -250
@@ -36,43 +36,73 @@ deps:
36
36
 
37
37
  ```
38
38
 
39
- 0. Pre-flight Gate Check:
39
+ 0a. Pre-flight Gate Check:
40
40
  - Resolve FORGE_ROOT (`node -e "console.log(require('./.forge/config.json').paths.forgeRoot)"`).
41
41
  - **Entity-mode resolution:** read the kickoff arguments. `--task {id}` → `entity_kind = "task"`, `record_id = {id}`. `--bug {id}` → `entity_kind = "bug"`, `record_id = {id}`. All store-cli calls below substitute `{entity_kind}` and `{record_id}` for the literal "task"/{taskId} placeholders.
42
42
  - Run: `node "$FORGE_ROOT/tools/preflight-gate.cjs" --phase review-code --{entity_kind} {record_id}`
43
43
  - Exit 1 (gate failed) → print stderr and HALT. Do not proceed; do not attempt to produce the artifact.
44
44
  - Exit 2 (misconfiguration) → print stderr and HALT.
45
45
  - Exit 0 → continue.
46
- 1. Load Context:
46
+
47
+ 0b. Pipeline Step Guard (user-invoked state check):
48
+ - If `--force` is present in the invocation arguments, skip this step entirely.
49
+ - If `entity_kind == "bug"`, skip this step entirely (bug state is managed by meta-fix-bug.md).
50
+ - Read current task state:
51
+ `node "$FORGE_ROOT/tools/store-cli.cjs" read task {record_id} --json`
52
+ - Extract the `status` field from the JSON output.
53
+ - Allowed states for this phase: `implemented`, `implementing`.
54
+ - If the current status is NOT in the allowed set:
55
+ Print the following and HALT (do not proceed):
56
+ `× Task {record_id} is in state '{status}' — /forge:implement must complete first. To run the full pipeline: /forge:run-task {record_id}`
57
+
58
+ 1. Read Review Loop Context:
59
+ - Check the spawning prompt for a `### Review Loop Context` block.
60
+ - If present, extract:
61
+ - `Iteration: N of M` — current attempt number and the configured limit
62
+ - `Is final iteration: true/false`
63
+ - If absent (user-invoked, not orchestrated): treat as iteration 1 of M, where M is
64
+ read from `.forge/config.json` → `maxReviewIterations` (default 3 if field absent).
65
+ - Include `(iteration N of M)` in the opening line of the `CODE_REVIEW.md` artifact.
66
+ - If this is the final iteration (`N == M`) and the verdict is `Revision Required`,
67
+ append a `### Next Steps` section to the artifact showing:
68
+ ```
69
+ ### Next Steps
70
+ - Force-approve (bypass remaining reviews): `/forge:approve --force {task_id}`
71
+ - Increase iteration limit: edit `config.pipelines.{pipeline}.phases[review-code].maxIterations`
72
+ - Restart from review: `/forge:review-code {task_id}`
73
+ ```
74
+
75
+ 2. Load Context:
47
76
  - Read task prompt
48
77
  - Read approved PLAN.md
49
78
  - Read PROGRESS.md
50
79
 
51
80
  **Read mode: diff-first.** Read `git diff $(git merge-base HEAD origin/main)..HEAD -- <files-listed-in-PLAN>` first. Read full source files only when the diff context is insufficient to judge a finding (e.g., the change is an inversion of an invariant defined elsewhere). Do not pre-load full source — tool calls earn their tokens.
52
81
 
53
- 2. Review:
82
+ 3. Review:
54
83
  - Verify all plan steps were executed
55
84
  - Review code for quality, security, and architecture alignment
56
85
  - Verify test evidence in PROGRESS.md is authentic and complete
57
86
 
58
- 3. Verdict:
87
+ 4. Verdict:
59
88
  - Write the code review via forge_artifact:
60
89
  `forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"code-review", content:"<markdown>" })`
61
90
  Use the format:
62
91
  **Verdict:** [Approved | Revision Required]
63
92
  - If Revision Required: provide numbered, actionable items
64
93
  - If Approved: provide any advisory notes
94
+ - See step 1 for iteration header and final-iteration Next Steps requirements.
65
95
 
66
- 4. Knowledge Writeback:
96
+ 5. Knowledge Writeback:
67
97
  - Update stack-checklist.md if new patterns or pitfalls were discovered
68
98
 
69
- 5. Finalize:
99
+ 6. Finalize:
70
100
  - Transitions:
71
101
  - **Task mode** — Update status: `node "$FORGE_ROOT/tools/store-cli.cjs" update-status task {taskId} status review-approved` (if Approved) or `... status code-revision-required` (if Revision Required).
72
102
  - **Bug mode** — NO status write. The bug remains `in-progress`. The verdict signal travels through `summaries.code_review.verdict` (read by `read-verdict.cjs § BUG_PHASE_VERDICT_SOURCE`), not `bug.status`. Writing `bug.status` here violates `meta-fix-bug.md § Iron Laws #2`.
73
103
  - **Do NOT emit a phase event yourself.** The orchestrator (or kickoff handler) owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
74
104
 
75
- 6. Emit Summary Sidecar:
105
+ 7. Emit Summary Sidecar:
76
106
  - Write the review summary via forge_artifact:
77
107
  `forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"review-impl-summary", content:"<JSON>" })`
78
108
  The JSON shape:
@@ -38,30 +38,60 @@ deps:
38
38
 
39
39
  ```
40
40
 
41
- 0. Pre-flight Gate Check:
41
+ 0a. Pre-flight Gate Check:
42
42
  - Resolve FORGE_ROOT (`node -e "console.log(require('./.forge/config.json').paths.forgeRoot)"`).
43
43
  - **Entity-mode resolution:** read the kickoff arguments. `--task {id}` → `entity_kind = "task"`, `record_id = {id}`. `--bug {id}` → `entity_kind = "bug"`, `record_id = {id}`. All store-cli calls below substitute `{entity_kind}` and `{record_id}` for the literal "task"/{taskId} placeholders.
44
44
  - Run: `node "$FORGE_ROOT/tools/preflight-gate.cjs" --phase review-plan --{entity_kind} {record_id}`
45
45
  - Exit 1 (gate failed) → print stderr and HALT. Do not proceed; do not attempt to produce the artifact.
46
46
  - Exit 2 (misconfiguration) → print stderr and HALT.
47
47
  - Exit 0 → continue.
48
- 1. Load Context:
48
+
49
+ 0b. Pipeline Step Guard (user-invoked state check):
50
+ - If `--force` is present in the invocation arguments, skip this step entirely.
51
+ - If `entity_kind == "bug"`, skip this step entirely (bug state is managed by meta-fix-bug.md).
52
+ - Read current task state:
53
+ `node "$FORGE_ROOT/tools/store-cli.cjs" read task {record_id} --json`
54
+ - Extract the `status` field from the JSON output.
55
+ - Allowed states for this phase: `planned`.
56
+ - If the current status is NOT in the allowed set:
57
+ Print the following and HALT (do not proceed):
58
+ `× Task {record_id} is in state '{status}' — /forge:plan must complete first. To run the full pipeline: /forge:run-task {record_id}`
59
+
60
+ 1. Read Review Loop Context:
61
+ - Check the spawning prompt for a `### Review Loop Context` block.
62
+ - If present, extract:
63
+ - `Iteration: N of M` — current attempt number and the configured limit
64
+ - `Is final iteration: true/false`
65
+ - If absent (user-invoked, not orchestrated): treat as iteration 1 of M, where M is
66
+ read from `.forge/config.json` → `maxReviewIterations` (default 3 if field absent).
67
+ - Include `(iteration N of M)` in the opening line of the `PLAN_REVIEW.md` artifact.
68
+ - If this is the final iteration (`N == M`) and the verdict is `Revision Required`,
69
+ append a `### Next Steps` section to the artifact showing:
70
+ ```
71
+ ### Next Steps
72
+ - Force-approve (bypass remaining reviews): `/forge:approve --force {task_id}`
73
+ - Increase iteration limit: edit `config.pipelines.{pipeline}.phases[review-plan].maxIterations`
74
+ - Restart from review: `/forge:review-plan {task_id}`
75
+ ```
76
+
77
+ 2. Load Context:
49
78
  - Read task prompt (source of truth)
50
79
  - Read PLAN.md (subject of review)
51
80
  - Read stack checklist if available
52
81
 
53
- 2. Review:
82
+ 3. Review:
54
83
  - Evaluate feasibility, completeness, security, architecture alignment, and testing strategy
55
84
  - Identify missing edge cases or failure modes
56
85
 
57
- 3. Verdict:
86
+ 4. Verdict:
58
87
  - Write the plan review via forge_artifact: forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"plan-review", content:"<markdown>" })
59
88
  Use the format:
60
89
  **Verdict:** [Approved | Revision Required]
61
90
  - If Revision Required: provide numbered, actionable items
62
91
  - If Approved: provide any advisory notes
92
+ - See step 1 for iteration header and final-iteration Next Steps requirements.
63
93
 
64
- 4. Finalize:
94
+ 5. Finalize:
65
95
  - Transitions:
66
96
  - **Task mode** — predecessor must be `planned`.
67
97
  - Approved → `plan-approved`
@@ -71,7 +101,7 @@ deps:
71
101
  - **Bug mode** — NO status write. The bug remains `in-progress`. The verdict signal travels through `summaries.review_plan.verdict` (read by `read-verdict.cjs § BUG_PHASE_VERDICT_SOURCE`), not `bug.status`. Writing `bug.status` here violates `meta-fix-bug.md § Iron Laws #2`.
72
102
  - **Do NOT emit a phase event yourself.** The orchestrator owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
73
103
 
74
- 5. Emit Summary Sidecar:
104
+ 6. Emit Summary Sidecar:
75
105
  - Write the review-plan summary via forge_artifact: forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"review-plan-summary", content:"<JSON>" })
76
106
  The JSON must have the following shape:
77
107
  ```json
@@ -181,7 +181,7 @@ Once all tasks have reached a terminal status:
181
181
  ── Carried over / abandoned: N tasks
182
182
  ```
183
183
  3. Update sprint `status` to `completed` or `partially-completed`
184
- 4. Suggest: "Run `/forge:retrospective {SPRINT_ID}` to close out the sprint."
184
+ 4. Suggest: "Run `/forge:retro {SPRINT_ID}` to close out the sprint."
185
185
 
186
186
  ## Sprint Lifecycle Hooks
187
187
 
@@ -189,7 +189,7 @@ Once all tasks have reached a terminal status:
189
189
  |---|---|---|
190
190
  | `collate` | After all tasks terminal | Run `node "$FORGE_ROOT/tools/collate.cjs"` |
191
191
  | `report` | After collation | Print outcome summary (committed/escalated/carried-over counts) |
192
- | `suggest` | After report | Suggest `/forge:retrospective {SPRINT_ID}` |
192
+ | `suggest` | After report | Suggest `/forge:retro {SPRINT_ID}` |
193
193
 
194
194
  ## Resume Semantics
195
195
 
@@ -36,38 +36,68 @@ deps:
36
36
 
37
37
  ```
38
38
 
39
- 0. Pre-flight Gate Check:
39
+ 0a. Pre-flight Gate Check:
40
40
  - Resolve FORGE_ROOT (`node -e "console.log(require('./.forge/config.json').paths.forgeRoot)"`).
41
- - Run: `node "$FORGE_ROOT/tools/preflight-gate.cjs" --phase validate --task {taskId}`
41
+ - **Entity-mode resolution:** read the kickoff arguments. `--task {id}` → `entity_kind = "task"`, `record_id = {id}`. `--bug {id}` → `entity_kind = "bug"`, `record_id = {id}`. All store-cli calls below substitute `{entity_kind}` and `{record_id}` for the literal "task"/{taskId} placeholders.
42
+ - Run: `node "$FORGE_ROOT/tools/preflight-gate.cjs" --phase validate --{entity_kind} {record_id}`
42
43
  - Exit 1 (gate failed) → print stderr and HALT. Do not proceed; do not attempt to produce the artifact.
43
44
  - Exit 2 (misconfiguration) → print stderr and HALT.
44
45
  - Exit 0 → continue.
45
46
 
46
- 1. Load Context:
47
+ 0b. Pipeline Step Guard (user-invoked state check):
48
+ - If `--force` is present in the invocation arguments, skip this step entirely.
49
+ - If `entity_kind == "bug"`, skip this step entirely (bug state is managed by meta-fix-bug.md).
50
+ - Read current task state:
51
+ `node "$FORGE_ROOT/tools/store-cli.cjs" read task {record_id} --json`
52
+ - Extract the `status` field from the JSON output.
53
+ - Allowed states for this phase: `implemented`, `review-approved`.
54
+ - If the current status is NOT in the allowed set:
55
+ Print the following and HALT (do not proceed):
56
+ `× Task {record_id} is in state '{status}' — /forge:implement must complete first. To run the full pipeline: /forge:run-task {record_id}`
57
+
58
+ 1. Read Review Loop Context:
59
+ - Check the spawning prompt for a `### Review Loop Context` block.
60
+ - If present, extract:
61
+ - `Iteration: N of M` — current attempt number and the configured limit
62
+ - `Is final iteration: true/false`
63
+ - If absent (user-invoked, not orchestrated): treat as iteration 1 of M, where M is
64
+ read from `.forge/config.json` → `maxReviewIterations` (default 3 if field absent).
65
+ - Include `(iteration N of M)` in the opening line of the `VALIDATION_REPORT.md` artifact.
66
+ - If this is the final iteration (`N == M`) and the verdict is `Revision Required`,
67
+ append a `### Next Steps` section to the artifact showing:
68
+ ```
69
+ ### Next Steps
70
+ - Force-approve (bypass remaining reviews): `/forge:approve --force {task_id}`
71
+ - Increase iteration limit: edit `config.pipelines.{pipeline}.phases[validate].maxIterations`
72
+ - Restart from validation: `/forge:validate {task_id}`
73
+ ```
74
+
75
+ 2. Load Context:
47
76
  - Read task prompt
48
77
  - Read approved PLAN.md
49
78
  - Read the implementation
50
79
  - Read PROGRESS.md
51
80
 
52
- 2. Validation:
81
+ 3. Validation:
53
82
  - Execute the "Acceptance Criteria" checklist from the plan
54
83
  - Verify that all technical constraints (e.g., performance, security) are met
55
84
  - Check for any regressions in related functionality
56
85
  - When re-running the test suite, use the **resolved test command** from `commands.test` in `.forge/config.json` (i.e. `` `${commands.test}` ``, e.g. `.venv/bin/python -m pytest`). Template placeholder: {{TEST_COMMAND}}. Do NOT invoke bare `python` / `python3` — the project interpreter is rarely on `$PATH`.
57
86
 
58
- 3. Verdict:
87
+ 4. Verdict:
59
88
  - Write the validation report via:
60
89
  `forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"validation-report", content:"<markdown>" })`
61
90
  The markdown content must use the format:
62
91
  **Verdict:** [Approved | Revision Required]
63
92
  - If Revision Required: list the failed criteria and required fixes
64
93
  - If Approved: confirm the task is validated
94
+ - See step 1 for iteration header and final-iteration Next Steps requirements.
65
95
 
66
- 4. Finalize:
96
+ 5. Finalize:
67
97
  - Update task status via `node "$FORGE_ROOT/tools/store-cli.cjs" update-status task {taskId} status review-approved` (if Approved) or `node "$FORGE_ROOT/tools/store-cli.cjs" update-status task {taskId} status code-revision-required` (if Revision Required)
68
98
  - **Do NOT emit a phase event yourself.** The orchestrator owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
69
99
 
70
- 5. Emit Summary Sidecar:
100
+ 6. Emit Summary Sidecar:
71
101
  - Write the validation summary via:
72
102
  `forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"validation-summary", content:"<JSON>" })`
73
103
  The JSON content must have the following shape:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forge",
3
- "version": "0.51.4",
3
+ "version": "1.0.2",
4
4
  "description": "Self-enhancing AI software development lifecycle — generates project-specific SDLC instances from meta-definitions",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -204,11 +204,6 @@
204
204
  }
205
205
  }
206
206
  }
207
- },
208
- "mode": {
209
- "type": "string",
210
- "enum": ["full", "fast"],
211
- "description": "Init mode. 'fast' means scaffolding was generated by /forge:init --fast (stubs present, heavy artifacts deferred to first use). 'full' means all artifacts are generated. Absent on pre-0.12 projects — treated as 'full' by all readers. Flipped to 'full' by /forge:regenerate (default) or /forge:materialize --all."
212
207
  }
213
208
  },
214
209
  "additionalProperties": false
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.51.4",
3
- "generated": "2026-05-26",
2
+ "version": "1.0.2",
3
+ "generated": "2026-05-27",
4
4
  "note": "Authoritative enum catalog. Source: build-enum-catalog.cjs. Regenerate via node forge/tools/build-manifest.cjs.",
5
5
  "enums": {
6
6
  "task.status": [
@@ -35,34 +35,30 @@
35
35
  ]
36
36
  },
37
37
  "commandNames": [
38
- "forge:sprint-intake",
38
+ "forge:new-sprint",
39
39
  "forge:plan",
40
40
  "forge:review-plan",
41
41
  "forge:implement",
42
42
  "forge:review-code",
43
43
  "forge:fix-bug",
44
- "forge:sprint-plan",
44
+ "forge:plan-sprint",
45
45
  "forge:run-task",
46
46
  "forge:run-sprint",
47
- "forge:collate",
48
- "forge:retrospective",
47
+ "forge:retro",
49
48
  "forge:approve",
50
49
  "forge:commit",
51
- "forge:enhance",
52
- "forge:quiz-agent",
50
+ "forge:check-agent",
53
51
  "forge:validate",
54
52
  "forge:init",
55
53
  "forge:health",
56
- "forge:regenerate",
54
+ "forge:rebuild",
57
55
  "forge:update",
58
56
  "forge:add-task",
59
57
  "forge:add-pipeline",
60
- "forge:calibrate",
61
- "forge:materialize",
62
58
  "forge:remove",
63
59
  "forge:report-bug",
64
- "forge:store-query",
65
- "forge:store-repair",
60
+ "forge:search",
61
+ "forge:repair",
66
62
  "forge:config",
67
63
  "forge:ask",
68
64
  "forge:store-custodian",
@@ -1,4 +1,58 @@
1
1
  {
2
+ "1.0.1": {
3
+ "version": "1.0.2",
4
+ "date": "2026-05-27",
5
+ "notes": "v1.0.2 — deprecated command cleanup + init bug fixes. Redirect stubs removed (old command names are now unknown). paths.commands uses project prefix. artifact.cjs strips trailing filenames from store path. Deprecated command references replaced across all meta sources.",
6
+ "target": "commands,init:phases,init:sdlc-init,tools:artifact",
7
+ "regenerate": ["commands"],
8
+ "breaking": false,
9
+ "manual": [
10
+ "Deprecated command redirect stubs removed. Old names (sprint-intake, sprint-plan, retrospective, regenerate, store-query, store-repair, quiz-agent, calibrate, update-tools, migrate, materialize) are now unknown commands. See docs/migration/v0-to-v1.md for the mapping.",
11
+ "If your project has .claude/commands/<prefix>/sprint-intake.md, sprint-plan.md, retrospective.md, or quiz-agent.md — these are stale and can be deleted."
12
+ ]
13
+ },
14
+ "1.0.0": {
15
+ "version": "1.0.1",
16
+ "date": "2026-05-27",
17
+ "notes": "v1.0.1 — init phase decomposition (FORGE-S26-T17). New shared verify-phase.cjs tool; sdlc-init.md rewritten as thin orchestrator; per-phase prompt files extracted to init/phases/.",
18
+ "target": "tools:verify-phase,init:phases",
19
+ "regenerate": ["tools"],
20
+ "breaking": false,
21
+ "manual": []
22
+ },
23
+ "0.52.1": {
24
+ "version": "1.0.0",
25
+ "date": "2026-05-26",
26
+ "notes": "v1.0.0 — v1.0 DevX Overhaul (FORGE-S26). 7 command renames, 6 command removals, fast-mode dead code removal, health --fix, rebuild --enrich, init --migrate, pipeline step guards, revision loop visibility, post-init welcome, Tomoshibi enhancements, forge:status plugin command, v1.0 documentation restructure.",
27
+ "target": "commands:new-sprint,commands:plan-sprint,commands:retro,commands:rebuild,commands:search,commands:repair,commands:check-agent,commands:calibrate,commands:enhance,commands:migrate,commands:materialize,commands:update-tools,commands:collate,commands:status,workflows:orchestrate_task,workflows:plan_task,workflows:implement_plan,workflows:fix_bug,config:mode",
28
+ "regenerate": ["commands", "workflows", "tools"],
29
+ "breaking": true,
30
+ "manual": [
31
+ "Removed commands: /forge:update-tools, /forge:materialize, /forge:enhance, /forge:calibrate, /forge:migrate, /forge:collate (user surface). Use /forge:update for schema refresh, /forge:rebuild --enrich for enhancement, /forge:health --fix for calibration, /forge:init --migrate for migration.",
32
+ "Renamed commands: /forge:sprint-intake → /forge:new-sprint, /forge:sprint-plan → /forge:plan-sprint, /forge:retrospective → /forge:retro, /forge:regenerate → /forge:rebuild, /forge:store-query → /forge:search, /forge:store-repair → /forge:repair, /forge:quiz-agent → /forge:check-agent. Old names redirect with deprecation notice.",
33
+ "Config: 'mode' field removed from .forge/config.json schema. Remove it manually from existing projects or run /forge:update."
34
+ ]
35
+ },
36
+ "0.52.0": {
37
+ "version": "0.52.1",
38
+ "date": "2026-05-26",
39
+ "notes": "fix(tool-discipline): add forge_artifact and forge_verify_apply discipline lines to meta/fragments/tool-discipline.md — fragment was missing two bullet points present in the FORGE_TOOL_DISCIPLINE TypeScript constant, causing subagents to receive incomplete discipline text when the fragment was present.",
40
+ "target": "fragments:tool-discipline",
41
+ "regenerate": [],
42
+ "breaking": false,
43
+ "manual": []
44
+ },
45
+ "0.51.4": {
46
+ "version": "0.52.0",
47
+ "date": "2026-05-26",
48
+ "notes": "New tools: artifact.cjs, verify-apply.cjs; tool-discipline.md canonical fragment; store-cli list/read --no-summaries, --fields, --limit, --count flags.",
49
+ "target": "tools:artifact,tools:verify-apply,tools:store-cli",
50
+ "regenerate": [
51
+ "tools"
52
+ ],
53
+ "breaking": false,
54
+ "manual": []
55
+ },
2
56
  "0.51.3": {
3
57
  "version": "0.51.4",
4
58
  "date": "2026-05-26",
@@ -65,7 +65,7 @@ Permitted fields: `project.name`, `project.prefix` only.
65
65
 
66
66
  | Field | Impact |
67
67
  |---|---|
68
- | `project.prefix` | △ Requires regeneration — command folder renames from `.claude/commands/{old_lower}/` to `.claude/commands/{new_lower}/`, and generated workflow slash-command references become stale. Run `/forge:regenerate commands workflows` after confirming. |
68
+ | `project.prefix` | △ Requires regeneration — command folder renames from `.claude/commands/{old_lower}/` to `.claude/commands/{new_lower}/`, and generated workflow slash-command references become stale. Run `/forge:rebuild commands workflows` after confirming. |
69
69
 
70
70
  *The prefix is stored as provided but the command namespace is always lowercase.*
71
71
  | `project.name` | 〇 No regeneration needed. |
@@ -106,7 +106,7 @@ remote check — Tomoshibi only knows the locally installed version.
106
106
  ### Workflow or command explanation
107
107
 
108
108
  Triggered by: "how does sprint planning work?", "explain the implement workflow",
109
- "what does /forge:calibrate do?", etc.
109
+ "what does /forge:health --fix do?", etc.
110
110
 
111
111
  Read the relevant file:
112
112
  - Workflows: `.forge/workflows/<name>.md`
@@ -138,6 +138,147 @@ Use the Skill tool:
138
138
 
139
139
  ---
140
140
 
141
+ ### What now?
142
+
143
+ Triggered by (fuzzy, case-insensitive, substring match): "what now", "what should i do", "what's next", "where do i start", "next steps", "get started", "how do i begin"
144
+
145
+ State detection — run in order, stop at first match:
146
+
147
+ **1. No config:**
148
+
149
+ If `HAS_CONFIG` env is false or `manage-config.cjs get project` returns an error:
150
+
151
+ ```
152
+ 灯 No Forge project found here.
153
+ Run /forge:init to create one, then come back and ask again.
154
+ ```
155
+
156
+ **2. No sprints:**
157
+
158
+ ```sh
159
+ node "$FORGE_ROOT/tools/store-cli.cjs" list sprint status=active
160
+ node "$FORGE_ROOT/tools/store-cli.cjs" list sprint status=planning
161
+ ```
162
+
163
+ If both are empty:
164
+
165
+ ```
166
+ 灯 Project initialized, no sprints yet.
167
+ Next step: /forge:new-sprint — start your first sprint by describing what you want to build.
168
+ ```
169
+
170
+ **3. Active sprint — inspect tasks:**
171
+
172
+ ```sh
173
+ node "$FORGE_ROOT/tools/store-cli.cjs" list task status=planned
174
+ node "$FORGE_ROOT/tools/store-cli.cjs" list task status=implementing
175
+ node "$FORGE_ROOT/tools/store-cli.cjs" list task status=committed
176
+ ```
177
+
178
+ Determine sub-state from results:
179
+
180
+ - **All tasks committed** (no planned, no implementing):
181
+ ```
182
+ 灯 Sprint {id} complete — all tasks committed.
183
+ Next step: /forge:retro — capture lessons learned and close the sprint.
184
+ ```
185
+
186
+ - **Any tasks implementing** (n implementing, m planned, k committed):
187
+ ```
188
+ 灯 Sprint {id} in progress — {n} tasks implementing, {m} planned, {k} committed.
189
+ Next step: /forge:run-task {next-planned-task-id} — continue the pipeline.
190
+ ```
191
+
192
+ - **All tasks planned** (none started):
193
+ ```
194
+ 灯 Sprint {id} ready — {n} tasks planned, none started.
195
+ Next step: /forge:run-task {first-task-id} — kick off the first task.
196
+ ```
197
+
198
+ ---
199
+
200
+ ### Commands
201
+
202
+ Triggered by (fuzzy, case-insensitive, substring match): "commands", "help", "available commands", "what commands", "command list", "what can you do", "list commands", "show commands"
203
+
204
+ Respond with this static reference (no shell commands needed):
205
+
206
+ ```
207
+ 灯 Forge v1.0 command reference:
208
+
209
+ Tier 1 — Start here:
210
+ /forge:ask Ask anything — this command
211
+ /forge:init Create a new Forge project
212
+ /forge:new-sprint Start a new sprint (intake)
213
+ /forge:status Current sprint and task overview
214
+ /forge:health Project health check and diagnostics
215
+
216
+ Tier 2 — Sprint workflow:
217
+ /forge:plan-sprint Decompose sprint into tasks
218
+ /forge:run-sprint Run all sprint tasks (automated)
219
+ /forge:run-task Run a single task through the pipeline
220
+ /forge:retro Sprint retrospective
221
+ /forge:rebuild Regenerate workflows, personas, commands
222
+
223
+ Tier 3 — Advanced:
224
+ /forge:search Query the task/sprint/bug store
225
+ /forge:repair Repair store integrity issues
226
+ /forge:check-agent Quiz an agent on project knowledge
227
+ /forge:config View or change project configuration
228
+ /forge:update Check for and install Forge updates
229
+ /forge:remove Remove a task or sprint
230
+ /forge:add-task Add a task to an active sprint
231
+ /forge:add-pipeline Register a custom pipeline
232
+ /forge:report-bug File a Forge bug report
233
+ ```
234
+
235
+ ---
236
+
237
+ ### KB summary
238
+
239
+ Triggered by (fuzzy, case-insensitive, substring match): "what did you find", "show me", "kb summary", "knowledge base", "what's in the kb", "findings", "what do you know", "show kb", "summarize"
240
+
241
+ **1. No config:**
242
+
243
+ If `HAS_CONFIG` is false:
244
+
245
+ ```
246
+ 灯 No project config found — KB summary requires an initialized project.
247
+ Run /forge:init first.
248
+ ```
249
+
250
+ **2. Check calibration baseline:**
251
+
252
+ ```sh
253
+ node "$FORGE_ROOT/tools/manage-config.cjs" get calibrationBaseline 2>/dev/null
254
+ ```
255
+
256
+ - If absent or null → `calibration_status = "× No baseline — run /forge:health --fix to establish one."`
257
+ - If present → `calibration_status = "〇 Baseline established."`
258
+
259
+ **3. Read KB index:**
260
+
261
+ ```sh
262
+ cat "$PROJECT_ROOT/engineering/MASTER_INDEX.md" 2>/dev/null
263
+ ```
264
+
265
+ **4. Present compact summary:**
266
+
267
+ ```
268
+ 灯 Knowledge base summary:
269
+
270
+ KB freshness: {calibration_status}
271
+
272
+ Architecture: {n} sections — {list key architecture topics found}
273
+ Business domain: {n} entities — {list key entities found}
274
+ Features: {n} total — {n} active, {n} completed
275
+ Sprints: {n} total — {n} active, {n} completed, {n} abandoned
276
+
277
+ To explore further: /forge:search — query the store directly.
278
+ ```
279
+
280
+ ---
281
+
141
282
  ### Anything else
142
283
 
143
284
  Ask one clarifying question. Do not guess.
@@ -149,6 +290,9 @@ Ask one clarifying question. Do not guess.
149
290
  ```
150
291
  🏮 灯 Tomoshibi — I can help you with:
151
292
 
293
+ · What now? — context-aware next step based on your current project state
294
+ · Commands — full Forge v1.0 command reference, tiered by use case
295
+ · KB summary — what's in your knowledge base and how fresh it is
152
296
  · Project status — active sprint, open bugs, active features, in-progress tasks
153
297
  · Config queries — show or change project.name / project.prefix
154
298
  · Version — locally installed Forge version
@@ -168,14 +312,14 @@ What would you like to know?
168
312
  |---|---|---|
169
313
  | `.forge/config.json` | Yes | `project.name`, `project.prefix` only — with `[Y/n]` confirm |
170
314
  | `.forge/store/` | `list`/`read` via `store-cli.cjs` only | **Never** — redirect to workflow commands |
171
- | `.forge/workflows/`, `.forge/personas/`, `.forge/skills/` | Yes — to explain content | **Never** — redirect to `/forge:regenerate` |
172
- | `engineering/` KB | Yes — to answer questions | **Never** — redirect to `/forge:calibrate` or sprint commands |
173
- | `.claude/commands/` | Yes — to explain | **Never** — redirect to `/forge:regenerate commands` |
315
+ | `.forge/workflows/`, `.forge/personas/`, `.forge/skills/` | Yes — to explain content | **Never** — redirect to `/forge:rebuild` |
316
+ | `engineering/` KB | Yes — to answer questions | **Never** — redirect to `/forge:health --fix` or sprint commands |
317
+ | `.claude/commands/` | Yes — to explain | **Never** — redirect to `/forge:rebuild commands` |
174
318
  | `forge/` plugin source | No — internal impl detail | **Never** |
175
319
 
176
320
  Forbidden store operations: `write`, `update-status`, `delete`, `emit`, `purge-events`.
177
321
 
178
- Forbidden forge commands to invoke: `/forge:remove`, `/forge:init`, `/forge:migrate` —
322
+ Forbidden forge commands to invoke: `/forge:remove`, `/forge:init` —
179
323
  Tomoshibi can *explain* these but never invokes them.
180
324
 
181
325
  ## Output rules
@@ -329,7 +329,7 @@ On success, print next steps:
329
329
  and fill in any {PLACEHOLDER} sections before running a task.
330
330
  2. Assign this pipeline to a task: set "pipeline": "{NAME}" in the task's
331
331
  .forge/store/tasks/{TASK_ID}.json, or let the sprint planner auto-assign it.
332
- 3. Run /forge:regenerate to update the orchestrator's pipeline routing.
332
+ 3. Run /forge:rebuild to update the orchestrator's pipeline routing.
333
333
  ```
334
334
 
335
335
  ---
@@ -48,7 +48,7 @@ If no `--sprint` argument:
48
48
  - Filter to sprints with status `active` or `planning` (these are the only
49
49
  states where adding tasks makes sense).
50
50
  - If no active/planning sprints exist:
51
- > △ No active or planning sprints found. Create a sprint first using sprint-intake.
51
+ > △ No active or planning sprints found. Create a sprint first using new-sprint.
52
52
  > Exit without making changes.
53
53
  - If only one active/planning sprint: auto-select it and tell the user:
54
54
  > 〇 Auto-selected sprint: **{SPRINT_ID}** — {title}