maestro-flow 0.3.10 → 0.3.12

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 (311) hide show
  1. package/.claude/agents/conceptual-planning-agent.md +1 -0
  2. package/.claude/agents/workflow-analyzer.md +114 -114
  3. package/.claude/agents/workflow-collab-planner.md +144 -144
  4. package/.claude/agents/workflow-debugger.md +102 -103
  5. package/.claude/agents/workflow-executor.md +127 -128
  6. package/.claude/agents/workflow-integration-checker.md +82 -82
  7. package/.claude/agents/workflow-nyquist-auditor.md +85 -84
  8. package/.claude/agents/workflow-phase-researcher.md +85 -85
  9. package/.claude/agents/workflow-plan-checker.md +90 -90
  10. package/.claude/agents/workflow-planner.md +178 -178
  11. package/.claude/agents/workflow-roadmapper.md +81 -83
  12. package/.claude/agents/workflow-verifier.md +119 -119
  13. package/.claude/commands/learn-decompose.md +176 -176
  14. package/.claude/commands/learn-follow.md +167 -167
  15. package/.claude/commands/learn-retro.md +3 -3
  16. package/.claude/commands/learn-second-opinion.md +2 -2
  17. package/.claude/commands/maestro-brainstorm.md +1 -0
  18. package/.claude/commands/maestro-coordinate.md +1 -3
  19. package/.claude/commands/maestro-fork.md +133 -111
  20. package/.claude/commands/maestro-merge.md +85 -77
  21. package/.claude/commands/maestro-plan.md +88 -2
  22. package/.claude/commands/maestro-roadmap.md +113 -2
  23. package/.claude/commands/maestro.md +1 -0
  24. package/.claude/commands/manage-harvest.md +131 -131
  25. package/.claude/commands/manage-issue.md +2 -2
  26. package/.claude/commands/quality-business-test.md +5 -5
  27. package/.claude/commands/quality-debug.md +3 -2
  28. package/.claude/commands/quality-retrospective.md +6 -4
  29. package/.claude/commands/quality-review.md +1 -1
  30. package/.claude/commands/quality-test-gen.md +5 -4
  31. package/.claude/commands/spec-add.md +67 -56
  32. package/.claude/commands/spec-load.md +66 -64
  33. package/.claude/commands/spec-setup.md +5 -9
  34. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  35. package/.codex/skills/learn-follow/SKILL.md +83 -0
  36. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  37. package/.codex/skills/learn-retro/SKILL.md +83 -0
  38. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  39. package/.codex/skills/maestro/SKILL.md +151 -279
  40. package/.codex/skills/maestro-analyze/SKILL.md +59 -71
  41. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  42. package/.codex/skills/maestro-chain/SKILL.md +95 -110
  43. package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
  44. package/.codex/skills/maestro-execute/SKILL.md +435 -446
  45. package/.codex/skills/maestro-fork/SKILL.md +98 -0
  46. package/.codex/skills/maestro-init/SKILL.md +172 -167
  47. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  48. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  49. package/.codex/skills/maestro-merge/SKILL.md +69 -0
  50. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  51. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  52. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  53. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  54. package/.codex/skills/maestro-plan/SKILL.md +58 -69
  55. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  56. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  57. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  58. package/.codex/skills/maestro-ui-design/SKILL.md +35 -32
  59. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  60. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  61. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  62. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  63. package/.codex/skills/manage-issue/SKILL.md +80 -65
  64. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  65. package/.codex/skills/manage-learn/SKILL.md +190 -186
  66. package/.codex/skills/manage-memory/SKILL.md +95 -72
  67. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  68. package/.codex/skills/manage-status/SKILL.md +102 -89
  69. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  70. package/.codex/skills/quality-debug/SKILL.md +54 -66
  71. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  72. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  73. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  74. package/.codex/skills/quality-review/SKILL.md +95 -107
  75. package/.codex/skills/quality-sync/SKILL.md +101 -89
  76. package/.codex/skills/quality-test/SKILL.md +202 -198
  77. package/.codex/skills/quality-test-gen/SKILL.md +94 -105
  78. package/.codex/skills/spec-add/SKILL.md +58 -39
  79. package/.codex/skills/spec-load/SKILL.md +45 -40
  80. package/.codex/skills/spec-map/SKILL.md +180 -182
  81. package/.codex/skills/spec-setup/SKILL.md +94 -76
  82. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  83. package/.codex/skills/team-executor/SKILL.md +70 -112
  84. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  85. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  86. package/.codex/skills/team-review/SKILL.md +232 -225
  87. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  88. package/.codex/skills/team-testing/SKILL.md +242 -235
  89. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  90. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  91. package/README.md +9 -4
  92. package/README.zh-CN.md +9 -4
  93. package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
  94. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
  95. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
  96. package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
  97. package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
  98. package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
  99. package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
  100. package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
  101. package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
  102. package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
  103. package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
  104. package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
  105. package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
  106. package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
  107. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
  108. package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
  109. package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
  110. package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
  111. package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
  112. package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
  113. package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
  114. package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
  115. package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
  116. package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
  117. package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
  118. package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
  119. package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
  120. package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
  121. package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
  122. package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
  123. package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
  124. package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
  125. package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
  126. package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
  127. package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
  128. package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
  129. package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
  130. package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
  131. package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
  132. package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
  133. package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
  134. package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
  135. package/dashboard/dist/index.html +2 -2
  136. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
  137. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  138. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
  139. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
  140. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
  141. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
  142. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
  143. package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
  144. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  145. package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
  146. package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
  147. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  148. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  149. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  150. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  151. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  152. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  153. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
  154. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
  155. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
  156. package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
  157. package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
  158. package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
  159. package/dashboard/dist-server/dashboard/src/shared/constants.js +10 -0
  160. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  161. package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
  162. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
  163. package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
  164. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  165. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +22 -0
  166. package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
  167. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  168. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  169. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +28 -2
  170. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  171. package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
  172. package/dashboard/dist-server/src/hooks/constants.d.ts +3 -1
  173. package/dashboard/dist-server/src/hooks/constants.js +4 -2
  174. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  175. package/dist/shared/agent-types.d.ts +4 -0
  176. package/dist/shared/agent-types.d.ts.map +1 -1
  177. package/dist/src/commands/collab.js +4 -4
  178. package/dist/src/commands/collab.js.map +1 -1
  179. package/dist/src/commands/hooks.d.ts.map +1 -1
  180. package/dist/src/commands/hooks.js +66 -1
  181. package/dist/src/commands/hooks.js.map +1 -1
  182. package/dist/src/commands/install-backend.d.ts.map +1 -1
  183. package/dist/src/commands/install-backend.js +29 -18
  184. package/dist/src/commands/install-backend.js.map +1 -1
  185. package/dist/src/commands/spec.d.ts.map +1 -1
  186. package/dist/src/commands/spec.js +7 -2
  187. package/dist/src/commands/spec.js.map +1 -1
  188. package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
  189. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
  190. package/dist/src/hooks/constants.d.ts +3 -1
  191. package/dist/src/hooks/constants.d.ts.map +1 -1
  192. package/dist/src/hooks/constants.js +4 -2
  193. package/dist/src/hooks/constants.js.map +1 -1
  194. package/dist/src/hooks/guards/index.d.ts +1 -0
  195. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  196. package/dist/src/hooks/guards/index.js +1 -0
  197. package/dist/src/hooks/guards/index.js.map +1 -1
  198. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  199. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  200. package/dist/src/hooks/guards/spec-validator.js +66 -0
  201. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  202. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  203. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  204. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  205. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  206. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  207. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  208. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  209. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  210. package/dist/src/hooks/skill-context.d.ts +3 -0
  211. package/dist/src/hooks/skill-context.d.ts.map +1 -1
  212. package/dist/src/hooks/skill-context.js +95 -9
  213. package/dist/src/hooks/skill-context.js.map +1 -1
  214. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  215. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  216. package/dist/src/hooks/spec-bridge.js +97 -0
  217. package/dist/src/hooks/spec-bridge.js.map +1 -0
  218. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  219. package/dist/src/hooks/spec-injector.js +18 -12
  220. package/dist/src/hooks/spec-injector.js.map +1 -1
  221. package/dist/src/hooks/statusline.d.ts.map +1 -1
  222. package/dist/src/hooks/statusline.js +6 -3
  223. package/dist/src/hooks/statusline.js.map +1 -1
  224. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  225. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  226. package/dist/src/team/phase-orchestrator.js +165 -0
  227. package/dist/src/team/phase-orchestrator.js.map +1 -0
  228. package/dist/src/team/phase-types.d.ts +51 -0
  229. package/dist/src/team/phase-types.d.ts.map +1 -0
  230. package/dist/src/team/phase-types.js +41 -0
  231. package/dist/src/team/phase-types.js.map +1 -0
  232. package/dist/src/tools/index.d.ts.map +1 -1
  233. package/dist/src/tools/index.js +6 -0
  234. package/dist/src/tools/index.js.map +1 -1
  235. package/dist/src/tools/merge-validator.d.ts.map +1 -1
  236. package/dist/src/tools/merge-validator.js +114 -16
  237. package/dist/src/tools/merge-validator.js.map +1 -1
  238. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  239. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  240. package/dist/src/tools/spec-entry-parser.js +196 -0
  241. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  242. package/dist/src/tools/spec-init.d.ts.map +1 -1
  243. package/dist/src/tools/spec-init.js +66 -92
  244. package/dist/src/tools/spec-init.js.map +1 -1
  245. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  246. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  247. package/dist/src/tools/spec-keyword-index.js +101 -0
  248. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  249. package/dist/src/tools/spec-loader.d.ts +3 -3
  250. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  251. package/dist/src/tools/spec-loader.js +49 -23
  252. package/dist/src/tools/spec-loader.js.map +1 -1
  253. package/dist/src/tools/team-agents.d.ts +27 -0
  254. package/dist/src/tools/team-agents.d.ts.map +1 -0
  255. package/dist/src/tools/team-agents.js +362 -0
  256. package/dist/src/tools/team-agents.js.map +1 -0
  257. package/dist/src/tools/team-mailbox.d.ts +40 -0
  258. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  259. package/dist/src/tools/team-mailbox.js +384 -0
  260. package/dist/src/tools/team-mailbox.js.map +1 -0
  261. package/dist/src/tools/team-msg.d.ts +17 -8
  262. package/dist/src/tools/team-msg.d.ts.map +1 -1
  263. package/dist/src/tools/team-msg.js +110 -13
  264. package/dist/src/tools/team-msg.js.map +1 -1
  265. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  266. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  267. package/dist/src/tools/team-tasks-mcp.js +408 -0
  268. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  269. package/package.json +2 -1
  270. package/shared/agent-types.ts +4 -0
  271. package/templates/worktree-scope.json +9 -10
  272. package/templates/worktrees.json +26 -27
  273. package/workflows/analyze.md +816 -816
  274. package/workflows/brainstorm.md +480 -471
  275. package/workflows/codebase-rebuild.md +332 -332
  276. package/workflows/codebase-refresh.md +240 -240
  277. package/workflows/debug.md +16 -6
  278. package/workflows/execute.md +1 -1
  279. package/workflows/fork.md +100 -36
  280. package/workflows/harvest.md +420 -420
  281. package/workflows/integration-test.md +355 -343
  282. package/workflows/issue-discover.md +414 -414
  283. package/workflows/issue.md +14 -4
  284. package/workflows/learn.md +19 -5
  285. package/workflows/maestro.md +1 -0
  286. package/workflows/map.md +111 -111
  287. package/workflows/merge.md +113 -55
  288. package/workflows/milestone-complete.md +176 -176
  289. package/workflows/plan.md +1 -1
  290. package/workflows/quick.md +497 -497
  291. package/workflows/refactor.md +300 -300
  292. package/workflows/retrospective.md +61 -22
  293. package/workflows/review.md +17 -4
  294. package/workflows/roadmap.md +335 -335
  295. package/workflows/spec-generate.md +640 -640
  296. package/workflows/specs-add.md +46 -81
  297. package/workflows/specs-load.md +15 -17
  298. package/workflows/specs-setup.md +40 -161
  299. package/workflows/test.md +12 -2
  300. package/workflows/ui-style.md +9 -2
  301. package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
  302. package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
  303. package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
  304. package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
  305. package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
  306. package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
  307. package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
  308. package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
  309. package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
  310. package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
  311. package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
@@ -1,119 +1,119 @@
1
- ---
2
- name: workflow-verifier
3
- description: Goal-backward verification across three layers (existence, substance, connection)
4
- allowed-tools:
5
- - Read
6
- - Glob
7
- - Grep
8
- - Bash
9
- ---
10
-
11
- # Workflow Verifier
12
-
13
- ## Role
14
- You perform goal-backward verification of completed work using a three-layer checking approach. You verify that artifacts exist, contain real substance, and are properly connected to the rest of the system. You also validate each task's convergence criteria individually. You are read-only and never modify project files.
15
-
16
- ## Search Tools
17
- @~/.maestro/templates/search-tools.md — Follow search tool priority and selection patterns.
18
-
19
- ## Process
20
-
21
- 1. **Load goals** -- Read the phase/task goals, success criteria, must_haves, and `convergence.criteria` from each task JSON
22
- 2. **Layer 1 - Existence** -- Verify all expected artifacts exist:
23
- - Files created as specified in task `files[].path` where `files[].action` is "create"
24
- - Functions/classes/modules present at `files[].target`
25
- - Configuration entries added
26
- 3. **Layer 2 - Substance** -- Verify artifacts are non-trivial:
27
- - Files contain meaningful implementation (not stubs or TODOs)
28
- - Functions have real logic (not empty bodies or pass-through)
29
- - Tests actually test behavior (not empty test cases)
30
- 4. **Layer 3 - Connection** -- Verify artifacts are properly wired:
31
- - Imports resolve correctly
32
- - New modules are registered/exported
33
- - Routes are mounted, handlers are connected
34
- - Configuration is loaded and used
35
- 5. **Per-task convergence validation** -- For each completed task, verify every item in `convergence.criteria`:
36
- - Run `convergence.verification` command if defined
37
- - Check each criterion individually (pass/fail with evidence)
38
- - Cross-reference with task summaries in `.summaries/`
39
- 6. **Check must_haves** -- Verify each must_have category:
40
- - `truths`: Invariants that must hold
41
- - `artifacts`: Files/outputs that must exist
42
- - `key_links`: Connections that must be wired
43
- 7. **Write report** -- Output verification.json with results
44
-
45
- ## Input
46
- - Phase or task goals with must_haves definition
47
- - `.task/TASK-{NNN}.json` files with `convergence.criteria` to validate
48
- - Completed code/artifacts to verify
49
- - Task summaries from `.summaries/`
50
- - **Project specs** — `maestro spec load --category validation`: verification criteria, acceptance standards. Must verify code complies with loaded constraints.
51
-
52
- ## Output
53
- `verification.json`:
54
- ```json
55
- {
56
- "phase": "<phase-id>",
57
- "status": "pass|fail",
58
- "layers": {
59
- "existence": {"pass": true, "checks": [...]},
60
- "substance": {"pass": true, "checks": [...]},
61
- "connection": {"pass": false, "checks": [...]}
62
- },
63
- "convergence_check": {
64
- "TASK-001": {
65
- "status": "pass",
66
- "criteria": [
67
- {"criterion": "File src/tools/new-tool.ts exports NewTool class", "pass": true, "evidence": "grep confirms export at line 15"},
68
- {"criterion": "npm run build completes without errors", "pass": true, "evidence": "build exit code 0"}
69
- ]
70
- },
71
- "TASK-002": {
72
- "status": "fail",
73
- "criteria": [
74
- {"criterion": "GET /api/health returns 200", "pass": true, "evidence": "curl test passed"},
75
- {"criterion": "Response includes version field", "pass": false, "evidence": "Response body missing 'version' key"}
76
- ]
77
- }
78
- },
79
- "must_haves": {
80
- "truths": [{"claim": "...", "verified": true}],
81
- "artifacts": [{"path": "...", "exists": true, "substantial": true}],
82
- "key_links": [{"from": "...", "to": "...", "connected": false}]
83
- },
84
- "gaps": [
85
- {"layer": "connection", "description": "Router not mounted in app.ts", "severity": "high", "task": "TASK-002"}
86
- ]
87
- }
88
- ```
89
-
90
- ## Constraints
91
- - Read-only; never modify project files
92
- - Every check must have evidence (file:line reference or command output)
93
- - Layer 2 checks must go beyond file existence (actually read content)
94
- - Layer 3 checks must trace import/require chains
95
- - Verify each `convergence.criteria` item from task JSON individually
96
- - Report gaps with severity (high/medium/low), specific location, and originating task ID
97
- - Do not suggest fixes; only identify gaps
98
-
99
- ## Schema Reference
100
- - **Task schema**: `templates/task.json` -- Used to locate `convergence.criteria` and `files` for verification
101
- - Key fields consumed during verification:
102
- - `convergence.criteria` -- Array of testable conditions to check per task (replaces deprecated `done_when`)
103
- - `convergence.verification` -- Command or steps to run for automated checking
104
- - `files[].{path, action, target}` -- Expected file operations to verify
105
- - `status` -- Top-level task status (only verify tasks with status "completed")
106
- - **Verification template**: `templates/verification.json` -- Output format reference
107
-
108
- ## Output Location
109
- - **Phase-scoped verification**: `.workflow/phases/{NN}-{slug}/verification.json`
110
- - **Scratch verification**: `.workflow/scratch/{slug}/verification.json`
111
- - **Per-task verification**: Embedded in the `convergence_check` block within verification.json (not separate files)
112
-
113
- ## Error Behavior
114
- - **Task JSON missing or malformed**: Skip task, log as gap with severity "high" and description "Task definition missing or unreadable"
115
- - **convergence.verification command fails**: Log command error output as evidence, mark criterion as "fail"
116
- - **Cannot determine pass/fail for a criterion**: Mark as "inconclusive" with explanation; count as fail for overall status
117
- - **Build/test environment unavailable**: Log as gap with severity "medium", skip automated checks, perform static checks only
118
- - **All tasks pass all layers**: Set status to "pass" and report clean verification
119
- - **Any gap found**: Set status to "fail" regardless of gap severity; list all gaps for resolution
1
+ ---
2
+ name: workflow-verifier
3
+ description: Goal-backward verification across three layers (existence, substance, connection)
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ - Bash
9
+ ---
10
+
11
+ # Workflow Verifier
12
+
13
+ ## Role
14
+ You perform goal-backward verification of completed work using a three-layer checking approach. You verify that artifacts exist, contain real substance, and are properly connected to the rest of the system. You also validate each task's convergence criteria individually. You are read-only and never modify project files.
15
+
16
+ ## Search Tools
17
+ @~/.maestro/templates/search-tools.md — Follow search tool priority and selection patterns.
18
+
19
+ ## Process
20
+
21
+ 1. **Load goals** -- Read the phase/task goals, success criteria, must_haves, and `convergence.criteria` from each task JSON
22
+ 2. **Layer 1 - Existence** -- Verify all expected artifacts exist:
23
+ - Files created as specified in task `files[].path` where `files[].action` is "create"
24
+ - Functions/classes/modules present at `files[].target`
25
+ - Configuration entries added
26
+ 3. **Layer 2 - Substance** -- Verify artifacts are non-trivial:
27
+ - Files contain meaningful implementation (not stubs or TODOs)
28
+ - Functions have real logic (not empty bodies or pass-through)
29
+ - Tests actually test behavior (not empty test cases)
30
+ 4. **Layer 3 - Connection** -- Verify artifacts are properly wired:
31
+ - Imports resolve correctly
32
+ - New modules are registered/exported
33
+ - Routes are mounted, handlers are connected
34
+ - Configuration is loaded and used
35
+ 5. **Per-task convergence validation** -- For each completed task, verify every item in `convergence.criteria`:
36
+ - Run `convergence.verification` command if defined
37
+ - Check each criterion individually (pass/fail with evidence)
38
+ - Cross-reference with task summaries in `.summaries/`
39
+ 6. **Check must_haves** -- Verify each must_have category:
40
+ - `truths`: Invariants that must hold
41
+ - `artifacts`: Files/outputs that must exist
42
+ - `key_links`: Connections that must be wired
43
+ 7. **Write report** -- Output verification.json with results
44
+
45
+ ## Input
46
+ - Phase or task goals with must_haves definition
47
+ - `.task/TASK-{NNN}.json` files with `convergence.criteria` to validate
48
+ - Completed code/artifacts to verify
49
+ - Task summaries from `.summaries/`
50
+ - **Project specs** — `maestro spec load --category validation`: verification criteria, acceptance standards. Must verify code complies with loaded constraints.
51
+
52
+ ## Output
53
+ `verification.json`:
54
+ ```json
55
+ {
56
+ "phase": "<phase-id>",
57
+ "status": "pass|fail",
58
+ "layers": {
59
+ "existence": {"pass": true, "checks": [...]},
60
+ "substance": {"pass": true, "checks": [...]},
61
+ "connection": {"pass": false, "checks": [...]}
62
+ },
63
+ "convergence_check": {
64
+ "TASK-001": {
65
+ "status": "pass",
66
+ "criteria": [
67
+ {"criterion": "File src/tools/new-tool.ts exports NewTool class", "pass": true, "evidence": "grep confirms export at line 15"},
68
+ {"criterion": "npm run build completes without errors", "pass": true, "evidence": "build exit code 0"}
69
+ ]
70
+ },
71
+ "TASK-002": {
72
+ "status": "fail",
73
+ "criteria": [
74
+ {"criterion": "GET /api/health returns 200", "pass": true, "evidence": "curl test passed"},
75
+ {"criterion": "Response includes version field", "pass": false, "evidence": "Response body missing 'version' key"}
76
+ ]
77
+ }
78
+ },
79
+ "must_haves": {
80
+ "truths": [{"claim": "...", "verified": true}],
81
+ "artifacts": [{"path": "...", "exists": true, "substantial": true}],
82
+ "key_links": [{"from": "...", "to": "...", "connected": false}]
83
+ },
84
+ "gaps": [
85
+ {"layer": "connection", "description": "Router not mounted in app.ts", "severity": "high", "task": "TASK-002"}
86
+ ]
87
+ }
88
+ ```
89
+
90
+ ## Constraints
91
+ - Read-only; never modify project files
92
+ - Every check must have evidence (file:line reference or command output)
93
+ - Layer 2 checks must go beyond file existence (actually read content)
94
+ - Layer 3 checks must trace import/require chains
95
+ - Verify each `convergence.criteria` item from task JSON individually
96
+ - Report gaps with severity (high/medium/low), specific location, and originating task ID
97
+ - Do not suggest fixes; only identify gaps
98
+
99
+ ## Schema Reference
100
+ - **Task schema**: `templates/task.json` -- Used to locate `convergence.criteria` and `files` for verification
101
+ - Key fields consumed during verification:
102
+ - `convergence.criteria` -- Array of testable conditions to check per task (replaces deprecated `done_when`)
103
+ - `convergence.verification` -- Command or steps to run for automated checking
104
+ - `files[].{path, action, target}` -- Expected file operations to verify
105
+ - `status` -- Top-level task status (only verify tasks with status "completed")
106
+ - **Verification template**: `templates/verification.json` -- Output format reference
107
+
108
+ ## Output Location
109
+ - **Scratch verification**: `.workflow/scratch/{slug}/verification.json`
110
+ - **Legacy fallback**: `.workflow/phases/{NN}-{slug}/` paths are still recognized for backward compatibility
111
+ - **Per-task verification**: Embedded in the `convergence_check` block within verification.json (not separate files)
112
+
113
+ ## Error Behavior
114
+ - **Task JSON missing or malformed**: Skip task, log as gap with severity "high" and description "Task definition missing or unreadable"
115
+ - **convergence.verification command fails**: Log command error output as evidence, mark criterion as "fail"
116
+ - **Cannot determine pass/fail for a criterion**: Mark as "inconclusive" with explanation; count as fail for overall status
117
+ - **Build/test environment unavailable**: Log as gap with severity "medium", skip automated checks, perform static checks only
118
+ - **All tasks pass all layers**: Set status to "pass" and report clean verification
119
+ - **Any gap found**: Set status to "fail" regardless of gap severity; list all gaps for resolution
@@ -1,176 +1,176 @@
1
- ---
2
- name: learn-decompose
3
- description: Decompose code into cataloged design patterns, saving findings to specs and wiki
4
- argument-hint: "<path|module> [--patterns <list>] [--save-spec] [--save-wiki]"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Bash
9
- - Glob
10
- - Grep
11
- - Agent
12
- - AskUserQuestion
13
- ---
14
- <purpose>
15
- Systematic pattern extraction from code. Analyzes a module or directory across 4 dimensions (structural, behavioral, data, error) using parallel agents, then catalogs findings with code anchors. Discovered patterns can be persisted to specs (via `spec-add`) and wiki (via `maestro wiki create`).
16
-
17
- Unlike `learn-follow` which reads code with forcing questions, this command is purpose-built for pattern identification and cataloging. It produces a reusable pattern catalog that feeds into the spec system.
18
- </purpose>
19
-
20
- <context>
21
- Arguments: $ARGUMENTS
22
-
23
- **Target resolution:**
24
- - File path → analyze that file
25
- - Directory path → analyze all source files in it
26
- - Module name → Glob for matching directory under `src/`
27
-
28
- **Flags:**
29
- - `--patterns <list>` — Comma-separated pattern names to look for (e.g., "observer,factory,middleware"). If omitted, detect all.
30
- - `--save-spec` — Invoke `Skill({ skill: "spec-add" })` for each newly discovered pattern
31
- - `--save-wiki` — Create wiki note entries per pattern group via `maestro wiki create --type note`
32
-
33
- **Storage written:**
34
- - `.workflow/learning/decompose-{slug}-{YYYY-MM-DD}.md` — Pattern decomposition report
35
- - `.workflow/learning/lessons.jsonl` — One insight per discovered pattern (source: "decompose")
36
- - `.workflow/learning/learning-index.json` — Updated index
37
- - If `--save-spec`: entries appended to `.workflow/specs/coding-conventions.md`
38
- - If `--save-wiki`: new wiki note entries
39
-
40
- **Storage read:**
41
- - Source files at target path
42
- - `.workflow/specs/coding-conventions.md` — Existing documented patterns (for dedup)
43
- - `.workflow/learning/lessons.jsonl` — Previously identified patterns (for dedup)
44
- </context>
45
-
46
- <execution>
47
-
48
- ### Stage 1: Resolve Target
49
- - If argument is a file: verify exists, use as single-file target
50
- - If argument is a directory: list all `.ts`, `.tsx`, `.js`, `.jsx` files (exclude `node_modules`, `dist`, `.test.`)
51
- - If argument is a module name: Glob `src/**/{module}*` to find matching directory
52
- - If target unresolvable, AskUserQuestion with suggestions
53
-
54
- ### Stage 2: Load Existing Patterns
55
- - Read `.workflow/specs/coding-conventions.md` — extract documented patterns
56
- - Search `lessons.jsonl` for entries with `category: "pattern"` — previously discovered
57
- - Build dedup set: pattern names already known
58
-
59
- ### Stage 3: Parallel Agent Analysis (4 dimensions)
60
- Spawn 4 Agents in a single message, each analyzing the target from one dimension:
61
-
62
- **Agent 1 — Structural Patterns:**
63
- - Class hierarchy and composition relationships
64
- - Module boundaries and encapsulation
65
- - Dependency injection / inversion of control
66
- - Builder, Factory, Singleton patterns
67
- - Export structure (barrel files, re-exports)
68
-
69
- **Agent 2 — Behavioral Patterns:**
70
- - Event flow (EventEmitter, pub/sub, callbacks)
71
- - Middleware chains and interceptors
72
- - Observer/subscriber patterns
73
- - Command/strategy patterns
74
- - State machines
75
-
76
- **Agent 3 — Data Patterns:**
77
- - Repository / data access patterns
78
- - DTO / transformation pipelines
79
- - Caching strategies (memoization, LRU, TTL)
80
- - Serialization / deserialization
81
- - Schema validation approaches
82
-
83
- **Agent 4 — Error Patterns:**
84
- - Error boundary and propagation
85
- - Retry / backoff / circuit breaker
86
- - Fallback chains
87
- - Validation and guard clauses
88
- - Logging and observability patterns
89
-
90
- Each agent returns findings as structured list:
91
- ```json
92
- [{
93
- "name": "pattern name",
94
- "dimension": "structural|behavioral|data|error",
95
- "confidence": "high|medium|low",
96
- "anchors": ["file:line", "file:line"],
97
- "description": "what it does",
98
- "rationale": "why this approach",
99
- "tradeoffs": "what was given up"
100
- }]
101
- ```
102
-
103
- If `--patterns` specified, instruct agents to focus only on named patterns.
104
-
105
- ### Stage 4: Cross-Reference & Dedup
106
- - Match agent findings against existing pattern set from Stage 2
107
- - Mark each finding: `documented` (already in specs), `known` (in lessons), or `new`
108
- - Flag contradictions: finding conflicts with documented convention
109
- - Merge duplicate findings across agents (same pattern found by multiple dimensions)
110
-
111
- ### Stage 5: Produce Pattern Catalog
112
- Build the decomposition report grouped by dimension:
113
-
114
- ```markdown
115
- # Pattern Decomposition: {target}
116
-
117
- ## Summary
118
- - Patterns found: N (M new, K documented, J known)
119
- - Dimensions analyzed: structural, behavioral, data, error
120
- - Contradictions: N
121
-
122
- ## Structural Patterns
123
- | Pattern | Confidence | Location | Status |
124
- |---------|-----------|----------|--------|
125
- | {name} | high | {file:line} | new / documented / known |
126
-
127
- ### {Pattern Name}
128
- **Description:** ...
129
- **Code example:** (inline snippet from anchor)
130
- **Trade-offs:** ...
131
-
132
- ## Behavioral Patterns
133
- ...
134
- ```
135
-
136
- ### Stage 6: Persist
137
- 1. Write `.workflow/learning/decompose-{slug}-{date}.md`
138
- 2. Append each **new** pattern to `lessons.jsonl`:
139
- - `source: "decompose"`, `category: "pattern"`, `confidence: <level>`
140
- - Tags: `["decompose", "{dimension}", "{target-slug}"]`
141
- - Stable INS-id from `hash("decompose" + target + pattern_name)`
142
- 3. Update `learning-index.json`
143
- 4. If `--save-spec`: for each new pattern, invoke `Skill({ skill: "spec-add", args: "pattern {description}" })`
144
- 5. If `--save-wiki`: create wiki note per dimension group via `maestro wiki create --type note --slug decompose-{dimension}-{slug}`
145
- 6. Display summary with counts and next steps
146
-
147
- **Next-step routing:**
148
- - Follow-along on a specific pattern → `/learn-follow <anchor-file>`
149
- - Get second opinion on findings → `/learn-second-opinion <target>`
150
- - Add all new patterns to specs → `/spec-add pattern ...` per pattern
151
- </execution>
152
-
153
- <error_codes>
154
- | Code | Severity | Condition | Recovery |
155
- |------|----------|-----------|----------|
156
- | E001 | error | Target path not found | Check path exists, or use a module name |
157
- | E002 | error | No source files found in target directory | Check target has .ts/.js files, exclude filters may be too aggressive |
158
- | W001 | warning | One or more dimension agents failed — partial results | Proceed with available dimensions, retry failed ones |
159
- | W002 | warning | coding-conventions.md not found — skipping dedup against specs | All patterns marked as "new" |
160
- | W003 | warning | Large target (>50 files) — analysis may be slow | Consider narrowing scope with --patterns filter |
161
- </error_codes>
162
-
163
- <success_criteria>
164
- - [ ] Target resolved to concrete file list
165
- - [ ] Existing patterns loaded for dedup
166
- - [ ] All 4 dimension agents spawned in parallel
167
- - [ ] Each finding has: name, dimension, confidence, anchors, description, tradeoffs
168
- - [ ] Cross-reference performed (documented / known / new status assigned)
169
- - [ ] Pattern catalog written to `decompose-{slug}-{date}.md`
170
- - [ ] New patterns appended to `lessons.jsonl` with stable INS-ids
171
- - [ ] `learning-index.json` updated
172
- - [ ] If --save-spec: spec entries created for new patterns
173
- - [ ] If --save-wiki: wiki notes created per dimension group
174
- - [ ] No files modified outside `.workflow/learning/` (and optionally specs/wiki)
175
- - [ ] Summary displayed with pattern counts and next-step routing
176
- </success_criteria>
1
+ ---
2
+ name: learn-decompose
3
+ description: Decompose code into cataloged design patterns, saving findings to specs and wiki
4
+ argument-hint: "<path|module> [--patterns <list>] [--save-spec] [--save-wiki]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Agent
12
+ - AskUserQuestion
13
+ ---
14
+ <purpose>
15
+ Systematic pattern extraction from code. Analyzes a module or directory across 4 dimensions (structural, behavioral, data, error) using parallel agents, then catalogs findings with code anchors. Discovered patterns can be persisted to specs (via `spec-add`) and wiki (via `maestro wiki create`).
16
+
17
+ Unlike `learn-follow` which reads code with forcing questions, this command is purpose-built for pattern identification and cataloging. It produces a reusable pattern catalog that feeds into the spec system.
18
+ </purpose>
19
+
20
+ <context>
21
+ Arguments: $ARGUMENTS
22
+
23
+ **Target resolution:**
24
+ - File path → analyze that file
25
+ - Directory path → analyze all source files in it
26
+ - Module name → Glob for matching directory under `src/`
27
+
28
+ **Flags:**
29
+ - `--patterns <list>` — Comma-separated pattern names to look for (e.g., "observer,factory,middleware"). If omitted, detect all.
30
+ - `--save-spec` — Invoke `Skill({ skill: "spec-add" })` for each newly discovered pattern
31
+ - `--save-wiki` — Create wiki note entries per pattern group via `maestro wiki create --type note`
32
+
33
+ **Storage written:**
34
+ - `.workflow/learning/decompose-{slug}-{YYYY-MM-DD}.md` — Pattern decomposition report
35
+ - `.workflow/learning/lessons.jsonl` — One insight per discovered pattern (source: "decompose")
36
+ - `.workflow/learning/learning-index.json` — Updated index
37
+ - If `--save-spec`: entries appended to `.workflow/specs/coding-conventions.md`
38
+ - If `--save-wiki`: new wiki note entries
39
+
40
+ **Storage read:**
41
+ - Source files at target path
42
+ - `.workflow/specs/coding-conventions.md` — Existing documented patterns (for dedup)
43
+ - `.workflow/learning/lessons.jsonl` — Previously identified patterns (for dedup)
44
+ </context>
45
+
46
+ <execution>
47
+
48
+ ### Stage 1: Resolve Target
49
+ - If argument is a file: verify exists, use as single-file target
50
+ - If argument is a directory: list all `.ts`, `.tsx`, `.js`, `.jsx` files (exclude `node_modules`, `dist`, `.test.`)
51
+ - If argument is a module name: Glob `src/**/{module}*` to find matching directory
52
+ - If target unresolvable, AskUserQuestion with suggestions
53
+
54
+ ### Stage 2: Load Existing Patterns
55
+ - Read `.workflow/specs/coding-conventions.md` — extract documented patterns
56
+ - Search `lessons.jsonl` for entries with `category: "pattern"` — previously discovered
57
+ - Build dedup set: pattern names already known
58
+
59
+ ### Stage 3: Parallel Agent Analysis (4 dimensions)
60
+ Spawn 4 Agents in a single message, each analyzing the target from one dimension:
61
+
62
+ **Agent 1 — Structural Patterns:**
63
+ - Class hierarchy and composition relationships
64
+ - Module boundaries and encapsulation
65
+ - Dependency injection / inversion of control
66
+ - Builder, Factory, Singleton patterns
67
+ - Export structure (barrel files, re-exports)
68
+
69
+ **Agent 2 — Behavioral Patterns:**
70
+ - Event flow (EventEmitter, pub/sub, callbacks)
71
+ - Middleware chains and interceptors
72
+ - Observer/subscriber patterns
73
+ - Command/strategy patterns
74
+ - State machines
75
+
76
+ **Agent 3 — Data Patterns:**
77
+ - Repository / data access patterns
78
+ - DTO / transformation pipelines
79
+ - Caching strategies (memoization, LRU, TTL)
80
+ - Serialization / deserialization
81
+ - Schema validation approaches
82
+
83
+ **Agent 4 — Error Patterns:**
84
+ - Error boundary and propagation
85
+ - Retry / backoff / circuit breaker
86
+ - Fallback chains
87
+ - Validation and guard clauses
88
+ - Logging and observability patterns
89
+
90
+ Each agent returns findings as structured list:
91
+ ```json
92
+ [{
93
+ "name": "pattern name",
94
+ "dimension": "structural|behavioral|data|error",
95
+ "confidence": "high|medium|low",
96
+ "anchors": ["file:line", "file:line"],
97
+ "description": "what it does",
98
+ "rationale": "why this approach",
99
+ "tradeoffs": "what was given up"
100
+ }]
101
+ ```
102
+
103
+ If `--patterns` specified, instruct agents to focus only on named patterns.
104
+
105
+ ### Stage 4: Cross-Reference & Dedup
106
+ - Match agent findings against existing pattern set from Stage 2
107
+ - Mark each finding: `documented` (already in specs), `known` (in lessons), or `new`
108
+ - Flag contradictions: finding conflicts with documented convention
109
+ - Merge duplicate findings across agents (same pattern found by multiple dimensions)
110
+
111
+ ### Stage 5: Produce Pattern Catalog
112
+ Build the decomposition report grouped by dimension:
113
+
114
+ ```markdown
115
+ # Pattern Decomposition: {target}
116
+
117
+ ## Summary
118
+ - Patterns found: N (M new, K documented, J known)
119
+ - Dimensions analyzed: structural, behavioral, data, error
120
+ - Contradictions: N
121
+
122
+ ## Structural Patterns
123
+ | Pattern | Confidence | Location | Status |
124
+ |---------|-----------|----------|--------|
125
+ | {name} | high | {file:line} | new / documented / known |
126
+
127
+ ### {Pattern Name}
128
+ **Description:** ...
129
+ **Code example:** (inline snippet from anchor)
130
+ **Trade-offs:** ...
131
+
132
+ ## Behavioral Patterns
133
+ ...
134
+ ```
135
+
136
+ ### Stage 6: Persist
137
+ 1. Write `.workflow/learning/decompose-{slug}-{date}.md`
138
+ 2. Append each **new** pattern to `lessons.jsonl`:
139
+ - `source: "decompose"`, `category: "pattern"`, `confidence: <level>`
140
+ - Tags: `["decompose", "{dimension}", "{target-slug}"]`
141
+ - Stable INS-id from `hash("decompose" + target + pattern_name)`
142
+ 3. Update `learning-index.json`
143
+ 4. If `--save-spec`: for each new pattern, invoke `Skill({ skill: "spec-add", args: "pattern {description}" })`
144
+ 5. If `--save-wiki`: create wiki note per dimension group via `maestro wiki create --type note --slug decompose-{dimension}-{slug}`
145
+ 6. Display summary with counts and next steps
146
+
147
+ **Next-step routing:**
148
+ - Follow-along on a specific pattern → `/learn-follow <anchor-file>`
149
+ - Get second opinion on findings → `/learn-second-opinion <target>`
150
+ - Add all new patterns to specs → `/spec-add coding ...` per pattern
151
+ </execution>
152
+
153
+ <error_codes>
154
+ | Code | Severity | Condition | Recovery |
155
+ |------|----------|-----------|----------|
156
+ | E001 | error | Target path not found | Check path exists, or use a module name |
157
+ | E002 | error | No source files found in target directory | Check target has .ts/.js files, exclude filters may be too aggressive |
158
+ | W001 | warning | One or more dimension agents failed — partial results | Proceed with available dimensions, retry failed ones |
159
+ | W002 | warning | coding-conventions.md not found — skipping dedup against specs | All patterns marked as "new" |
160
+ | W003 | warning | Large target (>50 files) — analysis may be slow | Consider narrowing scope with --patterns filter |
161
+ </error_codes>
162
+
163
+ <success_criteria>
164
+ - [ ] Target resolved to concrete file list
165
+ - [ ] Existing patterns loaded for dedup
166
+ - [ ] All 4 dimension agents spawned in parallel
167
+ - [ ] Each finding has: name, dimension, confidence, anchors, description, tradeoffs
168
+ - [ ] Cross-reference performed (documented / known / new status assigned)
169
+ - [ ] Pattern catalog written to `decompose-{slug}-{date}.md`
170
+ - [ ] New patterns appended to `lessons.jsonl` with stable INS-ids
171
+ - [ ] `learning-index.json` updated
172
+ - [ ] If --save-spec: spec entries created for new patterns
173
+ - [ ] If --save-wiki: wiki notes created per dimension group
174
+ - [ ] No files modified outside `.workflow/learning/` (and optionally specs/wiki)
175
+ - [ ] Summary displayed with pattern counts and next-step routing
176
+ </success_criteria>