maestro-flow 0.5.2 → 0.5.3

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 (485) 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/maestro/SKILL.md +6 -6
  5. package/.agents/skills/maestro-help/SKILL.md +1 -1
  6. package/.agents/skills/maestro-help/index/catalog.json +3 -2
  7. package/.agents/skills/maestro-ralph/SKILL.md +11 -10
  8. package/.agents/skills/maestro-ralph-beta/SKILL.md +11 -10
  9. package/.agents/skills/odyssey-debug/SKILL.md +475 -0
  10. package/.agents/skills/odyssey-improve/SKILL.md +507 -0
  11. package/.agents/skills/odyssey-planex/SKILL.md +603 -0
  12. package/.agents/skills/odyssey-review-test-fix/SKILL.md +429 -0
  13. package/.agents/skills/odyssey-ui/SKILL.md +464 -0
  14. package/.agy/skills/insight-challenge/SKILL.md +230 -0
  15. package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  16. package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
  17. package/.agy/skills/maestro/SKILL.md +6 -6
  18. package/.agy/skills/maestro-help/SKILL.md +1 -1
  19. package/.agy/skills/maestro-help/index/catalog.json +3 -2
  20. package/.agy/skills/maestro-ralph/SKILL.md +11 -10
  21. package/.agy/skills/maestro-ralph-beta/SKILL.md +11 -10
  22. package/.agy/skills/odyssey-debug/SKILL.md +475 -0
  23. package/.agy/skills/odyssey-improve/SKILL.md +507 -0
  24. package/.agy/skills/odyssey-planex/SKILL.md +603 -0
  25. package/.agy/skills/odyssey-review-test-fix/SKILL.md +429 -0
  26. package/.agy/skills/odyssey-ui/SKILL.md +464 -0
  27. package/.claude/commands/maestro-ralph-beta.md +11 -10
  28. package/.claude/commands/maestro-ralph.md +11 -10
  29. package/.claude/commands/maestro.md +6 -6
  30. package/.claude/commands/odyssey-debug.md +473 -0
  31. package/.claude/commands/odyssey-improve.md +505 -0
  32. package/.claude/commands/odyssey-planex.md +601 -0
  33. package/.claude/commands/odyssey-review-test-fix.md +427 -0
  34. package/.claude/commands/odyssey-ui.md +462 -0
  35. package/.claude/skills/insight-challenge/SKILL.md +226 -0
  36. package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
  37. package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
  38. package/.claude/skills/maestro-help/SKILL.md +1 -1
  39. package/.claude/skills/maestro-help/index/catalog.json +3 -2
  40. package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
  41. package/.codex/skills/maestro-companion/SKILL.md +1 -1
  42. package/.codex/skills/maestro-help/SKILL.md +1 -1
  43. package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
  44. package/.codex/skills/maestro-next/SKILL.md +1 -1
  45. package/.codex/skills/maestro-ralph-beta/SKILL.md +1 -1
  46. package/.codex/skills/odyssey-debug/SKILL.md +456 -0
  47. package/.codex/skills/odyssey-improve/SKILL.md +466 -0
  48. package/.codex/skills/odyssey-planex/SKILL.md +409 -0
  49. package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
  50. package/.codex/skills/odyssey-ui/SKILL.md +411 -0
  51. package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
  52. package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
  53. package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
  54. package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
  55. package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
  56. package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
  57. package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
  58. package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
  59. package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
  60. package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
  61. package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
  62. package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
  63. package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
  64. package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
  65. package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
  66. package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
  67. package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
  68. package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
  69. package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
  70. package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
  71. package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
  72. package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
  73. package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
  74. package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
  75. package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
  76. package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
  77. package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
  78. package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
  79. package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
  80. package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
  81. package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
  82. package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
  83. package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
  84. package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
  85. package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
  86. package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
  87. package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
  88. package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
  89. package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
  90. package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
  91. package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
  92. package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
  93. package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
  94. package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
  95. package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
  96. package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
  97. package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
  98. package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
  99. package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
  100. package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
  101. package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
  102. package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
  103. package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
  104. package/dashboard/dist/index.html +2 -2
  105. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
  106. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  107. package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
  108. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
  109. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  110. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
  111. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  112. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
  113. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
  114. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  115. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
  116. package/dashboard/dist-server/src/types/index.d.ts +9 -0
  117. package/dist/src/cli.js +3 -0
  118. package/dist/src/cli.js.map +1 -1
  119. package/dist/src/commands/delegate.d.ts.map +1 -1
  120. package/dist/src/commands/delegate.js +50 -8
  121. package/dist/src/commands/delegate.js.map +1 -1
  122. package/dist/src/commands/domain.d.ts +9 -0
  123. package/dist/src/commands/domain.d.ts.map +1 -0
  124. package/dist/src/commands/domain.js +445 -0
  125. package/dist/src/commands/domain.js.map +1 -0
  126. package/dist/src/commands/hooks.d.ts +10 -0
  127. package/dist/src/commands/hooks.d.ts.map +1 -1
  128. package/dist/src/commands/hooks.js +132 -22
  129. package/dist/src/commands/hooks.js.map +1 -1
  130. package/dist/src/commands/install.d.ts.map +1 -1
  131. package/dist/src/commands/install.js +82 -204
  132. package/dist/src/commands/install.js.map +1 -1
  133. package/dist/src/commands/kg.d.ts.map +1 -1
  134. package/dist/src/commands/kg.js +183 -90
  135. package/dist/src/commands/kg.js.map +1 -1
  136. package/dist/src/commands/search.d.ts +15 -8
  137. package/dist/src/commands/search.d.ts.map +1 -1
  138. package/dist/src/commands/search.js +205 -59
  139. package/dist/src/commands/search.js.map +1 -1
  140. package/dist/src/commands/spec.d.ts.map +1 -1
  141. package/dist/src/commands/spec.js +9 -1
  142. package/dist/src/commands/spec.js.map +1 -1
  143. package/dist/src/commands/update.d.ts.map +1 -1
  144. package/dist/src/commands/update.js +0 -7
  145. package/dist/src/commands/update.js.map +1 -1
  146. package/dist/src/commands/wiki.d.ts.map +1 -1
  147. package/dist/src/commands/wiki.js +8 -1
  148. package/dist/src/commands/wiki.js.map +1 -1
  149. package/dist/src/commands/workspace.d.ts +12 -0
  150. package/dist/src/commands/workspace.d.ts.map +1 -0
  151. package/dist/src/commands/workspace.js +230 -0
  152. package/dist/src/commands/workspace.js.map +1 -0
  153. package/dist/src/config/cli-tools-config.d.ts +5 -0
  154. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  155. package/dist/src/config/cli-tools-config.js +31 -0
  156. package/dist/src/config/cli-tools-config.js.map +1 -1
  157. package/dist/src/config/index.d.ts +9 -1
  158. package/dist/src/config/index.d.ts.map +1 -1
  159. package/dist/src/config/index.js +35 -1
  160. package/dist/src/config/index.js.map +1 -1
  161. package/dist/src/core/install-executor.d.ts +31 -0
  162. package/dist/src/core/install-executor.d.ts.map +1 -0
  163. package/dist/src/core/install-executor.js +231 -0
  164. package/dist/src/core/install-executor.js.map +1 -0
  165. package/dist/src/core/install-profile.d.ts +103 -0
  166. package/dist/src/core/install-profile.d.ts.map +1 -0
  167. package/dist/src/core/install-profile.js +225 -0
  168. package/dist/src/core/install-profile.js.map +1 -0
  169. package/dist/src/graph/kg/credibility.d.ts +37 -0
  170. package/dist/src/graph/kg/credibility.d.ts.map +1 -0
  171. package/dist/src/graph/kg/credibility.js +141 -0
  172. package/dist/src/graph/kg/credibility.js.map +1 -0
  173. package/dist/src/graph/kg/db/connection.d.ts +28 -0
  174. package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
  175. package/dist/src/graph/kg/db/connection.js +142 -0
  176. package/dist/src/graph/kg/db/connection.js.map +1 -0
  177. package/dist/src/graph/kg/db/index.d.ts +5 -0
  178. package/dist/src/graph/kg/db/index.d.ts.map +1 -0
  179. package/dist/src/graph/kg/db/index.js +6 -0
  180. package/dist/src/graph/kg/db/index.js.map +1 -0
  181. package/dist/src/graph/kg/db/migrations.d.ts +8 -0
  182. package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
  183. package/dist/src/graph/kg/db/migrations.js +88 -0
  184. package/dist/src/graph/kg/db/migrations.js.map +1 -0
  185. package/dist/src/graph/kg/db/queries.d.ts +84 -0
  186. package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
  187. package/dist/src/graph/kg/db/queries.js +471 -0
  188. package/dist/src/graph/kg/db/queries.js.map +1 -0
  189. package/dist/src/graph/kg/db/types.d.ts +123 -0
  190. package/dist/src/graph/kg/db/types.d.ts.map +1 -0
  191. package/dist/src/graph/kg/db/types.js +75 -0
  192. package/dist/src/graph/kg/db/types.js.map +1 -0
  193. package/dist/src/graph/kg/engine.d.ts +87 -0
  194. package/dist/src/graph/kg/engine.d.ts.map +1 -0
  195. package/dist/src/graph/kg/engine.js +247 -0
  196. package/dist/src/graph/kg/engine.js.map +1 -0
  197. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +40 -0
  198. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
  199. package/dist/src/graph/kg/extraction/code/code-extractor.js +296 -0
  200. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
  201. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
  202. package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
  203. package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
  204. package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
  205. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
  206. package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
  207. package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
  208. package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
  209. package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
  210. package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
  211. package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
  212. package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
  213. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
  214. package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
  215. package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
  216. package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
  217. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
  218. package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
  219. package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
  220. package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
  221. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
  222. package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
  223. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
  224. package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
  225. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
  226. package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
  227. package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
  228. package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
  229. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
  230. package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
  231. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
  232. package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
  233. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
  234. package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
  235. package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
  236. package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
  237. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
  238. package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
  239. package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
  240. package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
  241. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
  242. package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
  243. package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
  244. package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
  245. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
  246. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
  247. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
  248. package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
  249. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
  250. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
  251. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
  252. package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
  253. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
  254. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
  255. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
  256. package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
  257. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
  258. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
  259. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
  260. package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
  261. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
  262. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
  263. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
  264. package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
  265. package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
  266. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
  267. package/dist/src/graph/kg/extraction/orchestrator.js +208 -0
  268. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
  269. package/dist/src/graph/kg/index.d.ts +29 -0
  270. package/dist/src/graph/kg/index.d.ts.map +1 -0
  271. package/dist/src/graph/kg/index.js +35 -0
  272. package/dist/src/graph/kg/index.js.map +1 -0
  273. package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
  274. package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
  275. package/dist/src/graph/kg/query/context-builder.js +184 -0
  276. package/dist/src/graph/kg/query/context-builder.js.map +1 -0
  277. package/dist/src/graph/kg/query/index.d.ts +8 -0
  278. package/dist/src/graph/kg/query/index.d.ts.map +1 -0
  279. package/dist/src/graph/kg/query/index.js +6 -0
  280. package/dist/src/graph/kg/query/index.js.map +1 -0
  281. package/dist/src/graph/kg/query/scoring.d.ts +19 -0
  282. package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
  283. package/dist/src/graph/kg/query/scoring.js +158 -0
  284. package/dist/src/graph/kg/query/scoring.js.map +1 -0
  285. package/dist/src/graph/kg/query/search.d.ts +59 -0
  286. package/dist/src/graph/kg/query/search.d.ts.map +1 -0
  287. package/dist/src/graph/kg/query/search.js +158 -0
  288. package/dist/src/graph/kg/query/search.js.map +1 -0
  289. package/dist/src/graph/kg/query/traversal.d.ts +75 -0
  290. package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
  291. package/dist/src/graph/kg/query/traversal.js +420 -0
  292. package/dist/src/graph/kg/query/traversal.js.map +1 -0
  293. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
  294. package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
  295. package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
  296. package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
  297. package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
  298. package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
  299. package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
  300. package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
  301. package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
  302. package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
  303. package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
  304. package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
  305. package/dist/src/graph/kg/resolution/index.d.ts +11 -0
  306. package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
  307. package/dist/src/graph/kg/resolution/index.js +7 -0
  308. package/dist/src/graph/kg/resolution/index.js.map +1 -0
  309. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
  310. package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
  311. package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
  312. package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
  313. package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
  314. package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
  315. package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
  316. package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
  317. package/dist/src/graph/kg/schema.sql +210 -0
  318. package/dist/src/graph/kg/surface/cli.d.ts +3 -0
  319. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
  320. package/dist/src/graph/kg/surface/cli.js +500 -0
  321. package/dist/src/graph/kg/surface/cli.js.map +1 -0
  322. package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
  323. package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
  324. package/dist/src/graph/kg/surface/hook-injector.js +172 -0
  325. package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
  326. package/dist/src/graph/kg/surface/index.d.ts +6 -0
  327. package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
  328. package/dist/src/graph/kg/surface/index.js +5 -0
  329. package/dist/src/graph/kg/surface/index.js.map +1 -0
  330. package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
  331. package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
  332. package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
  333. package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
  334. package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
  335. package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
  336. package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
  337. package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
  338. package/dist/src/graph/kg/sync/index.d.ts +5 -0
  339. package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
  340. package/dist/src/graph/kg/sync/index.js +4 -0
  341. package/dist/src/graph/kg/sync/index.js.map +1 -0
  342. package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
  343. package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
  344. package/dist/src/graph/kg/sync/watch-policy.js +90 -0
  345. package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
  346. package/dist/src/hooks/constants.d.ts +0 -2
  347. package/dist/src/hooks/constants.d.ts.map +1 -1
  348. package/dist/src/hooks/constants.js +0 -2
  349. package/dist/src/hooks/constants.js.map +1 -1
  350. package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
  351. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
  352. package/dist/src/hooks/keyword-spec-injector.js +157 -81
  353. package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
  354. package/dist/src/hooks/kg-auto-init.d.ts +13 -0
  355. package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
  356. package/dist/src/hooks/kg-auto-init.js +38 -0
  357. package/dist/src/hooks/kg-auto-init.js.map +1 -0
  358. package/dist/src/hooks/kg-context-injector.d.ts +1 -3
  359. package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
  360. package/dist/src/hooks/kg-context-injector.js +12 -17
  361. package/dist/src/hooks/kg-context-injector.js.map +1 -1
  362. package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
  363. package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
  364. package/dist/src/hooks/kg-sync-hook.js +21 -90
  365. package/dist/src/hooks/kg-sync-hook.js.map +1 -1
  366. package/dist/src/hooks/spec-analytics.d.ts +1 -0
  367. package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
  368. package/dist/src/hooks/spec-analytics.js +1 -3
  369. package/dist/src/hooks/spec-analytics.js.map +1 -1
  370. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  371. package/dist/src/hooks/spec-injector.js +65 -1
  372. package/dist/src/hooks/spec-injector.js.map +1 -1
  373. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  374. package/dist/src/i18n/locales/en.js +52 -9
  375. package/dist/src/i18n/locales/en.js.map +1 -1
  376. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  377. package/dist/src/i18n/locales/zh.js +52 -9
  378. package/dist/src/i18n/locales/zh.js.map +1 -1
  379. package/dist/src/i18n/types.d.ts +40 -4
  380. package/dist/src/i18n/types.d.ts.map +1 -1
  381. package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
  382. package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
  383. package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
  384. package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
  385. package/dist/src/tools/domain-loader.d.ts +63 -0
  386. package/dist/src/tools/domain-loader.d.ts.map +1 -0
  387. package/dist/src/tools/domain-loader.js +295 -0
  388. package/dist/src/tools/domain-loader.js.map +1 -0
  389. package/dist/src/tools/domain-matcher.d.ts +24 -0
  390. package/dist/src/tools/domain-matcher.d.ts.map +1 -0
  391. package/dist/src/tools/domain-matcher.js +117 -0
  392. package/dist/src/tools/domain-matcher.js.map +1 -0
  393. package/dist/src/tools/domain-scanner.d.ts +32 -0
  394. package/dist/src/tools/domain-scanner.d.ts.map +1 -0
  395. package/dist/src/tools/domain-scanner.js +263 -0
  396. package/dist/src/tools/domain-scanner.js.map +1 -0
  397. package/dist/src/tools/domain-schema.d.ts +18 -0
  398. package/dist/src/tools/domain-schema.d.ts.map +1 -0
  399. package/dist/src/tools/domain-schema.js +104 -0
  400. package/dist/src/tools/domain-schema.js.map +1 -0
  401. package/dist/src/tools/spec-entry-parser.d.ts +1 -0
  402. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
  403. package/dist/src/tools/spec-entry-parser.js +1 -0
  404. package/dist/src/tools/spec-entry-parser.js.map +1 -1
  405. package/dist/src/tools/spec-loader.d.ts +5 -0
  406. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  407. package/dist/src/tools/spec-loader.js +10 -2
  408. package/dist/src/tools/spec-loader.js.map +1 -1
  409. package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
  410. package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
  411. package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
  412. package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
  413. package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
  414. package/dist/src/tui/install-ui/GroupedHub.js +210 -0
  415. package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
  416. package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
  417. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
  418. package/dist/src/tui/install-ui/HooksConfig.js +83 -18
  419. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
  420. package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
  421. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  422. package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
  423. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  424. package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
  425. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  426. package/dist/src/tui/install-ui/InstallExecution.js +89 -260
  427. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  428. package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
  429. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  430. package/dist/src/tui/install-ui/InstallFlow.js +45 -267
  431. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  432. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  433. package/dist/src/tui/install-ui/InstallHub.js +2 -4
  434. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  435. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  436. package/dist/src/tui/install-ui/InstallResult.js +1 -5
  437. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  438. package/dist/src/tui/install-ui/index.d.ts +5 -1
  439. package/dist/src/tui/install-ui/index.d.ts.map +1 -1
  440. package/dist/src/tui/install-ui/index.js +1 -0
  441. package/dist/src/tui/install-ui/index.js.map +1 -1
  442. package/dist/src/tui/install-ui/types.d.ts +39 -0
  443. package/dist/src/tui/install-ui/types.d.ts.map +1 -1
  444. package/dist/src/tui/install-ui/types.js +1 -1
  445. package/dist/src/tui/install-ui/types.js.map +1 -1
  446. package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
  447. package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
  448. package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
  449. package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
  450. package/dist/src/tui/shared/components.d.ts +4 -0
  451. package/dist/src/tui/shared/components.d.ts.map +1 -1
  452. package/dist/src/tui/shared/components.js +4 -0
  453. package/dist/src/tui/shared/components.js.map +1 -1
  454. package/dist/src/tui/shared/index.d.ts +1 -1
  455. package/dist/src/tui/shared/index.d.ts.map +1 -1
  456. package/dist/src/tui/shared/index.js +1 -1
  457. package/dist/src/tui/shared/index.js.map +1 -1
  458. package/dist/src/tui/shared/tokens.d.ts +5 -5
  459. package/dist/src/tui/shared/tokens.js +5 -5
  460. package/dist/src/tui/shared/tokens.js.map +1 -1
  461. package/dist/src/types/index.d.ts +9 -0
  462. package/dist/src/types/index.d.ts.map +1 -1
  463. package/dist/src/utils/cli-format.d.ts +2 -1
  464. package/dist/src/utils/cli-format.d.ts.map +1 -1
  465. package/dist/src/utils/cli-format.js +14 -3
  466. package/dist/src/utils/cli-format.js.map +1 -1
  467. package/dist/src/utils/cooldown-guard.d.ts +17 -0
  468. package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
  469. package/dist/src/utils/cooldown-guard.js +59 -0
  470. package/dist/src/utils/cooldown-guard.js.map +1 -0
  471. package/dist/src/utils/jsonl-log.d.ts.map +1 -1
  472. package/dist/src/utils/jsonl-log.js +2 -1
  473. package/dist/src/utils/jsonl-log.js.map +1 -1
  474. package/dist/src/utils/update-notices.js +17 -4
  475. package/dist/src/utils/update-notices.js.map +1 -1
  476. package/package.json +4 -5
  477. package/workflows/claude-instructions.md +23 -0
  478. package/workflows/codex-instructions.md +22 -0
  479. package/workflows/finish-work.md +25 -0
  480. package/workflows/updates/update-v3-setup.md +7 -15
  481. package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
  482. package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
  483. package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
  484. package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
  485. package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
@@ -0,0 +1,507 @@
1
+ ---
2
+ name: odyssey-improve
3
+ description: Long-running codebase improvement cycle — multi-dimensional audit, deep diagnosis, targeted fix, verify, generalize, and engineering knowledge persistence
4
+ argument-hint: <target> [--dimensions <list>] [--skip-fix] [--skip-generalize] [--auto] [-y] [-c]
5
+ allowed-tools:
6
+ - ask_question
7
+ - define_subagent
8
+ - grep_search
9
+ - invoke_subagent
10
+ - manage_subagents
11
+ - replace_file_content
12
+ - run_command
13
+ - send_message
14
+ - view_file
15
+ - write_to_file
16
+ ---
17
+ <purpose>
18
+ Deep codebase improvement cycle: survey (current state) → audit (6 dimensions) → diagnose (root cause per finding) → fix → verify → generalize (举一反三) → discover siblings → persist learnings.
19
+
20
+ Unlike `quality-review` (pass/fail gate) or `odyssey-review-test-fix` (code review focus), this treats every finding as a runtime quality signal — performance bottlenecks, security vulnerabilities, architectural debt, reliability gaps, and observability blind spots. Combines static analysis with runtime-aware reasoning.
21
+
22
+ Core philosophy:
23
+ - **Measure before improving** — baseline first, then optimize
24
+ - **Root cause over symptom** — trace each issue to its origin
25
+ - **Fix one, improve many** — every improvement reveals a class of opportunities
26
+ - **Verify improvement** — measure after fix, compare with baseline
27
+
28
+ **三句哲学约束(穷尽迭代):**
29
+ 1. **零遗留** — 每个 finding 必须是 action item(修复 / issue / 决策),不允许只报告不处理
30
+ 2. **穷尽迭代** — 按 severity 从高到低逐轮修复,直到 0 remaining actionable findings 才退出 fix loop
31
+ 3. **改进即标准** — 每次修复后重审同区域,发现新问题继续修,直到该区域无可改善
32
+
33
+ Entry: `/odyssey-improve "target"` (full cycle) | `-c` (resume) | `--skip-fix` (audit-only)
34
+ </purpose>
35
+
36
+ <boundary>
37
+ **范围内:** 目标代码的运行质量提升 — 性能/安全/架构/可靠性/可观测性/可维护性多维度审查 → 诊断 → 修复 → 泛化
38
+ **范围外:** UI 视觉优化 → `/odyssey-ui` | 新功能实现 → `/odyssey-planex` | 单一 bug 调查 → `/odyssey-debug` | 代码风格审查 → `/odyssey-review-test-fix`
39
+ **探索自由度:** 边界内自由探索 — 可 profiling、安全扫描、架构分析、依赖审计。在约束下尽可能发现深层问题。
40
+ </boundary>
41
+
42
+ <execution_discipline>
43
+ **三条铁律(所有阶段适用):**
44
+
45
+ 1. **Phase auto-commit** — 每个阶段完成后**自动** `git commit`,无需用户确认
46
+ - 代码变更 + understanding.md → `git add` → `git commit -m "odyssey-improve({slug}): {phase} — {摘要}"`
47
+ - session.json / evidence.ndjson 为运行时状态,不纳入 commit
48
+
49
+ 2. **有把握才改** — 仅修改自己有把握的内容;不确定的记录决策等人判断
50
+ - 有把握 → 直接修改代码,commit
51
+ - 需要决策 → 记录 `evidence.ndjson {"phase":"decision","status":"pending"}` 不改代码
52
+ - 禁止猜测性修改,宁可多记录一条 decision 也不冒险改错
53
+
54
+ 3. **多 CLI 辅助** — 利用 `maestro delegate` 调用多个 CLI 工具交叉验证
55
+ - survey 阶段: `--role explore` 发现依赖/复杂度热点
56
+ - audit/diagnose: `--role analyze` 获取多视角分析
57
+ - fix 前后: `--role review` 确认改进正确性
58
+ </execution_discipline>
59
+
60
+ <context>
61
+ $ARGUMENTS — target and optional flags.
62
+
63
+ **Target resolution:**
64
+ | Input | Resolution |
65
+ |-------|-----------|
66
+ | Module/dir path | Audit that module |
67
+ | `HEAD` / `staged` | Review changes in diff |
68
+ | Feature area keyword | Resolve to related files |
69
+ | `--all` | Full project scan (use with caution) |
70
+
71
+ **Flags:**
72
+ | Flag | Effect | Default |
73
+ |------|--------|---------|
74
+ | `--dimensions <list>` | Comma-separated subset of 6 dimensions | all 6 |
75
+ | `--fix-threshold <severity>` | 修复到哪个 severity 为止(all = 全部修复)| all |
76
+ | `--skip-fix` | Audit + diagnose only, no code changes | false |
77
+ | `--skip-generalize` | Skip S_GENERALIZE and S_DISCOVER | false |
78
+ | `--auto` | CLI delegates without confirmation | false |
79
+ | `-y` | Auto-confirm all decisions (see appendix) | false |
80
+ | `-c` | Resume most recent session | — |
81
+
82
+ **Dimensions (6):**
83
+ 1. **performance** — hot paths, N+1 queries, memory allocation, cache efficiency, bundle size, lazy loading
84
+ 2. **security** — OWASP Top 10, injection, auth bypass, data exposure, dependency vulnerabilities, secrets
85
+ 3. **architecture** — layer violations, circular dependencies, coupling metrics, interface contracts, SRP violations
86
+ 4. **reliability** — error handling gaps, retry logic, timeout handling, graceful degradation, resource cleanup
87
+ 5. **observability** — logging coverage, metric gaps, trace propagation, error reporting, health checks
88
+ 6. **maintainability** — code complexity (cyclomatic), dead code, test coverage gaps, documentation debt
89
+
90
+ **Session**: `SESSION_DIR = .workflow/scratch/{YYYYMMDD}-improve-odyssey-{slug}/`
91
+
92
+ **Output — 3 files:**
93
+ ```
94
+ SESSION_DIR/
95
+ ├── session.json # state + audit_result + diagnoses + patterns + phase_goals
96
+ ├── evidence.ndjson # append-only (phase: survey|audit|diagnosis|fix|discovery|decision|self-iteration)
97
+ └── understanding.md # 9-section evolving narrative
98
+ ```
99
+
100
+ **session.json schema:**
101
+ ```json
102
+ {
103
+ "session_id": "improve-odyssey-{YYYYMMDD-HHmmss}",
104
+ "target": "", "dimensions": [],
105
+ "flags": { "skip_fix": false, "skip_generalize": false, "auto": false, "auto_confirm": false },
106
+ "current_state": "S_INTAKE",
107
+ "baseline_metrics": {},
108
+ "audit_result": { "dimensions_audited": [], "finding_count": 0, "severity_distribution": {} },
109
+ "diagnoses": [],
110
+ "patterns": [],
111
+ "confirmation": null,
112
+ "generalization_stats": null,
113
+ "phase_goals": [], "phase_goals_all_done": false,
114
+ "self_iteration_log": [],
115
+ "cross_phase_loops": 0, "max_loops": 3,
116
+ "created_at": "", "updated_at": ""
117
+ }
118
+ ```
119
+
120
+ **evidence.ndjson unified schema:** `{"ts":"","phase":"<phase>","type":"<type>","dimension":"","title":"","severity":"","file":"","line":0,"description":"","suggestion":"","measurement":""}`
121
+
122
+ Phase-specific fields:
123
+ - `survey`: `category` (dependency|complexity|coverage|error_pattern), `detail`
124
+ - `audit`: `dimension`, `severity`, `measurement`
125
+ - `diagnosis`: `finding_ref`, `hypothesis`, `result` (confirmed|disproved|inconclusive), `root_cause`
126
+ - `fix`: `finding_ref`, `change_summary`, `risk`
127
+ - `discovery`: `file`, `line`, `classification` (safe|risk|issue), `action` (fix|issue|decision|skip)
128
+ - `decision`: `question`, `options`, `context`, `status` (pending|resolved|deferred), `resolution`
129
+ - `self-iteration`: `stage`, `round`, `assessment`, `expansion`
130
+
131
+ **phase_goals[]:**
132
+ | ID | Goal | Phase | skip_when |
133
+ |----|------|-------|-----------|
134
+ | G1 | Survey completed | S_SURVEY | — |
135
+ | G2 | Audit completed | S_AUDIT | — |
136
+ | G3 | Diagnosis completed | S_DIAGNOSE | — |
137
+ | G4 | Zero remaining: all findings fixed and verified | `remaining_actionable == 0` within fix_threshold | S_VERIFY | skip_fix |
138
+ | G5 | Pattern generalized | S_GENERALIZE | skip_generalize |
139
+ | G6 | Discoveries triaged | S_DISCOVER | skip_generalize |
140
+ | G7 | Learnings persisted | S_RECORD | — |
141
+
142
+ Lifecycle: `pending → done | skipped | failed` (all set `completion_confirmed`)
143
+
144
+ **understanding.md — 9 sections (written by owning phase):**
145
+ 1. Target & Baseline ← S_INTAKE | 2. Current State Survey ← S_SURVEY | 3. Audit Findings ← S_AUDIT
146
+ 4. Root Cause Diagnosis ← S_DIAGNOSE | 5. Fix & Verification ← S_FIX+S_VERIFY
147
+ 6. Generalization ← S_GENERALIZE | 7. Discoveries ← S_DISCOVER
148
+ 8. Improvement Metrics ← S_RECORD (before/after) | 9. Engineering Learnings ← S_RECORD
149
+
150
+ ### Pre-load(可选,缺失不阻塞)
151
+
152
+ | 层级 | 命令 | 作用 |
153
+ |------|------|------|
154
+ | Codebase docs | Read `.workflow/codebase/ARCHITECTURE.md` | 模块边界,作为分析上下文 |
155
+ | Wiki search | `maestro search "<target keywords>" --json` | 先前优化、相关决策(取 top 5) |
156
+ | Coding specs | `maestro spec load --category coding` | 编码规范 |
157
+ | Debug specs | `maestro spec load --category debug` | 已知性能/安全模式 |
158
+ | Role knowledge | `maestro search --category coding` → 选相关 → `maestro wiki load <id>` | 累积领域知识 |
159
+ | Prior sessions | `grep_search(".workflow/scratch/*-improve-odyssey-*")` | 相关会话 |
160
+
161
+ ### Knowledge Persistence(S_RECORD 中写入产出文件)
162
+
163
+ S_RECORD 阶段将可沉淀知识 **写入 understanding.md §9 Learnings**,按以下分类结构化:
164
+
165
+ | 分类 | 写入内容 | 后续建议命令 |
166
+ |------|---------|-------------|
167
+ | 性能 pattern | 瓶颈类型 + 修复方案 + 度量方法 | `/spec-add coding "..."` |
168
+ | 安全规则 | 漏洞类别 + 修复 + 预防方法 | `/spec-add debug "..."` |
169
+ | 架构约束 | 违反描述 + 正确边界 + 检查方法 | `/spec-add arch "..."` |
170
+ | 可靠性 pattern | 故障模式 + 处理策略 + 验证手段 | `/spec-add coding "..."` |
171
+
172
+ **两步模式:** 执行中写入产出文件(临时记录)→ 任务完成后用户通过 next_step_routing 沉淀为永久知识。执行过程中不调用外部 Skill。
173
+ </context>
174
+
175
+ <self_iteration>
176
+ **Quality Gate** — auto-evaluate after each analytical phase. Insufficient → re-enter (max 2 rounds).
177
+
178
+ | Dimension | Sufficient | Insufficient |
179
+ |-----------|-----------|-------------|
180
+ | Coverage | All target files/modules analyzed across dimensions | Missed files discoverable via grep/glob |
181
+ | Depth | ≥80% findings have file:line evidence + measurement | Most findings lack specifics |
182
+ | Actionability | Each conclusion has concrete fix or issue action | "Consider reviewing" without action |
183
+
184
+ **Expansion:** Round 1 = widen scope (more modules, deeper import chain, extra delegate angles). Round 2 = shift perspective (different CLI tool, reverse dependency trace, manual code reading).
185
+
186
+ **Log:** `evidence.ndjson ← {"phase":"self-iteration","type":"quality-gate","stage":"S_XXX","round":N,"assessment":{},"expansion":""}`
187
+
188
+ **Applicable stages:** S_SURVEY, S_AUDIT, S_DIAGNOSE, S_GENERALIZE
189
+ </self_iteration>
190
+
191
+ <state_machine>
192
+
193
+ <states>
194
+ S_INTAKE — Parse target, load context, establish baseline metrics PERSIST: session.json + understanding.md §1
195
+ S_SURVEY — Current state: dependency audit, complexity scan, coverage PERSIST: evidence.ndjson (survey) + understanding.md §2
196
+ S_AUDIT — 6-dimension parallel deep audit PERSIST: evidence.ndjson (audit) + understanding.md §3
197
+ S_DIAGNOSE — Root cause analysis for critical/high findings PERSIST: evidence.ndjson (diagnosis|decision) + understanding.md §4
198
+ S_FIX — Implement improvements (skip if --skip-fix) PERSIST: code changes + evidence.ndjson (fix)
199
+ S_VERIFY — Tests + measurement comparison (skip if --skip-fix) PERSIST: session.json.confirmation + understanding.md §5
200
+ S_GENERALIZE — Pattern extraction + 4-agent scan (skip if --skip-gen) PERSIST: session.json.patterns + understanding.md §6
201
+ S_DISCOVER — Classify hits, create issues (skip if --skip-gen) PERSIST: evidence.ndjson (discovery|decision) + understanding.md §7
202
+ S_RECORD — Persist metrics + learnings + final report PERSIST: understanding.md §8-9 + spec entries
203
+ </states>
204
+
205
+ <transitions>
206
+ S_INTAKE:
207
+ → S_INTAKE WHEN -c + session found DO A_RESUME
208
+ → S_SURVEY WHEN target resolved DO A_INTAKE
209
+ → S_INTAKE WHEN no target DO ask_question
210
+
211
+ S_SURVEY → S_AUDIT DO A_SURVEY
212
+
213
+ S_AUDIT:
214
+ → S_DIAGNOSE WHEN critical/high findings exist DO A_AUDIT
215
+ → S_GENERALIZE WHEN no critical/high AND !skip_gen DO A_AUDIT
216
+ → S_RECORD WHEN no findings OR skip_gen DO A_AUDIT
217
+
218
+ S_DIAGNOSE:
219
+ → S_FIX WHEN root causes identified AND !skip_fix DO A_DIAGNOSE
220
+ → S_GENERALIZE WHEN root causes identified AND skip_fix AND !skip_gen DO A_DIAGNOSE
221
+ → S_RECORD WHEN root causes identified AND skip_fix AND skip_gen DO A_DIAGNOSE
222
+ → S_DIAGNOSE WHEN hypotheses failed AND retries < 3 DO A_ESCALATE_DIAGNOSIS
223
+ → S_RECORD WHEN hypotheses failed AND retries >= 3 DO mark INCONCLUSIVE
224
+
225
+ S_FIX → S_VERIFY DO A_FIX
226
+
227
+ S_VERIFY:
228
+ → S_GENERALIZE WHEN verified AND !skip_gen DO A_VERIFY
229
+ → S_RECORD WHEN verified AND skip_gen DO A_VERIFY
230
+ → S_FIX WHEN needs_rework DO A_VERIFY
231
+
232
+ S_GENERALIZE:
233
+ → S_DISCOVER WHEN hits found DO A_GENERALIZE
234
+ → S_RECORD WHEN no hits DO A_GENERALIZE
235
+
236
+ S_DISCOVER → S_DIAGNOSE : new critical issue found, loops < max_loops → cross_phase_loops++
237
+ S_DISCOVER → S_FIX : same-pattern fix, !skip_fix, loops < max_loops → cross_phase_loops++
238
+ S_DISCOVER → S_RECORD : triage complete OR loops >= max_loops (剩余项 → issue/decision)
239
+
240
+ S_RECORD → END DO A_RECORD
241
+ </transitions>
242
+
243
+ <actions>
244
+
245
+ ### A_INTAKE
246
+ 1. Parse arguments: target description, flags, `--dimensions` subset
247
+ 2. Generate slug, create `SESSION_DIR`
248
+ 3. Search: `maestro search "<keywords>"` + Glob prior sessions + ARCHITECTURE.md + spec load coding/debug
249
+ 4. **Baseline capture**: Record current metrics (test pass rate, bundle size, dependency count, complexity hotspots) to `session.json.baseline_metrics`
250
+ 5. Derive `phase_goals[]` from flags (apply `skip_when`)
251
+ 6. Write `session.json` + `understanding.md` §1 (Target & Baseline)
252
+ 7. Emit Goal Prompt (see Appendix)
253
+
254
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): INTAKE — 目标解析与基线采集"`
255
+
256
+ ### A_RESUME
257
+ Find latest session via Glob → read `session.json` → display summary → jump to `current_state`.
258
+
259
+ ### A_SURVEY
260
+ Current state survey — understand what exists before proposing changes.
261
+
262
+ 1. **Dependency audit**: Read package.json/lock files, scan for outdated/vulnerable deps
263
+ 2. **Complexity scan**: Identify high-complexity files (file size, function count, nesting depth)
264
+ 3. **Test coverage map**: Which modules have coverage, which don't
265
+ 4. **Error handling scan**: Grep for empty catch, unhandled promise, missing error boundaries
266
+ 5. **CLI-assisted survey** (optional):
267
+ ```bash
268
+ maestro delegate "PURPOSE: Survey codebase health of: {target}
269
+ TASK: Dependency health | Complexity hotspots | Test coverage gaps | Error handling patterns
270
+ MODE: analysis
271
+ CONTEXT: @{target_files}
272
+ EXPECTED: JSON {dependency_health, complexity_hotspots, coverage_gaps, error_patterns}
273
+ CONSTRAINTS: Focus on runtime quality, not style
274
+ " --role analyze --mode analysis
275
+ ```
276
+ Run_in_background, STOP, wait for callback.
277
+
278
+ 6. Append evidence.ndjson (phase: "survey"). Update `understanding.md` §2. Mark G1 done.
279
+
280
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): SURVEY — 现状调查"`
281
+
282
+ ### A_AUDIT
283
+ Spawn 6 parallel Agents (one per dimension, or `--dimensions` subset):
284
+
285
+ | Agent | Dimension | Focus |
286
+ |-------|-----------|-------|
287
+ | Performance | performance | Hot paths, N+1 queries, memory allocation, cache efficiency, bundle size, lazy loading |
288
+ | Security | security | OWASP Top 10, injection, auth bypass, data exposure, dependency vulns, secrets |
289
+ | Architecture | architecture | Layer violations, circular deps, coupling, interface contracts, SRP violations |
290
+ | Reliability | reliability | Error handling gaps, retry logic, timeout handling, graceful degradation, cleanup |
291
+ | Observability | observability | Logging coverage, metric gaps, trace propagation, error reporting, health checks |
292
+ | Maintainability | maintainability | Cyclomatic complexity, dead code, test coverage gaps, documentation debt |
293
+
294
+ Each returns: `[{title, severity, dimension, file, line, description, suggestion, measurement}]`
295
+
296
+ Merge → evidence.ndjson (phase: "audit"). Write `session.json.audit_result`.
297
+ Update `understanding.md` §3 (findings by dimension + severity matrix). Mark G2 done.
298
+
299
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): AUDIT — 多维审查"`
300
+
301
+ ### A_DIAGNOSE
302
+ Root cause analysis for critical/high findings — don't fix symptoms.
303
+
304
+ 1. Group findings by dimension, prioritize by severity
305
+ 2. For each critical/high finding:
306
+ - Form hypothesis about root cause
307
+ - Test: trace code path, check git history, verify with evidence
308
+ - Record to evidence.ndjson (phase: "diagnosis")
309
+ 3. **Decision journal**: ambiguity → evidence (phase: "decision"); Normal: ask_question | `-y`: defer
310
+ 4. **CLI-assisted diagnosis** for complex findings:
311
+ ```bash
312
+ maestro delegate "PURPOSE: Diagnose root cause of: {finding}
313
+ TASK: Trace code path | Check for systemic pattern | Identify fix approach
314
+ MODE: analysis
315
+ CONTEXT: @{relevant_files} | Finding: {finding_detail}
316
+ EXPECTED: JSON {root_cause, systemic, fix_approach, risk}
317
+ CONSTRAINTS: Focus on root cause, not symptom
318
+ " --role analyze --mode analysis
319
+ ```
320
+ Run_in_background, STOP, wait for callback.
321
+
322
+ 5. Write `session.json.diagnoses[]`. Update `understanding.md` §4. Mark G3 done.
323
+
324
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): DIAGNOSE — 根因诊断"`
325
+
326
+ ### A_ESCALATE_DIAGNOSIS
327
+ Increment retries. If < 3: broaden scope via `maestro delegate --role analyze`, form new hypotheses, return to S_DIAGNOSE. If >= 3: Normal → ask_question (broaden/new/INCONCLUSIVE) | `-y` → auto INCONCLUSIVE, proceed to S_RECORD.
328
+
329
+ ### A_FIX
330
+ Skip if `--skip-fix`. Implement improvements for diagnosed root causes.
331
+
332
+ 1. **穷尽修复**: Fix ALL diagnosed issues by severity tier (critical → high → medium → low within fix_threshold), one dimension at a time. After each tier, re-verify modified area — new findings append to current tier.
333
+ 2. For each fix: implement → record evidence.ndjson (phase: "fix")
334
+ 3. **Normal**: ask_question per-fix confirmation. **`-y`**: auto-proceed, record `deferred`.
335
+
336
+ 📌 **Auto-commit**: `git add -A && git commit -m "odyssey-improve({slug}): FIX — 改进实现"`
337
+
338
+ ### A_VERIFY
339
+ Verify improvements with measurement comparison.
340
+
341
+ 1. Run tests covering modified areas
342
+ 2. **Measure improvement**: re-capture metrics, compare with `session.json.baseline_metrics`
343
+ 3. **CLI-assisted verification**:
344
+ ```bash
345
+ maestro delegate "PURPOSE: Verify improvements for: {target}
346
+ TASK: Check fix correctness | Test regressions | Measure impact | Compare with baseline
347
+ MODE: analysis
348
+ CONTEXT: @{modified_files} | Baseline: {baseline_metrics} | Fixes: {fix_summary}
349
+ EXPECTED: JSON {verdict, metrics_improved, regressions, remaining_issues}
350
+ CONSTRAINTS: Focus on correctness and measurable improvement
351
+ " --role review --mode analysis
352
+ ```
353
+ Run_in_background, STOP, wait for callback.
354
+
355
+ 4. `needs_rework` → S_FIX. `verified` → mark G4 done, advance.
356
+ 5. Write `session.json.confirmation`. Update `understanding.md` §5 (before/after metrics table).
357
+
358
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): VERIFY — 改进验证"`
359
+
360
+ ### A_GENERALIZE
361
+ Multi-layer pattern extraction from diagnoses + fixes → 4-agent scan → cross-layer dedup.
362
+
363
+ **Pattern extraction** from root causes + improvements:
364
+
365
+ | Layer | Method | Example |
366
+ |-------|--------|---------|
367
+ | Syntax | Regex → direct Grep | Missing `await`, unclosed resource, empty catch, `eval(` |
368
+ | Semantic | Agent understands anti-pattern → scans | Unhandled async errors, missing retry, N+1 query |
369
+ | Structural | File/module structure similarity | Same import pattern, missing error boundary |
370
+ | Historical | `git log -S "{pattern}"` | When similar issues were introduced/fixed |
371
+
372
+ Write `session.json.patterns[]`: `[{id, source_finding, layer, signature, description, risk, fix_template, confidence}]`
373
+
374
+ **4-agent parallel scan** (single message):
375
+
376
+ | Agent | Strategy | Scope |
377
+ |-------|----------|-------|
378
+ | Syntax grep | Grep patterns matching found issues | Full project |
379
+ | Semantic scan | Find modules with same anti-pattern | Related modules |
380
+ | Structural match | Find structurally similar files | Full project |
381
+ | Historical grep | `git log -S "{pattern}"` | Git history |
382
+
383
+ **Cross-layer dedup**: Multi-layer hit → boost confidence. Single-layer → `needs_review`. Historical match on fixed code → `regression_risk`.
384
+
385
+ **Iterative deepening**: Module with ≥3 hits → targeted deep scan (max 1 round).
386
+
387
+ Update `understanding.md` §6. Write `session.json.generalization_stats`. Mark G5 done.
388
+
389
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): GENERALIZE — 泛化扫描"`
390
+
391
+ ### A_DISCOVER
392
+ 1. **Triage** each hit: read ±10 lines context → classify `safe`/`risk`/`issue`
393
+ 2. **Route**: **Normal** → ask_question. **`-y`** → auto create issue, `deferred`.
394
+ 3. **Cross-phase loops**: new critical issue → S_DIAGNOSE; same-pattern fix → S_FIX; budget exhausted → S_RECORD.
395
+ 4. Append evidence (phase: "discovery" + "decision"). Update `understanding.md` §7. Mark G6 done.
396
+
397
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): DISCOVER — 发现分类"`
398
+
399
+ ### A_RECORD
400
+ 1. **understanding.md §8**: Improvement metrics — before/after comparison table from baseline_metrics vs current
401
+ 2. **understanding.md §9**: Engineering learnings — 按 Knowledge Persistence 表分类记录(临时),completion summary 列出建议的 `/spec-add` 命令
402
+ 3. Mark G7 done. Pending decisions: **Normal** → ask_question. **`-y`** → skip, show deferred count.
403
+ 4. **Goal audit**: all `phase_goals[*].completion_confirmed` true → `phase_goals_all_done = true`. Any false: **Normal** → ask_question (回退/跳过/接受) | **`-y`** → auto accept.
404
+ 5. `current_state = "COMPLETED"`. Emit completion summary:
405
+ ```
406
+ --- IMPROVE ODYSSEY COMPLETE ---
407
+ Target: {target}
408
+ Dimensions: {dimensions_audited}
409
+ Findings: {C}C {H}H {M}M {L}L
410
+ Diagnosed: {diagnosed_count} root causes identified
411
+ Fix: {fixed_count} improvements, verified={yes|skipped}
412
+ Metrics: {improved} improved, {regressed} regressed
413
+ Patterns: {extracted} ({by_layer} distribution)
414
+ Scan hits: {total} ({cross_layer} cross-layer confirmed)
415
+ Issues: {N} created
416
+ Decisions: {N} resolved, {M} pending, {K} deferred
417
+ Learnings: {N} entries in understanding.md §9
418
+ Self-iter: {N} quality gate rounds across {M} stages
419
+ Cross-loops: {cross_phase_loops}/{max_loops} used
420
+ Goals: {done}/{total} ({skipped} skipped)
421
+ ---
422
+ ```
423
+
424
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): RECORD — 指标总结与知识沉淀"`
425
+
426
+ </actions>
427
+
428
+ <appendix>
429
+
430
+ ### Goal Prompt Template
431
+ **⚠️ 时机守卫:仅在 A_INTAKE 完成后显示一次。A_RECORD 完成时禁止重新显示。**
432
+
433
+ ```
434
+ 📋 Improve Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
435
+
436
+ /goal 穷尽迭代:直到 session.json 的 audit_result 中所有 findings 均已处理(fix/issue/decision)
437
+ 且 phase_goals_all_done=true 才停。修复按 severity 逐轮迭代,每轮修复后 re-verify 修改区域。
438
+ Baseline metrics 必须在修复前采集,修复后必须与 baseline 对比确认改进。
439
+ 遇到 phase=decision 的 pending 必须 ask_question。不允许"只报告不处理"。
440
+ ```
441
+
442
+ 完成时仅输出 completion summary,不重复此提示。
443
+
444
+ ### `-y` Auto-Confirm Behavior
445
+ | Decision Point | Normal | `-y` |
446
+ |---------------|--------|------|
447
+ | A_FIX improvement confirmation | ask_question | auto-proceed, `deferred` |
448
+ | A_DIAGNOSE ambiguity | ask_question | best-effort, `deferred` |
449
+ | A_ESCALATE 3-strike | ask_question 3-way | auto INCONCLUSIVE |
450
+ | A_DISCOVER hit routing | ask_question | auto create issue, `deferred` |
451
+ | A_DISCOVER ambiguous items | ask_question | all `deferred` |
452
+ | A_RECORD pending decisions | ask_question | skip, show deferred count |
453
+ | A_RECORD goal audit | ask_question | auto accept |
454
+
455
+ `deferred` items shown as "待决策" in completion summary; recoverable via `-c`.
456
+
457
+ ### Phase Goal Lifecycle
458
+ `pending → done (confirmed=true)` normal | `pending → skipped (confirmed=true)` flags/manual | `pending → failed (confirmed=false)` exception
459
+
460
+ `phase_goals_all_done = true` only when ALL goals have `completion_confirmed == true`.
461
+
462
+ </appendix>
463
+
464
+ </state_machine>
465
+
466
+ <error_codes>
467
+ | Code | Severity | Condition | Recovery |
468
+ |------|----------|-----------|----------|
469
+ | E001 | error | No target specified | Provide target or use -c |
470
+ | E002 | error | Target path not found | Check path |
471
+ | E003 | error | Resume but no session found | Start new session |
472
+ | W001 | warning | No dependency manifest found | Proceed without dep audit |
473
+ | W002 | warning | Some dimension agents failed | Partial audit coverage |
474
+ | W003 | warning | Generalization 0 hits | Skip discovery |
475
+ | W004 | warning | Delegate parse failed | Use raw output |
476
+ </error_codes>
477
+
478
+ <success_criteria>
479
+ - [ ] Target resolved, baseline metrics captured in session.json
480
+ - [ ] Dependency + complexity + coverage survey completed
481
+ - [ ] All dimensions audited (6 parallel agents) with structured findings
482
+ - [ ] Severity matrix produced
483
+ - [ ] Root causes diagnosed for critical/high findings (hypothesis-driven)
484
+ - [ ] Improvements implemented and verified with before/after metrics (unless --skip-fix)
485
+ - [ ] Multi-layer generalization scan + cross-layer dedup (unless --skip-generalize)
486
+ - [ ] Cross-phase loops used when discoveries warrant
487
+ - [ ] Quality Gate self-iteration triggered when insufficient
488
+ - [ ] Discoveries classified and routed
489
+ - [ ] understanding.md §8: improvement metrics (before/after comparison)
490
+ - [ ] understanding.md §9: engineering learnings
491
+ - [ ] phase_goals G1-G7 tracked and audited
492
+ - [ ] Goal Prompt displayed once
493
+ - [ ] `-y`: no blocking prompts, deferred counted
494
+ - [ ] Session resumable via -c
495
+ </success_criteria>
496
+
497
+ <next_step_routing>
498
+ | Condition | Next step |
499
+ |-----------|-----------|
500
+ | Security findings need deep investigation | `/odyssey-debug "<finding>"` |
501
+ | UI-related findings | `/odyssey-ui "<component>"` |
502
+ | Issues created from discoveries | `/manage-issue list --source improve-odyssey` |
503
+ | Architecture pattern to document | `/spec-add arch "..."` |
504
+ | Performance pattern to persist | `/spec-add coding "..."` |
505
+ | Want formal review of changes | `/odyssey-review-test-fix <changed-files>` |
506
+ | Decisions still pending | Filter evidence.ndjson phase=decision status=pending |
507
+ </next_step_routing>