maestro-flow 0.4.2 → 0.4.4

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 (302) hide show
  1. package/.claude/commands/maestro-analyze.md +1 -1
  2. package/.claude/commands/maestro-brainstorm.md +1 -1
  3. package/.claude/commands/maestro-collab.md +1 -1
  4. package/.claude/commands/maestro-execute.md +10 -1
  5. package/.claude/commands/maestro-guard.md +101 -0
  6. package/.claude/commands/maestro-impeccable.md +1 -1
  7. package/.claude/commands/maestro-plan.md +15 -2
  8. package/.claude/commands/maestro-ralph-execute.md +9 -2
  9. package/.claude/commands/maestro-ralph.md +8 -1
  10. package/.claude/commands/maestro-verify.md +15 -1
  11. package/.claude/commands/quality-auto-test.md +1 -1
  12. package/.claude/commands/quality-debug.md +1 -1
  13. package/.claude/commands/quality-refactor.md +1 -1
  14. package/.claude/commands/quality-retrospective.md +1 -1
  15. package/.claude/commands/quality-review.md +15 -1
  16. package/.claude/commands/quality-test.md +1 -1
  17. package/.claude/commands/security-audit.md +154 -0
  18. package/.claude/skills/maestro-help/index/catalog.json +2 -0
  19. package/.codex/skills/maestro-analyze/SKILL.md +18 -1
  20. package/.codex/skills/maestro-brainstorm/SKILL.md +17 -4
  21. package/.codex/skills/maestro-collab/SKILL.md +7 -1
  22. package/.codex/skills/maestro-execute/SKILL.md +365 -348
  23. package/.codex/skills/maestro-guard/SKILL.md +97 -0
  24. package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
  25. package/.codex/skills/maestro-plan/SKILL.md +66 -7
  26. package/.codex/skills/maestro-ralph/SKILL.md +1 -1
  27. package/.codex/skills/maestro-verify/SKILL.md +18 -1
  28. package/.codex/skills/quality-auto-test/SKILL.md +13 -3
  29. package/.codex/skills/quality-debug/SKILL.md +362 -346
  30. package/.codex/skills/quality-refactor/SKILL.md +1 -1
  31. package/.codex/skills/quality-retrospective/SKILL.md +292 -292
  32. package/.codex/skills/quality-review/SKILL.md +374 -365
  33. package/.codex/skills/quality-test/SKILL.md +1 -1
  34. package/.codex/skills/security-audit/SKILL.md +154 -0
  35. package/bin/maestro-hook-runner.js +21 -1
  36. package/dashboard/dist/assets/{ArtifactsPage-iJZtYsmR.js → ArtifactsPage-CVh0Z2I2.js} +3 -3
  37. package/dashboard/dist/assets/{ChatInput-DNnDLdQF.js → ChatInput-CBI3qHQQ.js} +2 -2
  38. package/dashboard/dist/assets/ChatPage-BjJ9CYox.js +22 -0
  39. package/dashboard/dist/assets/CollabPage-CprGGO9y.js +1 -0
  40. package/dashboard/dist/assets/{ExecutionPanel-BKV3GZ7Q.js → ExecutionPanel-CClxD7cH.js} +1 -1
  41. package/dashboard/dist/assets/KanbanPage-copqjdPg.js +16 -0
  42. package/dashboard/dist/assets/MaestroCoordinatePage-CioZjQ9N.js +4 -0
  43. package/dashboard/dist/assets/{MarkdownRenderer-cYFfe1uX.js → MarkdownRenderer-CtUhoxCT.js} +1 -1
  44. package/dashboard/dist/assets/McpPage-BcPPcJpr.js +21 -0
  45. package/dashboard/dist/assets/{MeetingRoomPage-wnvT7wlB.js → MeetingRoomPage-BgmAKxU-.js} +1 -1
  46. package/dashboard/dist/assets/{OutputPanel-DDL90Idy.js → OutputPanel-DgT3gMyp.js} +1 -1
  47. package/dashboard/dist/assets/{ProblemsPanel-zFN9IIs0.js → ProblemsPanel-BmG7rxoG.js} +1 -1
  48. package/dashboard/dist/assets/{RequirementBoardPage-DOPJoT0I.js → RequirementBoardPage-k8YoeQ0r.js} +1 -1
  49. package/dashboard/dist/assets/{RequirementPage-CEVquRgM.js → RequirementPage-Da2354px.js} +1 -1
  50. package/dashboard/dist/assets/{RoomsPage-D5USEWDh.js → RoomsPage-BtqDiYaU.js} +1 -1
  51. package/dashboard/dist/assets/SpecsPage-ByPVH_M3.js +36 -0
  52. package/dashboard/dist/assets/{TeamsPage-DlcEmr_Q.js → TeamsPage-sFDLN30L.js} +1 -1
  53. package/dashboard/dist/assets/{TreeBrowser-Y48Wz-QY.js → TreeBrowser-oEx8YJXV.js} +1 -1
  54. package/dashboard/dist/assets/WorkflowPage-JrX7CVHh.js +6 -0
  55. package/dashboard/dist/assets/{arrow-left-NCUOENvg.js → arrow-left-DYvgSdIH.js} +1 -1
  56. package/dashboard/dist/assets/{check-o7nfGNHf.js → check-jcgYBWVR.js} +1 -1
  57. package/dashboard/dist/assets/{chevron-right-BXySK2fn.js → chevron-right-DvZ5sMOg.js} +1 -1
  58. package/dashboard/dist/assets/{circle-cooAwnAR.js → circle-DYT-zoRZ.js} +1 -1
  59. package/dashboard/dist/assets/{circle-alert-DcSBokh4.js → circle-alert-Bfbv3gt4.js} +1 -1
  60. package/dashboard/dist/assets/{circle-check-Cd-jce4j.js → circle-check-D82WnpbI.js} +1 -1
  61. package/dashboard/dist/assets/{circle-check-big-BN7Mdp4i.js → circle-check-big-CPVD1GKF.js} +1 -1
  62. package/dashboard/dist/assets/{code-BQa9oL1n.js → code-B3bKFGI4.js} +1 -1
  63. package/dashboard/dist/assets/{columns-3-BzgxelGx.js → columns-3-BeMAQCix.js} +1 -1
  64. package/dashboard/dist/assets/{download-swRJnate.js → download-BCtpoWYB.js} +1 -1
  65. package/dashboard/dist/assets/en-2h6fD0j8.js +1 -0
  66. package/dashboard/dist/assets/{folder-DbGbLNFN.js → folder-CTj6SNNu.js} +1 -1
  67. package/dashboard/dist/assets/index-6-yE5Yl9.css +1 -0
  68. package/dashboard/dist/assets/{index-DIoMBMbv.js → index-BxR_3IbJ.js} +1 -1
  69. package/dashboard/dist/assets/{index-DLBN_7fb.js → index-CWBJLu42.js} +1 -1
  70. package/dashboard/dist/assets/index-DpcPd-UG.js +236 -0
  71. package/dashboard/dist/assets/{list-BTRAIvDq.js → list-BMv8pIQn.js} +1 -1
  72. package/dashboard/dist/assets/{loader-NHtB6Mdn.js → loader-DdM4VOgF.js} +1 -1
  73. package/dashboard/dist/assets/{minus-BjMxRTET.js → minus-D15s2E__.js} +1 -1
  74. package/dashboard/dist/assets/{pen-line-C4_O16H0.js → pen-line-DO6o4xWz.js} +1 -1
  75. package/dashboard/dist/assets/{pencil-DTmKhyDY.js → pencil-qGxg9jOe.js} +1 -1
  76. package/dashboard/dist/assets/{proxy-Dtx5p6IO.js → proxy-DOffTzwA.js} +1 -1
  77. package/dashboard/dist/assets/refresh-cw-C9UNdLCy.js +6 -0
  78. package/dashboard/dist/assets/{rows-2-GR1dZtRu.js → rows-2-CifAA5SL.js} +1 -1
  79. package/dashboard/dist/assets/{search-DVtgy2W7.js → search-pe7pU1YN.js} +1 -1
  80. package/dashboard/dist/assets/{shallow-BOmvDNsv.js → shallow-r7YynQYA.js} +1 -1
  81. package/dashboard/dist/assets/table-Bh772iIw.js +6 -0
  82. package/dashboard/dist/assets/{team-types-BPeOvVdA.js → team-types-C_HqX2p2.js} +1 -1
  83. package/dashboard/dist/assets/{terminal-CzogW4cl.js → terminal-EpmtGBlw.js} +1 -1
  84. package/dashboard/dist/assets/{trash-2-52LATVfW.js → trash-2-Xen46iNQ.js} +1 -1
  85. package/dashboard/dist/assets/{users-DLFE2voE.js → users-BLueDPxF.js} +1 -1
  86. package/dashboard/dist/assets/{zap-DhiYlgyZ.js → zap-DsQCPF61.js} +1 -1
  87. package/dashboard/dist/assets/zh-CN-r3AvxxOL.js +1 -0
  88. package/dashboard/dist/index.html +2 -2
  89. package/dashboard/dist-server/dashboard/src/server/routes/settings.js +70 -1
  90. package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
  91. package/dashboard/dist-server/src/coordinator/output-parser.js +27 -0
  92. package/dashboard/dist-server/src/coordinator/output-parser.js.map +1 -1
  93. package/dashboard/dist-server/src/types/index.d.ts +48 -6
  94. package/dist/src/commands/coordinate.d.ts.map +1 -1
  95. package/dist/src/commands/coordinate.js +4 -0
  96. package/dist/src/commands/coordinate.js.map +1 -1
  97. package/dist/src/commands/hooks.d.ts.map +1 -1
  98. package/dist/src/commands/hooks.js +239 -8
  99. package/dist/src/commands/hooks.js.map +1 -1
  100. package/dist/src/commands/spec.d.ts.map +1 -1
  101. package/dist/src/commands/spec.js +466 -0
  102. package/dist/src/commands/spec.js.map +1 -1
  103. package/dist/src/config/index.d.ts +5 -1
  104. package/dist/src/config/index.d.ts.map +1 -1
  105. package/dist/src/config/index.js +42 -0
  106. package/dist/src/config/index.js.map +1 -1
  107. package/dist/src/coordinator/output-parser.d.ts.map +1 -1
  108. package/dist/src/coordinator/output-parser.js +27 -0
  109. package/dist/src/coordinator/output-parser.js.map +1 -1
  110. package/dist/src/hooks/delegate-monitor.d.ts +1 -0
  111. package/dist/src/hooks/delegate-monitor.d.ts.map +1 -1
  112. package/dist/src/hooks/delegate-monitor.js +1 -1
  113. package/dist/src/hooks/delegate-monitor.js.map +1 -1
  114. package/dist/src/hooks/guards/workflow-guard.d.ts +15 -0
  115. package/dist/src/hooks/guards/workflow-guard.d.ts.map +1 -1
  116. package/dist/src/hooks/guards/workflow-guard.js +61 -1
  117. package/dist/src/hooks/guards/workflow-guard.js.map +1 -1
  118. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
  119. package/dist/src/hooks/keyword-spec-injector.js +63 -4
  120. package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
  121. package/dist/src/hooks/plugins/decision-log-plugin.d.ts +19 -0
  122. package/dist/src/hooks/plugins/decision-log-plugin.d.ts.map +1 -0
  123. package/dist/src/hooks/plugins/decision-log-plugin.js +28 -0
  124. package/dist/src/hooks/plugins/decision-log-plugin.js.map +1 -0
  125. package/dist/src/hooks/plugins/index.d.ts +2 -0
  126. package/dist/src/hooks/plugins/index.d.ts.map +1 -1
  127. package/dist/src/hooks/plugins/index.js +1 -0
  128. package/dist/src/hooks/plugins/index.js.map +1 -1
  129. package/dist/src/hooks/plugins/spec-analytics-plugin.d.ts +13 -0
  130. package/dist/src/hooks/plugins/spec-analytics-plugin.d.ts.map +1 -0
  131. package/dist/src/hooks/plugins/spec-analytics-plugin.js +92 -0
  132. package/dist/src/hooks/plugins/spec-analytics-plugin.js.map +1 -0
  133. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  134. package/dist/src/hooks/plugins/spec-injection-plugin.js +57 -4
  135. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  136. package/dist/src/hooks/session-context.d.ts +1 -0
  137. package/dist/src/hooks/session-context.d.ts.map +1 -1
  138. package/dist/src/hooks/session-context.js +1 -1
  139. package/dist/src/hooks/session-context.js.map +1 -1
  140. package/dist/src/hooks/skill-context.d.ts +1 -0
  141. package/dist/src/hooks/skill-context.d.ts.map +1 -1
  142. package/dist/src/hooks/skill-context.js +1 -1
  143. package/dist/src/hooks/skill-context.js.map +1 -1
  144. package/dist/src/hooks/spec-analytics.d.ts +128 -0
  145. package/dist/src/hooks/spec-analytics.d.ts.map +1 -0
  146. package/dist/src/hooks/spec-analytics.js +311 -0
  147. package/dist/src/hooks/spec-analytics.js.map +1 -0
  148. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  149. package/dist/src/hooks/spec-injector.js +129 -5
  150. package/dist/src/hooks/spec-injector.js.map +1 -1
  151. package/dist/src/tools/spec-loader.d.ts +20 -0
  152. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  153. package/dist/src/tools/spec-loader.js +58 -7
  154. package/dist/src/tools/spec-loader.js.map +1 -1
  155. package/dist/src/tui/config-ui/ConfigHub.d.ts +1 -1
  156. package/dist/src/tui/config-ui/ConfigHub.d.ts.map +1 -1
  157. package/dist/src/tui/config-ui/ConfigHub.js +16 -10
  158. package/dist/src/tui/config-ui/ConfigHub.js.map +1 -1
  159. package/dist/src/tui/config-ui/ConfigSourcesView.d.ts.map +1 -1
  160. package/dist/src/tui/config-ui/ConfigSourcesView.js +3 -2
  161. package/dist/src/tui/config-ui/ConfigSourcesView.js.map +1 -1
  162. package/dist/src/tui/config-ui/HooksPanel.d.ts.map +1 -1
  163. package/dist/src/tui/config-ui/HooksPanel.js +15 -19
  164. package/dist/src/tui/config-ui/HooksPanel.js.map +1 -1
  165. package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts.map +1 -1
  166. package/dist/src/tui/config-ui/SkillConfigDashboard.js +5 -9
  167. package/dist/src/tui/config-ui/SkillConfigDashboard.js.map +1 -1
  168. package/dist/src/tui/config-ui/SkillParamEditor.d.ts.map +1 -1
  169. package/dist/src/tui/config-ui/SkillParamEditor.js +1 -3
  170. package/dist/src/tui/config-ui/SkillParamEditor.js.map +1 -1
  171. package/dist/src/tui/config-ui/SkillsList.d.ts.map +1 -1
  172. package/dist/src/tui/config-ui/SkillsList.js +7 -9
  173. package/dist/src/tui/config-ui/SkillsList.js.map +1 -1
  174. package/dist/src/tui/config-ui/SpecAnalyticsPanel.d.ts +6 -0
  175. package/dist/src/tui/config-ui/SpecAnalyticsPanel.d.ts.map +1 -0
  176. package/dist/src/tui/config-ui/SpecAnalyticsPanel.js +164 -0
  177. package/dist/src/tui/config-ui/SpecAnalyticsPanel.js.map +1 -0
  178. package/dist/src/tui/config-ui/SpecPanel.d.ts.map +1 -1
  179. package/dist/src/tui/config-ui/SpecPanel.js +918 -20
  180. package/dist/src/tui/config-ui/SpecPanel.js.map +1 -1
  181. package/dist/src/tui/config-ui/index.d.ts +3 -1
  182. package/dist/src/tui/config-ui/index.d.ts.map +1 -1
  183. package/dist/src/tui/config-ui/index.js +4 -0
  184. package/dist/src/tui/config-ui/index.js.map +1 -1
  185. package/dist/src/tui/install-ui/BackupConfig.d.ts.map +1 -1
  186. package/dist/src/tui/install-ui/BackupConfig.js +3 -2
  187. package/dist/src/tui/install-ui/BackupConfig.js.map +1 -1
  188. package/dist/src/tui/install-ui/BlueprintPreview.d.ts.map +1 -1
  189. package/dist/src/tui/install-ui/BlueprintPreview.js +7 -6
  190. package/dist/src/tui/install-ui/BlueprintPreview.js.map +1 -1
  191. package/dist/src/tui/install-ui/ComponentGrid.d.ts.map +1 -1
  192. package/dist/src/tui/install-ui/ComponentGrid.js +3 -2
  193. package/dist/src/tui/install-ui/ComponentGrid.js.map +1 -1
  194. package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
  195. package/dist/src/tui/install-ui/ConfigPanel.js +4 -3
  196. package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
  197. package/dist/src/tui/install-ui/CyberItem.d.ts.map +1 -1
  198. package/dist/src/tui/install-ui/CyberItem.js +7 -6
  199. package/dist/src/tui/install-ui/CyberItem.js.map +1 -1
  200. package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts.map +1 -1
  201. package/dist/src/tui/install-ui/CyberdeckBlueprint.js +2 -1
  202. package/dist/src/tui/install-ui/CyberdeckBlueprint.js.map +1 -1
  203. package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -1
  204. package/dist/src/tui/install-ui/ExecutionView.js +3 -2
  205. package/dist/src/tui/install-ui/ExecutionView.js.map +1 -1
  206. package/dist/src/tui/install-ui/GradientHeader.d.ts.map +1 -1
  207. package/dist/src/tui/install-ui/GradientHeader.js +2 -1
  208. package/dist/src/tui/install-ui/GradientHeader.js.map +1 -1
  209. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
  210. package/dist/src/tui/install-ui/HooksConfig.js +8 -8
  211. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
  212. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  213. package/dist/src/tui/install-ui/InstallConfirm.js +4 -3
  214. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  215. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  216. package/dist/src/tui/install-ui/InstallExecution.js +3 -2
  217. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  218. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  219. package/dist/src/tui/install-ui/InstallFlow.js +3 -2
  220. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  221. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  222. package/dist/src/tui/install-ui/InstallHub.js +9 -8
  223. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  224. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  225. package/dist/src/tui/install-ui/InstallResult.js +3 -2
  226. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  227. package/dist/src/tui/install-ui/McpConfig.d.ts.map +1 -1
  228. package/dist/src/tui/install-ui/McpConfig.js +4 -3
  229. package/dist/src/tui/install-ui/McpConfig.js.map +1 -1
  230. package/dist/src/tui/install-ui/ResultDashboard.d.ts.map +1 -1
  231. package/dist/src/tui/install-ui/ResultDashboard.js +3 -2
  232. package/dist/src/tui/install-ui/ResultDashboard.js.map +1 -1
  233. package/dist/src/tui/install-ui/ReviewPanel.d.ts.map +1 -1
  234. package/dist/src/tui/install-ui/ReviewPanel.js +2 -1
  235. package/dist/src/tui/install-ui/ReviewPanel.js.map +1 -1
  236. package/dist/src/tui/install-ui/StatuslineConfig.d.ts.map +1 -1
  237. package/dist/src/tui/install-ui/StatuslineConfig.js +3 -2
  238. package/dist/src/tui/install-ui/StatuslineConfig.js.map +1 -1
  239. package/dist/src/tui/install-ui/StepSelector.d.ts.map +1 -1
  240. package/dist/src/tui/install-ui/StepSelector.js +11 -10
  241. package/dist/src/tui/install-ui/StepSelector.js.map +1 -1
  242. package/dist/src/tui/overlay-ui/OverlayList.d.ts.map +1 -1
  243. package/dist/src/tui/overlay-ui/OverlayList.js +8 -12
  244. package/dist/src/tui/overlay-ui/OverlayList.js.map +1 -1
  245. package/dist/src/tui/shared/components.d.ts +56 -0
  246. package/dist/src/tui/shared/components.d.ts.map +1 -0
  247. package/dist/src/tui/shared/components.js +55 -0
  248. package/dist/src/tui/shared/components.js.map +1 -0
  249. package/dist/src/tui/shared/helpers.d.ts +24 -0
  250. package/dist/src/tui/shared/helpers.d.ts.map +1 -0
  251. package/dist/src/tui/shared/helpers.js +49 -0
  252. package/dist/src/tui/shared/helpers.js.map +1 -0
  253. package/dist/src/tui/shared/index.d.ts +4 -0
  254. package/dist/src/tui/shared/index.d.ts.map +1 -0
  255. package/dist/src/tui/shared/index.js +7 -0
  256. package/dist/src/tui/shared/index.js.map +1 -0
  257. package/dist/src/tui/shared/tokens.d.ts +79 -0
  258. package/dist/src/tui/shared/tokens.d.ts.map +1 -0
  259. package/dist/src/tui/shared/tokens.js +81 -0
  260. package/dist/src/tui/shared/tokens.js.map +1 -0
  261. package/dist/src/tui/tools-ui/CommandReference.d.ts.map +1 -1
  262. package/dist/src/tui/tools-ui/CommandReference.js +2 -4
  263. package/dist/src/tui/tools-ui/CommandReference.js.map +1 -1
  264. package/dist/src/tui/tools-ui/ConfigSources.d.ts.map +1 -1
  265. package/dist/src/tui/tools-ui/ConfigSources.js +3 -2
  266. package/dist/src/tui/tools-ui/ConfigSources.js.map +1 -1
  267. package/dist/src/tui/tools-ui/RegisterSettings.d.ts.map +1 -1
  268. package/dist/src/tui/tools-ui/RegisterSettings.js +2 -1
  269. package/dist/src/tui/tools-ui/RegisterSettings.js.map +1 -1
  270. package/dist/src/tui/tools-ui/RoleMappings.d.ts.map +1 -1
  271. package/dist/src/tui/tools-ui/RoleMappings.js +3 -5
  272. package/dist/src/tui/tools-ui/RoleMappings.js.map +1 -1
  273. package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -1
  274. package/dist/src/tui/tools-ui/ToolsDashboard.js +3 -5
  275. package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -1
  276. package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -1
  277. package/dist/src/tui/tools-ui/ToolsOverview.js +3 -5
  278. package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -1
  279. package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -1
  280. package/dist/src/tui/uninstall-ui/UninstallFlow.js +8 -7
  281. package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -1
  282. package/dist/src/types/index.d.ts +48 -6
  283. package/dist/src/types/index.d.ts.map +1 -1
  284. package/package.json +1 -1
  285. package/workflows/debug.md +73 -0
  286. package/workflows/execute.md +27 -0
  287. package/workflows/plan.md +11 -0
  288. package/workflows/review.md +33 -1
  289. package/workflows/tdd.md +257 -0
  290. package/workflows/verify.md +57 -0
  291. package/dashboard/dist/assets/ChatPage-BjBibfE4.js +0 -22
  292. package/dashboard/dist/assets/CollabPage-8lUMUol_.js +0 -1
  293. package/dashboard/dist/assets/KanbanPage-diY3QmGd.js +0 -21
  294. package/dashboard/dist/assets/McpPage-COjuIf7U.js +0 -21
  295. package/dashboard/dist/assets/SpecsPage-BOwBin_o.js +0 -36
  296. package/dashboard/dist/assets/SupervisorPage-5iRyMU5T.js +0 -6
  297. package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +0 -6
  298. package/dashboard/dist/assets/en-C_BD3UCD.js +0 -1
  299. package/dashboard/dist/assets/index-BEUaOz_b.css +0 -1
  300. package/dashboard/dist/assets/index-uIqUCT8y.js +0 -236
  301. package/dashboard/dist/assets/table-DCzuJAFh.js +0 -6
  302. package/dashboard/dist/assets/zh-CN-DvQKfow3.js +0 -1
@@ -1,365 +1,374 @@
1
- ---
2
- name: quality-review
3
- description: Tiered code review with severity classification
4
- argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--level quick|standard|deep] [--dimensions list]\""
5
- allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
- ---
7
-
8
- <purpose>
9
- Wave-based multi-dimensional code review using `spawn_agents_on_csv`. Decomposes review into independent dimension agents (Wave 1), then aggregates findings into a unified report with verdict (Wave 2).
10
-
11
- **Core workflow**: Collect Files -> Decompose Dimensions -> Parallel Review -> Aggregate + Verdict
12
-
13
- ```
14
- +---------------------------------------------------------------------------+
15
- | CODE REVIEW CSV WAVE WORKFLOW |
16
- +---------------------------------------------------------------------------+
17
- | |
18
- | Phase 1: Phase Resolution -> CSV |
19
- | +-- Resolve phase directory from arguments |
20
- | +-- Collect changed files from task summaries |
21
- | +-- Auto-detect review level (quick/standard/deep) |
22
- | +-- Determine active dimensions |
23
- | +-- Generate tasks.csv with one row per dimension |
24
- | +-- User validates dimension breakdown (skip if -y) |
25
- | |
26
- | Phase 2: Wave Execution Engine |
27
- | +-- Wave 1: Dimension Review (parallel) |
28
- | | +-- Each dimension agent reviews all changed files |
29
- | | +-- Agent classifies findings by severity |
30
- | | +-- Discoveries shared via board (patterns, conventions) |
31
- | | +-- Results: severity_counts + top_issues per dimension |
32
- | +-- Wave 2: Aggregation + Deep-Dive (if needed) |
33
- | | +-- Aggregate all dimension findings |
34
- | | +-- If criticals > 0 (standard) or always (deep): deep-dive |
35
- | | +-- Cross-dimension impact analysis |
36
- | | +-- Generate verdict: PASS / WARN / BLOCK |
37
- | +-- discoveries.ndjson shared across all waves (append-only) |
38
- | |
39
- | Phase 3: Results Aggregation |
40
- | +-- Export results.csv + review.json |
41
- | +-- Generate context.md with all findings |
42
- | +-- Auto-create issues for qualifying findings |
43
- | +-- Update phase index.json with review status |
44
- | +-- Display summary with verdict + next steps |
45
- | |
46
- +---------------------------------------------------------------------------+
47
- ```
48
-
49
- </purpose>
50
-
51
- <context>
52
- ```bash
53
- $quality-review "3"
54
- $quality-review -c 6 "3 --level deep"
55
- $quality-review -y "3 --dimensions security,performance"
56
- $quality-review --continue "20260318-review-P3-auth"
57
- ```
58
-
59
- **Flags**:
60
- - `-y, --yes`: Skip all confirmations (auto mode)
61
- - `-c, --concurrency N`: Max concurrent agents within each wave (default: 6)
62
- - `--continue`: Resume existing session
63
-
64
- When `--yes` or `-y`: Auto-confirm dimension selection, skip interactive validation, use defaults for level detection.
65
-
66
- **Output Directory**: `.workflow/.csv-wave/{session-id}/`
67
- **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `review.json` (structured review output)
68
- </context>
69
-
70
- <csv_schema>
71
-
72
- ### tasks.csv (Master State)
73
-
74
- ```csv
75
- id,title,description,dimension,changed_files,project_specs,review_level,deps,context_from,wave,status,findings,severity_counts,top_issues,error
76
- "1","Correctness Review","Review all changed files for correctness: logic errors, missing edge cases, incorrect return values, null/undefined handling, off-by-one errors. Classify each finding as critical/high/medium/low with file:line references.","correctness","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","Existing patterns use Result type for error handling","standard","","","1","","","","",""
77
- "2","Security Review","Review all changed files for security vulnerabilities: injection flaws, XSS, CSRF, auth bypass, sensitive data exposure, insecure crypto. Reference OWASP Top 10. Classify each finding.","security","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","Auth uses bcrypt + JWT","standard","","","1","","","","",""
78
- "3","Performance Review","Review all changed files for performance issues: N+1 queries, unnecessary re-renders, memory leaks, blocking operations, unoptimized algorithms.","performance","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","","","1","","","","",""
79
- "4","Architecture Review","Review all changed files for architecture issues: layer violations, circular dependencies, inappropriate coupling, missing abstractions, SRP violations.","architecture","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","ESM modules, strict TypeScript","standard","","","1","","","","",""
80
- "5","Maintainability Review","Review all changed files for maintainability: code duplication, overly complex functions, poor naming, missing types, unclear control flow.","maintainability","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","","","1","","","","",""
81
- "6","Best Practices Review","Review all changed files for best-practice violations: error handling gaps, missing validation, hardcoded values, deprecated API usage, inconsistent patterns.","best-practices","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","","","1","","","","",""
82
- "7","Aggregate + Deep-Dive","Aggregate all dimension findings. Calculate severity distribution. Determine verdict (PASS/WARN/BLOCK). If critical findings exist, perform deep-dive with cross-file impact analysis.","aggregation","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","1;2;3;4;5;6","1;2;3;4;5;6","2","","","","",""
83
- ```
84
-
85
- **Columns**:
86
-
87
- | Column | Phase | Description |
88
- |--------|-------|-------------|
89
- | `id` | Input | Unique task identifier (string) |
90
- | `title` | Input | Short task title |
91
- | `description` | Input | Detailed review instructions for this dimension |
92
- | `dimension` | Input | Review dimension: correctness/security/performance/architecture/maintainability/best-practices/aggregation |
93
- | `changed_files` | Input | Semicolon-separated file paths to review |
94
- | `project_specs` | Input | Relevant project specs/conventions context |
95
- | `review_level` | Input | quick/standard/deep -- controls depth |
96
- | `deps` | Input | Semicolon-separated dependency task IDs |
97
- | `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
98
- | `wave` | Computed | Wave number (1 = dimension review, 2 = aggregation) |
99
- | `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
100
- | `findings` | Output | Key review findings summary (max 500 chars) |
101
- | `severity_counts` | Output | JSON: `{"critical":N,"high":N,"medium":N,"low":N}` |
102
- | `top_issues` | Output | Top 5 issues with `[severity] description (file:line)` format |
103
- | `error` | Output | Error message if failed |
104
-
105
- ### Per-Wave CSV (Temporary)
106
-
107
- Each wave generates `wave-{N}.csv` with extra `prev_context` column.
108
-
109
- ### Output Artifacts
110
-
111
- | File | Purpose | Lifecycle |
112
- |------|---------|-----------|
113
- | `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
114
- | `wave-{N}.csv` | Per-wave input (temporary) | Created before wave, deleted after |
115
- | `results.csv` | Final export of all task results | Created in Phase 3 |
116
- | `discoveries.ndjson` | Shared exploration board | Append-only, carries across waves |
117
- | `context.md` | Human-readable review report | Created in Phase 3 |
118
- | `review.json` | Structured review output for downstream | Created in Phase 3 |
119
-
120
- ### Session Structure
121
-
122
- ```
123
- .workflow/.csv-wave/{YYYYMMDD}-review-P{N}-{slug}/
124
- +-- tasks.csv
125
- +-- results.csv
126
- +-- discoveries.ndjson
127
- +-- context.md
128
- +-- review.json
129
- +-- wave-{N}.csv (temporary)
130
- ```
131
- </csv_schema>
132
-
133
- <invariants>
134
- 1. **Start Immediately**: First action is session initialization, then Phase 1
135
- 2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
136
- 3. **CSV is Source of Truth**: Master tasks.csv holds all state
137
- 4. **Context Propagation**: prev_context built from master CSV, not from memory
138
- 5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
139
- 6. **Skip on Failure**: If all dimension agents failed, skip aggregation
140
- 7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
141
- 8. **DO NOT STOP**: Continuous execution until all waves complete
142
- </invariants>
143
-
144
- <execution>
145
-
146
- ### Session Initialization
147
-
148
- Parse `$ARGUMENTS` to extract:
149
- - `AUTO_YES` from `--yes` / `-y`
150
- - `continueMode` from `--continue`
151
- - `maxConcurrency` from `--concurrency N` / `-c N` (default: 6)
152
- - `levelMatch` from `--level quick|standard|deep`
153
- - `dimsMatch` from `--dimensions <list>`
154
- - `phaseArg` = remaining text after stripping all flags
155
-
156
- Session ID: `{YYYYMMDD}-review-P{phaseArg}-{phaseSlug}` (phaseSlug from index.json or roadmap)
157
- Session folder: `.workflow/.csv-wave/{sessionId}/` — create via `mkdir -p`
158
-
159
- ### Phase 1: Phase Resolution -> CSV
160
-
161
- **Objective**: Resolve phase, collect changed files, determine review level, generate tasks.csv.
162
-
163
- **Decomposition Rules**:
164
-
165
- 1. **Phase resolution**: Resolve `{phaseArg}` via `state.json` artifact registry to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`
166
- 2. **Related session discovery**: Query `state.json.artifacts[]` for matching phase + milestone. Extract prior quality context (verdicts, root causes, UAT gaps) from artifact outputs by type (execute → .summaries/.task/, review review.json, debug → understanding.md, test → uat.md)
167
- 3. **File collection**: Read `.task/TASK-*.json` → collect `files[].path` where action != "read"
168
- 4. **Level detection**:
169
-
170
- | Condition | Level |
171
- |-----------|-------|
172
- | `--level` flag provided | Use explicit level |
173
- | <=3 changed files | quick |
174
- | 4-19 changed files | standard |
175
- | >=20 files OR phase marked critical | deep |
176
-
177
- 5. **Dimension selection**:
178
-
179
- | Level | Dimensions |
180
- |-------|------------|
181
- | quick | correctness, security |
182
- | standard | correctness, security, performance, architecture, maintainability, best-practices |
183
- | deep | all 6 + forced deep-dive in aggregation |
184
-
185
- If `--dimensions` flag provided, override with explicit list.
186
-
187
- 6. **Specs loading**: Run `maestro spec load --category review` to load review standards, checklists, AND discoverable knowhow tools (unless `--skip-specs`)
188
- 7. **CSV generation**: One row per dimension + one aggregation row
189
-
190
- **Wave computation**: Simple 2-wave -- all dimension tasks = wave 1, aggregation = wave 2.
191
-
192
- **User validation**: Display task breakdown (skip if AUTO_YES).
193
-
194
- ### Phase 2: Wave Execution Engine
195
-
196
- **Objective**: Execute dimension reviews wave-by-wave via spawn_agents_on_csv.
197
-
198
- #### Wave 1: Dimension Reviews (Parallel)
199
-
200
- Filter master `tasks.csv` for `wave == 1 AND status == pending` → write `wave-1.csv` (no prev_context needed).
201
-
202
- ```javascript
203
- spawn_agents_on_csv({
204
- csv_path: `${sessionFolder}/wave-1.csv`,
205
- id_column: "id",
206
- instruction: buildReviewInstruction(sessionFolder), // agent: ~/.codex/agents/workflow-reviewer.toml
207
- max_concurrency: maxConcurrency,
208
- max_runtime_seconds: 3600,
209
- output_csv_path: `${sessionFolder}/wave-1-results.csv`,
210
- output_schema: {
211
- type: "object",
212
- properties: {
213
- id: { type: "string" },
214
- status: { type: "string", enum: ["completed", "failed"] },
215
- findings: { type: "string" },
216
- severity_counts: { type: "string" },
217
- top_issues: { type: "string" },
218
- error: { type: "string" }
219
- },
220
- required: ["id", "status", "findings"]
221
- }
222
- })
223
- ```
224
-
225
- Merge `wave-1-results.csv` into master `tasks.csv`, delete `wave-1.csv`.
226
-
227
- #### Wave 2: Aggregation + Deep-Dive
228
-
229
- Filter master `tasks.csv` for `wave == 2 AND status == pending`. If all wave 1 tasks failed, skip aggregation.
230
-
231
- Build `prev_context` from wave 1 findings (format: `[Task N: Title] summary...` per task).
232
- Write `wave-2.csv` with `prev_context` column → execute `spawn_agents_on_csv` → merge results → delete `wave-2.csv`.
233
-
234
- ### Phase 3: Results Aggregation
235
-
236
- **Objective**: Generate final results and human-readable report.
237
-
238
- Export master `tasks.csv` as `results.csv`. Build `review.json`:
239
-
240
- ```json
241
- {
242
- "phase": "<phase>",
243
- "level": "<level>",
244
- "verdict": "PASS|WARN|BLOCK",
245
- "severity_distribution": { "critical": 0, "high": 0, "medium": 0, "low": 0 },
246
- "dimensions": [
247
- { "dimension": "correctness", "status": "completed", "severity_counts": {...}, "top_issues": [...] }
248
- ],
249
- "deep_dive": { "performed": true/false, "iterations": N, "impact_analysis": "..." },
250
- "issues_created": [],
251
- "timestamp": "<ISO>"
252
- }
253
- ```
254
-
255
- Generate `context.md`:
256
-
257
- ```markdown
258
- # Code Review Report -- Phase {phase}
259
-
260
- ## Summary
261
- - Level: {level}
262
- - Files reviewed: {file_count}
263
- - Dimensions: {dimension_count}
264
- - Verdict: **{verdict}**
265
-
266
- ## Severity Distribution
267
- | Severity | Count |
268
- |----------|-------|
269
- | Critical | {N} |
270
- | High | {N} |
271
- | Medium | {N} |
272
- | Low | {N} |
273
-
274
- ## Dimension Results
275
- ### {dimension_name}
276
- {findings}
277
-
278
- **Top Issues:**
279
- {top_issues}
280
-
281
- ## Deep-Dive Analysis
282
- {if performed: impact analysis results}
283
-
284
- ## Issues Created
285
- {list of created issue IDs}
286
- ```
287
-
288
- **Verdict determination**:
289
-
290
- | Condition | Verdict |
291
- |-----------|---------|
292
- | Any critical findings | BLOCK |
293
- | High findings > 3 | BLOCK |
294
- | Any high findings | WARN |
295
- | Medium findings > 5 | WARN |
296
- | Otherwise | PASS |
297
-
298
- **Issue creation** by level threshold:
299
-
300
- | Level | Create Issues For |
301
- |-------|------------------|
302
- | quick | critical only |
303
- | standard | critical + high |
304
- | deep | critical + high + medium |
305
-
306
- **Phase index update**: Update `{artifact_dir}/index.json` with review status.
307
-
308
- **Register artifact**: Append to `state.json.artifacts[]` with `type: "review"`, `id: REV-NNN`, `path: "scratch/{YYYYMMDD}-review-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch, not shared with plan.
309
-
310
- Display summary.
311
-
312
- ### Shared Discovery Board Protocol
313
-
314
- #### Standard Discovery Types
315
-
316
- | Type | Dedup Key | Data Schema | Description |
317
- |------|-----------|-------------|-------------|
318
- | `code_pattern` | `data.name` | `{name, file, description}` | Reusable code pattern found |
319
- | `integration_point` | `data.file` | `{file, description, exports[]}` | Module connection point |
320
- | `convention` | singleton | `{naming, imports, formatting}` | Project code conventions |
321
- | `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
322
- | `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
323
-
324
- #### Domain Discovery Types
325
-
326
- | Type | Dedup Key | Data Schema | Description |
327
- |------|-----------|-------------|-------------|
328
- | `vulnerability` | `data.location` | `{location, type, severity, cwe}` | Security vulnerability |
329
- | `code_smell` | `data.location` | `{location, type, severity, description}` | Code quality issue |
330
- | `performance_hotspot` | `data.location` | `{location, type, impact}` | Performance issue |
331
- | `architecture_violation` | `data.location` | `{location, rule, description}` | Architecture rule violation |
332
-
333
- #### Protocol
334
-
335
- Read `{session_folder}/discoveries.ndjson` before own review. Deduplicate by type + dedup key before writing. Append-only — never modify or delete.
336
-
337
- ```bash
338
- echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"src/auth/login.ts:42","type":"sql_injection","severity":"critical","cwe":"CWE-89"}}' >> {session_folder}/discoveries.ndjson
339
- ```
340
- </execution>
341
-
342
- <error_codes>
343
-
344
- | Error | Resolution |
345
- |-------|------------|
346
- | Phase directory not found | Abort with error: "Phase {N} not found" |
347
- | No task summaries found | Abort with error: "No execution results -- run execute first" |
348
- | No changed files | Abort with error: "No changed files detected" |
349
- | Dimension agent timeout | Mark as failed, skip dependent aggregation if all failed |
350
- | Aggregation agent failed | Use wave 1 results directly, verdict based on raw counts |
351
- | CSV parse error | Validate format, show line number |
352
- | discoveries.ndjson corrupt | Ignore malformed lines |
353
- | Continue mode: no session found | List available sessions |
354
- </error_codes>
355
-
356
- <success_criteria>
357
- - [ ] Session folder created with valid tasks.csv
358
- - [ ] All dimension reviews executed in parallel (wave 1)
359
- - [ ] Aggregation + deep-dive executed (wave 2)
360
- - [ ] review.json produced with verdict and severity distribution
361
- - [ ] context.md produced with full review report
362
- - [ ] Issues auto-created for qualifying severity findings
363
- - [ ] Phase index.json updated with review status
364
- - [ ] discoveries.ndjson append-only throughout
365
- </success_criteria>
1
+ ---
2
+ name: quality-review
3
+ description: Use after execution to evaluate code quality across correctness, security, performance, and architecture
4
+ argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--level quick|standard|deep] [--dimensions list]\""
5
+ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
+ ---
7
+
8
+ <purpose>
9
+ Wave-based multi-dimensional code review using `spawn_agents_on_csv`. Decomposes review into independent dimension agents (Wave 1), then aggregates findings into a unified report with verdict (Wave 2).
10
+
11
+ **Core workflow**: Collect Files -> Spec Compliance Check -> Decompose Dimensions -> Parallel Review -> Aggregate + Verdict
12
+
13
+ ## Spec Compliance Pre-Check
14
+ Before dimensional review, verify each task's `convergence.criteria[]` are actually met in the code. UNMET criteria = critical spec-compliance finding that blocks quality review.
15
+
16
+ ## Receiving Review Feedback
17
+ When external feedback is received: verify before implementing (reviewer may lack context), technical acknowledgment only (no performative "Great point!"), push back when wrong with evidence, YAGNI check on suggested additions, implement one at a time with testing.
18
+
19
+ ```
20
+ +---------------------------------------------------------------------------+
21
+ | CODE REVIEW CSV WAVE WORKFLOW |
22
+ +---------------------------------------------------------------------------+
23
+ | |
24
+ | Phase 1: Phase Resolution -> CSV |
25
+ | +-- Resolve phase directory from arguments |
26
+ | +-- Collect changed files from task summaries |
27
+ | +-- Auto-detect review level (quick/standard/deep) |
28
+ | +-- Determine active dimensions |
29
+ | +-- Generate tasks.csv with one row per dimension |
30
+ | +-- User validates dimension breakdown (skip if -y) |
31
+ | |
32
+ | Phase 2: Wave Execution Engine |
33
+ | +-- Wave 1: Dimension Review (parallel) |
34
+ | | +-- Each dimension agent reviews all changed files |
35
+ | | +-- Agent classifies findings by severity |
36
+ | | +-- Discoveries shared via board (patterns, conventions) |
37
+ | | +-- Results: severity_counts + top_issues per dimension |
38
+ | +-- Wave 2: Aggregation + Deep-Dive (if needed) |
39
+ | | +-- Aggregate all dimension findings |
40
+ | | +-- If criticals > 0 (standard) or always (deep): deep-dive |
41
+ | | +-- Cross-dimension impact analysis |
42
+ | | +-- Generate verdict: PASS / WARN / BLOCK |
43
+ | +-- discoveries.ndjson shared across all waves (append-only) |
44
+ | |
45
+ | Phase 3: Results Aggregation |
46
+ | +-- Export results.csv + review.json |
47
+ | +-- Generate context.md with all findings |
48
+ | +-- Auto-create issues for qualifying findings |
49
+ | +-- Update phase index.json with review status |
50
+ | +-- Display summary with verdict + next steps |
51
+ | |
52
+ +---------------------------------------------------------------------------+
53
+ ```
54
+
55
+ </purpose>
56
+
57
+ <context>
58
+ ```bash
59
+ $quality-review "3"
60
+ $quality-review -c 6 "3 --level deep"
61
+ $quality-review -y "3 --dimensions security,performance"
62
+ $quality-review --continue "20260318-review-P3-auth"
63
+ ```
64
+
65
+ **Flags**:
66
+ - `-y, --yes`: Skip all confirmations (auto mode)
67
+ - `-c, --concurrency N`: Max concurrent agents within each wave (default: 6)
68
+ - `--continue`: Resume existing session
69
+ - `--level quick|standard|deep`: Explicit review level (default: auto-detect from file count)
70
+ - `--dimensions <list>`: Comma-separated subset of dimensions to review (overrides level defaults)
71
+ - `--skip-specs`: Skip loading project specs as review context
72
+
73
+ When `--yes` or `-y`: Auto-confirm dimension selection, skip interactive validation, use defaults for level detection.
74
+
75
+ **Output Directory**: `.workflow/.csv-wave/{session-id}/`
76
+ **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `review.json` (structured review output)
77
+ </context>
78
+
79
+ <csv_schema>
80
+
81
+ ### tasks.csv (Master State)
82
+
83
+ ```csv
84
+ id,title,description,dimension,changed_files,project_specs,review_level,deps,context_from,wave,status,findings,severity_counts,top_issues,error
85
+ "1","Correctness Review","Review all changed files for correctness: logic errors, missing edge cases, incorrect return values, null/undefined handling, off-by-one errors. Classify each finding as critical/high/medium/low with file:line references.","correctness","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","Existing patterns use Result type for error handling","standard","","","1","","","","",""
86
+ "2","Security Review","Review all changed files for security vulnerabilities: injection flaws, XSS, CSRF, auth bypass, sensitive data exposure, insecure crypto. Reference OWASP Top 10. Classify each finding.","security","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","Auth uses bcrypt + JWT","standard","","","1","","","","",""
87
+ "3","Performance Review","Review all changed files for performance issues: N+1 queries, unnecessary re-renders, memory leaks, blocking operations, unoptimized algorithms.","performance","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","","","1","","","","",""
88
+ "4","Architecture Review","Review all changed files for architecture issues: layer violations, circular dependencies, inappropriate coupling, missing abstractions, SRP violations.","architecture","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","ESM modules, strict TypeScript","standard","","","1","","","","",""
89
+ "5","Maintainability Review","Review all changed files for maintainability: code duplication, overly complex functions, poor naming, missing types, unclear control flow.","maintainability","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","","","1","","","","",""
90
+ "6","Best Practices Review","Review all changed files for best-practice violations: error handling gaps, missing validation, hardcoded values, deprecated API usage, inconsistent patterns.","best-practices","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","","","1","","","","",""
91
+ "7","Aggregate + Deep-Dive","Aggregate all dimension findings. Calculate severity distribution. Determine verdict (PASS/WARN/BLOCK). If critical findings exist, perform deep-dive with cross-file impact analysis.","aggregation","src/auth/login.ts;src/auth/register.ts;src/utils/validation.ts","","standard","1;2;3;4;5;6","1;2;3;4;5;6","2","","","","",""
92
+ ```
93
+
94
+ **Columns**:
95
+
96
+ | Column | Phase | Description |
97
+ |--------|-------|-------------|
98
+ | `id` | Input | Unique task identifier (string) |
99
+ | `title` | Input | Short task title |
100
+ | `description` | Input | Detailed review instructions for this dimension |
101
+ | `dimension` | Input | Review dimension: correctness/security/performance/architecture/maintainability/best-practices/aggregation |
102
+ | `changed_files` | Input | Semicolon-separated file paths to review |
103
+ | `project_specs` | Input | Relevant project specs/conventions context |
104
+ | `review_level` | Input | quick/standard/deep -- controls depth |
105
+ | `deps` | Input | Semicolon-separated dependency task IDs |
106
+ | `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
107
+ | `wave` | Computed | Wave number (1 = dimension review, 2 = aggregation) |
108
+ | `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
109
+ | `findings` | Output | Key review findings summary (max 500 chars) |
110
+ | `severity_counts` | Output | JSON: `{"critical":N,"high":N,"medium":N,"low":N}` |
111
+ | `top_issues` | Output | Top 5 issues with `[severity] description (file:line)` format |
112
+ | `error` | Output | Error message if failed |
113
+
114
+ ### Per-Wave CSV (Temporary)
115
+
116
+ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
117
+
118
+ ### Output Artifacts
119
+
120
+ | File | Purpose | Lifecycle |
121
+ |------|---------|-----------|
122
+ | `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
123
+ | `wave-{N}.csv` | Per-wave input (temporary) | Created before wave, deleted after |
124
+ | `results.csv` | Final export of all task results | Created in Phase 3 |
125
+ | `discoveries.ndjson` | Shared exploration board | Append-only, carries across waves |
126
+ | `context.md` | Human-readable review report | Created in Phase 3 |
127
+ | `review.json` | Structured review output for downstream | Created in Phase 3 |
128
+
129
+ ### Session Structure
130
+
131
+ ```
132
+ .workflow/.csv-wave/{YYYYMMDD}-review-P{N}-{slug}/
133
+ +-- tasks.csv
134
+ +-- results.csv
135
+ +-- discoveries.ndjson
136
+ +-- context.md
137
+ +-- review.json
138
+ +-- wave-{N}.csv (temporary)
139
+ ```
140
+ </csv_schema>
141
+
142
+ <invariants>
143
+ 1. **Start Immediately**: First action is session initialization, then Phase 1
144
+ 2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
145
+ 3. **CSV is Source of Truth**: Master tasks.csv holds all state
146
+ 4. **Context Propagation**: prev_context built from master CSV, not from memory
147
+ 5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
148
+ 6. **Skip on Failure**: If all dimension agents failed, skip aggregation
149
+ 7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
150
+ 8. **DO NOT STOP**: Continuous execution until all waves complete
151
+ </invariants>
152
+
153
+ <execution>
154
+
155
+ ### Session Initialization
156
+
157
+ Parse `$ARGUMENTS` to extract:
158
+ - `AUTO_YES` from `--yes` / `-y`
159
+ - `continueMode` from `--continue`
160
+ - `maxConcurrency` from `--concurrency N` / `-c N` (default: 6)
161
+ - `levelMatch` from `--level quick|standard|deep`
162
+ - `dimsMatch` from `--dimensions <list>`
163
+ - `phaseArg` = remaining text after stripping all flags
164
+
165
+ Session ID: `{YYYYMMDD}-review-P{phaseArg}-{phaseSlug}` (phaseSlug from index.json or roadmap)
166
+ Session folder: `.workflow/.csv-wave/{sessionId}/` create via `mkdir -p`
167
+
168
+ ### Phase 1: Phase Resolution -> CSV
169
+
170
+ **Objective**: Resolve phase, collect changed files, determine review level, generate tasks.csv.
171
+
172
+ **Decomposition Rules**:
173
+
174
+ 1. **Phase resolution**: Resolve `{phaseArg}` via `state.json` artifact registry to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`
175
+ 2. **Related session discovery**: Query `state.json.artifacts[]` for matching phase + milestone. Extract prior quality context (verdicts, root causes, UAT gaps) from artifact outputs by type (execute → .summaries/.task/, review → review.json, debug → understanding.md, test → uat.md)
176
+ 3. **File collection**: Read `.task/TASK-*.json` → collect `files[].path` where action != "read"
177
+ 4. **Level detection**:
178
+
179
+ | Condition | Level |
180
+ |-----------|-------|
181
+ | `--level` flag provided | Use explicit level |
182
+ | <=3 changed files | quick |
183
+ | 4-19 changed files | standard |
184
+ | >=20 files OR phase marked critical | deep |
185
+
186
+ 5. **Dimension selection**:
187
+
188
+ | Level | Dimensions |
189
+ |-------|------------|
190
+ | quick | correctness, security |
191
+ | standard | correctness, security, performance, architecture, maintainability, best-practices |
192
+ | deep | all 6 + forced deep-dive in aggregation |
193
+
194
+ If `--dimensions` flag provided, override with explicit list.
195
+
196
+ 6. **Specs loading**: Run `maestro spec load --category review` to load review standards, checklists, AND discoverable knowhow tools (unless `--skip-specs`)
197
+ 7. **CSV generation**: One row per dimension + one aggregation row
198
+
199
+ **Wave computation**: Simple 2-wave -- all dimension tasks = wave 1, aggregation = wave 2.
200
+
201
+ **User validation**: Display task breakdown (skip if AUTO_YES).
202
+
203
+ ### Phase 2: Wave Execution Engine
204
+
205
+ **Objective**: Execute dimension reviews wave-by-wave via spawn_agents_on_csv.
206
+
207
+ #### Wave 1: Dimension Reviews (Parallel)
208
+
209
+ Filter master `tasks.csv` for `wave == 1 AND status == pending` → write `wave-1.csv` (no prev_context needed).
210
+
211
+ ```javascript
212
+ spawn_agents_on_csv({
213
+ csv_path: `${sessionFolder}/wave-1.csv`,
214
+ id_column: "id",
215
+ instruction: buildReviewInstruction(sessionFolder), // agent: ~/.codex/agents/workflow-reviewer.toml
216
+ max_concurrency: maxConcurrency,
217
+ max_runtime_seconds: 3600,
218
+ output_csv_path: `${sessionFolder}/wave-1-results.csv`,
219
+ output_schema: {
220
+ type: "object",
221
+ properties: {
222
+ id: { type: "string" },
223
+ status: { type: "string", enum: ["completed", "failed"] },
224
+ findings: { type: "string" },
225
+ severity_counts: { type: "string" },
226
+ top_issues: { type: "string" },
227
+ error: { type: "string" }
228
+ },
229
+ required: ["id", "status", "findings"]
230
+ }
231
+ })
232
+ ```
233
+
234
+ Merge `wave-1-results.csv` into master `tasks.csv`, delete `wave-1.csv`.
235
+
236
+ #### Wave 2: Aggregation + Deep-Dive
237
+
238
+ Filter master `tasks.csv` for `wave == 2 AND status == pending`. If all wave 1 tasks failed, skip aggregation.
239
+
240
+ Build `prev_context` from wave 1 findings (format: `[Task N: Title] summary...` per task).
241
+ Write `wave-2.csv` with `prev_context` column → execute `spawn_agents_on_csv` → merge results → delete `wave-2.csv`.
242
+
243
+ ### Phase 3: Results Aggregation
244
+
245
+ **Objective**: Generate final results and human-readable report.
246
+
247
+ Export master `tasks.csv` as `results.csv`. Build `review.json`:
248
+
249
+ ```json
250
+ {
251
+ "phase": "<phase>",
252
+ "level": "<level>",
253
+ "verdict": "PASS|WARN|BLOCK",
254
+ "severity_distribution": { "critical": 0, "high": 0, "medium": 0, "low": 0 },
255
+ "dimensions": [
256
+ { "dimension": "correctness", "status": "completed", "severity_counts": {...}, "top_issues": [...] }
257
+ ],
258
+ "deep_dive": { "performed": true/false, "iterations": N, "impact_analysis": "..." },
259
+ "issues_created": [],
260
+ "timestamp": "<ISO>"
261
+ }
262
+ ```
263
+
264
+ Generate `context.md`:
265
+
266
+ ```markdown
267
+ # Code Review Report -- Phase {phase}
268
+
269
+ ## Summary
270
+ - Level: {level}
271
+ - Files reviewed: {file_count}
272
+ - Dimensions: {dimension_count}
273
+ - Verdict: **{verdict}**
274
+
275
+ ## Severity Distribution
276
+ | Severity | Count |
277
+ |----------|-------|
278
+ | Critical | {N} |
279
+ | High | {N} |
280
+ | Medium | {N} |
281
+ | Low | {N} |
282
+
283
+ ## Dimension Results
284
+ ### {dimension_name}
285
+ {findings}
286
+
287
+ **Top Issues:**
288
+ {top_issues}
289
+
290
+ ## Deep-Dive Analysis
291
+ {if performed: impact analysis results}
292
+
293
+ ## Issues Created
294
+ {list of created issue IDs}
295
+ ```
296
+
297
+ **Verdict determination**:
298
+
299
+ | Condition | Verdict |
300
+ |-----------|---------|
301
+ | Any critical findings | BLOCK |
302
+ | High findings > 3 | BLOCK |
303
+ | Any high findings | WARN |
304
+ | Medium findings > 5 | WARN |
305
+ | Otherwise | PASS |
306
+
307
+ **Issue creation** by level threshold:
308
+
309
+ | Level | Create Issues For |
310
+ |-------|------------------|
311
+ | quick | critical only |
312
+ | standard | critical + high |
313
+ | deep | critical + high + medium |
314
+
315
+ **Phase index update**: Update `{artifact_dir}/index.json` with review status.
316
+
317
+ **Register artifact**: Append to `state.json.artifacts[]` with `type: "review"`, `id: REV-NNN`, `path: "scratch/{YYYYMMDD}-review-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch, not shared with plan.
318
+
319
+ Display summary.
320
+
321
+ ### Shared Discovery Board Protocol
322
+
323
+ #### Standard Discovery Types
324
+
325
+ | Type | Dedup Key | Data Schema | Description |
326
+ |------|-----------|-------------|-------------|
327
+ | `code_pattern` | `data.name` | `{name, file, description}` | Reusable code pattern found |
328
+ | `integration_point` | `data.file` | `{file, description, exports[]}` | Module connection point |
329
+ | `convention` | singleton | `{naming, imports, formatting}` | Project code conventions |
330
+ | `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
331
+ | `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
332
+
333
+ #### Domain Discovery Types
334
+
335
+ | Type | Dedup Key | Data Schema | Description |
336
+ |------|-----------|-------------|-------------|
337
+ | `vulnerability` | `data.location` | `{location, type, severity, cwe}` | Security vulnerability |
338
+ | `code_smell` | `data.location` | `{location, type, severity, description}` | Code quality issue |
339
+ | `performance_hotspot` | `data.location` | `{location, type, impact}` | Performance issue |
340
+ | `architecture_violation` | `data.location` | `{location, rule, description}` | Architecture rule violation |
341
+
342
+ #### Protocol
343
+
344
+ Read `{session_folder}/discoveries.ndjson` before own review. Deduplicate by type + dedup key before writing. Append-only — never modify or delete.
345
+
346
+ ```bash
347
+ echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"src/auth/login.ts:42","type":"sql_injection","severity":"critical","cwe":"CWE-89"}}' >> {session_folder}/discoveries.ndjson
348
+ ```
349
+ </execution>
350
+
351
+ <error_codes>
352
+
353
+ | Error | Resolution |
354
+ |-------|------------|
355
+ | Phase directory not found | Abort with error: "Phase {N} not found" |
356
+ | No task summaries found | Abort with error: "No execution results -- run execute first" |
357
+ | No changed files | Abort with error: "No changed files detected" |
358
+ | Dimension agent timeout | Mark as failed, skip dependent aggregation if all failed |
359
+ | Aggregation agent failed | Use wave 1 results directly, verdict based on raw counts |
360
+ | CSV parse error | Validate format, show line number |
361
+ | discoveries.ndjson corrupt | Ignore malformed lines |
362
+ | Continue mode: no session found | List available sessions |
363
+ </error_codes>
364
+
365
+ <success_criteria>
366
+ - [ ] Session folder created with valid tasks.csv
367
+ - [ ] All dimension reviews executed in parallel (wave 1)
368
+ - [ ] Aggregation + deep-dive executed (wave 2)
369
+ - [ ] review.json produced with verdict and severity distribution
370
+ - [ ] context.md produced with full review report
371
+ - [ ] Issues auto-created for qualifying severity findings
372
+ - [ ] Phase index.json updated with review status
373
+ - [ ] discoveries.ndjson append-only throughout
374
+ </success_criteria>