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,343 +1,355 @@
1
- # Integration Test Workflow
2
-
3
- Self-iterating integration test cycle that combines exploration, test design, execution, reflection, and adaptive strategy adjustment. Runs automated tests in a closed loop that self-corrects until convergence.
4
-
5
- 6-phase cycle: Explore -> Design -> Develop -> Test -> Reflect -> Adjust
6
- Adaptive strategy: Conservative -> Aggressive -> Surgical -> Reflective
7
- L0-L3 progressive layers: Static Analysis -> Unit -> Integration -> E2E
8
-
9
- ---
10
-
11
- ### Step 1: Parse Input and Initialize
12
-
13
- **Parse arguments:**
14
-
15
- | Input | Result |
16
- |-------|--------|
17
- | No arguments | Error E001 |
18
- | Phase number | Resolve `.workflow/phases/{NN}-{slug}/` |
19
- | `--max-iter N` | Set MAX_ITER = N (default 5) |
20
- | `--layer L2` | Start from L2 layer |
21
-
22
- Check for existing integration test session:
23
- ```bash
24
- ls .workflow/phases/{NN}-*/.tests/integration/state.json 2>/dev/null
25
- ```
26
-
27
- If session exists: offer resume or restart.
28
-
29
- **Initialize session:**
30
-
31
- Create `.tests/integration/` directory.
32
-
33
- Write initial `state.json`:
34
- ```json
35
- {
36
- "phase": "{phase}",
37
- "started_at": "{ISO timestamp}",
38
- "current_iteration": 0,
39
- "max_iterations": 5,
40
- "strategy": "conservative",
41
- "current_layer": "L0",
42
- "pass_rates": [],
43
- "convergence_threshold": 95,
44
- "status": "running"
45
- }
46
- ```
47
-
48
- Initialize `reflection-log.md`:
49
- ```markdown
50
- # Integration Test Reflection Log
51
- Phase: {phase_name}
52
- Started: {timestamp}
53
-
54
- ## Iterations
55
- ```
56
-
57
- ---
58
-
59
- ### Step 1.3: Load Project Specs
60
-
61
- ```
62
- specs_content = maestro spec load --category test
63
- arch_content = maestro spec load --category planning
64
- ```
65
-
66
- `specs_content` for test conventions; `arch_content` for module boundaries in Step 2-3.
67
-
68
- ---
69
-
70
- ### Step 1.5: Load Previously Generated Tests
71
-
72
- Check for tests already generated by `quality-test-gen`:
73
-
74
- ```
75
- generated_tests = []
76
- IF file exists "${PHASE_DIR}/.tests/test-gen-report.json":
77
- report = read_json("${PHASE_DIR}/.tests/test-gen-report.json")
78
- FOR test_entry IN report.generated:
79
- IF test_entry.layer is "integration" or "e2e":
80
- generated_tests.push(test_entry)
81
- IF generated_tests.length > 0:
82
- display "Found {generated_tests.length} pre-generated integration/e2e tests from test-gen. Will incorporate into test plan."
83
- ```
84
-
85
- These tests are merged into the test plan in Step 3 (Design) — they are executed but not re-generated.
86
-
87
- ---
88
-
89
- ### Step 2: Explore
90
-
91
- **Phase 1: Explore codebase for testable integration points.**
92
-
93
- Discover:
94
- - Module boundaries and cross-module calls
95
- - API endpoints and their handlers
96
- - Database interactions and queries
97
- - External service integrations
98
- - Event flows and message passing
99
-
100
- ```bash
101
- # Find cross-module imports
102
- grep -r "import.*from.*\.\./" src/ --include="*.ts" --include="*.tsx" -l 2>/dev/null | head -20
103
-
104
- # Find API route definitions
105
- grep -r "router\.\|app\.\(get\|post\|put\|delete\)" src/ --include="*.ts" -l 2>/dev/null | head -20
106
-
107
- # Find database calls
108
- grep -r "prisma\.\|query\|findMany\|findOne\|create\|update\|delete" src/ --include="*.ts" -l 2>/dev/null | head -20
109
- ```
110
-
111
- Map integration points: which modules talk to which, through what interfaces.
112
-
113
- ---
114
-
115
- ### Step 3: Design
116
-
117
- **Phase 2: Design integration test plan.**
118
-
119
- **Merge pre-generated tests** (from Step 1.5):
120
- If `generated_tests` is not empty, incorporate them into the test plan directly — mark as "pre-existing" so Step 4 (Develop) skips writing them and Step 5 (Test Execute) includes them in the run.
121
-
122
- Based on exploration (and pre-generated tests if available), design tests per layer:
123
-
124
- **L0 - Static Analysis:**
125
- - Type check command
126
- - Lint command
127
- - Dead code detection
128
-
129
- **L1 - Unit Tests (isolation):**
130
- - Critical functions identified in explore
131
- - Edge cases for core logic
132
-
133
- **L2 - Integration Tests:**
134
- - API endpoint tests (request -> response)
135
- - Cross-module interaction tests
136
- - Database query tests (with fixtures)
137
-
138
- **L3 - E2E Tests:**
139
- - Critical user flows
140
- - Happy path + error path
141
-
142
- Write test plan to `.tests/integration/test-plan.json`:
143
- ```json
144
- {
145
- "layers": {
146
- "L0": { "commands": ["tsc --noEmit", "eslint src/"], "expected_pass": true },
147
- "L1": { "test_files": [...], "test_count": N },
148
- "L2": { "test_files": [...], "test_count": N },
149
- "L3": { "test_files": [...], "test_count": N }
150
- },
151
- "total_tests": M
152
- }
153
- ```
154
-
155
- ---
156
-
157
- ### Step 4: Develop
158
-
159
- **Phase 3: Develop/write test code.**
160
-
161
- For each layer (current and below), write tests following existing patterns.
162
- Use quality-test-gen's RED-GREEN methodology for test writing.
163
-
164
- For integration tests (L2) specifically:
165
- - Set up test fixtures (DB seeds, mock services)
166
- - Write request/response assertions
167
- - Test error handling paths
168
- - Verify cross-module data flow
169
-
170
- ---
171
-
172
- ### Step 5: Test Execute
173
-
174
- **Phase 4: Execute tests for current layer.**
175
-
176
- Run tests progressively (L0 must pass before L1, etc.):
177
-
178
- ```bash
179
- # L0: Static analysis
180
- tsc --noEmit 2>&1 | tail -30
181
- eslint src/ 2>&1 | tail -30
182
-
183
- # L1: Unit tests
184
- {test_command} --testPathPattern="unit|__tests__" 2>&1 | tail -50
185
-
186
- # L2: Integration tests
187
- {test_command} --testPathPattern="integration" 2>&1 | tail -50
188
-
189
- # L3: E2E tests
190
- {test_command} --testPathPattern="e2e" 2>&1 | tail -50
191
- ```
192
-
193
- Record results in `test-results-iter-{N}.json`:
194
- ```json
195
- {
196
- "iteration": N,
197
- "timestamp": "{ISO timestamp}",
198
- "strategy": "{current_strategy}",
199
- "layers": {
200
- "L0": { "status": "pass|fail", "errors": [...] },
201
- "L1": { "total": N, "passed": P, "failed": F, "pass_rate": 95.0 },
202
- "L2": { "total": N, "passed": P, "failed": F, "pass_rate": 87.5 },
203
- "L3": { "total": N, "passed": P, "failed": F, "pass_rate": 100.0 }
204
- },
205
- "overall_pass_rate": 92.3
206
- }
207
- ```
208
-
209
- Calculate overall pass rate.
210
-
211
- ---
212
-
213
- ### Step 6: Reflect
214
-
215
- **Phase 5: Reflect on iteration results.**
216
-
217
- Analyze what happened:
218
- - Which tests failed and why?
219
- - Is pass rate improving, plateauing, or regressing?
220
- - Are failures clustered in one area or spread out?
221
- - Is the current strategy working?
222
-
223
- Append to `reflection-log.md`:
224
- ```markdown
225
- ## Iteration {N}
226
- Strategy: {strategy_name}
227
- Pass rate: {rate}% (previous: {prev_rate}%)
228
- Delta: {+/-}%
229
-
230
- ### What worked
231
- - {observation}
232
-
233
- ### What failed
234
- - {test}: {reason}
235
-
236
- ### Pattern detected
237
- - {pattern, e.g., "all failures in auth module"}
238
-
239
- ### Strategy assessment
240
- - Current strategy: {effective|ineffective|partially_effective}
241
- - Recommendation: {keep|switch_to_X}
242
- ```
243
-
244
- ---
245
-
246
- ### Step 7: Adjust
247
-
248
- **Phase 6: Adjust strategy based on reflection.**
249
-
250
- **Adaptive Strategy Engine:**
251
-
252
- | Condition | Strategy | Behavior |
253
- |-----------|----------|----------|
254
- | Iteration 1-2 | Conservative | Fix obvious failures, don't refactor |
255
- | Pass rate >80% AND failures similar to previous | Aggressive | Batch-fix related failures together |
256
- | New regressions appeared | Surgical | Revert last changes, fix regression only |
257
- | Stuck 3+ iterations (rate not improving) | Reflective | Step back, re-analyze root cause pattern |
258
-
259
- **Strategy transitions:**
260
- ```
261
- Conservative -> (pass rate >80%) -> Aggressive
262
- Aggressive -> (regression) -> Surgical
263
- Surgical -> (regression fixed) -> Aggressive
264
- Any -> (stuck 3+ iters) -> Reflective
265
- Reflective -> (new insight) -> Conservative (restart approach)
266
- ```
267
-
268
- Update state.json with new strategy and iteration count.
269
-
270
- **Convergence check:**
271
- - If overall_pass_rate >= convergence_threshold (95%): CONVERGED -> go to Step 8
272
- - If iteration >= max_iterations: MAX_ITER_REACHED -> go to Step 8
273
- - Otherwise: go back to Step 4 (next iteration)
274
-
275
- ---
276
-
277
- ### Step 8: Complete
278
-
279
- **Complete integration test cycle.**
280
-
281
- Update state.json: status -> "complete" or "max_iter_reached".
282
-
283
- Write `.tests/integration/summary.json`:
284
- ```json
285
- {
286
- "phase": "{phase}",
287
- "completed_at": "{ISO timestamp}",
288
- "iterations": N,
289
- "final_pass_rate": 97.5,
290
- "converged": true,
291
- "strategy_history": ["conservative", "conservative", "aggressive"],
292
- "layers": {
293
- "L0": { "status": "pass" },
294
- "L1": { "pass_rate": 100.0 },
295
- "L2": { "pass_rate": 95.0 },
296
- "L3": { "pass_rate": 100.0 }
297
- },
298
- "bugs_discovered": [...],
299
- "regressions_fixed": [...]
300
- }
301
- ```
302
-
303
- Update index.json with integration test results.
304
-
305
- ---
306
-
307
- ### Step 9: Report
308
-
309
- ```
310
- === INTEGRATION TEST CYCLE ===
311
- Phase: {phase_name}
312
- Iterations: {N}/{max_iter}
313
- Converged: {yes/no} (threshold: {threshold}%)
314
-
315
- Layer Results:
316
- L0 Static: {pass/fail}
317
- L1 Unit: {pass_rate}% ({passed}/{total})
318
- L2 Integration: {pass_rate}% ({passed}/{total})
319
- L3 E2E: {pass_rate}% ({passed}/{total})
320
-
321
- Overall: {final_pass_rate}%
322
- Strategy: {final_strategy} (transitioned {N} times)
323
-
324
- Bugs Found: {bug_count}
325
- Regressions: {regression_count} found, {fixed_count} fixed
326
-
327
- Files:
328
- {target_dir}/.tests/integration/state.json
329
- {target_dir}/.tests/integration/reflection-log.md
330
- {target_dir}/.tests/integration/summary.json
331
-
332
- Next steps:
333
- {suggested_next_command}
334
- ```
335
-
336
- **Next step routing:**
337
-
338
- | Result | Suggestion |
339
- |--------|------------|
340
- | Converged (>=95%) | Skill({ skill: "maestro-verify", args: "{phase}" }) to update validation |
341
- | Max iter, >80% | Skill({ skill: "quality-test", args: "{phase}" }) for manual UAT on remaining gaps |
342
- | Max iter, <80% | Skill({ skill: "quality-debug" }) for deep investigation |
343
- | Bugs discovered | Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) to plan fixes |
1
+ # Integration Test Workflow
2
+
3
+ Self-iterating integration test cycle that combines exploration, test design, execution, reflection, and adaptive strategy adjustment. Runs automated tests in a closed loop that self-corrects until convergence.
4
+
5
+ 6-phase cycle: Explore -> Design -> Develop -> Test -> Reflect -> Adjust
6
+ Adaptive strategy: Conservative -> Aggressive -> Surgical -> Reflective
7
+ L0-L3 progressive layers: Static Analysis -> Unit -> Integration -> E2E
8
+
9
+ ---
10
+
11
+ ### Step 1: Parse Input and Initialize
12
+
13
+ **Parse arguments:**
14
+
15
+ | Input | Result |
16
+ |-------|--------|
17
+ | No arguments | Error E001 |
18
+ | Phase number | Resolve phase dir (artifact registry or legacy `.workflow/phases/{NN}-{slug}/`) |
19
+ | `--max-iter N` | Set MAX_ITER = N (default 5) |
20
+ | `--layer L2` | Start from L2 layer |
21
+
22
+ **Resolve phase dir:**
23
+ ```
24
+ Read .workflow/state.json → state
25
+ artifacts = state.artifacts ?? []
26
+ IF artifacts.length > 0:
27
+ art = artifacts.find(a => a.type === 'execute' && a.phase === phaseNum)
28
+ PHASE_DIR = ".workflow/" + art.path
29
+ ELSE:
30
+ Glob: .workflow/phases/{NN}-*/
31
+ PHASE_DIR = resolved path
32
+ ```
33
+
34
+ Check for existing integration test session:
35
+ ```bash
36
+ ls ${PHASE_DIR}/.tests/integration/state.json 2>/dev/null
37
+ ```
38
+
39
+ If session exists: offer resume or restart.
40
+
41
+ **Initialize session:**
42
+
43
+ Create `.tests/integration/` directory.
44
+
45
+ Write initial `state.json`:
46
+ ```json
47
+ {
48
+ "phase": "{phase}",
49
+ "started_at": "{ISO timestamp}",
50
+ "current_iteration": 0,
51
+ "max_iterations": 5,
52
+ "strategy": "conservative",
53
+ "current_layer": "L0",
54
+ "pass_rates": [],
55
+ "convergence_threshold": 95,
56
+ "status": "running"
57
+ }
58
+ ```
59
+
60
+ Initialize `reflection-log.md`:
61
+ ```markdown
62
+ # Integration Test Reflection Log
63
+ Phase: {phase_name}
64
+ Started: {timestamp}
65
+
66
+ ## Iterations
67
+ ```
68
+
69
+ ---
70
+
71
+ ### Step 1.3: Load Project Specs
72
+
73
+ ```
74
+ specs_content = maestro spec load --category test
75
+ arch_content = maestro spec load --category arch
76
+ ```
77
+
78
+ `specs_content` for test conventions; `arch_content` for module boundaries in Step 2-3.
79
+
80
+ ---
81
+
82
+ ### Step 1.5: Load Previously Generated Tests
83
+
84
+ Check for tests already generated by `quality-test-gen`:
85
+
86
+ ```
87
+ generated_tests = []
88
+ IF file exists "${PHASE_DIR}/.tests/test-gen-report.json":
89
+ report = read_json("${PHASE_DIR}/.tests/test-gen-report.json")
90
+ FOR test_entry IN report.generated:
91
+ IF test_entry.layer is "integration" or "e2e":
92
+ generated_tests.push(test_entry)
93
+ IF generated_tests.length > 0:
94
+ display "Found {generated_tests.length} pre-generated integration/e2e tests from test-gen. Will incorporate into test plan."
95
+ ```
96
+
97
+ These tests are merged into the test plan in Step 3 (Design) — they are executed but not re-generated.
98
+
99
+ ---
100
+
101
+ ### Step 2: Explore
102
+
103
+ **Phase 1: Explore codebase for testable integration points.**
104
+
105
+ Discover:
106
+ - Module boundaries and cross-module calls
107
+ - API endpoints and their handlers
108
+ - Database interactions and queries
109
+ - External service integrations
110
+ - Event flows and message passing
111
+
112
+ ```bash
113
+ # Find cross-module imports
114
+ grep -r "import.*from.*\.\./" src/ --include="*.ts" --include="*.tsx" -l 2>/dev/null | head -20
115
+
116
+ # Find API route definitions
117
+ grep -r "router\.\|app\.\(get\|post\|put\|delete\)" src/ --include="*.ts" -l 2>/dev/null | head -20
118
+
119
+ # Find database calls
120
+ grep -r "prisma\.\|query\|findMany\|findOne\|create\|update\|delete" src/ --include="*.ts" -l 2>/dev/null | head -20
121
+ ```
122
+
123
+ Map integration points: which modules talk to which, through what interfaces.
124
+
125
+ ---
126
+
127
+ ### Step 3: Design
128
+
129
+ **Phase 2: Design integration test plan.**
130
+
131
+ **Merge pre-generated tests** (from Step 1.5):
132
+ If `generated_tests` is not empty, incorporate them into the test plan directly — mark as "pre-existing" so Step 4 (Develop) skips writing them and Step 5 (Test Execute) includes them in the run.
133
+
134
+ Based on exploration (and pre-generated tests if available), design tests per layer:
135
+
136
+ **L0 - Static Analysis:**
137
+ - Type check command
138
+ - Lint command
139
+ - Dead code detection
140
+
141
+ **L1 - Unit Tests (isolation):**
142
+ - Critical functions identified in explore
143
+ - Edge cases for core logic
144
+
145
+ **L2 - Integration Tests:**
146
+ - API endpoint tests (request -> response)
147
+ - Cross-module interaction tests
148
+ - Database query tests (with fixtures)
149
+
150
+ **L3 - E2E Tests:**
151
+ - Critical user flows
152
+ - Happy path + error path
153
+
154
+ Write test plan to `.tests/integration/test-plan.json`:
155
+ ```json
156
+ {
157
+ "layers": {
158
+ "L0": { "commands": ["tsc --noEmit", "eslint src/"], "expected_pass": true },
159
+ "L1": { "test_files": [...], "test_count": N },
160
+ "L2": { "test_files": [...], "test_count": N },
161
+ "L3": { "test_files": [...], "test_count": N }
162
+ },
163
+ "total_tests": M
164
+ }
165
+ ```
166
+
167
+ ---
168
+
169
+ ### Step 4: Develop
170
+
171
+ **Phase 3: Develop/write test code.**
172
+
173
+ For each layer (current and below), write tests following existing patterns.
174
+ Use quality-test-gen's RED-GREEN methodology for test writing.
175
+
176
+ For integration tests (L2) specifically:
177
+ - Set up test fixtures (DB seeds, mock services)
178
+ - Write request/response assertions
179
+ - Test error handling paths
180
+ - Verify cross-module data flow
181
+
182
+ ---
183
+
184
+ ### Step 5: Test Execute
185
+
186
+ **Phase 4: Execute tests for current layer.**
187
+
188
+ Run tests progressively (L0 must pass before L1, etc.):
189
+
190
+ ```bash
191
+ # L0: Static analysis
192
+ tsc --noEmit 2>&1 | tail -30
193
+ eslint src/ 2>&1 | tail -30
194
+
195
+ # L1: Unit tests
196
+ {test_command} --testPathPattern="unit|__tests__" 2>&1 | tail -50
197
+
198
+ # L2: Integration tests
199
+ {test_command} --testPathPattern="integration" 2>&1 | tail -50
200
+
201
+ # L3: E2E tests
202
+ {test_command} --testPathPattern="e2e" 2>&1 | tail -50
203
+ ```
204
+
205
+ Record results in `test-results-iter-{N}.json`:
206
+ ```json
207
+ {
208
+ "iteration": N,
209
+ "timestamp": "{ISO timestamp}",
210
+ "strategy": "{current_strategy}",
211
+ "layers": {
212
+ "L0": { "status": "pass|fail", "errors": [...] },
213
+ "L1": { "total": N, "passed": P, "failed": F, "pass_rate": 95.0 },
214
+ "L2": { "total": N, "passed": P, "failed": F, "pass_rate": 87.5 },
215
+ "L3": { "total": N, "passed": P, "failed": F, "pass_rate": 100.0 }
216
+ },
217
+ "overall_pass_rate": 92.3
218
+ }
219
+ ```
220
+
221
+ Calculate overall pass rate.
222
+
223
+ ---
224
+
225
+ ### Step 6: Reflect
226
+
227
+ **Phase 5: Reflect on iteration results.**
228
+
229
+ Analyze what happened:
230
+ - Which tests failed and why?
231
+ - Is pass rate improving, plateauing, or regressing?
232
+ - Are failures clustered in one area or spread out?
233
+ - Is the current strategy working?
234
+
235
+ Append to `reflection-log.md`:
236
+ ```markdown
237
+ ## Iteration {N}
238
+ Strategy: {strategy_name}
239
+ Pass rate: {rate}% (previous: {prev_rate}%)
240
+ Delta: {+/-}%
241
+
242
+ ### What worked
243
+ - {observation}
244
+
245
+ ### What failed
246
+ - {test}: {reason}
247
+
248
+ ### Pattern detected
249
+ - {pattern, e.g., "all failures in auth module"}
250
+
251
+ ### Strategy assessment
252
+ - Current strategy: {effective|ineffective|partially_effective}
253
+ - Recommendation: {keep|switch_to_X}
254
+ ```
255
+
256
+ ---
257
+
258
+ ### Step 7: Adjust
259
+
260
+ **Phase 6: Adjust strategy based on reflection.**
261
+
262
+ **Adaptive Strategy Engine:**
263
+
264
+ | Condition | Strategy | Behavior |
265
+ |-----------|----------|----------|
266
+ | Iteration 1-2 | Conservative | Fix obvious failures, don't refactor |
267
+ | Pass rate >80% AND failures similar to previous | Aggressive | Batch-fix related failures together |
268
+ | New regressions appeared | Surgical | Revert last changes, fix regression only |
269
+ | Stuck 3+ iterations (rate not improving) | Reflective | Step back, re-analyze root cause pattern |
270
+
271
+ **Strategy transitions:**
272
+ ```
273
+ Conservative -> (pass rate >80%) -> Aggressive
274
+ Aggressive -> (regression) -> Surgical
275
+ Surgical -> (regression fixed) -> Aggressive
276
+ Any -> (stuck 3+ iters) -> Reflective
277
+ Reflective -> (new insight) -> Conservative (restart approach)
278
+ ```
279
+
280
+ Update state.json with new strategy and iteration count.
281
+
282
+ **Convergence check:**
283
+ - If overall_pass_rate >= convergence_threshold (95%): CONVERGED -> go to Step 8
284
+ - If iteration >= max_iterations: MAX_ITER_REACHED -> go to Step 8
285
+ - Otherwise: go back to Step 4 (next iteration)
286
+
287
+ ---
288
+
289
+ ### Step 8: Complete
290
+
291
+ **Complete integration test cycle.**
292
+
293
+ Update state.json: status -> "complete" or "max_iter_reached".
294
+
295
+ Write `.tests/integration/summary.json`:
296
+ ```json
297
+ {
298
+ "phase": "{phase}",
299
+ "completed_at": "{ISO timestamp}",
300
+ "iterations": N,
301
+ "final_pass_rate": 97.5,
302
+ "converged": true,
303
+ "strategy_history": ["conservative", "conservative", "aggressive"],
304
+ "layers": {
305
+ "L0": { "status": "pass" },
306
+ "L1": { "pass_rate": 100.0 },
307
+ "L2": { "pass_rate": 95.0 },
308
+ "L3": { "pass_rate": 100.0 }
309
+ },
310
+ "bugs_discovered": [...],
311
+ "regressions_fixed": [...]
312
+ }
313
+ ```
314
+
315
+ Update index.json with integration test results.
316
+
317
+ ---
318
+
319
+ ### Step 9: Report
320
+
321
+ ```
322
+ === INTEGRATION TEST CYCLE ===
323
+ Phase: {phase_name}
324
+ Iterations: {N}/{max_iter}
325
+ Converged: {yes/no} (threshold: {threshold}%)
326
+
327
+ Layer Results:
328
+ L0 Static: {pass/fail}
329
+ L1 Unit: {pass_rate}% ({passed}/{total})
330
+ L2 Integration: {pass_rate}% ({passed}/{total})
331
+ L3 E2E: {pass_rate}% ({passed}/{total})
332
+
333
+ Overall: {final_pass_rate}%
334
+ Strategy: {final_strategy} (transitioned {N} times)
335
+
336
+ Bugs Found: {bug_count}
337
+ Regressions: {regression_count} found, {fixed_count} fixed
338
+
339
+ Files:
340
+ {target_dir}/.tests/integration/state.json
341
+ {target_dir}/.tests/integration/reflection-log.md
342
+ {target_dir}/.tests/integration/summary.json
343
+
344
+ Next steps:
345
+ {suggested_next_command}
346
+ ```
347
+
348
+ **Next step routing:**
349
+
350
+ | Result | Suggestion |
351
+ |--------|------------|
352
+ | Converged (>=95%) | Skill({ skill: "maestro-verify", args: "{phase}" }) to update validation |
353
+ | Max iter, >80% | Skill({ skill: "quality-test", args: "{phase}" }) for manual UAT on remaining gaps |
354
+ | Max iter, <80% | Skill({ skill: "quality-debug" }) for deep investigation |
355
+ | Bugs discovered | Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) to plan fixes |