maestro-flow 0.5.2 → 0.5.31

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 (701) hide show
  1. package/.agents/skills/insight-challenge/SKILL.md +228 -0
  2. package/.agents/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  3. package/.agents/skills/insight-challenge/specs/verdict-schema.md +239 -0
  4. package/.agents/skills/learn-follow/SKILL.md +114 -114
  5. package/.agents/skills/learn-investigate/SKILL.md +138 -139
  6. package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
  7. package/.agents/skills/maestro/SKILL.md +8 -16
  8. package/.agents/skills/maestro-amend/SKILL.md +152 -152
  9. package/.agents/skills/maestro-analyze/SKILL.md +201 -252
  10. package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
  11. package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
  12. package/.agents/skills/maestro-collab/SKILL.md +159 -159
  13. package/.agents/skills/maestro-companion/SKILL.md +517 -517
  14. package/.agents/skills/maestro-composer/SKILL.md +173 -164
  15. package/.agents/skills/maestro-execute/SKILL.md +169 -170
  16. package/.agents/skills/maestro-fork/SKILL.md +97 -96
  17. package/.agents/skills/maestro-grill/SKILL.md +161 -162
  18. package/.agents/skills/maestro-guard/SKILL.md +93 -92
  19. package/.agents/skills/maestro-help/SKILL.md +1 -1
  20. package/.agents/skills/maestro-help/index/catalog.json +3 -2
  21. package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
  22. package/.agents/skills/maestro-init/SKILL.md +117 -118
  23. package/.agents/skills/maestro-merge/SKILL.md +73 -66
  24. package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
  25. package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
  26. package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
  27. package/.agents/skills/maestro-next/SKILL.md +241 -245
  28. package/.agents/skills/maestro-overlay/SKILL.md +176 -166
  29. package/.agents/skills/maestro-plan/SKILL.md +211 -197
  30. package/.agents/skills/maestro-player/SKILL.md +167 -167
  31. package/.agents/skills/maestro-quick/SKILL.md +69 -63
  32. package/.agents/skills/maestro-ralph/SKILL.md +13 -46
  33. package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -871
  34. package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
  35. package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
  36. package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
  37. package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
  38. package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
  39. package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
  40. package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
  41. package/.agents/skills/maestro-update/SKILL.md +109 -106
  42. package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
  43. package/.agents/skills/manage-harvest/SKILL.md +83 -81
  44. package/.agents/skills/manage-issue/SKILL.md +59 -60
  45. package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
  46. package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
  47. package/.agents/skills/manage-knowhow/SKILL.md +70 -66
  48. package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
  49. package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
  50. package/.agents/skills/manage-status/SKILL.md +52 -42
  51. package/.agents/skills/manage-wiki/SKILL.md +69 -58
  52. package/.agents/skills/odyssey-debug/SKILL.md +461 -0
  53. package/.agents/skills/odyssey-improve/SKILL.md +493 -0
  54. package/.agents/skills/odyssey-planex/SKILL.md +592 -0
  55. package/.agents/skills/odyssey-review-test-fix/SKILL.md +416 -0
  56. package/.agents/skills/odyssey-ui/SKILL.md +447 -0
  57. package/.agents/skills/quality-auto-test/SKILL.md +140 -123
  58. package/.agents/skills/quality-debug/SKILL.md +145 -106
  59. package/.agents/skills/quality-refactor/SKILL.md +91 -53
  60. package/.agents/skills/quality-retrospective/SKILL.md +109 -63
  61. package/.agents/skills/quality-review/SKILL.md +141 -114
  62. package/.agents/skills/quality-sync/SKILL.md +74 -38
  63. package/.agents/skills/quality-test/SKILL.md +133 -103
  64. package/.agents/skills/security-audit/SKILL.md +217 -166
  65. package/.agents/skills/spec-add/SKILL.md +66 -59
  66. package/.agents/skills/spec-load/SKILL.md +68 -68
  67. package/.agents/skills/spec-remove/SKILL.md +42 -42
  68. package/.agents/skills/spec-setup/SKILL.md +38 -41
  69. package/.agy/skills/insight-challenge/SKILL.md +230 -0
  70. package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  71. package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
  72. package/.agy/skills/learn-follow/SKILL.md +114 -114
  73. package/.agy/skills/learn-investigate/SKILL.md +138 -139
  74. package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
  75. package/.agy/skills/maestro/SKILL.md +8 -16
  76. package/.agy/skills/maestro-amend/SKILL.md +152 -152
  77. package/.agy/skills/maestro-analyze/SKILL.md +201 -252
  78. package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
  79. package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
  80. package/.agy/skills/maestro-collab/SKILL.md +159 -159
  81. package/.agy/skills/maestro-companion/SKILL.md +517 -517
  82. package/.agy/skills/maestro-composer/SKILL.md +173 -164
  83. package/.agy/skills/maestro-execute/SKILL.md +169 -170
  84. package/.agy/skills/maestro-fork/SKILL.md +97 -96
  85. package/.agy/skills/maestro-grill/SKILL.md +161 -162
  86. package/.agy/skills/maestro-guard/SKILL.md +93 -92
  87. package/.agy/skills/maestro-help/SKILL.md +1 -1
  88. package/.agy/skills/maestro-help/index/catalog.json +3 -2
  89. package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
  90. package/.agy/skills/maestro-init/SKILL.md +117 -118
  91. package/.agy/skills/maestro-merge/SKILL.md +73 -66
  92. package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
  93. package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
  94. package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
  95. package/.agy/skills/maestro-next/SKILL.md +241 -245
  96. package/.agy/skills/maestro-overlay/SKILL.md +176 -166
  97. package/.agy/skills/maestro-plan/SKILL.md +211 -197
  98. package/.agy/skills/maestro-player/SKILL.md +167 -167
  99. package/.agy/skills/maestro-quick/SKILL.md +69 -63
  100. package/.agy/skills/maestro-ralph/SKILL.md +13 -46
  101. package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -871
  102. package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
  103. package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
  104. package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
  105. package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
  106. package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
  107. package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
  108. package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
  109. package/.agy/skills/maestro-update/SKILL.md +109 -106
  110. package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
  111. package/.agy/skills/manage-harvest/SKILL.md +83 -81
  112. package/.agy/skills/manage-issue/SKILL.md +59 -60
  113. package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
  114. package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
  115. package/.agy/skills/manage-knowhow/SKILL.md +70 -66
  116. package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
  117. package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
  118. package/.agy/skills/manage-status/SKILL.md +52 -42
  119. package/.agy/skills/manage-wiki/SKILL.md +69 -58
  120. package/.agy/skills/odyssey-debug/SKILL.md +461 -0
  121. package/.agy/skills/odyssey-improve/SKILL.md +493 -0
  122. package/.agy/skills/odyssey-planex/SKILL.md +592 -0
  123. package/.agy/skills/odyssey-review-test-fix/SKILL.md +416 -0
  124. package/.agy/skills/odyssey-ui/SKILL.md +447 -0
  125. package/.agy/skills/quality-auto-test/SKILL.md +140 -123
  126. package/.agy/skills/quality-debug/SKILL.md +145 -106
  127. package/.agy/skills/quality-refactor/SKILL.md +91 -53
  128. package/.agy/skills/quality-retrospective/SKILL.md +109 -63
  129. package/.agy/skills/quality-review/SKILL.md +141 -114
  130. package/.agy/skills/quality-sync/SKILL.md +74 -38
  131. package/.agy/skills/quality-test/SKILL.md +133 -103
  132. package/.agy/skills/security-audit/SKILL.md +217 -166
  133. package/.agy/skills/spec-add/SKILL.md +66 -59
  134. package/.agy/skills/spec-load/SKILL.md +68 -68
  135. package/.agy/skills/spec-remove/SKILL.md +42 -42
  136. package/.agy/skills/spec-setup/SKILL.md +38 -41
  137. package/.claude/commands/learn-follow.md +127 -127
  138. package/.claude/commands/learn-investigate.md +151 -152
  139. package/.claude/commands/learn-second-opinion.md +118 -122
  140. package/.claude/commands/maestro-amend.md +164 -164
  141. package/.claude/commands/maestro-analyze.md +215 -266
  142. package/.claude/commands/maestro-blueprint.md +189 -204
  143. package/.claude/commands/maestro-brainstorm.md +209 -213
  144. package/.claude/commands/maestro-collab.md +172 -172
  145. package/.claude/commands/maestro-companion.md +531 -531
  146. package/.claude/commands/maestro-composer.md +188 -179
  147. package/.claude/commands/maestro-execute.md +183 -184
  148. package/.claude/commands/maestro-fork.md +111 -110
  149. package/.claude/commands/maestro-grill.md +175 -176
  150. package/.claude/commands/maestro-guard.md +103 -102
  151. package/.claude/commands/maestro-impeccable.md +311 -268
  152. package/.claude/commands/maestro-init.md +130 -131
  153. package/.claude/commands/maestro-merge.md +87 -80
  154. package/.claude/commands/maestro-milestone-audit.md +4 -10
  155. package/.claude/commands/maestro-milestone-complete.md +6 -7
  156. package/.claude/commands/maestro-milestone-release.md +136 -145
  157. package/.claude/commands/maestro-next.md +253 -257
  158. package/.claude/commands/maestro-overlay.md +188 -178
  159. package/.claude/commands/maestro-plan.md +225 -211
  160. package/.claude/commands/maestro-player.md +182 -182
  161. package/.claude/commands/maestro-quick.md +83 -77
  162. package/.claude/commands/maestro-ralph-beta.md +875 -885
  163. package/.claude/commands/maestro-ralph-execute.md +247 -247
  164. package/.claude/commands/maestro-ralph.md +13 -46
  165. package/.claude/commands/maestro-roadmap.md +173 -186
  166. package/.claude/commands/maestro-swarm-workflow.md +243 -264
  167. package/.claude/commands/maestro-tools-execute.md +122 -117
  168. package/.claude/commands/maestro-tools-register.md +162 -157
  169. package/.claude/commands/maestro-ui-codify.md +117 -100
  170. package/.claude/commands/maestro-universal-workflow.md +548 -561
  171. package/.claude/commands/maestro-update.md +122 -119
  172. package/.claude/commands/maestro.md +8 -16
  173. package/.claude/commands/manage-codebase-rebuild.md +87 -85
  174. package/.claude/commands/manage-harvest.md +97 -95
  175. package/.claude/commands/manage-issue-discover.md +83 -81
  176. package/.claude/commands/manage-issue.md +72 -73
  177. package/.claude/commands/manage-kg-extractors.md +128 -0
  178. package/.claude/commands/manage-knowhow-capture.md +92 -82
  179. package/.claude/commands/manage-knowhow.md +83 -79
  180. package/.claude/commands/manage-knowledge-audit.md +105 -88
  181. package/.claude/commands/manage-status.md +62 -52
  182. package/.claude/commands/manage-wiki.md +82 -71
  183. package/.claude/commands/odyssey-debug.md +459 -0
  184. package/.claude/commands/odyssey-improve.md +491 -0
  185. package/.claude/commands/odyssey-planex.md +590 -0
  186. package/.claude/commands/odyssey-review-test-fix.md +414 -0
  187. package/.claude/commands/odyssey-ui.md +445 -0
  188. package/.claude/commands/quality-auto-test.md +153 -136
  189. package/.claude/commands/quality-debug.md +159 -120
  190. package/.claude/commands/quality-refactor.md +105 -67
  191. package/.claude/commands/quality-retrospective.md +123 -77
  192. package/.claude/commands/quality-review.md +155 -128
  193. package/.claude/commands/quality-sync.md +88 -52
  194. package/.claude/commands/quality-test.md +147 -117
  195. package/.claude/commands/security-audit.md +230 -179
  196. package/.claude/commands/spec-add.md +77 -70
  197. package/.claude/commands/spec-load.md +78 -78
  198. package/.claude/commands/spec-remove.md +55 -55
  199. package/.claude/commands/spec-setup.md +49 -52
  200. package/.claude/skills/insight-challenge/SKILL.md +226 -0
  201. package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  202. package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
  203. package/.claude/skills/maestro-help/SKILL.md +1 -1
  204. package/.claude/skills/maestro-help/index/catalog.json +3 -2
  205. package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
  206. package/.codex/skills/maestro-companion/SKILL.md +1 -1
  207. package/.codex/skills/maestro-help/SKILL.md +1 -1
  208. package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
  209. package/.codex/skills/maestro-next/SKILL.md +1 -1
  210. package/.codex/skills/maestro-ralph-beta/SKILL.md +1 -1
  211. package/.codex/skills/odyssey-debug/SKILL.md +456 -0
  212. package/.codex/skills/odyssey-improve/SKILL.md +466 -0
  213. package/.codex/skills/odyssey-planex/SKILL.md +409 -0
  214. package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
  215. package/.codex/skills/odyssey-ui/SKILL.md +411 -0
  216. package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
  217. package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
  218. package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
  219. package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
  220. package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
  221. package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
  222. package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
  223. package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
  224. package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
  225. package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
  226. package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
  227. package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
  228. package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
  229. package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
  230. package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
  231. package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
  232. package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
  233. package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
  234. package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
  235. package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
  236. package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
  237. package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
  238. package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
  239. package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
  240. package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
  241. package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
  242. package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
  243. package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
  244. package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
  245. package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
  246. package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
  247. package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
  248. package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
  249. package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
  250. package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
  251. package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
  252. package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
  253. package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
  254. package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
  255. package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
  256. package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
  257. package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
  258. package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
  259. package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
  260. package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
  261. package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
  262. package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
  263. package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
  264. package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
  265. package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
  266. package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
  267. package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
  268. package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
  269. package/dashboard/dist/index.html +2 -2
  270. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
  271. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  272. package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
  273. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
  274. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  275. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
  276. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  277. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
  278. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
  279. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  280. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
  281. package/dashboard/dist-server/src/types/index.d.ts +9 -0
  282. package/dist/src/cli.js +4 -1
  283. package/dist/src/cli.js.map +1 -1
  284. package/dist/src/commands/delegate.d.ts.map +1 -1
  285. package/dist/src/commands/delegate.js +50 -8
  286. package/dist/src/commands/delegate.js.map +1 -1
  287. package/dist/src/commands/domain.d.ts +9 -0
  288. package/dist/src/commands/domain.d.ts.map +1 -0
  289. package/dist/src/commands/domain.js +445 -0
  290. package/dist/src/commands/domain.js.map +1 -0
  291. package/dist/src/commands/hooks.d.ts +10 -0
  292. package/dist/src/commands/hooks.d.ts.map +1 -1
  293. package/dist/src/commands/hooks.js +132 -22
  294. package/dist/src/commands/hooks.js.map +1 -1
  295. package/dist/src/commands/install.d.ts.map +1 -1
  296. package/dist/src/commands/install.js +82 -204
  297. package/dist/src/commands/install.js.map +1 -1
  298. package/dist/src/commands/kg.d.ts.map +1 -1
  299. package/dist/src/commands/kg.js +189 -90
  300. package/dist/src/commands/kg.js.map +1 -1
  301. package/dist/src/commands/search.d.ts +15 -8
  302. package/dist/src/commands/search.d.ts.map +1 -1
  303. package/dist/src/commands/search.js +205 -59
  304. package/dist/src/commands/search.js.map +1 -1
  305. package/dist/src/commands/spec.d.ts.map +1 -1
  306. package/dist/src/commands/spec.js +9 -1
  307. package/dist/src/commands/spec.js.map +1 -1
  308. package/dist/src/commands/update.d.ts.map +1 -1
  309. package/dist/src/commands/update.js +0 -7
  310. package/dist/src/commands/update.js.map +1 -1
  311. package/dist/src/commands/wiki.d.ts.map +1 -1
  312. package/dist/src/commands/wiki.js +8 -1
  313. package/dist/src/commands/wiki.js.map +1 -1
  314. package/dist/src/commands/workspace.d.ts +12 -0
  315. package/dist/src/commands/workspace.d.ts.map +1 -0
  316. package/dist/src/commands/workspace.js +230 -0
  317. package/dist/src/commands/workspace.js.map +1 -0
  318. package/dist/src/config/cli-tools-config.d.ts +5 -0
  319. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  320. package/dist/src/config/cli-tools-config.js +31 -0
  321. package/dist/src/config/cli-tools-config.js.map +1 -1
  322. package/dist/src/config/index.d.ts +9 -1
  323. package/dist/src/config/index.d.ts.map +1 -1
  324. package/dist/src/config/index.js +35 -1
  325. package/dist/src/config/index.js.map +1 -1
  326. package/dist/src/core/install-executor.d.ts +31 -0
  327. package/dist/src/core/install-executor.d.ts.map +1 -0
  328. package/dist/src/core/install-executor.js +231 -0
  329. package/dist/src/core/install-executor.js.map +1 -0
  330. package/dist/src/core/install-profile.d.ts +103 -0
  331. package/dist/src/core/install-profile.d.ts.map +1 -0
  332. package/dist/src/core/install-profile.js +225 -0
  333. package/dist/src/core/install-profile.js.map +1 -0
  334. package/dist/src/graph/kg/credibility.d.ts +37 -0
  335. package/dist/src/graph/kg/credibility.d.ts.map +1 -0
  336. package/dist/src/graph/kg/credibility.js +141 -0
  337. package/dist/src/graph/kg/credibility.js.map +1 -0
  338. package/dist/src/graph/kg/db/connection.d.ts +28 -0
  339. package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
  340. package/dist/src/graph/kg/db/connection.js +142 -0
  341. package/dist/src/graph/kg/db/connection.js.map +1 -0
  342. package/dist/src/graph/kg/db/index.d.ts +5 -0
  343. package/dist/src/graph/kg/db/index.d.ts.map +1 -0
  344. package/dist/src/graph/kg/db/index.js +6 -0
  345. package/dist/src/graph/kg/db/index.js.map +1 -0
  346. package/dist/src/graph/kg/db/migrations.d.ts +8 -0
  347. package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
  348. package/dist/src/graph/kg/db/migrations.js +88 -0
  349. package/dist/src/graph/kg/db/migrations.js.map +1 -0
  350. package/dist/src/graph/kg/db/queries.d.ts +84 -0
  351. package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
  352. package/dist/src/graph/kg/db/queries.js +471 -0
  353. package/dist/src/graph/kg/db/queries.js.map +1 -0
  354. package/dist/src/graph/kg/db/types.d.ts +123 -0
  355. package/dist/src/graph/kg/db/types.d.ts.map +1 -0
  356. package/dist/src/graph/kg/db/types.js +75 -0
  357. package/dist/src/graph/kg/db/types.js.map +1 -0
  358. package/dist/src/graph/kg/engine.d.ts +87 -0
  359. package/dist/src/graph/kg/engine.d.ts.map +1 -0
  360. package/dist/src/graph/kg/engine.js +247 -0
  361. package/dist/src/graph/kg/engine.js.map +1 -0
  362. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +42 -0
  363. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
  364. package/dist/src/graph/kg/extraction/code/code-extractor.js +325 -0
  365. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
  366. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
  367. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
  368. package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
  369. package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
  370. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
  371. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
  372. package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
  373. package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
  374. package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
  375. package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
  376. package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
  377. package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
  378. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
  379. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
  380. package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
  381. package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
  382. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
  383. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
  384. package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
  385. package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
  386. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
  387. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
  388. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
  389. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
  390. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
  391. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
  392. package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
  393. package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
  394. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
  395. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
  396. package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
  397. package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
  398. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
  399. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
  400. package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
  401. package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
  402. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
  403. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
  404. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
  405. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
  406. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
  407. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
  408. package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
  409. package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
  410. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
  411. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
  412. package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
  413. package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
  414. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
  415. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
  416. package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
  417. package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
  418. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
  419. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
  420. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
  421. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
  422. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
  423. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
  424. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
  425. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
  426. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
  427. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
  428. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
  429. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
  430. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
  431. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
  432. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
  433. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
  434. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
  435. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
  436. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
  437. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
  438. package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
  439. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
  440. package/dist/src/graph/kg/extraction/orchestrator.js +220 -0
  441. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
  442. package/dist/src/graph/kg/index.d.ts +29 -0
  443. package/dist/src/graph/kg/index.d.ts.map +1 -0
  444. package/dist/src/graph/kg/index.js +35 -0
  445. package/dist/src/graph/kg/index.js.map +1 -0
  446. package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
  447. package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
  448. package/dist/src/graph/kg/query/context-builder.js +184 -0
  449. package/dist/src/graph/kg/query/context-builder.js.map +1 -0
  450. package/dist/src/graph/kg/query/index.d.ts +8 -0
  451. package/dist/src/graph/kg/query/index.d.ts.map +1 -0
  452. package/dist/src/graph/kg/query/index.js +6 -0
  453. package/dist/src/graph/kg/query/index.js.map +1 -0
  454. package/dist/src/graph/kg/query/scoring.d.ts +19 -0
  455. package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
  456. package/dist/src/graph/kg/query/scoring.js +158 -0
  457. package/dist/src/graph/kg/query/scoring.js.map +1 -0
  458. package/dist/src/graph/kg/query/search.d.ts +59 -0
  459. package/dist/src/graph/kg/query/search.d.ts.map +1 -0
  460. package/dist/src/graph/kg/query/search.js +158 -0
  461. package/dist/src/graph/kg/query/search.js.map +1 -0
  462. package/dist/src/graph/kg/query/traversal.d.ts +75 -0
  463. package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
  464. package/dist/src/graph/kg/query/traversal.js +420 -0
  465. package/dist/src/graph/kg/query/traversal.js.map +1 -0
  466. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
  467. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
  468. package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
  469. package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
  470. package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
  471. package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
  472. package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
  473. package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
  474. package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
  475. package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
  476. package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
  477. package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
  478. package/dist/src/graph/kg/resolution/index.d.ts +11 -0
  479. package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
  480. package/dist/src/graph/kg/resolution/index.js +7 -0
  481. package/dist/src/graph/kg/resolution/index.js.map +1 -0
  482. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
  483. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
  484. package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
  485. package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
  486. package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
  487. package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
  488. package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
  489. package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
  490. package/dist/src/graph/kg/schema.sql +215 -0
  491. package/dist/src/graph/kg/surface/cli.d.ts +3 -0
  492. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
  493. package/dist/src/graph/kg/surface/cli.js +597 -0
  494. package/dist/src/graph/kg/surface/cli.js.map +1 -0
  495. package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
  496. package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
  497. package/dist/src/graph/kg/surface/hook-injector.js +172 -0
  498. package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
  499. package/dist/src/graph/kg/surface/index.d.ts +6 -0
  500. package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
  501. package/dist/src/graph/kg/surface/index.js +5 -0
  502. package/dist/src/graph/kg/surface/index.js.map +1 -0
  503. package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
  504. package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
  505. package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
  506. package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
  507. package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
  508. package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
  509. package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
  510. package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
  511. package/dist/src/graph/kg/sync/index.d.ts +5 -0
  512. package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
  513. package/dist/src/graph/kg/sync/index.js +4 -0
  514. package/dist/src/graph/kg/sync/index.js.map +1 -0
  515. package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
  516. package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
  517. package/dist/src/graph/kg/sync/watch-policy.js +90 -0
  518. package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
  519. package/dist/src/hooks/constants.d.ts +0 -2
  520. package/dist/src/hooks/constants.d.ts.map +1 -1
  521. package/dist/src/hooks/constants.js +0 -2
  522. package/dist/src/hooks/constants.js.map +1 -1
  523. package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
  524. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
  525. package/dist/src/hooks/keyword-spec-injector.js +157 -81
  526. package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
  527. package/dist/src/hooks/kg-auto-init.d.ts +13 -0
  528. package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
  529. package/dist/src/hooks/kg-auto-init.js +38 -0
  530. package/dist/src/hooks/kg-auto-init.js.map +1 -0
  531. package/dist/src/hooks/kg-context-injector.d.ts +1 -3
  532. package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
  533. package/dist/src/hooks/kg-context-injector.js +12 -17
  534. package/dist/src/hooks/kg-context-injector.js.map +1 -1
  535. package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
  536. package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
  537. package/dist/src/hooks/kg-sync-hook.js +21 -90
  538. package/dist/src/hooks/kg-sync-hook.js.map +1 -1
  539. package/dist/src/hooks/spec-analytics.d.ts +1 -0
  540. package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
  541. package/dist/src/hooks/spec-analytics.js +1 -3
  542. package/dist/src/hooks/spec-analytics.js.map +1 -1
  543. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  544. package/dist/src/hooks/spec-injector.js +65 -1
  545. package/dist/src/hooks/spec-injector.js.map +1 -1
  546. package/dist/src/hooks/workspace.d.ts +4 -2
  547. package/dist/src/hooks/workspace.d.ts.map +1 -1
  548. package/dist/src/hooks/workspace.js +6 -2
  549. package/dist/src/hooks/workspace.js.map +1 -1
  550. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  551. package/dist/src/i18n/locales/en.js +52 -9
  552. package/dist/src/i18n/locales/en.js.map +1 -1
  553. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  554. package/dist/src/i18n/locales/zh.js +52 -9
  555. package/dist/src/i18n/locales/zh.js.map +1 -1
  556. package/dist/src/i18n/types.d.ts +40 -4
  557. package/dist/src/i18n/types.d.ts.map +1 -1
  558. package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
  559. package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
  560. package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
  561. package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
  562. package/dist/src/tools/domain-loader.d.ts +63 -0
  563. package/dist/src/tools/domain-loader.d.ts.map +1 -0
  564. package/dist/src/tools/domain-loader.js +295 -0
  565. package/dist/src/tools/domain-loader.js.map +1 -0
  566. package/dist/src/tools/domain-matcher.d.ts +24 -0
  567. package/dist/src/tools/domain-matcher.d.ts.map +1 -0
  568. package/dist/src/tools/domain-matcher.js +117 -0
  569. package/dist/src/tools/domain-matcher.js.map +1 -0
  570. package/dist/src/tools/domain-scanner.d.ts +32 -0
  571. package/dist/src/tools/domain-scanner.d.ts.map +1 -0
  572. package/dist/src/tools/domain-scanner.js +263 -0
  573. package/dist/src/tools/domain-scanner.js.map +1 -0
  574. package/dist/src/tools/domain-schema.d.ts +18 -0
  575. package/dist/src/tools/domain-schema.d.ts.map +1 -0
  576. package/dist/src/tools/domain-schema.js +104 -0
  577. package/dist/src/tools/domain-schema.js.map +1 -0
  578. package/dist/src/tools/spec-entry-parser.d.ts +1 -0
  579. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
  580. package/dist/src/tools/spec-entry-parser.js +1 -0
  581. package/dist/src/tools/spec-entry-parser.js.map +1 -1
  582. package/dist/src/tools/spec-loader.d.ts +5 -0
  583. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  584. package/dist/src/tools/spec-loader.js +10 -2
  585. package/dist/src/tools/spec-loader.js.map +1 -1
  586. package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
  587. package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
  588. package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
  589. package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
  590. package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
  591. package/dist/src/tui/install-ui/GroupedHub.js +210 -0
  592. package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
  593. package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
  594. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
  595. package/dist/src/tui/install-ui/HooksConfig.js +83 -18
  596. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
  597. package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
  598. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  599. package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
  600. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  601. package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
  602. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  603. package/dist/src/tui/install-ui/InstallExecution.js +89 -260
  604. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  605. package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
  606. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  607. package/dist/src/tui/install-ui/InstallFlow.js +45 -267
  608. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  609. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  610. package/dist/src/tui/install-ui/InstallHub.js +2 -4
  611. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  612. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  613. package/dist/src/tui/install-ui/InstallResult.js +1 -5
  614. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  615. package/dist/src/tui/install-ui/index.d.ts +5 -1
  616. package/dist/src/tui/install-ui/index.d.ts.map +1 -1
  617. package/dist/src/tui/install-ui/index.js +1 -0
  618. package/dist/src/tui/install-ui/index.js.map +1 -1
  619. package/dist/src/tui/install-ui/types.d.ts +39 -0
  620. package/dist/src/tui/install-ui/types.d.ts.map +1 -1
  621. package/dist/src/tui/install-ui/types.js +1 -1
  622. package/dist/src/tui/install-ui/types.js.map +1 -1
  623. package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
  624. package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
  625. package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
  626. package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
  627. package/dist/src/tui/shared/components.d.ts +4 -0
  628. package/dist/src/tui/shared/components.d.ts.map +1 -1
  629. package/dist/src/tui/shared/components.js +4 -0
  630. package/dist/src/tui/shared/components.js.map +1 -1
  631. package/dist/src/tui/shared/index.d.ts +1 -1
  632. package/dist/src/tui/shared/index.d.ts.map +1 -1
  633. package/dist/src/tui/shared/index.js +1 -1
  634. package/dist/src/tui/shared/index.js.map +1 -1
  635. package/dist/src/tui/shared/tokens.d.ts +5 -5
  636. package/dist/src/tui/shared/tokens.js +5 -5
  637. package/dist/src/tui/shared/tokens.js.map +1 -1
  638. package/dist/src/types/index.d.ts +9 -0
  639. package/dist/src/types/index.d.ts.map +1 -1
  640. package/dist/src/utils/cli-format.d.ts +2 -1
  641. package/dist/src/utils/cli-format.d.ts.map +1 -1
  642. package/dist/src/utils/cli-format.js +14 -3
  643. package/dist/src/utils/cli-format.js.map +1 -1
  644. package/dist/src/utils/cooldown-guard.d.ts +17 -0
  645. package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
  646. package/dist/src/utils/cooldown-guard.js +59 -0
  647. package/dist/src/utils/cooldown-guard.js.map +1 -0
  648. package/dist/src/utils/jsonl-log.d.ts.map +1 -1
  649. package/dist/src/utils/jsonl-log.js +2 -1
  650. package/dist/src/utils/jsonl-log.js.map +1 -1
  651. package/dist/src/utils/update-notices.js +17 -4
  652. package/dist/src/utils/update-notices.js.map +1 -1
  653. package/package.json +91 -92
  654. package/workflows/analyze.md +25 -49
  655. package/workflows/auto-test.md +699 -699
  656. package/workflows/blueprint.md +403 -431
  657. package/workflows/brainstorm.md +54 -195
  658. package/workflows/business-test.md +570 -570
  659. package/workflows/claude-instructions.md +23 -28
  660. package/workflows/codex-instructions.md +30 -58
  661. package/workflows/coding-philosophy.md +69 -69
  662. package/workflows/command-authoring.md +823 -823
  663. package/workflows/debug.md +43 -98
  664. package/workflows/delegate-usage.md +39 -241
  665. package/workflows/execute.md +4 -53
  666. package/workflows/finish-work.md +25 -0
  667. package/workflows/grill.md +12 -56
  668. package/workflows/harvest.md +22 -68
  669. package/workflows/init.md +148 -148
  670. package/workflows/instruction-authoring-guide.md +97 -0
  671. package/workflows/issue-execute.md +110 -110
  672. package/workflows/issue-gaps-analyze.codex.md +260 -260
  673. package/workflows/issue-gaps-analyze.md +216 -216
  674. package/workflows/issue-plan.md +110 -110
  675. package/workflows/issue.md +338 -346
  676. package/workflows/knowhow.md +0 -32
  677. package/workflows/learn.md +277 -277
  678. package/workflows/maestro-chain-execute.md +20 -20
  679. package/workflows/refactor.md +22 -44
  680. package/workflows/retrospective.md +16 -65
  681. package/workflows/review.md +446 -486
  682. package/workflows/roadmap.md +35 -132
  683. package/workflows/skill-authoring.md +265 -265
  684. package/workflows/spec-generate.md +470 -470
  685. package/workflows/specs-remove.md +104 -104
  686. package/workflows/sync.md +11 -41
  687. package/workflows/test-gen.md +226 -226
  688. package/workflows/test.md +385 -475
  689. package/workflows/ui-design.md +391 -391
  690. package/workflows/ui-style.md +199 -199
  691. package/workflows/updates/update-v3-setup.md +7 -15
  692. package/workflows/wiki-connect.md +151 -151
  693. package/workflows/wiki-digest.md +178 -178
  694. package/workflows/wiki-manage.md +109 -109
  695. package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
  696. package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
  697. package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
  698. package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
  699. package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
  700. package/workflows/cli-tools-usage.md +0 -252
  701. package/workflows/delegate-protocol.codex.md +0 -65
@@ -1,486 +1,446 @@
1
- # Review Workflow
2
-
3
- Tiered multi-dimensional code review with parallel agents, severity classification, and iterative deep-dive.
4
-
5
- ---
6
-
7
- ## Spec Compliance Pre-Check (Phase 0)
8
-
9
- **Before any dimensional code quality review**, verify the implementation matches its spec:
10
-
11
- 1. Load `convergence.criteria[]` from each `.task/TASK-{NNN}.json` in the phase
12
- 2. For each criterion, check if the code implements it (grep for functions, endpoints, components named in the criterion)
13
- 3. Classify each: **MET** (evidence found) | **UNMET** (not implemented) | **PARTIAL** (incomplete)
14
-
15
- | Result | Action |
16
- |--------|--------|
17
- | All MET | Proceed to Step 1 (dimensional review) |
18
- | Any UNMET | Report as spec_compliance_failures, add to findings with severity=critical, dimension="spec-compliance" |
19
- | Any PARTIAL | Report with severity=high |
20
-
21
- This prevents code that is well-written but doesn't meet requirements from passing review.
22
-
23
- ---
24
-
25
- ## Receiving Review Feedback
26
-
27
- When external review feedback is received (from human reviewers, PR comments, or other agents):
28
-
29
- 1. **Verify before implementing** — Check each suggestion against codebase reality. Reviewer may lack full context.
30
- 2. **Technical acknowledgment only** — No performative agreement ("You're absolutely right!", "Great point!"). Just state the fix or provide technical reasoning.
31
- 3. **Push back when wrong** — If a suggestion would break existing functionality, violate architecture constraints, or is technically incorrect for this codebase, explain why with evidence.
32
- 4. **YAGNI check** — If reviewer suggests adding a feature/abstraction, verify it's actually needed. Unused features should be questioned.
33
- 5. **Implement one at a time** — Fix one item, test, then move to next. Never batch-implement all feedback at once.
34
- 6. **Priority order** — Blocking issues (breaks, security) → Simple fixes (typos, imports) → Complex fixes (refactoring, logic).
35
-
36
- ---
37
-
38
- ## Prerequisites
39
-
40
- - Phase execution completed (task summaries exist)
41
- - Recommended: maestro-execute verification gate already run (review uses verification gaps as context)
42
-
43
- ---
44
-
45
- ## Phase Resolution
46
-
47
- ```
48
- Input: <phase> argument (number or slug)
49
-
50
- Resolve phase from .workflow/state.json artifacts (type=execute, match by phase number or slug)
51
- → PHASE_DIR = ".workflow/" + artifact.path
52
- → Error if not found or no completed tasks
53
- ```
54
-
55
- ---
56
-
57
- ## Flag Processing
58
-
59
- | Flag | Effect |
60
- |------|--------|
61
- | `--level quick\|standard\|deep` | Explicit review level (default: auto-detect) |
62
- | `--dimensions <list>` | Comma-separated subset (overrides level defaults) |
63
- | `--skip-specs` | Skip loading project specs |
64
-
65
- ---
66
-
67
- ## Review Levels
68
-
69
- Three tiers that scale with task depth:
70
-
71
- | Aspect | Quick | Standard | Deep |
72
- |--------|-------|----------|------|
73
- | **Trigger** | `--level quick`, or auto ≤3 files | Default, or auto 4-19 files | `--level deep`, or auto ≥20 files / critical phase |
74
- | **Dimensions** | correctness, security | All 6 | All 6 |
75
- | **Execution** | Inline (no agents) | Parallel agents | Parallel agents |
76
- | **Deep-Dive** | None | Auto (if critical > 0) | Forced, max 3 iterations |
77
- | **Issue Creation** | Critical only | Critical + High | Critical + High + Medium |
78
- | **Cross-File Analysis** | None | Critical files (3+ dims) | Full impact radius |
79
-
80
- ---
81
-
82
- ## Step 1: Collect Changed Files
83
-
84
- **Purpose:** Build the file list to review from phase execution artifacts.
85
-
86
- ### 1a: Extract from task summaries
87
-
88
- ```
89
- Collect changed_files from PHASE_DIR:
90
- - .summaries/TASK-{NNN}-summary.md → extract referenced file paths (created/modified/deleted)
91
- - .task/TASK-{NNN}.json → extract files[].path where action is create|modify
92
- Deduplicate result
93
- ```
94
-
95
- ### 1b: Validate files exist
96
-
97
- ```
98
- review_files = changed_files filtered to: exists on disk AND not in excluded patterns
99
-
100
- Excluded patterns:
101
- - node_modules/**, vendor/**, dist/**, build/**
102
- - *.lock, *.min.js, *.min.css
103
- - .workflow/**, .claude/**
104
- ```
105
-
106
- ### 1c: Error if empty
107
-
108
- ```
109
- Abort E004 if review_files is empty
110
- ```
111
-
112
- ---
113
-
114
- ## Step 2: Determine Review Level
115
-
116
- ```
117
- level = --level flag value, or auto-detect:
118
- ≤3 files → quick | ≥20 files or critical phase → deep | otherwise → standard
119
-
120
- Log: "Review level: {level} ({file_count} files)"
121
- ```
122
-
123
- ### Determine dimensions
124
-
125
- ```
126
- dimensions = --dimensions flag (comma-separated), or level defaults:
127
- quick [correctness, security]
128
- standard|deep → [correctness, security, performance, architecture, maintainability, best-practices]
129
- ```
130
-
131
- ---
132
-
133
- ## Step 3: Load Project Specs
134
-
135
- **Skip if `--skip-specs` flag is set.**
136
-
137
- ```
138
- specs_content = maestro spec load --category review
139
- ```
140
-
141
- Pass specs_content to reviewer agents as quality standards context.
142
-
143
- ---
144
-
145
- ## Step 4: Load Review Context
146
-
147
- Build context object for reviewer agents:
148
-
149
- ```
150
- review_context = {
151
- phase_goal: index.json.goal || index.json.description,
152
- success_criteria: index.json.success_criteria,
153
- tech_stack: detect from package.json / pyproject.toml / go.mod / Cargo.toml,
154
- specs: specs_content (from Step 3),
155
- verification_gaps: load from ${PHASE_DIR}/verification.json .gaps if exists, else []
156
- }
157
- ```
158
-
159
- ---
160
-
161
- ## Step 5: Execute Review
162
-
163
- **Execution strategy depends on review level.**
164
-
165
- ### Quick Level Inline Scan
166
-
167
- No agents spawned. The orchestrator performs the review directly.
168
-
169
- ```
170
- Scan each review_file against each dimension, collecting findings:
171
-
172
- correctness: unhandled null/undefined, missing error propagation, type mismatches,
173
- off-by-one, missing boundary checks, unreachable code, logic contradictions
174
- security: SQL/command injection, hardcoded secrets/keys/passwords,
175
- missing input validation, XSS vectors
176
-
177
- Each finding: { id: "{PREFIX}-{NNN}", dimension, severity, title, file, line, snippet,
178
- description, impact, suggestion }
179
- ```
180
-
181
- **After inline scan, skip to Step 6 (Aggregate).**
182
-
183
- ### Standard Level Parallel Agent Review
184
-
185
- Spawn one workflow-reviewer agent per dimension, all in parallel:
186
-
187
- ```
188
- Per dimension → spawn workflow-reviewer agent (all parallel):
189
- Context: dimension, phase_name, phase_goal, review_files, success_criteria,
190
- tech_stack, specs_content, verification_gaps
191
- Instructions:
192
- - Read each file, analyze for {dimension}-specific issues only
193
- - Classify: critical / high / medium / low
194
- - Return JSON array: id, dimension, severity, title, file, line, snippet,
195
- description, impact, suggestion, spec_violation (if applicable)
196
- - Top 20 findings by severity, each with file:line evidence
197
- ```
198
-
199
- **Launch ALL dimension agents in a single message** (parallel execution).
200
-
201
- Collect dimension_results from each agent (JSON findings array). Log W001 on agent failure, continue with partial results.
202
-
203
- ### Deep Level — Enhanced Agent Review
204
-
205
- Same parallel agent spawning as standard, but with enhanced prompt:
206
-
207
- ```
208
- Same parallel agent spawning as standard, with deep-mode enhancements:
209
- - Also read direct imports for context
210
- - Trace callers/dependents for critical/high findings
211
- - Cross-reference patterns across files (duplication, inconsistency)
212
- - Return includes additional field: related_files[]
213
- - Top 30 findings (vs 20 for standard)
214
- ```
215
-
216
- Collect results same as standard.
217
-
218
- ---
219
-
220
- ## Step 6: Aggregate Findings
221
-
222
- ### 6a: Merge all findings
223
-
224
- ```
225
- all_findings = merge all dimension results, sorted by severity (critical > high > medium > low), then dimension
226
- ```
227
-
228
- ### 6b: Severity distribution
229
-
230
- ```
231
- severity_dist = count all_findings by severity {critical, high, medium, low}
232
- ```
233
-
234
- ### 6c: Identify critical files (standard + deep only)
235
-
236
- ```
237
- IF level != "quick":
238
- critical_files = files with critical/high findings across 3+ distinct dimensions
239
- [{ file, dimensions[] }]
240
- ```
241
-
242
- ### 6d: Determine verdict
243
-
244
- ```
245
- verdict:
246
- BLOCK → any critical, or >5 high
247
- WARN → any high (≤5)
248
- PASS → no critical or high
249
- ```
250
-
251
- ---
252
-
253
- ## Step 6.5: CLI Supplementary Analysis (standard + deep only)
254
-
255
- **Skip for quick level or if no enabled CLI tools.**
256
-
257
- **Purpose:** Use external CLI tool as a second opinion on critical findings before deep-dive. The CLI analysis supplements (not replaces) the agent review — its results are merged into findings.
258
-
259
- ```
260
- IF level == "quick" OR no CLI tools enabled: skip to Step 7
261
-
262
- # Gather critical/high findings for CLI cross-check
263
- cli_targets = all_findings.filter(f => f.severity in ["critical", "high"])
264
- IF cli_targets.length == 0: skip to Step 7
265
-
266
- # Build concise review prompt from findings
267
- finding_summary = cli_targets.map(f => "${f.id}: [${f.severity}] ${f.file}:${f.line} — ${f.title}").join("\n")
268
-
269
- Bash({
270
- command: 'maestro delegate "PURPOSE: Cross-verify code review findings and identify missed issues
271
- TASK: For each finding, verify severity is accurate | Check for false positives | Identify any critical issues missed by initial review in the same files
272
- MODE: analysis
273
- CONTEXT: @${review_files as glob pattern}
274
- EXPECTED: JSON array of { finding_id, verified: bool, adjusted_severity?, missed_issues?: [{ severity, file, line, title, description }] }
275
- CONSTRAINTS: Only report missed issues of severity high or above | Do not duplicate existing findings
276
-
277
- Existing findings to verify:
278
- ${finding_summary}
279
- " --role review --mode analysis',
280
- run_in_background: true
281
- })
282
- ```
283
-
284
- **On callback:**
285
- ```
286
- cli_result = maestro delegate output <id>
287
- Parse JSON from cli_result
288
-
289
- For each verified finding:
290
- If adjusted_severity differs: update finding.severity, add finding.cli_note = "severity adjusted by CLI review"
291
- For each missed_issue:
292
- Append to all_findings with id: "CLI-{NNN}", source: "cli-supplementary"
293
-
294
- Recalculate severity_dist after merge
295
- ```
296
-
297
- ---
298
-
299
- ## Step 7: Deep-Dive (Conditional)
300
-
301
- **Skip entirely for quick level.**
302
-
303
- **Trigger conditions:**
304
- - **Standard**: `severity_dist.critical > 0` (auto-trigger)
305
- - **Deep**: Always triggered (forced)
306
-
307
- **Skip if level == "standard" AND severity_dist.critical == 0.**
308
-
309
- ### 7a: Select deep-dive targets
310
-
311
- ```
312
- deep_dive_targets:
313
- deep → critical + high findings, top 15
314
- standard → critical findings only, top 10
315
- ```
316
-
317
- ### 7b: Deep-dive iteration
318
-
319
- ```
320
- Iterate up to max_iterations (deep=3, standard=1) over unresolved targets:
321
-
322
- Per targetspawn workflow-reviewer agent:
323
- Context: original finding JSON, previous analysis (if iteration > 1)
324
- Tasks: read affected file, find callers/imports, check test coverage
325
- Analyze: root cause, impact radius, remediation (with code example), risk if unfixed
326
-
327
- Return JSON:
328
- {
329
- "finding_id": "{target.id}",
330
- "root_cause": "...",
331
- "impact_radius": ["file1.ts", "file2.ts"],
332
- "remediation": { "approach": "...", "code_example": "..." },
333
- "risk_if_unfixed": "...",
334
- "reassessed_severity": "critical|high|medium|low",
335
- "confidence": 0.0-1.0
336
- }
337
-
338
- Merge: enrich original finding, mark complete if confidence >= 0.8,
339
- update severity if reassessed. Stop early if all resolved.
340
- ```
341
-
342
- ---
343
-
344
- ## Step 8: Auto-Create Issues
345
-
346
- **Issue creation thresholds by level:**
347
-
348
- | Level | Severities that create issues |
349
- |-------|-------------------------------|
350
- | Quick | Critical only |
351
- | Standard | Critical + High |
352
- | Deep | Critical + High + Medium |
353
-
354
- ```
355
- Filter findings by level threshold (quick=critical, standard=critical+high, deep=+medium)
356
-
357
- For each qualifying finding → append issue to .workflow/issues/issues.jsonl:
358
- id: "ISS-{YYYYMMDD}-{NNN}" (auto-increment from existing today's entries)
359
- title: "[{dimension}] {title}" (max 100 chars)
360
- status: "registered"
361
- priority: severity_to_priority (critical→1, high→2, medium→3)
362
- severity, source: "review", phase_ref, gap_ref: finding.id
363
- description, fix_direction: finding.suggestion
364
- context: { location: "{file}:{line}", suggested_fix, notes: impact }
365
- tags: ["review", dimension]
366
- Timestamps: created_at, updated_at = now()
367
-
368
- Link finding.issue_id back to created issue
369
- ```
370
-
371
- **severity_to_priority mapping**: critical → 1, high → 2, medium → 3
372
-
373
- ---
374
-
375
- ## Step 9: Write review.json
376
-
377
- **Archive previous review artifacts** before writing:
378
- ```
379
- Archive existing review.json → ${PHASE_DIR}/.history/review-{YYYY-MM-DDTHH-mm-ss}.json
380
- ```
381
-
382
- ```
383
- Write ${PHASE_DIR}/review.json:
384
- {
385
- "phase": PHASE_NUM,
386
- "level": "quick" | "standard" | "deep",
387
- "verdict": "PASS" | "WARN" | "BLOCK",
388
- "reviewed_at": now(),
389
- "reviewer": "workflow-reviewer",
390
- "dimensions_reviewed": dimensions,
391
- "files_reviewed": review_files,
392
- "severity_distribution": {
393
- "critical": N,
394
- "high": N,
395
- "medium": N,
396
- "low": N,
397
- "total": N
398
- },
399
- "critical_files": critical_files,
400
- "findings": all_findings,
401
- "deep_dives": deep_dive_results (if any),
402
- "issues_created": issue_ids[]
403
- }
404
- ```
405
-
406
- ---
407
-
408
- ## Step 10: Update index.json
409
-
410
- ```
411
- Update index.json.updated_at = now()
412
- Set index.json.review = { level, verdict, reviewed_at, severity_distribution,
413
- findings_count, issues_created count }
414
- ```
415
-
416
- ---
417
-
418
- ## Report Format
419
-
420
- ```
421
- === CODE REVIEW RESULTS ===
422
- Phase: {phase_name}
423
- Level: {quick | standard | deep}
424
- Files: {files_reviewed.length} files across {dimensions.length} dimensions
425
- Duration: {duration}
426
-
427
- Severity Distribution:
428
- Critical: {critical}
429
- High: {high}
430
- Medium: {medium}
431
- Low: {low}
432
-
433
- Top Issues:
434
- 1. [{severity}] {finding_id}: {title} ({file}:{line})
435
- 2. [{severity}] {finding_id}: {title} ({file}:{line})
436
- 3. [{severity}] {finding_id}: {title} ({file}:{line})
437
- ... (up to 10)
438
-
439
- {IF level != "quick":
440
- Critical Files (3+ dimensions flagged):
441
- - {file} ({dimension1}, {dimension2}, {dimension3})
442
- }
443
-
444
- Verdict: {PASS | WARN | BLOCK}
445
- Issues Created: {count}
446
-
447
- Files:
448
- {artifact_dir}/review.json
449
-
450
- Next steps:
451
- {suggested_next_command}
452
- ```
453
-
454
- ---
455
-
456
- ## Next Step Routing
457
-
458
- | Verdict | Suggestion |
459
- |---------|------------|
460
- | PASS | Skill({ skill: "quality-test", args: "{phase}" }) for UAT, or Skill({ skill: "maestro-milestone-audit" }) if UAT already passed |
461
- | WARN | Review findings, then Skill({ skill: "quality-test", args: "{phase}" }) — acknowledge warnings before proceeding |
462
- | BLOCK (≤3 findings, all medium/low) | **Lightweight fix loop**: fix inline → re-run review on affected files only → repeat until PASS/WARN (max 2 iterations) |
463
- | BLOCK (>3 findings or any critical) | Full fix cycle: Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) -> Skill({ skill: "maestro-execute", args: "{phase}" }) -> re-run Skill({ skill: "quality-review", args: "{phase}" }) |
464
-
465
- ---
466
-
467
- ## Error Handling
468
-
469
- | Error | Action |
470
- |-------|--------|
471
- | Phase directory not found | Abort: "Phase {phase} not found." |
472
- | No execution results | Abort: "No completed tasks found. Run maestro-execute first." |
473
- | No changed files | Abort: "No changed files detected in this phase." |
474
- | Reviewer agent fails | Log W001, continue with available dimension results |
475
- | All agents fail | Abort: "Review could not complete — all dimension agents failed." |
476
- | Deep-dive agent fails | Log finding as unresolved, skip enrichment |
477
-
478
- ---
479
-
480
- ## State Updates
481
-
482
- | When | Field | Value |
483
- |------|-------|-------|
484
- | Step 5 start | index.json.status | "reviewing" (if currently "verifying") |
485
- | Step 10 | index.json.review | Review results summary |
486
- | Step 10 | index.json.updated_at | Current timestamp |
1
+ # Review Workflow
2
+
3
+ Tiered multi-dimensional code review with parallel agents, severity classification, and iterative deep-dive.
4
+
5
+ ---
6
+
7
+ ## Spec Compliance Pre-Check (Phase 0)
8
+
9
+ 1. Load `convergence.criteria[]` from each `.task/TASK-{NNN}.json`
10
+ 2. For each criterion, grep for functions/endpoints/components named in the criterion
11
+ 3. Classify: **MET** (evidence found) | **UNMET** (not implemented) | **PARTIAL** (incomplete)
12
+
13
+ | Result | Action |
14
+ |--------|--------|
15
+ | All MET | Proceed to Step 1 (dimensional review) |
16
+ | Any UNMET | Report as spec_compliance_failures, add to findings with severity=critical, dimension="spec-compliance" |
17
+ | Any PARTIAL | Report with severity=high |
18
+
19
+ ---
20
+
21
+ ## Receiving Review Feedback
22
+
23
+ 1. **Verify before implementing** — Check each suggestion against codebase reality.
24
+ 2. **Technical acknowledgment only** — No performative agreement. State the fix or provide technical reasoning.
25
+ 3. **Push back when wrong** — If a suggestion would break functionality or violate constraints, explain why with evidence.
26
+ 4. **YAGNI check** — Verify suggested features/abstractions are actually needed.
27
+ 5. **Implement one at a time** Fix one item, test, then next. NEVER batch-implement all feedback.
28
+ 6. **Priority order** — Blocking (breaks, security) → Simple (typos, imports) → Complex (refactoring, logic).
29
+
30
+ ---
31
+
32
+ ## Phase Resolution
33
+
34
+ ```
35
+ Input: <phase> argument (number or slug)
36
+
37
+ Resolve phase from .workflow/state.json artifacts (type=execute, match by phase number or slug)
38
+ PHASE_DIR = ".workflow/" + artifact.path
39
+ → Error if not found or no completed tasks
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Flag Processing
45
+
46
+ | Flag | Effect |
47
+ |------|--------|
48
+ | `--level quick\|standard\|deep` | Explicit review level (default: auto-detect) |
49
+ | `--dimensions <list>` | Comma-separated subset (overrides level defaults) |
50
+ | `--skip-specs` | Skip loading project specs |
51
+
52
+ ---
53
+
54
+ ## Review Levels
55
+
56
+ | Aspect | Quick | Standard | Deep |
57
+ |--------|-------|----------|------|
58
+ | **Trigger** | `--level quick`, or auto ≤3 files | Default, or auto 4-19 files | `--level deep`, or auto ≥20 files / critical phase |
59
+ | **Dimensions** | correctness, security | All 6 | All 6 |
60
+ | **Execution** | Inline (no agents) | Parallel agents | Parallel agents |
61
+ | **Deep-Dive** | None | Auto (if critical > 0) | Forced, max 3 iterations |
62
+ | **Issue Creation** | Critical only | Critical + High | Critical + High + Medium |
63
+ | **Cross-File Analysis** | None | Critical files (3+ dims) | Full impact radius |
64
+
65
+ ---
66
+
67
+ ## Step 1: Collect Changed Files
68
+
69
+ ### 1a: Extract from task summaries
70
+
71
+ ```
72
+ Collect changed_files from PHASE_DIR:
73
+ - .summaries/TASK-{NNN}-summary.md extract referenced file paths (created/modified/deleted)
74
+ - .task/TASK-{NNN}.json extract files[].path where action is create|modify
75
+ Deduplicate result
76
+ ```
77
+
78
+ ### 1b: Validate files exist
79
+
80
+ ```
81
+ review_files = changed_files filtered to: exists on disk AND not in excluded patterns
82
+
83
+ Excluded patterns:
84
+ - node_modules/**, vendor/**, dist/**, build/**
85
+ - *.lock, *.min.js, *.min.css
86
+ - .workflow/**, .claude/**
87
+ ```
88
+
89
+ ### 1c: Error if empty
90
+
91
+ ```
92
+ Abort E004 if review_files is empty
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Step 2: Determine Review Level
98
+
99
+ ```
100
+ level = --level flag value, or auto-detect:
101
+ ≤3 files quick | ≥20 files or critical phase → deep | otherwise → standard
102
+
103
+ Log: "Review level: {level} ({file_count} files)"
104
+ ```
105
+
106
+ ### Determine dimensions
107
+
108
+ ```
109
+ dimensions = --dimensions flag (comma-separated), or level defaults:
110
+ quick → [correctness, security]
111
+ standard|deep → [correctness, security, performance, architecture, maintainability, best-practices]
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Step 3: Load Project Specs
117
+
118
+ **Skip if `--skip-specs`.**
119
+
120
+ ```
121
+ specs_content = maestro spec load --category review
122
+ → Pass to reviewer agents as quality standards context
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Step 4: Load Review Context
128
+
129
+ Build context object for reviewer agents:
130
+
131
+ ```
132
+ review_context = {
133
+ phase_goal: index.json.goal || index.json.description,
134
+ success_criteria: index.json.success_criteria,
135
+ tech_stack: detect from package.json / pyproject.toml / go.mod / Cargo.toml,
136
+ specs: specs_content (from Step 3),
137
+ verification_gaps: load from ${PHASE_DIR}/verification.json .gaps if exists, else []
138
+ }
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Step 5: Execute Review
144
+
145
+ ### Quick Level Inline Scan
146
+
147
+ ```
148
+ Scan each review_file against each dimension, collecting findings:
149
+
150
+ correctness: unhandled null/undefined, missing error propagation, type mismatches,
151
+ off-by-one, missing boundary checks, unreachable code, logic contradictions
152
+ security: SQL/command injection, hardcoded secrets/keys/passwords,
153
+ missing input validation, XSS vectors
154
+
155
+ Each finding: { id: "{PREFIX}-{NNN}", dimension, severity, title, file, line, snippet,
156
+ description, impact, suggestion }
157
+ ```
158
+
159
+ **After inline scan, skip to Step 6.**
160
+
161
+ ### Standard Level Parallel Agent Review
162
+
163
+ ```
164
+ Per dimension → spawn workflow-reviewer agent (all parallel):
165
+ Context: dimension, phase_name, phase_goal, review_files, success_criteria,
166
+ tech_stack, specs_content, verification_gaps
167
+ Instructions:
168
+ - Read each file, analyze for {dimension}-specific issues only
169
+ - Classify: critical / high / medium / low
170
+ - Return JSON array: id, dimension, severity, title, file, line, snippet,
171
+ description, impact, suggestion, spec_violation (if applicable)
172
+ - Top 20 findings by severity, each with file:line evidence
173
+ ```
174
+
175
+ Launch ALL dimension agents in a single message. Collect dimension_results (JSON findings array). Log W001 on agent failure, continue with partial results.
176
+
177
+ ### Deep Level Enhanced Agent Review
178
+
179
+ ```
180
+ Same as standard, with deep-mode enhancements:
181
+ - Also read direct imports for context
182
+ - Trace callers/dependents for critical/high findings
183
+ - Cross-reference patterns across files (duplication, inconsistency)
184
+ - Return includes additional field: related_files[]
185
+ - Top 30 findings (vs 20 for standard)
186
+ ```
187
+
188
+ ---
189
+
190
+ ## Step 6: Aggregate Findings
191
+
192
+ ### 6a: Merge all findings
193
+
194
+ ```
195
+ all_findings = merge all dimension results, sorted by severity (critical > high > medium > low), then dimension
196
+ ```
197
+
198
+ ### 6b: Severity distribution
199
+
200
+ ```
201
+ severity_dist = count all_findings by severity {critical, high, medium, low}
202
+ ```
203
+
204
+ ### 6c: Identify critical files (standard + deep only)
205
+
206
+ ```
207
+ IF level != "quick":
208
+ critical_files = files with critical/high findings across 3+ distinct dimensions
209
+ [{ file, dimensions[] }]
210
+ ```
211
+
212
+ ### 6d: Determine verdict
213
+
214
+ ```
215
+ verdict:
216
+ BLOCK any critical, or >5 high
217
+ WARN → any high (≤5)
218
+ PASS → no critical or high
219
+ ```
220
+
221
+ ---
222
+
223
+ ## Step 6.5: CLI Supplementary Analysis (standard + deep only)
224
+
225
+ **Skip for quick level or if no enabled CLI tools.**
226
+
227
+ ```
228
+ IF level == "quick" OR no CLI tools enabled: skip to Step 7
229
+
230
+ # Gather critical/high findings for CLI cross-check
231
+ cli_targets = all_findings.filter(f => f.severity in ["critical", "high"])
232
+ IF cli_targets.length == 0: skip to Step 7
233
+
234
+ # Build concise review prompt from findings
235
+ finding_summary = cli_targets.map(f => "${f.id}: [${f.severity}] ${f.file}:${f.line} — ${f.title}").join("\n")
236
+
237
+ Bash({
238
+ command: 'maestro delegate "PURPOSE: Cross-verify code review findings and identify missed issues
239
+ TASK: For each finding, verify severity is accurate | Check for false positives | Identify any critical issues missed by initial review in the same files
240
+ MODE: analysis
241
+ CONTEXT: @${review_files as glob pattern}
242
+ EXPECTED: JSON array of { finding_id, verified: bool, adjusted_severity?, missed_issues?: [{ severity, file, line, title, description }] }
243
+ CONSTRAINTS: Only report missed issues of severity high or above | Do not duplicate existing findings
244
+
245
+ Existing findings to verify:
246
+ ${finding_summary}
247
+ " --role review --mode analysis',
248
+ run_in_background: true
249
+ })
250
+ ```
251
+
252
+ **On callback:**
253
+ ```
254
+ cli_result = maestro delegate output <id>
255
+ Parse JSON from cli_result
256
+
257
+ For each verified finding:
258
+ If adjusted_severity differs: update finding.severity, add finding.cli_note = "severity adjusted by CLI review"
259
+ For each missed_issue:
260
+ Append to all_findings with id: "CLI-{NNN}", source: "cli-supplementary"
261
+
262
+ Recalculate severity_dist after merge
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Step 7: Deep-Dive (Conditional)
268
+
269
+ **Skip for quick level.**
270
+
271
+ | Level | Trigger |
272
+ |-------|---------|
273
+ | Standard | `severity_dist.critical > 0` |
274
+ | Deep | Always |
275
+
276
+ ### 7a: Select deep-dive targets
277
+
278
+ ```
279
+ deep_dive_targets:
280
+ deep → critical + high findings, top 15
281
+ standard → critical findings only, top 10
282
+ ```
283
+
284
+ ### 7b: Deep-dive iteration
285
+
286
+ ```
287
+ Iterate up to max_iterations (deep=3, standard=1) over unresolved targets:
288
+
289
+ Per target spawn workflow-reviewer agent:
290
+ Context: original finding JSON, previous analysis (if iteration > 1)
291
+ Tasks: read affected file, find callers/imports, check test coverage
292
+ Analyze: root cause, impact radius, remediation (with code example), risk if unfixed
293
+
294
+ Return JSON:
295
+ {
296
+ "finding_id": "{target.id}",
297
+ "root_cause": "...",
298
+ "impact_radius": ["file1.ts", "file2.ts"],
299
+ "remediation": { "approach": "...", "code_example": "..." },
300
+ "risk_if_unfixed": "...",
301
+ "reassessed_severity": "critical|high|medium|low",
302
+ "confidence": 0.0-1.0
303
+ }
304
+
305
+ Merge: enrich original finding, mark complete if confidence >= 0.8,
306
+ update severity if reassessed. Stop early if all resolved.
307
+ ```
308
+
309
+ ---
310
+
311
+ ## Step 8: Auto-Create Issues
312
+
313
+ | Level | Create issues for |
314
+ |-------|-------------------|
315
+ | Quick | Critical only |
316
+ | Standard | Critical + High |
317
+ | Deep | Critical + High + Medium |
318
+
319
+ ```
320
+ Filter findings by level threshold
321
+
322
+ For each qualifying finding append issue to .workflow/issues/issues.jsonl:
323
+ id: "ISS-{YYYYMMDD}-{NNN}" (auto-increment from existing today's entries)
324
+ title: "[{dimension}] {title}" (max 100 chars)
325
+ status: "registered"
326
+ priority: severity_to_priority (critical→1, high→2, medium→3)
327
+ severity, source: "review", phase_ref, gap_ref: finding.id
328
+ description, fix_direction: finding.suggestion
329
+ context: { location: "{file}:{line}", suggested_fix, notes: impact }
330
+ tags: ["review", dimension]
331
+ Timestamps: created_at, updated_at = now()
332
+
333
+ Link finding.issue_id back to created issue
334
+ ```
335
+
336
+ ---
337
+
338
+ ## Step 9: Write review.json
339
+
340
+ Archive existing `review.json` → `${PHASE_DIR}/.history/review-{YYYY-MM-DDTHH-mm-ss}.json`
341
+
342
+ ```
343
+ Write ${PHASE_DIR}/review.json:
344
+ {
345
+ "phase": PHASE_NUM,
346
+ "level": "quick" | "standard" | "deep",
347
+ "verdict": "PASS" | "WARN" | "BLOCK",
348
+ "reviewed_at": now(),
349
+ "reviewer": "workflow-reviewer",
350
+ "dimensions_reviewed": dimensions,
351
+ "files_reviewed": review_files,
352
+ "severity_distribution": {
353
+ "critical": N,
354
+ "high": N,
355
+ "medium": N,
356
+ "low": N,
357
+ "total": N
358
+ },
359
+ "critical_files": critical_files,
360
+ "findings": all_findings,
361
+ "deep_dives": deep_dive_results (if any),
362
+ "issues_created": issue_ids[]
363
+ }
364
+ ```
365
+
366
+ ---
367
+
368
+ ## Step 10: Update index.json
369
+
370
+ ```
371
+ Update index.json.updated_at = now()
372
+ Set index.json.review = { level, verdict, reviewed_at, severity_distribution,
373
+ findings_count, issues_created count }
374
+ ```
375
+
376
+ ---
377
+
378
+ ## Report Format
379
+
380
+ ```
381
+ === CODE REVIEW RESULTS ===
382
+ Phase: {phase_name}
383
+ Level: {quick | standard | deep}
384
+ Files: {files_reviewed.length} files across {dimensions.length} dimensions
385
+ Duration: {duration}
386
+
387
+ Severity Distribution:
388
+ Critical: {critical}
389
+ High: {high}
390
+ Medium: {medium}
391
+ Low: {low}
392
+
393
+ Top Issues:
394
+ 1. [{severity}] {finding_id}: {title} ({file}:{line})
395
+ 2. [{severity}] {finding_id}: {title} ({file}:{line})
396
+ 3. [{severity}] {finding_id}: {title} ({file}:{line})
397
+ ... (up to 10)
398
+
399
+ {IF level != "quick":
400
+ Critical Files (3+ dimensions flagged):
401
+ - {file} ({dimension1}, {dimension2}, {dimension3})
402
+ }
403
+
404
+ Verdict: {PASS | WARN | BLOCK}
405
+ Issues Created: {count}
406
+
407
+ Files:
408
+ {artifact_dir}/review.json
409
+
410
+ Next steps:
411
+ {suggested_next_command}
412
+ ```
413
+
414
+ ---
415
+
416
+ ## Next Step Routing
417
+
418
+ | Verdict | Suggestion |
419
+ |---------|------------|
420
+ | PASS | Skill({ skill: "quality-test", args: "{phase}" }) for UAT, or Skill({ skill: "maestro-milestone-audit" }) if UAT already passed |
421
+ | WARN | Review findings, then Skill({ skill: "quality-test", args: "{phase}" }) — acknowledge warnings before proceeding |
422
+ | BLOCK (≤3 findings, all medium/low) | **Lightweight fix loop**: fix inline → re-run review on affected files only → repeat until PASS/WARN (max 2 iterations) |
423
+ | BLOCK (>3 findings or any critical) | Full fix cycle: Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) -> Skill({ skill: "maestro-execute", args: "{phase}" }) -> re-run Skill({ skill: "quality-review", args: "{phase}" }) |
424
+
425
+ ---
426
+
427
+ ## Error Handling
428
+
429
+ | Error | Action |
430
+ |-------|--------|
431
+ | Phase directory not found | Abort: "Phase {phase} not found." |
432
+ | No execution results | Abort: "No completed tasks found. Run maestro-execute first." |
433
+ | No changed files | Abort: "No changed files detected in this phase." |
434
+ | Reviewer agent fails | Log W001, continue with available dimension results |
435
+ | All agents fail | Abort: "Review could not complete — all dimension agents failed." |
436
+ | Deep-dive agent fails | Log finding as unresolved, skip enrichment |
437
+
438
+ ---
439
+
440
+ ## State Updates
441
+
442
+ | When | Field | Value |
443
+ |------|-------|-------|
444
+ | Step 5 start | index.json.status | "reviewing" (if currently "verifying") |
445
+ | Step 10 | index.json.review | Review results summary |
446
+ | Step 10 | index.json.updated_at | Current timestamp |