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
package/workflows/test.md CHANGED
@@ -1,475 +1,385 @@
1
- # Test Workflow (UAT)
2
-
3
- Validate built features through conversational UAT testing with persistent state, auto-diagnosis via parallel debug agents, and gap-fix closure loop.
4
-
5
- User tests, Claude records. One test at a time. Plain text responses.
6
- Severity inferred from natural language -- never ask "how severe is this?"
7
-
8
- **Philosophy: Show expected, ask if reality matches.**
9
-
10
- Claude presents what SHOULD happen. User confirms or describes what's different.
11
- - "yes" / "y" / "next" / empty / "pass" -> pass
12
- - "skip" / "can't test" / "n/a" -> skipped
13
- - Anything else -> logged as issue, severity inferred
14
-
15
- No Pass/Fail buttons. No severity questions. Just: "Here's what should happen. Does it?"
16
-
17
- ---
18
-
19
- ### Step 1: Resolve Target
20
-
21
- Determine test target from $ARGUMENTS:
22
-
23
- **If phase number provided** (e.g., "3"):
24
- - Set `$TARGET_TYPE = "phase"`
25
- - Resolve phase dir: look up `phaseNum` in `.workflow/state.json` artifacts (type=execute), derive `PHASE_DIR = ".workflow/" + art.path`. Error if not found.
26
- - Load `$PHASE_DIR/index.json` for context
27
-
28
- **If scratch task ID provided:**
29
- - Set `$TARGET_TYPE = "scratch"`
30
- - Set `$SCRATCH_DIR = ".workflow/scratch/{id}/"`
31
- - Load `$SCRATCH_DIR/index.json` for context
32
-
33
- **If nothing provided:**
34
- - Check for active UAT sessions (see Step 2)
35
- - If none found, prompt user for phase number or scratch task
36
-
37
- **Flags:**
38
- - `--smoke` -- Run cold-start smoke tests before UAT
39
- - `--auto-fix` -- Auto-trigger gap-fix loop on failures
40
-
41
- Validate target exists and has been verified (verification.json present). (E002)
42
-
43
- ---
44
-
45
- ### Step 2: Check Active Sessions
46
-
47
- ```bash
48
- # Check scratch dirs (resolved via artifact registry) for active UAT sessions
49
- find .workflow/scratch -name "uat.md" -type f 2>/dev/null | head -5
50
- ```
51
-
52
- Read each file's frontmatter (status, target) and Current Test section.
53
-
54
- **If active sessions exist AND no $ARGUMENTS:**
55
-
56
- Display inline:
57
- ```
58
- ## Active UAT Sessions
59
-
60
- | # | Target | Status | Current Test | Progress |
61
- |---|--------|--------|--------------|----------|
62
- | 1 | 04-comments | testing | 3. Reply to Comment | 2/6 |
63
- | 2 | quick-fix-nav | testing | 1. Nav Links | 0/4 |
64
-
65
- Reply with a number to resume, or provide a phase/task to start new.
66
- ```
67
-
68
- Wait for user response.
69
- - Number -> resume that session (go to Step 9: Resume From File)
70
- - Phase/task ID -> new session (go to Step 4: Find Testables)
71
-
72
- **If active sessions exist AND $ARGUMENTS provided:**
73
- Check if session exists for that target. If yes, offer resume or restart.
74
-
75
- **If no active sessions AND no $ARGUMENTS:**
76
- Prompt: "No active UAT sessions. Provide a phase number or scratch task ID to start testing."
77
-
78
- **If no active sessions AND $ARGUMENTS:**
79
- Continue to Step 3 or Step 4.
80
-
81
- ---
82
-
83
- ### Step 3: Run Smoke Tests (if --smoke)
84
-
85
- Skip if --smoke not set.
86
-
87
- Inject basic sanity tests BEFORE UAT scenarios:
88
-
89
- | Smoke Test | Check | Method |
90
- |------------|-------|--------|
91
- | App starts | Process runs without crash | `bash: start command, check exit code` |
92
- | Routes respond | Key endpoints return non-error | `bash: curl/fetch main routes` |
93
- | Build clean | No build errors | `bash: build command succeeds` |
94
- | Dependencies | No missing deps | `bash: install check` |
95
-
96
- Record smoke results in uat.md under `## Smoke Tests` section.
97
- If any smoke test fails: abort UAT, report as blocker, suggest Skill({ skill: "quality-debug" }). (E003)
98
-
99
- ---
100
-
101
- ### Step 4: Load Verification Context
102
-
103
- Read from target directory:
104
- - verification.json -- must_haves with truth/artifact/wiring status
105
- - validation.json -- requirement-to-test mapping
106
- - index.json -- success_criteria
107
- - plan.json -- task overview
108
- - All `.summaries/TASK-*.md` -- execution results
109
-
110
- ```bash
111
- ls "$OUTPUT_DIR/.summaries/"*summary*.md 2>/dev/null
112
- ```
113
-
114
- Build testable list: user-observable outcomes from success_criteria + must_haves + task accomplishments.
115
-
116
- ---
117
-
118
- ### Step 5: Design Test Scenarios
119
-
120
- For each testable item, create a scenario:
121
- - **id**: T-001, T-002, ...
122
- - **name**: Brief test name
123
- - **category**: "e2e" | "integration" | "unit"
124
- - **expected**: Specific observable behavior (what user should see)
125
- - **requirement_ref**: Which success criterion this covers
126
-
127
- Write test-plan.json to `.tests/`:
128
- ```json
129
- {
130
- "target": "{phase or scratch ID}",
131
- "generated_at": "{ISO timestamp}",
132
- "tests": [...],
133
- "coverage": {
134
- "requirements_mapped": ["SC-001"],
135
- "requirements_unmapped": ["SC-003"]
136
- }
137
- }
138
- ```
139
-
140
- ```bash
141
- mkdir -p "$OUTPUT_DIR/.tests"
142
- ```
143
-
144
- Focus on USER-OBSERVABLE outcomes, not implementation details.
145
- Skip internal/non-observable items (refactors, type changes).
146
-
147
- ---
148
-
149
- ### Step 6: Create UAT File
150
-
151
- **Archive previous UAT artifacts** before writing: if `$OUTPUT_DIR/uat.md` exists, move it to `$OUTPUT_DIR/.history/uat-{YYYY-MM-DDTHH-mm-ss}.md`.
152
-
153
- Build test list from test-plan.json. Create file at `$OUTPUT_DIR/uat.md`:
154
-
155
- ```markdown
156
- ---
157
- status: testing
158
- target: {phase slug or scratch ID}
159
- source: [list of summary files]
160
- started: {ISO timestamp}
161
- updated: {ISO timestamp}
162
- ---
163
-
164
- ## Current Test
165
- <!-- OVERWRITE each test - shows where we are -->
166
-
167
- number: 1
168
- name: {first test name}
169
- expected: |
170
- {what user should observe}
171
- awaiting: user response
172
-
173
- ## Smoke Tests
174
- {results if ran, otherwise omitted}
175
-
176
- ## Tests
177
-
178
- ### 1. {Test Name}
179
- expected: {observable behavior}
180
- result: [pending]
181
-
182
- ### 2. {Test Name}
183
- expected: {observable behavior}
184
- result: [pending]
185
-
186
- ...
187
-
188
- ## Summary
189
-
190
- total: {N}
191
- passed: 0
192
- issues: 0
193
- pending: {N}
194
- skipped: 0
195
-
196
- ## Gaps
197
-
198
- [none yet]
199
- ```
200
-
201
- Proceed to Step 7.
202
-
203
- ---
204
-
205
- ### Step 7: Present Test
206
-
207
- Present current test to user (one at a time):
208
-
209
- Read Current Test section from uat.md.
210
-
211
- Display:
212
-
213
- ```
214
- ------------------------------------------------------------
215
- TEST {number}/{total}: {name}
216
- ------------------------------------------------------------
217
-
218
- Expected behavior:
219
- {expected}
220
-
221
- ------------------------------------------------------------
222
- > Type "pass" or describe what's wrong
223
- ------------------------------------------------------------
224
- ```
225
-
226
- Wait for user response (plain text, no AskUserQuestion).
227
-
228
- ---
229
-
230
- ### Step 8: Process Response
231
-
232
- **If response indicates pass:**
233
- - Empty response, "yes", "y", "ok", "pass", "next"
234
-
235
- **If response indicates skip:**
236
- - "skip", "can't test", "n/a"
237
-
238
- **If response is anything else (issue):**
239
- - Treat as issue description
240
- - Infer severity from description (see Severity Inference section)
241
-
242
- For issues, update Tests section:
243
- ```yaml
244
- ### {N}. {name}
245
- expected: {expected}
246
- result: issue
247
- reported: "{verbatim user response}"
248
- severity: {inferred}
249
- ```
250
-
251
- Append to Gaps section:
252
- ```yaml
253
- - test: {N}
254
- truth: "{expected behavior}"
255
- status: failed
256
- reason: "User reported: {verbatim}"
257
- severity: {inferred}
258
- requirement_ref: {if mapped}
259
- ```
260
-
261
- **Auto-create Issue from UAT Gap:**
262
-
263
- When result is "issue", create an issue in `.workflow/issues/issues.jsonl`:
264
- - **ID**: `ISS-{YYYYMMDD}-{NNN}` (auto-increment per day from existing entries)
265
- - **Fields**: `id`, `title` ("UAT: {test.name} - {response}" truncated 100 chars), `status: "registered"`, `priority` (from severity), `severity`, `source: "uat"`, `phase_ref` (if phase-scoped), `gap_ref: test.id`, `description` (expected vs reported), `fix_direction: ""`, `context` (with requirement_ref), `tags: ["uat"]`, `affected_components: []`, `feedback: []`, `issue_history: []`, timestamps, `resolved_at: null`, `resolution: null`
266
- - Back-reference: set `gap.issue_id = issue_id` in the gap YAML entry
267
-
268
- **Batched writes for efficiency:**
269
- Keep results in memory. Write to file only when:
270
- 1. **Issue found** -- Preserve the problem immediately
271
- 2. **Session complete** -- Final write before artifacts
272
- 3. **Checkpoint** -- Every 5 passed tests (safety net for context reset)
273
-
274
- If more tests remain -> Update Current Test, go to Step 7
275
- If no more tests -> Go to Step 10
276
-
277
- ---
278
-
279
- ### Step 9: Resume From File
280
-
281
- Read the full uat.md file.
282
- Find first test with `result: [pending]`.
283
-
284
- Announce progress and continue from pending test.
285
- Update Current Test section with the pending test.
286
- Proceed to Step 7.
287
-
288
- ---
289
-
290
- ### Step 10: Complete Session
291
-
292
- Update uat.md frontmatter: status -> "complete", updated timestamp.
293
-
294
- **Archive previous test result artifacts** before writing: if `test-results.json` or `coverage-report.json` exist in `$OUTPUT_DIR/.tests/`, move them to `$OUTPUT_DIR/.history/{name}-{YYYY-MM-DDTHH-mm-ss}.{ext}`.
295
-
296
- Write `.tests/test-results.json`:
297
- ```json
298
- {
299
- "target": "{phase or scratch ID}",
300
- "completed_at": "{ISO timestamp}",
301
- "results": [
302
- { "id": "T-001", "name": "...", "status": "pass|issue|skipped", "details": "..." }
303
- ],
304
- "summary": { "total": N, "passed": N, "issues": N, "skipped": N }
305
- }
306
- ```
307
-
308
- Write `.tests/coverage-report.json`:
309
- ```json
310
- {
311
- "target": "{phase or scratch ID}",
312
- "generated_at": "{ISO timestamp}",
313
- "requirements_covered": ["SC-001"],
314
- "requirements_uncovered": ["SC-003"],
315
- "coverage_percentage": 66.7
316
- }
317
- ```
318
-
319
- Update index.json with uat results:
320
- ```json
321
- {
322
- "uat": {
323
- "status": "passed|gaps_found",
324
- "test_count": N,
325
- "passed": N,
326
- "gaps": [...]
327
- }
328
- }
329
- ```
330
-
331
- If issues == 0 -> go to Step 13 (report, all pass).
332
- If issues > 0 -> go to Step 11.
333
-
334
- ---
335
-
336
- ### Step 11: Auto-Diagnose
337
-
338
- **Spawn parallel debug agents for gap clusters.**
339
-
340
- 1. **Cluster related gaps**: Group issues by affected component/area.
341
- - Same file/module -> one cluster
342
- - Same feature/flow -> one cluster
343
- - Unrelated -> separate clusters
344
-
345
- 2. **Spawn one debug agent per cluster** (parallel):
346
-
347
- For each cluster, spawn a general-purpose agent with pre-filled symptoms (test ID, expected, reported, severity). Agent investigates source files and returns per gap: `root_cause`, `fix_direction`, `affected_files`, `evidence` (file:line refs). Mode: `symptoms_prefilled`, goal: `find_root_cause`. `run_in_background: false`.
348
-
349
- 3. **Collect results** from all agents.
350
-
351
- **Pass issue_ids to debug context:** gather `issue_id` from each gap in the cluster and include in agent prompt so debug agents can reference/update corresponding issues.
352
-
353
- 4. **Update uat.md** gaps with diagnosis:
354
- ```yaml
355
- - test: {N}
356
- truth: "..."
357
- status: failed
358
- reason: "..."
359
- severity: {inferred}
360
- root_cause: "{diagnosed cause}"
361
- fix_direction: "{suggested approach}"
362
- affected_files: ["{file1}", "{file2}"]
363
- ```
364
-
365
- Proceed to Step 12.
366
-
367
- ---
368
-
369
- ### Step 12: Gap Closure Decision
370
-
371
- If AUTO_FIX is set:
372
- - Skip user prompt, go directly to gap-fix loop.
373
-
374
- If AUTO_FIX is not set:
375
- - Present diagnosis summary and offer options:
376
-
377
- ```
378
- ### Diagnosis Complete
379
-
380
- | Gap | Severity | Root Cause | Fix Direction |
381
- |-----|----------|------------|---------------|
382
- | T-3 | major | Missing null check | Add guard clause |
383
- | T-5 | blocker | Event not cleaned | Add cleanup logic |
384
-
385
- Options:
386
- 1. Auto-fix -- Plan and execute fixes, then re-verify
387
- 2. Debug deep -- Skill({ skill: "quality-debug" }) per issue
388
- 3. Plan fixes -- Skill({ skill: "maestro-plan", args: "{phase} --gaps" })
389
- 4. Manual fix -- Address issues yourself
390
- ```
391
-
392
- | Choice | Action |
393
- |--------|--------|
394
- | 1 / "auto-fix" | Go to gap-fix loop |
395
- | 2 / "debug" | Suggest Skill({ skill: "quality-debug" }) |
396
- | 3 / "plan" | Suggest Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) |
397
- | 4 / "manual" | Done, report results |
398
-
399
- **Gap-fix closure loop:**
400
-
401
- Execute the loop: plan --gaps -> execute -> re-verify.
402
-
403
- 1. Run Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) -- generates fix tasks from gaps
404
- 2. Run Skill({ skill: "maestro-execute", args: "{phase}" }) -- executes fix tasks
405
- 3. Run Skill({ skill: "maestro-execute", args: "{phase}" }) -- re-verify via verification gate
406
-
407
- If re-verify passes: update uat.md gaps as resolved, report success.
408
- If re-verify still has gaps: report remaining gaps, suggest manual intervention.
409
-
410
- **Issue lifecycle updates during gap-fix loop:**
411
- - Before plan --gaps: transition issues `registered` -> `planning`
412
- - Before execute: transition `planning` -> `executing`
413
- - After re-verify: resolved gaps -> `completed` (with resolution "auto-fixed via gap-fix loop"), unresolved -> `failed`
414
-
415
- **Loop limit**: Maximum 2 iterations to prevent infinite loops.
416
-
417
- ---
418
-
419
- ### Step 12.5: UAT Confidence Scoring
420
-
421
- Dimensions (4): scenario_coverage, diagnostic_depth, observation_quality, closure_completeness. Factors (weights): requirements_mapped(.30), observation_specificity(.25), user_validation(.20), diagnostic_depth(.15), consistency(.10). Score at: init (Step 5), per user response (Step 8), after gap-fix loop (Step 12).
422
-
423
- Quality mechanisms: Pressure Pass — >80% pass → ask user to try edge case. Devil's Advocate — >70% first-try pass → challenge scenario difficulty. Stall Detection — 2 gap-fix iterations without improvement → stop.
424
-
425
- Readiness Gate (blocks Step 13): scenario_coverage < 40% | blocker gap without diagnosis | no pressure pass (if >80%) | unresolved gaps without acknowledgment. Append confidence summary to uat.md.
426
-
427
- ---
428
-
429
- ### Step 13: Report
430
-
431
- ```
432
- === UAT RESULTS ===
433
- Target: {target}
434
-
435
- Smoke Tests: {smoke_count} run, {smoke_pass} passed (if ran)
436
- UAT Tests: {total} total
437
- Passed: {passed}
438
- Issues: {issues} ({blocker_count} blockers, {major_count} major)
439
- Skipped: {skipped}
440
-
441
- Diagnosis: {diagnosed_count}/{issues} gaps diagnosed
442
- Auto-fix: {fixed_count} gaps resolved (if ran)
443
-
444
- Files:
445
- {target_dir}/uat.md
446
- {target_dir}/.tests/test-results.json
447
- {target_dir}/.tests/coverage-report.json
448
-
449
- Next steps:
450
- {suggested_next_command}
451
- ```
452
-
453
- **Next step routing:**
454
-
455
- | Result | Suggestion |
456
- |--------|------------|
457
- | All passed, no gaps | Skill({ skill: "maestro-milestone-audit" }) |
458
- | Gaps auto-fixed | Skill({ skill: "maestro-milestone-audit" }) |
459
- | Gaps remain, diagnosed | Skill({ skill: "quality-debug" }) or Skill({ skill: "maestro-plan", args: "--gaps" }) |
460
- | Low coverage | Skill({ skill: "quality-auto-test", args: "{phase}" }) to generate missing tests |
461
-
462
- ---
463
-
464
- ## Severity Inference
465
-
466
- Infer severity from user's natural language:
467
-
468
- | User says | Infer |
469
- |-----------|-------|
470
- | "crashes", "error", "exception", "fails completely", "can't use" | blocker |
471
- | "doesn't work", "nothing happens", "wrong behavior", "broken" | major |
472
- | "works but...", "slow", "weird", "minor issue", "inconsistent" | minor |
473
- | "color", "spacing", "alignment", "looks off", "typo" | cosmetic |
474
-
475
- Default to **major** if unclear. Never ask "how severe is this?" -- just infer and move on.
1
+ # Test Workflow (UAT)
2
+
3
+ Conversational UAT testing with persistent state, auto-diagnosis, and gap-fix closure loop.
4
+
5
+ **Core**: Show expected behavior, ask if reality matches. One test at a time.
6
+ - "yes" / "y" / "next" / empty / "pass" pass
7
+ - "skip" / "can't test" / "n/a" → skipped
8
+ - Anything else logged as issue, severity auto-inferred
9
+
10
+ NEVER ask "how severe is this?"
11
+
12
+ ---
13
+
14
+ ### Step 1: Resolve Target
15
+
16
+ | Input | Action |
17
+ |-------|--------|
18
+ | Phase number (e.g., "3") | `TARGET_TYPE=phase`, resolve from `state.json` artifacts |
19
+ | Scratch task ID | `TARGET_TYPE=scratch`, `SCRATCH_DIR=.workflow/scratch/{id}/` |
20
+ | Nothing | Check active UAT sessions (Step 2), else prompt user |
21
+
22
+ **Flags:** `--smoke` (cold-start smoke tests before UAT), `--auto-fix` (auto gap-fix loop on failures)
23
+
24
+ Validate target exists and has verification.json (E002).
25
+
26
+ ---
27
+
28
+ ### Step 2: Check Active Sessions
29
+
30
+ ```bash
31
+ # Check scratch dirs (resolved via artifact registry) for active UAT sessions
32
+ find .workflow/scratch -name "uat.md" -type f 2>/dev/null | head -5
33
+ ```
34
+
35
+ Read each file's frontmatter (status, target) and Current Test section.
36
+
37
+ **If active sessions exist AND no $ARGUMENTS:**
38
+
39
+ Display inline:
40
+ ```
41
+ ## Active UAT Sessions
42
+
43
+ | # | Target | Status | Current Test | Progress |
44
+ |---|--------|--------|--------------|----------|
45
+ | 1 | 04-comments | testing | 3. Reply to Comment | 2/6 |
46
+ | 2 | quick-fix-nav | testing | 1. Nav Links | 0/4 |
47
+
48
+ Reply with a number to resume, or provide a phase/task to start new.
49
+ ```
50
+
51
+ Wait for user response.
52
+ - Number -> resume that session (go to Step 9: Resume From File)
53
+ - Phase/task ID -> new session (go to Step 4: Find Testables)
54
+
55
+ **If active sessions exist AND $ARGUMENTS provided:**
56
+ Check if session exists for that target. If yes, offer resume or restart.
57
+
58
+ **If no active sessions AND no $ARGUMENTS:**
59
+ Prompt: "No active UAT sessions. Provide a phase number or scratch task ID to start testing."
60
+
61
+ **If no active sessions AND $ARGUMENTS:**
62
+ Continue to Step 3 or Step 4.
63
+
64
+ ---
65
+
66
+ ### Step 3: Run Smoke Tests (if --smoke)
67
+
68
+ Skip if --smoke not set.
69
+
70
+ Inject basic sanity tests BEFORE UAT scenarios:
71
+
72
+ | Smoke Test | Check | Method |
73
+ |------------|-------|--------|
74
+ | App starts | Process runs without crash | `bash: start command, check exit code` |
75
+ | Routes respond | Key endpoints return non-error | `bash: curl/fetch main routes` |
76
+ | Build clean | No build errors | `bash: build command succeeds` |
77
+ | Dependencies | No missing deps | `bash: install check` |
78
+
79
+ Record smoke results in uat.md under `## Smoke Tests` section.
80
+ If any smoke test fails: abort UAT, report as blocker, suggest Skill({ skill: "quality-debug" }). (E003)
81
+
82
+ ---
83
+
84
+ ### Step 4: Load Verification Context
85
+
86
+ Read from target directory: `verification.json`, `validation.json`, `index.json`, `plan.json`, `.summaries/TASK-*.md`.
87
+
88
+ Build testable list from success_criteria + must_haves + task accomplishments (user-observable outcomes only).
89
+
90
+ ---
91
+
92
+ ### Step 5: Design Test Scenarios
93
+
94
+ For each testable item, create a scenario:
95
+ - **id**: T-001, T-002, ...
96
+ - **name**: Brief test name
97
+ - **category**: "e2e" | "integration" | "unit"
98
+ - **expected**: Specific observable behavior (what user should see)
99
+ - **requirement_ref**: Which success criterion this covers
100
+
101
+ Write test-plan.json to `.tests/`:
102
+ ```json
103
+ {
104
+ "target": "{phase or scratch ID}",
105
+ "generated_at": "{ISO timestamp}",
106
+ "tests": [...],
107
+ "coverage": {
108
+ "requirements_mapped": ["SC-001"],
109
+ "requirements_unmapped": ["SC-003"]
110
+ }
111
+ }
112
+ ```
113
+
114
+ ```bash
115
+ mkdir -p "$OUTPUT_DIR/.tests"
116
+ ```
117
+
118
+ Skip internal/non-observable items (refactors, type changes).
119
+
120
+ ---
121
+
122
+ ### Step 6: Create UAT File
123
+
124
+ Archive existing `uat.md` `$OUTPUT_DIR/.history/uat-{YYYY-MM-DDTHH-mm-ss}.md`.
125
+
126
+ Create `$OUTPUT_DIR/uat.md`:
127
+
128
+ ```markdown
129
+ ---
130
+ status: testing
131
+ target: {phase slug or scratch ID}
132
+ source: [list of summary files]
133
+ started: {ISO timestamp}
134
+ updated: {ISO timestamp}
135
+ ---
136
+
137
+ ## Current Test
138
+ <!-- OVERWRITE each test - shows where we are -->
139
+
140
+ number: 1
141
+ name: {first test name}
142
+ expected: |
143
+ {what user should observe}
144
+ awaiting: user response
145
+
146
+ ## Smoke Tests
147
+ {results if ran, otherwise omitted}
148
+
149
+ ## Tests
150
+
151
+ ### 1. {Test Name}
152
+ expected: {observable behavior}
153
+ result: [pending]
154
+
155
+ ### 2. {Test Name}
156
+ expected: {observable behavior}
157
+ result: [pending]
158
+
159
+ ...
160
+
161
+ ## Summary
162
+
163
+ total: {N}
164
+ passed: 0
165
+ issues: 0
166
+ pending: {N}
167
+ skipped: 0
168
+
169
+ ## Gaps
170
+
171
+ [none yet]
172
+ ```
173
+
174
+ Step 7.
175
+
176
+ ---
177
+
178
+ ### Step 7: Present Test
179
+
180
+ Display:
181
+
182
+ ```
183
+ ------------------------------------------------------------
184
+ TEST {number}/{total}: {name}
185
+ ------------------------------------------------------------
186
+
187
+ Expected behavior:
188
+ {expected}
189
+
190
+ ------------------------------------------------------------
191
+ > Type "pass" or describe what's wrong
192
+ ------------------------------------------------------------
193
+ ```
194
+
195
+ Wait for user response (plain text).
196
+
197
+ ---
198
+
199
+ ### Step 8: Process Response
200
+
201
+ | Response | Action |
202
+ |----------|--------|
203
+ | empty / "yes" / "y" / "ok" / "pass" / "next" | Pass |
204
+ | "skip" / "can't test" / "n/a" | Skipped |
205
+ | Anything else | Issue (severity auto-inferred) |
206
+
207
+ For issues, update Tests section:
208
+ ```yaml
209
+ ### {N}. {name}
210
+ expected: {expected}
211
+ result: issue
212
+ reported: "{verbatim user response}"
213
+ severity: {inferred}
214
+ ```
215
+
216
+ Append to Gaps section:
217
+ ```yaml
218
+ - test: {N}
219
+ truth: "{expected behavior}"
220
+ status: failed
221
+ reason: "User reported: {verbatim}"
222
+ severity: {inferred}
223
+ requirement_ref: {if mapped}
224
+ ```
225
+
226
+ **Auto-create Issue from UAT Gap:**
227
+
228
+ Append to `.workflow/issues/issues.jsonl`: `ISS-{YYYYMMDD}-{NNN}`, title "UAT: {test.name} - {response}" (max 100 chars), `source: "uat"`, severity/priority from inference. Back-reference: set `gap.issue_id` in gap YAML.
229
+
230
+ **Write triggers:** 1) Issue found 2) Session complete 3) Every 5 passed tests (checkpoint).
231
+
232
+ More tests Step 7. No more → Step 10.
233
+
234
+ ---
235
+
236
+ ### Step 9: Resume From File
237
+
238
+ Read uat.md find first `result: [pending]` → update Current Test → Step 7.
239
+
240
+ ---
241
+
242
+ ### Step 10: Complete Session
243
+
244
+ Update uat.md: `status: complete`. Archive existing test artifacts → `.history/`.
245
+
246
+ Write `.tests/test-results.json`:
247
+ ```json
248
+ {
249
+ "target": "{phase or scratch ID}",
250
+ "completed_at": "{ISO timestamp}",
251
+ "results": [
252
+ { "id": "T-001", "name": "...", "status": "pass|issue|skipped", "details": "..." }
253
+ ],
254
+ "summary": { "total": N, "passed": N, "issues": N, "skipped": N }
255
+ }
256
+ ```
257
+
258
+ Write `.tests/coverage-report.json`:
259
+ ```json
260
+ {
261
+ "target": "{phase or scratch ID}",
262
+ "generated_at": "{ISO timestamp}",
263
+ "requirements_covered": ["SC-001"],
264
+ "requirements_uncovered": ["SC-003"],
265
+ "coverage_percentage": 66.7
266
+ }
267
+ ```
268
+
269
+ Update index.json with uat results (`status`, `test_count`, `passed`, `gaps`).
270
+
271
+ issues == 0 → Step 13. issues > 0 Step 11.
272
+
273
+ ---
274
+
275
+ ### Step 11: Auto-Diagnose
276
+
277
+ 1. **Cluster gaps** by component/area (same file/module → one cluster, same flow → one cluster)
278
+ 2. **Spawn one debug agent per cluster** (parallel, `run_in_background: false`): pre-filled symptoms, `goal: find_root_cause`. Include `issue_id` refs.
279
+ 3. **Collect results**, update uat.md gaps:
280
+ ```yaml
281
+ - test: {N}
282
+ truth: "..."
283
+ status: failed
284
+ reason: "..."
285
+ severity: {inferred}
286
+ root_cause: "{diagnosed cause}"
287
+ fix_direction: "{suggested approach}"
288
+ affected_files: ["{file1}", "{file2}"]
289
+ ```
290
+
291
+ ---
292
+
293
+ ### Step 12: Gap Closure Decision
294
+
295
+ `AUTO_FIX` set → skip prompt, go to gap-fix loop. Otherwise present:
296
+
297
+ ```
298
+ ### Diagnosis Complete
299
+
300
+ | Gap | Severity | Root Cause | Fix Direction |
301
+ |-----|----------|------------|---------------|
302
+ | T-3 | major | Missing null check | Add guard clause |
303
+ | T-5 | blocker | Event not cleaned | Add cleanup logic |
304
+
305
+ Options:
306
+ 1. Auto-fix -- Plan and execute fixes, then re-verify
307
+ 2. Debug deep -- Skill({ skill: "quality-debug" }) per issue
308
+ 3. Plan fixes -- Skill({ skill: "maestro-plan", args: "{phase} --gaps" })
309
+ 4. Manual fix -- Address issues yourself
310
+ ```
311
+
312
+ | Choice | Action |
313
+ |--------|--------|
314
+ | 1 / "auto-fix" | Go to gap-fix loop |
315
+ | 2 / "debug" | Suggest Skill({ skill: "quality-debug" }) |
316
+ | 3 / "plan" | Suggest Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) |
317
+ | 4 / "manual" | Done, report results |
318
+
319
+ **Gap-fix closure loop** (max 2 iterations):
320
+
321
+ 1. `maestro-plan {phase} --gaps` → fix tasks
322
+ 2. `maestro-execute {phase}` → execute fixes
323
+ 3. `maestro-execute {phase}` → re-verify
324
+
325
+ Issue lifecycle: `registered` → `planning` → `executing` → `completed` | `failed`.
326
+
327
+ Pass → update uat.md gaps as resolved. Still gaps → report remaining, suggest manual intervention.
328
+
329
+ ---
330
+
331
+ ### Step 12.5: UAT Confidence Scoring
332
+
333
+ Dimensions (4): scenario_coverage, diagnostic_depth, observation_quality, closure_completeness. Factors (weights): requirements_mapped(.30), observation_specificity(.25), user_validation(.20), diagnostic_depth(.15), consistency(.10). Score at: init (Step 5), per user response (Step 8), after gap-fix loop (Step 12).
334
+
335
+ Quality mechanisms: Pressure Pass — >80% pass → ask user to try edge case. Devil's Advocate — >70% first-try pass → challenge scenario difficulty. Stall Detection — 2 gap-fix iterations without improvement → stop.
336
+
337
+ Readiness Gate (blocks Step 13): scenario_coverage < 40% | blocker gap without diagnosis | no pressure pass (if >80%) | unresolved gaps without acknowledgment. Append confidence summary to uat.md.
338
+
339
+ ---
340
+
341
+ ### Step 13: Report
342
+
343
+ ```
344
+ === UAT RESULTS ===
345
+ Target: {target}
346
+
347
+ Smoke Tests: {smoke_count} run, {smoke_pass} passed (if ran)
348
+ UAT Tests: {total} total
349
+ Passed: {passed}
350
+ Issues: {issues} ({blocker_count} blockers, {major_count} major)
351
+ Skipped: {skipped}
352
+
353
+ Diagnosis: {diagnosed_count}/{issues} gaps diagnosed
354
+ Auto-fix: {fixed_count} gaps resolved (if ran)
355
+
356
+ Files:
357
+ {target_dir}/uat.md
358
+ {target_dir}/.tests/test-results.json
359
+ {target_dir}/.tests/coverage-report.json
360
+
361
+ Next steps:
362
+ {suggested_next_command}
363
+ ```
364
+
365
+ **Next step routing:**
366
+
367
+ | Result | Suggestion |
368
+ |--------|------------|
369
+ | All passed, no gaps | Skill({ skill: "maestro-milestone-audit" }) |
370
+ | Gaps auto-fixed | Skill({ skill: "maestro-milestone-audit" }) |
371
+ | Gaps remain, diagnosed | Skill({ skill: "quality-debug" }) or Skill({ skill: "maestro-plan", args: "--gaps" }) |
372
+ | Low coverage | Skill({ skill: "quality-auto-test", args: "{phase}" }) to generate missing tests |
373
+
374
+ ---
375
+
376
+ ## Severity Inference
377
+
378
+ | User says | Infer |
379
+ |-----------|-------|
380
+ | "crashes", "error", "exception", "fails completely", "can't use" | blocker |
381
+ | "doesn't work", "nothing happens", "wrong behavior", "broken" | major |
382
+ | "works but...", "slow", "weird", "minor issue", "inconsistent" | minor |
383
+ | "color", "spacing", "alignment", "looks off", "typo" | cosmetic |
384
+
385
+ Default: **major**. NEVER ask severity — infer and move on.