maestro-flow 0.5.46 → 0.5.48

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 (336) hide show
  1. package/.agents/agents/ralph-executor.md +14 -24
  2. package/.agents/skills/domain-add/SKILL.md +9 -0
  3. package/.agents/skills/learn-decompose/SKILL.md +12 -0
  4. package/.agents/skills/learn-follow/SKILL.md +41 -0
  5. package/.agents/skills/learn-investigate/SKILL.md +14 -0
  6. package/.agents/skills/learn-second-opinion/SKILL.md +14 -0
  7. package/.agents/skills/maestro-amend/SKILL.md +11 -0
  8. package/.agents/skills/maestro-analyze/SKILL.md +13 -13
  9. package/.agents/skills/maestro-companion/SKILL.md +11 -0
  10. package/.agents/skills/maestro-composer/SKILL.md +12 -1
  11. package/.agents/skills/maestro-guard/SKILL.md +25 -0
  12. package/.agents/skills/maestro-help/SKILL.md +2 -0
  13. package/.agents/skills/maestro-help/index/catalog.json +7 -7
  14. package/.agents/skills/maestro-init/SKILL.md +29 -1
  15. package/.agents/skills/maestro-milestone-audit/SKILL.md +2 -2
  16. package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
  17. package/.agents/skills/maestro-next/SKILL.md +2 -2
  18. package/.agents/skills/maestro-overlay/SKILL.md +11 -0
  19. package/.agents/skills/maestro-plan/SKILL.md +31 -9
  20. package/.agents/skills/maestro-player/SKILL.md +11 -0
  21. package/.agents/skills/maestro-quick/SKILL.md +29 -0
  22. package/.agents/skills/maestro-ralph-v2/SKILL.md +26 -50
  23. package/.agents/skills/maestro-roadmap/SKILL.md +2 -2
  24. package/.agents/skills/maestro-swarm-workflow/SKILL.md +25 -0
  25. package/.agents/skills/maestro-tools-execute/SKILL.md +29 -0
  26. package/.agents/skills/maestro-tools-register/SKILL.md +29 -0
  27. package/.agents/skills/maestro-ui-codify/SKILL.md +11 -0
  28. package/.agents/skills/maestro-universal-workflow/SKILL.md +59 -0
  29. package/.agents/skills/maestro-update/SKILL.md +38 -0
  30. package/.agents/skills/manage-codebase-rebuild/SKILL.md +29 -0
  31. package/.agents/skills/manage-drift-realign/SKILL.md +12 -0
  32. package/.agents/skills/manage-harvest/SKILL.md +30 -6
  33. package/.agents/skills/manage-issue/SKILL.md +23 -0
  34. package/.agents/skills/manage-issue-discover/SKILL.md +28 -0
  35. package/.agents/skills/manage-kg-extractors/SKILL.md +27 -1
  36. package/.agents/skills/manage-knowhow/SKILL.md +26 -0
  37. package/.agents/skills/manage-knowhow-capture/SKILL.md +24 -0
  38. package/.agents/skills/manage-knowledge-audit/SKILL.md +13 -0
  39. package/.agents/skills/manage-status/SKILL.md +22 -0
  40. package/.agents/skills/manage-wiki/SKILL.md +28 -0
  41. package/.agents/skills/odyssey-improve/SKILL.md +50 -0
  42. package/.agents/skills/odyssey-planex/SKILL.md +46 -0
  43. package/.agents/skills/odyssey-review-test-fix/SKILL.md +50 -0
  44. package/.agents/skills/odyssey-ui/SKILL.md +50 -0
  45. package/.agents/skills/quality-auto-test/SKILL.md +13 -1
  46. package/.agents/skills/quality-debug/SKILL.md +11 -0
  47. package/.agents/skills/quality-refactor/SKILL.md +11 -0
  48. package/.agents/skills/quality-retrospective/SKILL.md +11 -0
  49. package/.agents/skills/quality-review/SKILL.md +11 -0
  50. package/.agents/skills/quality-sync/SKILL.md +10 -0
  51. package/.agents/skills/quality-test/SKILL.md +12 -0
  52. package/.agents/skills/security-audit/SKILL.md +11 -0
  53. package/.agents/skills/spec-add/SKILL.md +27 -0
  54. package/.agents/skills/spec-load/SKILL.md +25 -0
  55. package/.agents/skills/spec-remove/SKILL.md +26 -0
  56. package/.agents/skills/spec-setup/SKILL.md +30 -0
  57. package/.agy/agents/ralph-executor.md +14 -23
  58. package/.agy/skills/domain-add/SKILL.md +9 -0
  59. package/.agy/skills/learn-decompose/SKILL.md +12 -0
  60. package/.agy/skills/learn-follow/SKILL.md +41 -0
  61. package/.agy/skills/learn-investigate/SKILL.md +14 -0
  62. package/.agy/skills/learn-second-opinion/SKILL.md +14 -0
  63. package/.agy/skills/maestro-amend/SKILL.md +11 -0
  64. package/.agy/skills/maestro-analyze/SKILL.md +13 -13
  65. package/.agy/skills/maestro-companion/SKILL.md +11 -0
  66. package/.agy/skills/maestro-composer/SKILL.md +12 -1
  67. package/.agy/skills/maestro-guard/SKILL.md +25 -0
  68. package/.agy/skills/maestro-help/SKILL.md +2 -0
  69. package/.agy/skills/maestro-help/index/catalog.json +7 -7
  70. package/.agy/skills/maestro-init/SKILL.md +29 -1
  71. package/.agy/skills/maestro-milestone-audit/SKILL.md +2 -2
  72. package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
  73. package/.agy/skills/maestro-next/SKILL.md +2 -2
  74. package/.agy/skills/maestro-overlay/SKILL.md +11 -0
  75. package/.agy/skills/maestro-plan/SKILL.md +31 -9
  76. package/.agy/skills/maestro-player/SKILL.md +11 -0
  77. package/.agy/skills/maestro-quick/SKILL.md +29 -0
  78. package/.agy/skills/maestro-ralph-v2/SKILL.md +26 -50
  79. package/.agy/skills/maestro-roadmap/SKILL.md +2 -2
  80. package/.agy/skills/maestro-swarm-workflow/SKILL.md +25 -0
  81. package/.agy/skills/maestro-tools-execute/SKILL.md +29 -0
  82. package/.agy/skills/maestro-tools-register/SKILL.md +29 -0
  83. package/.agy/skills/maestro-ui-codify/SKILL.md +11 -0
  84. package/.agy/skills/maestro-universal-workflow/SKILL.md +59 -0
  85. package/.agy/skills/maestro-update/SKILL.md +38 -0
  86. package/.agy/skills/manage-codebase-rebuild/SKILL.md +29 -0
  87. package/.agy/skills/manage-drift-realign/SKILL.md +12 -0
  88. package/.agy/skills/manage-harvest/SKILL.md +30 -6
  89. package/.agy/skills/manage-issue/SKILL.md +23 -0
  90. package/.agy/skills/manage-issue-discover/SKILL.md +28 -0
  91. package/.agy/skills/manage-kg-extractors/SKILL.md +27 -1
  92. package/.agy/skills/manage-knowhow/SKILL.md +26 -0
  93. package/.agy/skills/manage-knowhow-capture/SKILL.md +24 -0
  94. package/.agy/skills/manage-knowledge-audit/SKILL.md +13 -0
  95. package/.agy/skills/manage-status/SKILL.md +22 -0
  96. package/.agy/skills/manage-wiki/SKILL.md +28 -0
  97. package/.agy/skills/odyssey-improve/SKILL.md +50 -0
  98. package/.agy/skills/odyssey-planex/SKILL.md +46 -0
  99. package/.agy/skills/odyssey-review-test-fix/SKILL.md +50 -0
  100. package/.agy/skills/odyssey-ui/SKILL.md +50 -0
  101. package/.agy/skills/quality-auto-test/SKILL.md +13 -1
  102. package/.agy/skills/quality-debug/SKILL.md +11 -0
  103. package/.agy/skills/quality-refactor/SKILL.md +11 -0
  104. package/.agy/skills/quality-retrospective/SKILL.md +11 -0
  105. package/.agy/skills/quality-review/SKILL.md +11 -0
  106. package/.agy/skills/quality-sync/SKILL.md +10 -0
  107. package/.agy/skills/quality-test/SKILL.md +12 -0
  108. package/.agy/skills/security-audit/SKILL.md +11 -0
  109. package/.agy/skills/spec-add/SKILL.md +27 -0
  110. package/.agy/skills/spec-load/SKILL.md +25 -0
  111. package/.agy/skills/spec-remove/SKILL.md +26 -0
  112. package/.agy/skills/spec-setup/SKILL.md +30 -0
  113. package/.claude/agents/ralph-executor.md +14 -24
  114. package/.claude/commands/domain-add.md +9 -0
  115. package/.claude/commands/learn-decompose.md +12 -0
  116. package/.claude/commands/learn-follow.md +41 -0
  117. package/.claude/commands/learn-investigate.md +14 -0
  118. package/.claude/commands/learn-second-opinion.md +14 -0
  119. package/.claude/commands/maestro-amend.md +11 -0
  120. package/.claude/commands/maestro-analyze.md +13 -13
  121. package/.claude/commands/maestro-companion.md +11 -0
  122. package/.claude/commands/maestro-composer.md +12 -1
  123. package/.claude/commands/maestro-guard.md +25 -0
  124. package/.claude/commands/maestro-init.md +29 -1
  125. package/.claude/commands/maestro-milestone-audit.md +2 -2
  126. package/.claude/commands/maestro-milestone-release.md +1 -1
  127. package/.claude/commands/maestro-next.md +2 -2
  128. package/.claude/commands/maestro-overlay.md +11 -0
  129. package/.claude/commands/maestro-plan.md +31 -9
  130. package/.claude/commands/maestro-player.md +11 -0
  131. package/.claude/commands/maestro-quick.md +29 -0
  132. package/.claude/commands/maestro-ralph-v2.md +26 -50
  133. package/.claude/commands/maestro-roadmap.md +2 -2
  134. package/.claude/commands/maestro-swarm-workflow.md +25 -0
  135. package/.claude/commands/maestro-tools-execute.md +29 -0
  136. package/.claude/commands/maestro-tools-register.md +29 -0
  137. package/.claude/commands/maestro-ui-codify.md +11 -0
  138. package/.claude/commands/maestro-universal-workflow.md +59 -0
  139. package/.claude/commands/maestro-update.md +38 -0
  140. package/.claude/commands/manage-codebase-rebuild.md +29 -0
  141. package/.claude/commands/manage-drift-realign.md +12 -0
  142. package/.claude/commands/manage-harvest.md +30 -6
  143. package/.claude/commands/manage-issue-discover.md +28 -0
  144. package/.claude/commands/manage-issue.md +23 -0
  145. package/.claude/commands/manage-kg-extractors.md +27 -1
  146. package/.claude/commands/manage-knowhow-capture.md +24 -0
  147. package/.claude/commands/manage-knowhow.md +26 -0
  148. package/.claude/commands/manage-knowledge-audit.md +13 -0
  149. package/.claude/commands/manage-status.md +22 -0
  150. package/.claude/commands/manage-wiki.md +28 -0
  151. package/.claude/commands/odyssey-improve.md +50 -0
  152. package/.claude/commands/odyssey-planex.md +46 -0
  153. package/.claude/commands/odyssey-review-test-fix.md +50 -0
  154. package/.claude/commands/odyssey-ui.md +50 -0
  155. package/.claude/commands/quality-auto-test.md +13 -1
  156. package/.claude/commands/quality-debug.md +11 -0
  157. package/.claude/commands/quality-refactor.md +11 -0
  158. package/.claude/commands/quality-retrospective.md +11 -0
  159. package/.claude/commands/quality-review.md +11 -0
  160. package/.claude/commands/quality-sync.md +10 -0
  161. package/.claude/commands/quality-test.md +12 -0
  162. package/.claude/commands/security-audit.md +11 -0
  163. package/.claude/commands/spec-add.md +27 -0
  164. package/.claude/commands/spec-load.md +25 -0
  165. package/.claude/commands/spec-remove.md +26 -0
  166. package/.claude/commands/spec-setup.md +30 -0
  167. package/.claude/skills/maestro-help/SKILL.md +2 -0
  168. package/.claude/skills/maestro-help/index/catalog.json +7 -7
  169. package/.codex/skills/codify-to-knowhow/SKILL.md +2 -0
  170. package/.codex/skills/domain-add/SKILL.md +26 -0
  171. package/.codex/skills/domain-discover/SKILL.md +46 -0
  172. package/.codex/skills/domain-list/SKILL.md +29 -0
  173. package/.codex/skills/learn-decompose/SKILL.md +2 -0
  174. package/.codex/skills/learn-follow/SKILL.md +34 -0
  175. package/.codex/skills/learn-investigate/SKILL.md +33 -0
  176. package/.codex/skills/learn-retro/SKILL.md +33 -0
  177. package/.codex/skills/learn-second-opinion/SKILL.md +30 -0
  178. package/.codex/skills/maestro/SKILL.md +6 -5
  179. package/.codex/skills/maestro-amend/SKILL.md +11 -0
  180. package/.codex/skills/maestro-analyze/SKILL.md +13 -18
  181. package/.codex/skills/maestro-companion/SKILL.md +11 -0
  182. package/.codex/skills/maestro-composer/SKILL.md +11 -0
  183. package/.codex/skills/maestro-guard/SKILL.md +25 -0
  184. package/.codex/skills/maestro-help/SKILL.md +2 -0
  185. package/.codex/skills/maestro-help/catalog.json +7 -7
  186. package/.codex/skills/maestro-init/SKILL.md +16 -0
  187. package/.codex/skills/maestro-learn/SKILL.md +2 -0
  188. package/.codex/skills/maestro-next/SKILL.md +2 -2
  189. package/.codex/skills/maestro-overlay/SKILL.md +1 -0
  190. package/.codex/skills/maestro-plan/SKILL.md +13 -16
  191. package/.codex/skills/maestro-player/SKILL.md +2 -0
  192. package/.codex/skills/maestro-quick/SKILL.md +17 -0
  193. package/.codex/skills/maestro-ralph/SKILL.md +11 -11
  194. package/.codex/skills/maestro-ralph-execute/SKILL.md +8 -8
  195. package/.codex/skills/maestro-tools-execute/SKILL.md +31 -0
  196. package/.codex/skills/maestro-tools-register/SKILL.md +29 -0
  197. package/.codex/skills/maestro-ui-codify/SKILL.md +2 -0
  198. package/.codex/skills/maestro-update/SKILL.md +38 -0
  199. package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -0
  200. package/.codex/skills/manage-codebase-refresh/SKILL.md +11 -0
  201. package/.codex/skills/manage-drift-realign/SKILL.md +2 -0
  202. package/.codex/skills/manage-harvest/SKILL.md +30 -8
  203. package/.codex/skills/manage-issue/SKILL.md +24 -0
  204. package/.codex/skills/manage-issue-discover/SKILL.md +2 -0
  205. package/.codex/skills/manage-knowhow/SKILL.md +26 -0
  206. package/.codex/skills/manage-knowhow-capture/SKILL.md +23 -0
  207. package/.codex/skills/manage-learn/SKILL.md +2 -0
  208. package/.codex/skills/manage-status/SKILL.md +22 -0
  209. package/.codex/skills/manage-wiki/SKILL.md +28 -0
  210. package/.codex/skills/odyssey-debug/SKILL.md +44 -0
  211. package/.codex/skills/odyssey-improve/SKILL.md +49 -0
  212. package/.codex/skills/odyssey-planex/SKILL.md +44 -0
  213. package/.codex/skills/odyssey-review-test-fix/SKILL.md +48 -0
  214. package/.codex/skills/odyssey-ui/SKILL.md +49 -0
  215. package/.codex/skills/quality-auto-test/SKILL.md +2 -0
  216. package/.codex/skills/quality-debug/SKILL.md +2 -0
  217. package/.codex/skills/quality-refactor/SKILL.md +2 -0
  218. package/.codex/skills/quality-retrospective/SKILL.md +2 -0
  219. package/.codex/skills/quality-review/SKILL.md +2 -0
  220. package/.codex/skills/quality-sync/SKILL.md +24 -0
  221. package/.codex/skills/quality-test/SKILL.md +2 -0
  222. package/.codex/skills/security-audit/SKILL.md +30 -0
  223. package/.codex/skills/spec-add/SKILL.md +28 -0
  224. package/.codex/skills/spec-load/SKILL.md +26 -0
  225. package/.codex/skills/spec-map/SKILL.md +1 -0
  226. package/.codex/skills/spec-remove/SKILL.md +28 -0
  227. package/.codex/skills/spec-setup/SKILL.md +28 -0
  228. package/.codex/skills/wiki-connect/SKILL.md +11 -0
  229. package/.codex/skills/wiki-digest/SKILL.md +11 -0
  230. package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.js +3 -1
  231. package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.js.map +1 -1
  232. package/dashboard/dist-server/dashboard/src/server/wiki/embedding.d.ts +5 -0
  233. package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js +42 -1
  234. package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js.map +1 -1
  235. package/dashboard/dist-server/src/graph/kg/db/queries.d.ts +4 -0
  236. package/dashboard/dist-server/src/graph/kg/db/queries.js +35 -19
  237. package/dashboard/dist-server/src/graph/kg/db/queries.js.map +1 -1
  238. package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js +2 -0
  239. package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js.map +1 -1
  240. package/dashboard/dist-server/src/graph/kg/engine.js +5 -1
  241. package/dashboard/dist-server/src/graph/kg/engine.js.map +1 -1
  242. package/dashboard/dist-server/src/graph/kg/extraction/orchestrator.js +19 -11
  243. package/dashboard/dist-server/src/graph/kg/extraction/orchestrator.js.map +1 -1
  244. package/dashboard/dist-server/src/hooks/kg-sync-hook.js +5 -3
  245. package/dashboard/dist-server/src/hooks/kg-sync-hook.js.map +1 -1
  246. package/dashboard/dist-server/src/hooks/session-context.js +3 -1
  247. package/dashboard/dist-server/src/hooks/session-context.js.map +1 -1
  248. package/dist/src/agents/api-explore/circuit-breaker.d.ts +41 -0
  249. package/dist/src/agents/api-explore/circuit-breaker.d.ts.map +1 -0
  250. package/dist/src/agents/api-explore/circuit-breaker.js +82 -0
  251. package/dist/src/agents/api-explore/circuit-breaker.js.map +1 -0
  252. package/dist/src/agents/api-explore/config.d.ts +15 -34
  253. package/dist/src/agents/api-explore/config.d.ts.map +1 -1
  254. package/dist/src/agents/api-explore/config.js +17 -42
  255. package/dist/src/agents/api-explore/config.js.map +1 -1
  256. package/dist/src/agents/api-explore/index.js +6 -6
  257. package/dist/src/agents/api-explore/index.js.map +1 -1
  258. package/dist/src/agents/api-explore/llm.d.ts +2 -0
  259. package/dist/src/agents/api-explore/llm.d.ts.map +1 -1
  260. package/dist/src/agents/api-explore/llm.js +16 -4
  261. package/dist/src/agents/api-explore/llm.js.map +1 -1
  262. package/dist/src/agents/api-explore/runner.d.ts +5 -0
  263. package/dist/src/agents/api-explore/runner.d.ts.map +1 -1
  264. package/dist/src/agents/api-explore/runner.js +66 -15
  265. package/dist/src/agents/api-explore/runner.js.map +1 -1
  266. package/dist/src/commands/explore.d.ts.map +1 -1
  267. package/dist/src/commands/explore.js +23 -4
  268. package/dist/src/commands/explore.js.map +1 -1
  269. package/dist/src/commands/install.d.ts.map +1 -1
  270. package/dist/src/commands/install.js +62 -28
  271. package/dist/src/commands/install.js.map +1 -1
  272. package/dist/src/commands/moa.d.ts.map +1 -1
  273. package/dist/src/commands/moa.js +18 -3
  274. package/dist/src/commands/moa.js.map +1 -1
  275. package/dist/src/commands/search.d.ts.map +1 -1
  276. package/dist/src/commands/search.js +2 -0
  277. package/dist/src/commands/search.js.map +1 -1
  278. package/dist/src/config/api-config.d.ts +61 -0
  279. package/dist/src/config/api-config.d.ts.map +1 -0
  280. package/dist/src/config/api-config.js +59 -0
  281. package/dist/src/config/api-config.js.map +1 -0
  282. package/dist/src/config/cli-tools-config.d.ts +1 -0
  283. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  284. package/dist/src/config/cli-tools-config.js +22 -1
  285. package/dist/src/config/cli-tools-config.js.map +1 -1
  286. package/dist/src/graph/kg/db/queries.d.ts +4 -0
  287. package/dist/src/graph/kg/db/queries.d.ts.map +1 -1
  288. package/dist/src/graph/kg/db/queries.js +35 -19
  289. package/dist/src/graph/kg/db/queries.js.map +1 -1
  290. package/dist/src/graph/kg/embedding/code-embedding.d.ts.map +1 -1
  291. package/dist/src/graph/kg/embedding/code-embedding.js +2 -0
  292. package/dist/src/graph/kg/embedding/code-embedding.js.map +1 -1
  293. package/dist/src/graph/kg/engine.d.ts.map +1 -1
  294. package/dist/src/graph/kg/engine.js +5 -1
  295. package/dist/src/graph/kg/engine.js.map +1 -1
  296. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
  297. package/dist/src/graph/kg/extraction/orchestrator.js +19 -11
  298. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
  299. package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
  300. package/dist/src/hooks/kg-sync-hook.js +5 -3
  301. package/dist/src/hooks/kg-sync-hook.js.map +1 -1
  302. package/dist/src/hooks/plugins/explore-plugin.d.ts.map +1 -1
  303. package/dist/src/hooks/plugins/explore-plugin.js +3 -2
  304. package/dist/src/hooks/plugins/explore-plugin.js.map +1 -1
  305. package/dist/src/hooks/session-context.js +3 -1
  306. package/dist/src/hooks/session-context.js.map +1 -1
  307. package/dist/src/tui/install-ui/EmbeddingConfig.d.ts +25 -0
  308. package/dist/src/tui/install-ui/EmbeddingConfig.d.ts.map +1 -0
  309. package/dist/src/tui/install-ui/EmbeddingConfig.js +58 -0
  310. package/dist/src/tui/install-ui/EmbeddingConfig.js.map +1 -0
  311. package/dist/src/tui/install-ui/EmbeddingPanel.d.ts +6 -0
  312. package/dist/src/tui/install-ui/EmbeddingPanel.d.ts.map +1 -0
  313. package/dist/src/tui/install-ui/EmbeddingPanel.js +101 -0
  314. package/dist/src/tui/install-ui/EmbeddingPanel.js.map +1 -0
  315. package/dist/src/tui/install-ui/GroupedHub.d.ts +2 -0
  316. package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -1
  317. package/dist/src/tui/install-ui/GroupedHub.js +8 -1
  318. package/dist/src/tui/install-ui/GroupedHub.js.map +1 -1
  319. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  320. package/dist/src/tui/install-ui/InstallFlow.js +4 -2
  321. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  322. package/dist/src/tui/install-ui/embedding-status.d.ts +12 -0
  323. package/dist/src/tui/install-ui/embedding-status.d.ts.map +1 -0
  324. package/dist/src/tui/install-ui/embedding-status.js +82 -0
  325. package/dist/src/tui/install-ui/embedding-status.js.map +1 -0
  326. package/dist/src/tui/install-ui/useInstallFlowState.d.ts +1 -1
  327. package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -1
  328. package/dist/src/tui/install-ui/useInstallFlowState.js +52 -2
  329. package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -1
  330. package/dist/src/tui/shared/tokens.d.ts +1 -1
  331. package/dist/src/tui/shared/tokens.js +1 -1
  332. package/dist/src/utils/update-notices.js +11 -0
  333. package/dist/src/utils/update-notices.js.map +1 -1
  334. package/package.json +1 -1
  335. package/workflows/analyze.md +13 -15
  336. package/workflows/plan.md +33 -21
@@ -57,13 +57,13 @@ Remaining → intent (amend_mode 时为 change_request)
57
57
  </context>
58
58
 
59
59
  <invariants>
60
- 1. **Ralph-v2 owns the full loop** — locate step → resolve args → load context → dispatch agent → wait for send_messagereceive → extract signals → drift → complete,全部在本命令内完成
61
- 2. **One agent per step** — 每个执行 step 派发一个 named executor agent,agent 通过 send_message 回传结果,主流程解析结果后决定下一步
62
- 3. **Agent is a thin wrapper** — executor agent 调 `ralph next` 获取 skill prompt 并执行,通过 send_message 回传输出;arg resolution、context loading、signal extraction、drift analysis、ralph complete 均由主流程完成
63
- 4. **Dual dispatch model** — 执行 Agent 与评估 Agent 使用不同派发模式:
64
- - **执行 Agent**(A_STEP_DISPATCH):`invoke_subagent([{ TypeName: "<TypeName>", Role: "exe-xxx", Prompt: "<Prompt>", Workspace: "inherit" }])` named mailbox teammate,支持内部多 agent 编排,通过 `send_message({to: "main"})` 回传结果
65
- - **评估 Agent**(A_AGENT_EVALUATE / A_AGENT_GOAL_AUDIT / A_AGENT_REGROUND):`invoke_subagent()` 不传 `name` — 同步阻塞,直接返回结果(评估 agent 只读不需要多 agent)
66
- - `agent_exec_name` 既用于 display/日志,也作为执行 Agent 的 `name` 参数
60
+ 1. **Ralph-v2 owns the full loop** — locate step → resolve args → load context → dispatch agent → wait for task-notification → extract signals → drift → complete,全部在本命令内完成
61
+ 2. **One agent per step** — 每个执行 step 派发一个 unnamed executor agent,结果通过 task-notification `<result>` 回传,主流程解析结果后决定下一步
62
+ 3. **Agent is a thin wrapper** — executor agent 调 `ralph next` 获取 skill prompt 并执行,返回输出文本;arg resolution、context loading、signal extraction、drift analysis、ralph complete 均由主流程完成
63
+ 4. **Unified unnamed dispatch** — 执行 Agent 和评估 Agent 均使用 unnamed invoke_subagent(),结果通过 task-notification `<result>` 回传:
64
+ - **执行 Agent**(A_STEP_DISPATCH):`invoke_subagent()` 不传 name executor 内部编排也用 unnamed Agent(子结果自动回流 executor,嵌套套娃模型)
65
+ - **评估 Agent**(A_AGENT_EVALUATE / A_AGENT_GOAL_AUDIT / A_AGENT_REGROUND):同样 `invoke_subagent()` 不传 name
66
+ - `agent_exec_name` 仅用于 display/日志标识,不作为 Agent name 参数
67
67
  5. **主流程调 `ralph complete`** — 每个 step 完成后由主流程调 `maestro ralph complete`,非 agent 上报
68
68
  6. **Decision evaluation inline** — decision 节点不 handoff,通过 Agent 或 CLI delegate 在本循环内评估
69
69
  7. **CLI delegation for evaluation only** — CLI delegate(`maestro delegate --mode analysis`)仅限评估环节;执行仍通过 executor Agent 完成
@@ -103,8 +103,7 @@ S_CONFIRM — 用户确认
103
103
 
104
104
  S_STEP_LOCATE — 找下一个 pending step PERSIST: —
105
105
  S_STEP_RESOLVE — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
106
- S_STEP_DISPATCH — 组装上下文 + 派发 named executor agent PERSIST: step.agent_exec_name, step.status = "running"
107
- S_STEP_WAIT_MSG — 等待 executor 的 send_message 回传 PERSIST: —
106
+ S_STEP_DISPATCH — 组装上下文 + 派发 unnamed executor agent PERSIST: step.agent_exec_name, step.status = "running"
108
107
  S_STEP_ANALYZE — 提取信号 + 组装 completion 参数 PERSIST: —
109
108
  S_STEP_DRIFT — 产物 vs 目标偏离分析 PERSIST: step.drift_score
110
109
  S_STEP_COMPLETE — 调 `ralph complete` 上报 PERSIST: step.completion_*
@@ -159,12 +158,8 @@ S_STEP_RESOLVE:
159
158
  → S_STEP_DISPATCH DO: A_STEP_RESOLVE_ARGS
160
159
 
161
160
  S_STEP_DISPATCH:
162
- S_STEP_WAIT_MSG WHEN: executor dispatched DO: A_STEP_DISPATCH
163
-
164
- S_STEP_WAIT_MSG:
165
- → S_STEP_ANALYZE WHEN: received agent-message with EXECUTOR_OUTPUT DO: A_STEP_RECEIVE
166
- → S_HANDLE_FAIL WHEN: received agent-message with status=ERROR DO: A_STEP_RECEIVE
167
- → S_HANDLE_FAIL WHEN: executor idle without send_message(崩溃检测) DO: mark BLOCKED
161
+ S_STEP_ANALYZE WHEN: task-notification status=completed DO: A_STEP_DISPATCH
162
+ → S_HANDLE_FAIL WHEN: task-notification status=failed DO: mark BLOCKED
168
163
 
169
164
  S_STEP_ANALYZE:
170
165
  → S_STEP_DRIFT WHEN: STATUS == DONE|DONE_WITH_CONCERNS DO: A_STEP_EXTRACT
@@ -344,17 +339,15 @@ Execution criteria: {session.execution_criteria joined by '; '}
344
339
  | debug | `dbg` |
345
340
  | Other | `run` |
346
341
 
347
- **4. Dispatch(named mailbox executor):**
342
+ **4. Dispatch(unnamed executor):**
348
343
 
349
- > 执行 Agent 使用 `name` 参数派发为 named mailbox teammate,支持内部多 agent 编排。executor 通过 `send_message({to: "main"})` 回传执行结果。`resolved_agent_name` 同时用于 display 和 Agent `name` 参数。
344
+ > 执行 Agent 不传 name,结果通过 task-notification `<result>` 自动回传主流程。executor 内部编排也用 unnamed Agent(子结果自动回流 executor,嵌套套娃模型)。
350
345
 
351
346
  ```
352
347
  invoke_subagent({
353
- name: "{resolved_agent_name}",
354
348
  subagent_type: "ralph-executor",
355
- description: "执行 step {index}: {step.skill}",
349
+ description: "执行 step {index}: {step.skill} [{resolved_agent_name}]",
356
350
  prompt: `Session: {session_id}
357
- Agent name: {resolved_agent_name}
358
351
 
359
352
  {goal_context 块,仅 protocol < 2 时}
360
353
 
@@ -363,24 +356,11 @@ Agent name: {resolved_agent_name}
363
356
  })
364
357
  ```
365
358
 
366
- 5. Write `step.agent_exec_name` to status.json
359
+ 5. Write `step.agent_exec_name` to status.json(仅日志标识)
367
360
  6. Display: `[{index}/{total}] ⟶ {step.skill} → {resolved_agent_name}`
368
- 7. invoke_subagent() 立即返回(named teammate 异步启动)→ 进入 S_STEP_WAIT_MSG 等待 executor 的 send_message
369
-
370
- ### A_STEP_RECEIVE
371
-
372
- 从 executor 的 `agent-message` 中提取执行输出。
373
-
374
- 1. 接收到 `<agent-message from="{resolved_agent_name}">` 后,提取 message 内容
375
- 2. 解析 `EXECUTOR_OUTPUT` 格式:
376
- - `status: DONE` → agent_output = message 内容,继续 S_STEP_ANALYZE
377
- - `status: DONE_WITH_CONCERNS` → agent_output = message 内容,继续 S_STEP_ANALYZE
378
- - `status: ERROR` → STATUS=BLOCKED,转 S_HANDLE_FAIL
379
- 3. idle_notification 处理(区分正常等待与崩溃):
380
- - 首次收到 `idle_notification`:executor 可能在等待 worker 回传,正常现象,继续等待
381
- - 连续收到 2 次 `idle_notification` 且中间无 `agent-message`:向 executor 发送 `send_message({to: "{resolved_agent_name}", message: "请回报执行状态"})` 询问
382
- - 询问后仍只收到 `idle_notification` 无 `agent-message`:STATUS=BLOCKED,转 S_HANDLE_FAIL
383
- 4. `agent_output` = 提取的 message 内容
361
+ 7. invoke_subagent() 返回 agentId 等待 task-notification(status=completed `<result>` 含 executor 输出)
362
+ 8. task-notification 到达后,`agent_output` = `<result>` 内容 → 进入 S_STEP_ANALYZE
363
+ 9. task-notification status=failed → STATUS=BLOCKED,转 S_HANDLE_FAIL
384
364
 
385
365
  ### A_STEP_EXTRACT
386
366
 
@@ -763,10 +743,7 @@ GUARD: 已完成(`status: "done"`)的目标不可 supersede(skip + warn)
763
743
 
764
744
  - **A_RETRY**: `run_command("maestro ralph retry {index}")` — CLI 设 `step.retried = true`, `step.status = "pending"`, 清 `active_step_index`
765
745
  - **A_PAUSE_SESSION**: `ralph complete N --status BLOCKED --reason "..."` — CLI 写 `session.status = "paused"`
766
- - **A_COMPLETE_SESSION**: 校验所有 step `completion_confirmed == true` + `task_decomposition_all_done == true`(若存在),通过后写 `session.status = "completed"`。完成后向所有 idle executor 发送 shutdown_request 清理:
767
- ```
768
- 遍历 steps[].agent_exec_name → send_message({to: name, message: {type: "shutdown_request"}})
769
- ```
746
+ - **A_COMPLETE_SESSION**: 校验所有 step `completion_confirmed == true` + `task_decomposition_all_done == true`(若存在),通过后写 `session.status = "completed"`。unnamed executor 执行完自动终止,无需 shutdown 清理
770
747
 
771
748
  </actions>
772
749
 
@@ -898,24 +875,23 @@ E001–E006, W001–W004 适用。Agent 新增:
898
875
 
899
876
  ### Success Criteria
900
877
 
901
- - [ ] ralph-v2 owns full step loop: locate → resolve → dispatch → wait receive → extract → drift → complete → next
902
- - [ ] One agent per step — `invoke_subagent([{ TypeName: "ralph-executor", Role: "<Role>", Prompt: "<Prompt>", Workspace: "inherit" }])` 每步派发一个 named executor
903
- - [ ] Executor 内调 `maestro ralph next` 获取 skill prompt 并执行,支持内部多 agent 编排
904
- - [ ] Executor 通过 `send_message({to: "main"})` 回传 `EXECUTOR_OUTPUT` 格式结果
878
+ - [ ] ralph-v2 owns full step loop: locate → resolve → dispatch → wait task-notification → extract → drift → complete → next
879
+ - [ ] One agent per step — `invoke_subagent([{ TypeName: "ralph-executor", Role: "<Role>", Prompt: "<Prompt>", Workspace: "inherit" }])` 每步派发一个 unnamed executor
880
+ - [ ] Executor 内调 `maestro ralph next` 获取 skill prompt 并执行,内部编排用 unnamed Agent(子结果回流 executor)
881
+ - [ ] Executor 结果通过 task-notification `<result>` 自动回传主流程
905
882
  - [ ] 主流程调 `maestro ralph complete` 上报(非 agent 上报)
906
883
  - [ ] 主流程负责 arg resolution、context loading、signal extraction、drift analysis
907
- - [ ] A_STEP_RECEIVE executor agent-message 中提取执行输出
908
- - [ ] Executor 崩溃(idle send_message)→ 询问 2 次后 STATUS=BLOCKED,转 S_HANDLE_FAIL
909
- - [ ] Dual dispatch: 执行 Agent 传 `name`(async + send_message),评估 Agent 不传 `name`(sync)或 CLI delegate
884
+ - [ ] task-notification status=failed STATUS=BLOCKED,转 S_HANDLE_FAIL
885
+ - [ ] Unified unnamed dispatch: 执行 Agent 和评估 Agent 均不传 name,结果通过 task-notification 回传。CLI delegate 仅限评估环节
910
886
  - [ ] Decision evaluation 支持三种模式:agent(同步)、cli(CLI delegate)、dual(并行交叉验证)
911
887
  - [ ] `evaluate_via` 字段控制评估模式,默认 `"agent"`
912
888
  - [ ] dual 模式合并策略:一致取共识、分歧保守降级、CLI 未返回用 Agent 结果
913
889
  - [ ] Verdict 解析保持 `---VERDICT---` 格式,parse 失败 → fallback fix + parse_failed: true
914
890
  - [ ] decisions.ndjson 追加:source 字段为 `"ralph-v2"`
915
- - [ ] Session schema: `execution_mode: "agent"`,`agent_exec_name`(执行 Agent name + display),含 `artifacts_produced`
891
+ - [ ] Session schema: `execution_mode: "agent"`,`agent_exec_name`(display 标识),含 `artifacts_produced`
916
892
  - [ ] Chain building(S_RESOLVE_PHASE through S_BUILD_CHAIN)自包含执行
917
893
  - [ ] A_STEP_DISPATCH 含前序产出加载(滑动窗口 5 step + accumulated signals + stage-specific artifacts)
918
- - [ ] `agent_exec_name` 含 stage prefix(grl/brn/anm/ana/pln/exe/rev/tst/dbg)——同时用于 Agent name 参数和 display
894
+ - [ ] `agent_exec_name` 含 stage prefix(grl/brn/anm/ana/pln/exe/rev/tst/dbg)——仅用于 display/日志标识
919
895
  - [ ] `--summary` 在 DONE/DONE_WITH_CONCERNS 时为 MUST(动词开头,≤100 字)
920
896
  - [ ] CAVEATS 在 DONE_WITH_CONCERNS 时同时映射 --concerns
921
897
  - [ ] A_STEP_EXTRACT 从 executor 输出提取 artifact IDs、path signals、phase signals
@@ -17,7 +17,7 @@ allowed-tools:
17
17
  <purpose>
18
18
  Generate milestone/phase roadmap from requirements or upstream context. Three modes: create (default), revise (`--revise`), review (`--review`). For formal spec documents, use `/maestro-blueprint`.
19
19
 
20
- Pipeline: brainstorm/blueprint/analyze → **roadmap** → analyze {phase} → plan → execute.
20
+ Pipeline: brainstorm/blueprint/analyze → **roadmap** → analyze {milestone} → plan {milestone} → execute.
21
21
  </purpose>
22
22
 
23
23
  <required_reading>
@@ -62,7 +62,7 @@ Follows @~/.maestro/workflows/interview-mechanics.md standard.
62
62
 
63
63
  **Interaction mode**: convergent menu-driven
64
64
  **Decision tree** (strict order): mode (create / revise / review) → requirement scope (MVP / complete / phased) → decomposition strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order
65
- **Scope guard**: only roadmap shape; do not pre-resolve intra-phase task breakdown (belongs to plan)
65
+ **Scope guard**: only roadmap shape; do not pre-resolve task breakdown or phase decomposition (belongs to plan)
66
66
  **Writeback target**: .workflow/roadmap.md "Roadmap Decisions" section (create if absent)
67
67
  **Additional skip conditions**: --revise, --review (skip to respective mode)
68
68
  **Exit condition**: on consensus or explicit user signal → finalize Roadmap Decisions section
@@ -42,6 +42,8 @@ Remaining → intent
42
42
  | `wf-plan` | `{ context_dir?, from?, phase?, scope?, specs?, gaps?, quick? }` |
43
43
  | `wf-execute` | `{ plan_dir, specs?, codebase_context?, wiki_context?, auto_commit? }` |
44
44
  | `wf-milestone-audit` | `{ milestone?, is_adhoc? }` |
45
+
46
+ **Output boundary**: ALL file writes MUST target `.workflow/scratch/{YYYYMMDD}-swarm-{script}-{slug}/` (results, ralph-compatible artifacts). When inside a ralph session, writes target the corresponding step's scratch directory. NEVER modify source code, workflow scripts (`~/.maestro/workflows/swarm/`), or `.claude/commands/` files.
45
47
  </context>
46
48
 
47
49
  <state_machine>
@@ -195,6 +197,29 @@ Workflow 返回 JSON 后:
195
197
  6. **结果必须展示** — Workflow 返回后必须向用户展示格式化摘要,不得静默完成
196
198
  </invariants>
197
199
 
200
+ <execution>
201
+
202
+ ### Phase Gates (MANDATORY, BLOCKING)
203
+
204
+ **GATE 1: Parse → Route**
205
+ - REQUIRED: Intent text or `--script` flag parsed successfully.
206
+ - BLOCKED if: no intent and no `--script` (E001).
207
+
208
+ **GATE 2: Route → Context Assembly**
209
+ - REQUIRED: Target script resolved unambiguously (single match or user-selected from candidates).
210
+ - BLOCKED if: ambiguous routing without user resolution (E002).
211
+
212
+ **GATE 3: Context → Dispatch**
213
+ - REQUIRED: Args payload assembled with all required fields for target script.
214
+ - REQUIRED: Script file exists at `~/.maestro/workflows/swarm/{script}.js`.
215
+ - BLOCKED if: script file not found (E003) or required args missing.
216
+
217
+ **GATE 4: Dispatch → Ingest**
218
+ - REQUIRED: Workflow execution completed (success or partial results available).
219
+ - BLOCKED if: Workflow execution failed entirely (E004) — offer `--resume`.
220
+
221
+ </execution>
222
+
198
223
  <appendix>
199
224
 
200
225
  ### 与 Ralph 集成
@@ -37,8 +37,37 @@ $ARGUMENTS — Tool name, keyword, or --category filter
37
37
  Empty arguments enters interactive mode: list all tools for user selection.
38
38
  </context>
39
39
 
40
+ <invariants>
41
+ 1. **Confirmation before execution** — MUST ask_question before executing tool steps; NEVER auto-execute without user consent
42
+ 2. **Sequential step execution** — steps MUST be executed in defined order; NEVER skip or reorder steps unless user explicitly requests skip
43
+ 3. **Blocker escalation** — step failure MUST be reported to user with retry/skip/abort options; NEVER silently skip failed steps
44
+ 4. **Read-only tool definition** — tool execution MUST NOT modify the tool's knowhow document or spec entry; only the target codebase is modified per tool steps
45
+ 5. **Progress feedback** — each completed step MUST report `[Step N/M] done — <step_name>`; NEVER execute silently
46
+ 6. **Output boundary** — file writes are governed by the individual tool's step definitions. This command itself writes NO files beyond what the loaded tool prescribes
47
+ </invariants>
48
+
40
49
  <execution>
41
50
 
51
+ ### Phase Gates (MANDATORY, BLOCKING)
52
+
53
+ **GATE 1: Parse → Load**
54
+ - REQUIRED: Tool name, keyword, or --category parsed from arguments (or empty for interactive mode).
55
+ - BLOCKED if: invalid category value.
56
+
57
+ **GATE 2: Load → Confirm**
58
+ - REQUIRED: Exactly one tool resolved (direct match or user selection from candidates).
59
+ - REQUIRED: Tool document loaded and steps extracted (ref entries expanded via `maestro load --type knowhow`).
60
+ - BLOCKED if: E001 (no match found), E002 unresolved (multiple matches without user selection).
61
+
62
+ **GATE 3: Confirm → Execute**
63
+ - REQUIRED: User confirmed execution mode via ask_question (execute as-is / adjust / view only).
64
+ - BLOCKED if: user selects "View only" — display steps and END without execution.
65
+
66
+ **GATE 4: Execute → Report**
67
+ - REQUIRED: All steps attempted (completed, skipped with user approval, or aborted by user).
68
+ - REQUIRED: Results collected for each step (success/skip/fail).
69
+ - BLOCKED if: user chose abort mid-execution — report partial results and END.
70
+
42
71
  ### Step 1: Load Tool
43
72
 
44
73
  **By name**:
@@ -37,8 +37,37 @@ $ARGUMENTS — Intent description
37
37
  ```
38
38
  </context>
39
39
 
40
+ <invariants>
41
+ 1. **Schema validation** — tool knowhow document MUST include `tool: true`, `category`, `keywords`, and `summary` in YAML frontmatter; missing fields → reject write
42
+ 2. **No duplicate names** — tool title MUST be unique within its category; duplicate detection → E002 warning with overwrite/optimize confirmation
43
+ 3. **Category required** — every tool MUST declare exactly one category from: coding, test, review, arch, debug; empty category → E003
44
+ 4. **Confirmation gate** — MUST ask_question before writing knowhow document and spec ref entry; NEVER persist without user confirmation
45
+ 5. **Promote is in-place** — promote mode MUST update existing knowhow frontmatter via `maestro wiki update`; NEVER recreate the document
46
+ 6. **Output boundary** — ALL file writes MUST target .workflow/knowhow/ (tool documents) and .workflow/specs/ (ref entries via maestro spec add) only. NEVER modify source code or files outside these paths
47
+ 7. **Description format** — first line after `### Title` MUST state "Use when ..." (usage timing); this is critical for ref entry summary visibility in spec-load
48
+ </invariants>
49
+
40
50
  <execution>
41
51
 
52
+ ### Phase Gates (MANDATORY, BLOCKING)
53
+
54
+ **GATE 1: Parse → Gather**
55
+ - REQUIRED: Mode determined (extract/generate/optimize/promote) from argument parsing.
56
+ - REQUIRED: For optimize/promote modes, target tool/document exists and is loadable.
57
+ - BLOCKED if: empty args without user response to ask_question.
58
+
59
+ **GATE 2: Gather → Write**
60
+ - REQUIRED: Tool name, category, and usage timing confirmed.
61
+ - REQUIRED: Steps extracted or generated (extract: ≥1 step, generate: user-confirmed scope).
62
+ - REQUIRED: Inline vs ref mode decided based on step count.
63
+ - REQUIRED: User confirmed via ask_question (title, category, keywords, summary, step count).
64
+ - BLOCKED if: E001 (.workflow/specs/ not initialized), E003 (no category), user cancels.
65
+
66
+ **GATE 3: Write → Verify**
67
+ - REQUIRED: Knowhow document written with `tool: true` frontmatter (or updated in-place for promote).
68
+ - REQUIRED: Spec ref entry registered (if user confirmed).
69
+ - BLOCKED if: write failed or spec add returned error.
70
+
42
71
  ### Step 1: Intent Detection
43
72
 
44
73
  Parse $ARGUMENTS to determine mode:
@@ -34,8 +34,19 @@ Flags:
34
34
  - `--package-name <name>`: Package name for reference output (default: auto-generated from source directory)
35
35
  - `--output-dir <path>`: Output directory for reference package (default: `.workflow/reference_style`)
36
36
  - `--overwrite`: Allow overwriting existing package directory
37
+
38
+ **Output boundary**: ALL file writes MUST target the `--output-dir` path (default: `.workflow/reference_style/`) for reference packages, and `.workflow/knowhow/` for knowledge assets (via `codify-to-knowhow`). NEVER modify the source directory being analyzed.
37
39
  </context>
38
40
 
41
+ <invariants>
42
+ 1. **Source read-only** — the source path being analyzed MUST NOT be modified; extraction is purely read-only
43
+ 2. **Phase-sequential loading** — workflow files (ui-codify-extract, ui-codify-package, ui-codify-knowhow) MUST be read only when their phase starts; NEVER load all phases eagerly
44
+ 3. **User confirmation before knowhow** — Phase 3→4 gate MUST present ask_question before generating knowledge assets; NEVER auto-proceed to knowhow generation
45
+ 4. **Overwrite protection** — existing package directory MUST NOT be overwritten without `--overwrite` flag (E003)
46
+ 5. **Artifact completeness** — all 5 required artifacts MUST exist before reporting completion; NEVER skip artifact verification
47
+ 6. **Token-first extraction** — design-tokens.json MUST be generated before layout-templates.json; layout extraction depends on token foundation
48
+ </invariants>
49
+
39
50
  <execution>
40
51
  ## 1. Load UI Specs
41
52
 
@@ -32,6 +32,8 @@ Remaining → intent
32
32
  **Library locations:**
33
33
  - Fixed scripts: `~/.maestro/workflows/swarm/wf-*.js`
34
34
  - Dynamic scripts: `~/.maestro/workflows/dynamic/uwf-*.js`
35
+
36
+ **Output boundary**: ALL file writes MUST target `~/.maestro/workflows/dynamic/` (generated scripts) and `.workflow/scratch/{YYYYMMDD}-uwf-*/` (execution results). Fixed scripts at `~/.maestro/workflows/swarm/` are read-only. NEVER modify source code or `.claude/commands/` files.
35
37
  </context>
36
38
 
37
39
  <state_machine>
@@ -508,6 +510,36 @@ Findings: ${digest}
508
510
  12. **无反斜杠路径** — 字符串中路径用正斜杠(`\u`、`\a` 等会被解析为转义序列)
509
511
  </invariants>
510
512
 
513
+ <execution>
514
+
515
+ ### Phase Gates (MANDATORY, BLOCKING)
516
+
517
+ **GATE 1: Parse → Scan**
518
+ - REQUIRED: Intent text or `--from`/`--resume` flag parsed.
519
+ - BLOCKED if: no intent and no flags (E001).
520
+
521
+ **GATE 2: Scan → Design/Execute**
522
+ - REQUIRED: Library scan completed (both `swarm/` and `dynamic/` directories).
523
+ - REQUIRED: User decision if matches found (reuse existing vs generate new).
524
+ - BLOCKED if: scan fails to read script directories.
525
+
526
+ **GATE 3: Design → Generate**
527
+ - REQUIRED: Task decomposition completed with work_items, decision_points, data_flow.
528
+ - REQUIRED: Phase orchestration and adversarial pattern selection determined by depth.
529
+ - BLOCKED if: task cannot be decomposed (E002).
530
+
531
+ **GATE 4: Generate → Execute**
532
+ - REQUIRED: Script written to `~/.maestro/workflows/dynamic/uwf-{slug}.js`.
533
+ - REQUIRED: `node --check` syntax validation passed.
534
+ - REQUIRED: User confirmation via ask_question (unless resuming).
535
+ - BLOCKED if: syntax validation fails after 2 retries (E003).
536
+
537
+ **GATE 5: Execute → Persist**
538
+ - REQUIRED: Workflow execution completed via `scriptPath` invocation.
539
+ - BLOCKED if: Workflow execution failed (E004) — offer `--resume`.
540
+
541
+ </execution>
542
+
511
543
  <appendix>
512
544
 
513
545
  ### 使用示例
@@ -568,3 +600,30 @@ universal-workflow 扫描时会同时检查 swarm/ 和 dynamic/ 目录,
568
600
  | E005 | 持久化失败 | 展示脚本内容,让用户手动保存 |
569
601
 
570
602
  </appendix>
603
+
604
+ <error_codes>
605
+ | Code | Severity | Condition | Recovery |
606
+ |------|----------|-----------|----------|
607
+ | E001 | error | No intent and no --from/--resume flag | Prompt user for intent text |
608
+ | E002 | error | Task decomposition failed — cannot identify work_items | Require more specific intent description |
609
+ | E003 | error | Generated script syntax error after 2 retries | Show script content + error for manual fix |
610
+ | E004 | error | Workflow execution failed | Show error, offer --resume with runId |
611
+ | E005 | error | Script persistence failed (filesystem write error) | Show script content for manual save |
612
+ | W001 | warning | No matching scripts found in library scan | Proceed directly to S_DESIGN |
613
+ | W002 | warning | Adversarial gate confidence < 50% | Flag low-confidence decision, suggest --depth deep |
614
+ </error_codes>
615
+
616
+ <success_criteria>
617
+ - [ ] Intent parsed and flags extracted (--name, --depth, --dry-run, --from, --resume)
618
+ - [ ] Library scan completed across both swarm/ and dynamic/ directories
619
+ - [ ] User decision captured if matching scripts found (reuse vs generate)
620
+ - [ ] Task decomposition produced: work_items, decision_points, data_flow
621
+ - [ ] Adversarial pattern selected per decision_point according to depth level
622
+ - [ ] Blueprint presented to user with estimated agent count
623
+ - [ ] Script generated as pure JavaScript with all 12 generation rules enforced
624
+ - [ ] `node --check` syntax validation passed
625
+ - [ ] User confirmation obtained before execution (unless --resume)
626
+ - [ ] Workflow executed via scriptPath (not inline script string)
627
+ - [ ] Script persisted to `~/.maestro/workflows/dynamic/uwf-{slug}.js`
628
+ - [ ] Completion summary displayed with reuse/resume commands
629
+ </success_criteria>
@@ -29,10 +29,38 @@ $ARGUMENTS — optional flags.
29
29
  - `update-v{TO}-setup.md` — post-migration setup for version {TO}
30
30
 
31
31
  **Schema registry:** `src/migrations/` — handles all intermediate version bumps automatically
32
+
33
+ **Output boundary**: ALL file writes MUST target `.workflow/state.json` (version bump), `.workflow/state.json.backup-*` (backup), and `.workflow/` config files touched by version-specific setup. NEVER modify source code or `src/migrations/` files.
32
34
  </context>
33
35
 
36
+ <invariants>
37
+ 1. **Backup before migration** — a timestamped backup of `.workflow/state.json` MUST be created before any schema migration runs; NEVER execute migration without backup
38
+ 2. **Idempotent** — running update when already on latest version MUST be a no-op (display "up to date"); NEVER re-apply migrations
39
+ 3. **Confirmation before execute** — migration diff MUST be displayed and user MUST confirm via ask_question before execution (unless `--force`); NEVER silently apply schema changes
40
+ 4. **Migration diff always visible** — even with `--force`, the migration diff MUST be displayed for audit visibility; NEVER skip diff display
41
+ 5. **Restore path on failure** — if migration fails, the backup restore command MUST be displayed; NEVER leave user without recovery instructions
42
+ 6. **Sequential migration** — all intermediate version steps MUST be applied in order by the schema registry; NEVER skip intermediate versions
43
+ </invariants>
44
+
34
45
  <execution>
35
46
 
47
+ ### Phase Gates (MANDATORY, BLOCKING)
48
+
49
+ **GATE 1: Detect → Check**
50
+ - REQUIRED: Current version read from `.workflow/state.json`.
51
+ - BLOCKED if: state.json missing or unreadable (E001).
52
+
53
+ **GATE 2: Check → Execute**
54
+ - REQUIRED: Dry-run migration check completed; target version identified.
55
+ - REQUIRED: User confirmation via ask_question (unless `--force`).
56
+ - BLOCKED if: already up to date (display message and exit) or user cancels.
57
+
58
+ **GATE 3: Execute → Summary**
59
+ - REQUIRED: Backup created at `.workflow/state.json.backup-v{current}-{timestamp}`.
60
+ - REQUIRED: Schema migration completed successfully.
61
+ - REQUIRED: Version-specific setup doc followed (if exists).
62
+ - BLOCKED if: migration failed — display restore command and exit.
63
+
36
64
  ### Step 1: Detect Version
37
65
 
38
66
  ```
@@ -105,6 +133,16 @@ Next steps:
105
133
 
106
134
  </execution>
107
135
 
136
+ <error_codes>
137
+ | Code | Severity | Condition | Recovery |
138
+ |------|----------|-----------|----------|
139
+ | E001 | error | `.workflow/state.json` not found or unreadable | Run `/maestro-init` first |
140
+ | E002 | error | Schema migration failed (npx tsx returned error) | Display backup restore command: `cp .workflow/state.json.backup-* .workflow/state.json` |
141
+ | E003 | error | Version-specific setup doc failed to execute | Manual setup: read `~/.maestro/workflows/updates/update-v{target}-setup.md` |
142
+ | W001 | warning | No version-specific setup doc found for target version | Proceed without setup; schema migration alone is sufficient |
143
+ | W002 | warning | `--setup-only` but no setup script exists for current version | Display message and exit |
144
+ </error_codes>
145
+
108
146
  <success_criteria>
109
147
  - [ ] Current version detected from state.json
110
148
  - [ ] Schema migrations run automatically (no manual intermediate steps)
@@ -46,13 +46,42 @@ $ARGUMENTS -- optional flags.
46
46
  - `.workflow/codebase/` -- target directory (will be cleared and rebuilt)
47
47
  - `.workflow/codebase/doc-index.json` -- generated documentation index
48
48
  - `.workflow/codebase/knowledge-graph.json` -- Knowledge Graph with nodes, edges, layers, and tour (generated by `maestro kg index`)
49
+
50
+ **Output boundary**: ALL file writes MUST target `.workflow/codebase/`, `.workflow/state.json`, or `.workflow/project.md` (Tech Stack section only). NEVER modify source code or files outside these paths.
49
51
  </context>
50
52
 
53
+ <invariants>
54
+ 1. **Destructive with confirmation** — rebuild clears `.workflow/codebase/` entirely; MUST confirm with user unless `--force` is set
55
+ 2. **Commit confirmation** — git commit MUST be confirmed by user unless `--force` is set; `--skip-commit` bypasses commit entirely
56
+ 3. **Partial failure tolerance** — if 1-3 mapper agents fail, proceed with partial results (W001); only abort if all 4 fail (E002)
57
+ 4. **Focus scoping** — when `--focus <area>` is set, MUST only regenerate docs relevant to that scope; leave unrelated docs untouched
58
+ 5. **State update** — MUST update state.json with rebuild timestamp on completion
59
+ 6. **KG pipeline mandatory** — MUST run `maestro kg index` after doc regeneration; KG validation failure is non-fatal (W003)
60
+ </invariants>
61
+
51
62
  <execution>
52
63
  Follow '~/.maestro/workflows/codebase-rebuild.md' completely.
53
64
 
54
65
  **When `--focus <area>` is set:** pass the area string to each mapper agent as scoping context; only regenerate the docs relevant to that scope (leave others untouched unless missing).
55
66
 
67
+ ### Phase Gates (MANDATORY, BLOCKING)
68
+
69
+ **GATE 1: Confirmation → Mapping** (Pre-flight → Agent spawn)
70
+ - REQUIRED: `.workflow/` initialized (E001 if missing).
71
+ - REQUIRED: User confirmed rebuild (or `--force` set). W002 if existing docs found.
72
+ - BLOCKED if user declines confirmation.
73
+
74
+ **GATE 2: Mapping → KG Pipeline** (Agent results → Knowledge Graph)
75
+ - REQUIRED: At least 1 of 4 mapper agents returned valid results.
76
+ - REQUIRED: All output files written to `.workflow/codebase/`.
77
+ - REQUIRED: doc-index.json generated and valid.
78
+ - BLOCKED if all 4 mapper agents failed (E002).
79
+
80
+ **GATE 3: KG Pipeline → Commit** (Knowledge Graph → Git)
81
+ - REQUIRED: `maestro kg index` executed (W003 if validation fails — non-blocking).
82
+ - REQUIRED: state.json updated with rebuild timestamp.
83
+ - REQUIRED: If not `--skip-commit`: user confirmed git commit (or `--force` set).
84
+ - BLOCKED if state.json update fails.
56
85
  </execution>
57
86
 
58
87
  <completion>
@@ -60,8 +60,20 @@ Arguments: $ARGUMENTS
60
60
  - `.workflow/project.md`
61
61
 
62
62
  使用 `maestro timeline` CLI 构建统一的 git+session 时间线。
63
+
64
+ **Output boundary**: ALL file writes MUST target `.workflow/` metadata files (specs, codebase docs, roadmap.md, state.json, issues.jsonl) or `.workflow/.trash/drift-realign-{timestamp}/` (backups) or `.workflow/.drift-realign/` (session details). NEVER modify source code files.
63
65
  </context>
64
66
 
67
+ <invariants>
68
+ 1. **Code-as-Truth** — 代码是唯一真理源;当文档说 X 但代码做 Y 时,文档漂移,NEVER 反向修改代码来匹配文档
69
+ 2. **Backup before mutate** — MUST create backup tarball in `.workflow/.trash/` before any file modification (E005 if backup fails)
70
+ 3. **Never modify source code** — drift-realign only updates `.workflow/` metadata; source code files are read-only
71
+ 4. **Mutual exclusion** — `--report` 与 `--auto-archive` 互斥;同时传入 MUST trigger E006
72
+ 5. **Auto-depth escalation** — `drift_window` > 180 天 MUST auto-upgrade to `--depth deep` with W002 warning
73
+ 6. **Audit trail** — every triage decision MUST be logged in `drift-log.jsonl` with finding ID, action, and timestamp
74
+ 7. **Rebuild trigger** — codebase scope 的 3+ P0 finding MUST auto-trigger `/quality-sync --full` after triage
75
+ </invariants>
76
+
65
77
  <execution>
66
78
  Follow `~/.maestro/workflows/drift-realign.md` Stages 1-9 in order.
67
79
 
@@ -39,17 +39,41 @@ Arguments: $ARGUMENTS
39
39
  - `-y` / `--yes` — Skip confirmation prompts for all write operations (artifact selection, routing decisions, store writes). Useful for CI or batch harvesting.
40
40
 
41
41
  Additional flags, source registry (scan paths), and storage locations defined in workflow harvest.md.
42
+
43
+ **Output boundary**: ALL file writes MUST target `.workflow/knowhow/`, `.workflow/specs/`, `.workflow/issues/`, `.workflow/wiki/`, `.workflow/harvest/`, or `.workflow/state.json` only. NEVER modify source code, source artifacts, or files outside these paths.
42
44
  </context>
43
45
 
46
+ <invariants>
47
+ 1. **Read-only until routing** — extraction and classification happen in-memory; no files written until Stage 6
48
+ 2. **Never modify source artifacts** — harvest is purely extractive; source files remain untouched
49
+ 3. **Dedup before write** — MUST check harvest-log.jsonl and existing stores before each write to prevent duplicates
50
+ 4. **Source tagging** — MUST set `source: "harvest"` on every issues.jsonl row so concurrent writers can be distinguished
51
+ 5. **Conflict pre-check on spec routing** — when routing to spec, MUST compare against existing specs with same keywords/category; set `confidence="low"` and log conflict note if semantic conflict detected
52
+ 6. **Provenance tracking** — every routed item MUST be logged in harvest-log.jsonl with fragment ID, target store, and timestamp
53
+ 7. **Dry-run safety** — `--dry-run` MUST NOT write any files; preview only
54
+ </invariants>
55
+
44
56
  <execution>
45
57
  Follow '~/.maestro/workflows/harvest.md' Stages 1-8 in order.
46
58
 
47
- **Key invariants:**
48
- 1. **Read-only until Stage 6** — extraction and classification happen in-memory.
49
- 2. **Dedup before write** check harvest-log.jsonl and existing stores before each write.
50
- 3. **Never modify source artifacts** harvest is purely extractive.
51
- 4. **Dedup contract with parallel writers** — when appending to `issues.jsonl`, set `source: "harvest"` on each row so concurrent writers (e.g. `manage-issue-discover` with `source: "discover"`) can be distinguished and deduplicated.
52
- 5. **Conflict pre-check on spec routing** when routing to spec (Stage 6b), compare new entry against existing specs with same keywords/category. If semantic conflict detected, set `confidence="low"` on the new entry and log conflict note. Use `maestro spec conflict mark` if contradiction is clear.
59
+ ### Phase Gates (MANDATORY, BLOCKING)
60
+
61
+ **GATE 1: Discovery → Extraction** (Stages 1-3 Stage 4)
62
+ - REQUIRED: Source artifacts discovered and mode resolved (scan/session/path).
63
+ - REQUIRED: User selected artifact(s) to harvest (or auto-selected via session/path mode, or `-y`).
64
+ - BLOCKED if no harvestable artifacts found (W001) or invalid source (E004/E005).
65
+
66
+ **GATE 2: Extraction → Routing** (Stage 4 → Stage 5-6)
67
+ - REQUIRED: All files in selected artifacts loaded and parsed.
68
+ - REQUIRED: Knowledge fragments extracted with category, confidence, and tags.
69
+ - REQUIRED: Fragments filtered by `--min-confidence`.
70
+ - BLOCKED if extraction produces zero fragments.
71
+
72
+ **GATE 3: Routing → Write** (Stage 6 → Stage 7-8)
73
+ - REQUIRED: Routing classification applied (auto or forced by `--to`).
74
+ - REQUIRED: Dedup check passed against harvest-log.jsonl and existing stores.
75
+ - REQUIRED: If `--dry-run`: preview displayed, no files written — GATE blocks further writes.
76
+ - BLOCKED if dedup check fails or store paths unresolvable.
53
77
 
54
78
  Extraction patterns, classification rules, routing infrastructure, and fragment ID scheme defined in workflow harvest.md.
55
79
 
@@ -36,12 +36,35 @@ $ARGUMENTS -- subcommand + options. Parse first token as subcommand.
36
36
  **State files:**
37
37
  - `.workflow/issues/issues.jsonl` -- active issues (one JSON per line)
38
38
  - `.workflow/issues/issue-history.jsonl` -- archived/closed issues
39
+
40
+ **Output boundary**: ALL file writes MUST target `.workflow/issues/issues.jsonl`, `.workflow/issues/issue-history.jsonl`, or `.workflow/issues/` directory only. NEVER modify source code or files outside these paths.
39
41
  </context>
40
42
 
43
+ <invariants>
44
+ 1. **Schema compliance** — every issue record MUST conform to the canonical issue.json template schema
45
+ 2. **ID uniqueness** — issue IDs (ISS-XXXXXXXX-NNN) MUST be unique across issues.jsonl and issue-history.jsonl
46
+ 3. **Close moves to history** — `close` subcommand MUST move the record from issues.jsonl to issue-history.jsonl, NEVER delete without archiving
47
+ 4. **Bidirectional links** — `link` subcommand MUST create references in both the issue and the linked task
48
+ 5. **Confirmation on destructive ops** — `close` and bulk `update` MUST require user confirmation unless `-y` flag is set
49
+ 6. **Append-only audit** — NEVER overwrite existing issue records; updates MUST preserve all prior fields and add `updated_at` timestamp
50
+ </invariants>
51
+
41
52
  <execution>
42
53
  Parse subcommand from first token of $ARGUMENTS.
43
54
  Follow '~/.maestro/workflows/issue.md' completely.
44
55
 
56
+ ### Phase Gates (MANDATORY, BLOCKING)
57
+
58
+ **GATE 1: Parse → Execute** (Subcommand routing)
59
+ - REQUIRED: Subcommand parsed and validated against valid set (create/list/status/update/close/link).
60
+ - REQUIRED: `.workflow/issues/` directory exists (auto-create with empty issues.jsonl if missing).
61
+ - BLOCKED if E_NO_SUBCOMMAND or E_INVALID_SUBCOMMAND.
62
+
63
+ **GATE 2: Execute → Write** (For mutating subcommands: create/update/close/link)
64
+ - REQUIRED: Issue data validated against issue.json template schema.
65
+ - REQUIRED: For `close`: resolution text provided.
66
+ - REQUIRED: For `link`: target task ID resolved and exists.
67
+ - BLOCKED if schema validation fails or target references unresolvable.
45
68
  </execution>
46
69
 
47
70
  <completion>
@@ -47,8 +47,19 @@ $ARGUMENTS -- optional. Parse first token to determine mode.
47
47
  ### Pre-load specs
48
48
  1. **Debug specs**: Run `maestro load --type spec --category debug` to load known antipatterns, root causes, and gotchas. Informs discovery perspectives with prior findings.
49
49
  2. Optional — proceed without if unavailable.
50
+
51
+ **Output boundary**: ALL file writes MUST target `.workflow/issues/issues.jsonl` or `.workflow/issues/discoveries/{SESSION_ID}/` only. NEVER modify source code or files outside these paths.
50
52
  </context>
51
53
 
54
+ <invariants>
55
+ 1. **Read-only analysis** — discovery agents MUST NOT modify source code; only `.workflow/issues/` is writable
56
+ 2. **Source tagging** — MUST set `source: "discover"` on every issues.jsonl row so concurrent writers (e.g. `manage-harvest`) can be distinguished and deduplicated
57
+ 3. **Dedup before write** — MUST check existing issues.jsonl for duplicates before appending new findings
58
+ 4. **Session traceability** — every discovery run MUST produce a session directory under `.workflow/issues/discoveries/` with full agent outputs
59
+ 5. **Schema compliance** — every issue row MUST conform to the canonical issue.json template schema
60
+ 6. **Idempotent re-run** — repeated execution with same scope and prompt MUST NOT create duplicate issues
61
+ </invariants>
62
+
52
63
  <execution>
53
64
  Determine mode from $ARGUMENTS:
54
65
  - No arguments or empty → interactive selection via ask_question
@@ -56,6 +67,23 @@ Determine mode from $ARGUMENTS:
56
67
  - First token is `by-prompt` → prompt-driven mode, remaining tokens are the user prompt
57
68
 
58
69
  Follow '~/.maestro/workflows/issue-discover.md' completely.
70
+
71
+ ### Phase Gates (MANDATORY, BLOCKING)
72
+
73
+ **GATE 1: Mode Selection → Analysis** (Steps 1-2 → Steps 3-8)
74
+ - REQUIRED: Mode correctly determined from arguments (multi-perspective or by-prompt).
75
+ - REQUIRED: `.workflow/issues/` directory exists (auto-create if missing).
76
+ - BLOCKED if E_NO_PROJECT (`.workflow/` missing) or E_EMPTY_PROMPT (by-prompt without text).
77
+
78
+ **GATE 2: Analysis → Issue Creation** (Steps 8-9 → Steps 10-11)
79
+ - REQUIRED: All perspectives analyzed (multi-perspective) or dimensions explored (by-prompt).
80
+ - REQUIRED: Findings deduplicated against existing issues.jsonl.
81
+ - BLOCKED if E_DISCOVERY_FAILED (all agents returned no results).
82
+
83
+ **GATE 3: Issue Creation → Completion** (Steps 11-12)
84
+ - REQUIRED: Issues appended to issues.jsonl with correct schema and `source: "discover"`.
85
+ - REQUIRED: Discovery session directory created with full agent outputs.
86
+ - BLOCKED if schema validation fails on any issue record.
59
87
  </execution>
60
88
 
61
89
  <error_codes>