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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: maestro-next
3
- description: Single-command recommendation — pick the best next skill from the pool and execute it in-context
3
+ description: "Single-command recommendation — pick the best next skill from the pool and execute it in-context"
4
4
  argument-hint: "\"<intent>\" [-y] [--dry-run] [--top N] [--list]"
5
5
  allowed-tools: Read, Bash, Glob, Grep, request_user_input
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: maestro-ralph-beta
3
- description: Self-running loop controller for adaptive maestro workflow — build, tick, decide in one skill
3
+ description: "Self-running loop controller for adaptive maestro workflow — build, tick, decide in one skill"
4
4
  argument-hint: "<intent> [-y] | continue | status"
5
5
  allowed-tools:
6
6
  - Read
@@ -0,0 +1,456 @@
1
+ ---
2
+ name: odyssey-debug
3
+ description: "Long-running debug cycle — archaeology, diagnosis, fix, confirmation, generalization, discovery, and knowledge persistence"
4
+ argument-hint: "<issue> [--skip-fix] [--skip-generalize] [--auto] [-y] [-c]"
5
+ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
+ ---
7
+
8
+ <purpose>
9
+ Closed-loop deep debugging: archaeology (what changed) → explore (call chains, error gaps) → diagnose (hypothesis-driven) → fix & confirm → generalize (举一反三) → discover siblings → persist learnings.
10
+
11
+ Unlike `quality-debug` (fast fix), this treats every bug as a learning signal — digs into git history before hypotheses, confirms fixes with CLI review, scans for siblings of the root cause.
12
+
13
+ Core philosophy:
14
+ - **Archaeology before hypothesis** — look at what changed before guessing why
15
+ - **Fix one, find many** — a single bug reveals a class of bugs
16
+ - **Decision journal** — human-judgment items recorded, not lost
17
+ - **CLI-assisted review** — delegate for second-opinion analysis
18
+
19
+ **三句哲学约束(穷尽迭代):**
20
+ 1. **零遗留** — 根因必须确认到底,修复必须验证通过,泛化必须扫描穷尽
21
+ 2. **穷尽迭代** — 假设失败不放弃:扩范围 → 换视角 → 升级工具,直到根因确认或明确 INCONCLUSIVE
22
+ 3. **改进即标准** — 修复后重新确认同区域无新问题,泛化发现的同类 bug 全部处理
23
+ </purpose>
24
+
25
+ <boundary>
26
+ **范围内:** 单一 bug/issue 的完整闭环 — 考古 → 探索 → 诊断 → 修复 → 确认 → 泛化 → 沉淀
27
+ **范围外:** 新功能 → `$odyssey-planex` | 代码审查 → `$odyssey-review-test-fix` | UI 优化 → `$odyssey-ui`
28
+ **探索自由度:** 边界内自由 — 可追踪任意调用链、分析任意历史、测试任意假设
29
+ **模板:** `--template <name>` — performance | memory-leak | race-condition | regression | crash
30
+ </boundary>
31
+
32
+ <execution_discipline>
33
+ **三条铁律(所有阶段适用):**
34
+ 1. **Phase auto-commit** — 阶段完成后**自动** `git commit`,无需用户确认(session.json/evidence.ndjson 不纳入)
35
+ 2. **有把握才改** — 有把握→改代码 commit;不确定→记录 `evidence.ndjson {"phase":"decision","status":"pending"}` 不改代码
36
+ 3. **多 CLI 辅助** — `maestro delegate` 多 `--role`(analyze/review/explore)交叉验证关键判断
37
+ </execution_discipline>
38
+
39
+ <context>
40
+ $ARGUMENTS — issue description and optional flags.
41
+
42
+ **Flags:** `--skip-fix` analysis-only | `--skip-generalize` quick fix | `--template <name>` 预定义策略 | `--auto` no delegate confirmation | `-y` auto-confirm all decisions | `-c` resume last session
43
+
44
+ **Session**: `SESSION_DIR = .workflow/scratch/{YYYYMMDD}-debug-odyssey-{slug}/`
45
+
46
+ **Output — 4 files:**
47
+ ```
48
+ SESSION_DIR/
49
+ ├── session.json # state + confirmation + patterns + phase_goals
50
+ ├── evidence.ndjson # append-only evidence trail (phase field distinguishes origin)
51
+ ├── explore.json # structured CLI exploration snapshot
52
+ └── understanding.md # evolving narrative — 9 sections
53
+ ```
54
+
55
+ **evidence.ndjson — unified trail:**
56
+ ```json
57
+ {"ts":"","phase":"archaeology|explore|diagnosis|discovery|decision|self-iteration","type":"","source":"","content":"","note":""}
58
+ ```
59
+ Phase-specific fields:
60
+ - `archaeology`: `sha`, `author`, `date`, `message`, `relevance` (high|medium|low)
61
+ - `explore`: `category` (call_chain|recent_change|error_gap|similar_pattern), `detail`
62
+ - `diagnosis`: `hypothesis`, `result` (confirmed|disproved|inconclusive)
63
+ - `discovery`: `file`, `line`, `classification` (safe|risk|bug), `action`
64
+ - `decision`: `question`, `options`, `context`, `status` (pending|resolved|deferred), `resolution`
65
+
66
+ **explore.json schema:**
67
+ ```json
68
+ {
69
+ "call_chains": [{"entry":"","chain":["file:line"]}],
70
+ "recent_changes": [{"file":"","commits":[{"sha":"","message":"","date":""}]}],
71
+ "error_gaps": [{"file":"","line":0,"description":""}],
72
+ "similar_patterns": [{"file":"","line":0,"description":""}],
73
+ "cli_tool": "", "timestamp": ""
74
+ }
75
+ ```
76
+
77
+ **session.json schema:**
78
+ ```json
79
+ {
80
+ "session_id": "debug-odyssey-{YYYYMMDD-HHmmss}", "issue": "",
81
+ "flags": { "skip_fix": false, "skip_generalize": false, "auto": false, "auto_confirm": false },
82
+ "current_state": "S_INTAKE", "diagnosis_retries": 0,
83
+ "root_cause": null, "patterns": [], "confirmation": null,
84
+ "phase_goals": [], "phase_goals_all_done": false, "self_iteration_log": [],
85
+ "cross_phase_loops": 0, "max_loops": 3,
86
+ "generalization_stats": null,
87
+ "created_at": "", "updated_at": ""
88
+ }
89
+ ```
90
+
91
+ **phase_goals[] — auto-derived from flags:**
92
+
93
+ | ID | Goal | done_when | phase | skip_when |
94
+ |----|------|-----------|-------|-----------|
95
+ | G1 | Root cause identified | evidence.ndjson has phase=diagnosis result=confirmed | S_DIAGNOSE | — |
96
+ | G2 | Explore context gathered | explore.json ≥1 category populated | S_EXPLORE | — |
97
+ | G3 | Fix applied and confirmed | confirmation.overall == confirmed | S_CONFIRM | skip_fix |
98
+ | G4 | Pattern generalized | patterns[] ≥1 entry | S_GENERALIZE | skip_generalize |
99
+ | G5 | Discoveries triaged | all scan hits classified | S_DISCOVER | skip_generalize |
100
+ | G6 | Learnings persisted | spec entries created OR no actionable learnings | S_RECORD | — |
101
+
102
+ When `flags[skip_when] == true` → auto set `status: "skipped"`, `completion_confirmed: true`.
103
+
104
+ **understanding.md — 9 sections (written by owning phase):**
105
+ 1. Issue & Scope ← S_INTAKE | 2. Archaeology ← S_ARCHAEOLOGY | 3. Exploration ← S_EXPLORE
106
+ 4. Hypotheses ← S_DIAGNOSE | 5. Root Cause ← S_DIAGNOSE | 6. Fix & Confirmation ← S_FIX+S_CONFIRM
107
+ 7. Generalization ← S_GENERALIZE | 8. Discoveries ← S_DISCOVER | 9. Learnings ← S_RECORD
108
+
109
+ ### Pre-load(可选,缺失不阻塞)
110
+
111
+ | 层级 | 命令 | 作用 |
112
+ |------|------|------|
113
+ | Codebase docs | Read `.workflow/codebase/ARCHITECTURE.md` | 模块边界 |
114
+ | Wiki search | `maestro search "<issue keywords>" --json` | 先前调查(top 5) |
115
+ | Specs + tools | `maestro spec load --category debug --keyword "<symptom>"` | 已知 issue/workaround |
116
+ | Role knowledge | `maestro search --category debug` → 选相关 → `maestro wiki load <id>` | 领域知识 |
117
+ | Prior sessions | `Glob(".workflow/scratch/*-debug-odyssey-*")` | 相关会话 |
118
+
119
+ ### Knowledge Persistence(S_RECORD 中写入产出文件)
120
+
121
+ S_RECORD 将可沉淀知识 **写入 understanding.md §9 Learnings**,按分类结构化:
122
+
123
+ | 分类 | 写入内容 | 后续建议命令 |
124
+ |------|---------|-------------|
125
+ | 反复根因模式 | 模式描述 + 触发条件 + 修复模板 | `$spec-add debug "..."` |
126
+ | 非显而易见 workaround | 问题场景 + 解决方案 + 适用范围 | `$spec-add learning "..."` |
127
+ | 架构边界违反 | 违反描述 + 正确边界 + 检查方法 | `$spec-add arch "..."` |
128
+ | 可复用泛化 pattern | pattern 签名 + 风险说明 + fix 模板 | `$spec-add coding "..."` |
129
+
130
+ **两步模式:** 执行中写入产出文件(临时记录)→ 任务完成后用户沉淀为永久知识。执行过程中不调用外部 skill。
131
+ </context>
132
+
133
+ <self_iteration>
134
+ **Quality Gate (适用: S_ARCHAEOLOGY, S_EXPLORE, S_DIAGNOSE, S_GENERALIZE)**
135
+
136
+ | 维度 | sufficient | insufficient |
137
+ |------|-----------|-------------|
138
+ | Coverage | 已知相关文件/模块均已分析 | 遗漏 grep/git log 可发现的目标 |
139
+ | Depth | ≥80% 发现有 file:line 级证据 | 多数仅泛泛描述 |
140
+ | Actionability | 每条结论有具体后续动作 | 仅"建议关注"类无操作性结论 |
141
+
142
+ **规则:** 阶段完成 → 评估 3 维度 → 任一 insufficient → 重入(每阶段最多 2 轮)。
143
+ - Round 1: 扩范围 — 增加目录、git log depth ×2、增加 delegate 角度
144
+ - Round 2: 换视角 — 不同 CLI tool、反向追踪、手动 code reading
145
+
146
+ **退出:** 全 sufficient → 推进 | 2 轮上限 → 记录 gap 继续。记录至 `evidence.ndjson` + `session.json.self_iteration_log[]`.
147
+ </self_iteration>
148
+
149
+ <csv_schema>
150
+ ### Shared Output Schema (all waves)
151
+ ```json
152
+ {
153
+ "type": "object",
154
+ "properties": {
155
+ "id": {"type":"string"}, "result_status": {"type":"string","enum":["completed","failed"]},
156
+ "findings": {"type":"string","maxLength":500}, "evidence": {"type":"string"}, "error": {"type":"string"}
157
+ },
158
+ "required": ["id","result_status","findings"]
159
+ }
160
+ ```
161
+
162
+ **Termination Contract** (embed in every instruction):
163
+ ```
164
+ You MUST call report_agent_job_result EXACTLY ONCE before exiting.
165
+ Success → result_status=completed | Failure → result_status=failed with error | Timeout → completed with partial.
166
+ NEVER continue indefinitely. NEVER exit silently. Read-only — do NOT modify source files.
167
+ Do NOT write to tasks.csv, wave-*.csv, results.csv. Do NOT call spawn_agents_on_csv.
168
+ ```
169
+
170
+ ### tasks.csv
171
+ ```csv
172
+ id,title,description,task_type,deps,wave,status,findings,evidence,error
173
+ ```
174
+ - Wave 1: Archaeology (git-timeline, git-blame) — parallel
175
+ - Wave 2: Generalization (syntax-grep, semantic-scan, structural-match, historical-grep) — parallel, depends on root cause
176
+ - Single-agent stages (explore, diagnose, fix, confirm) remain inline
177
+ </csv_schema>
178
+
179
+ <invariants>
180
+ 1. **Iron Law**: NO FIX without root cause evidence
181
+ 2. **Archaeology first**: git history MUST precede any hypothesis
182
+ 3. **Evidence append-only**: never modify/delete evidence.ndjson entries
183
+ 4. **Session is source of truth**: session.json holds all state
184
+ 5. **Phase goal tracking**: each phase MUST mark its goal on completion
185
+ 6. **Decision journal integrity**: all human-judgment items recorded phase=decision
186
+ 7. **`-y` defers, never drops**: auto-confirm records "deferred", never silently skips
187
+ 8. **CLI delegate is background**: all `maestro delegate` → run_in_background, STOP, wait
188
+ 9. **Resumable state**: current_state saved at every transition
189
+ 10. **Goal is outcome-oriented**: `/goal` user-bound; odyssey outputs prompt then continues
190
+ 11. **Violation = BLOCK**: violating any invariant blocks the operation
191
+ </invariants>
192
+
193
+ <execution>
194
+
195
+ ### Stage 1: Intake (S_INTAKE)
196
+ 1. Parse arguments: issue description, flags
197
+ 2. Generate slug, create `SESSION_DIR`
198
+ 3. Search: `maestro search "<keywords>"` + Glob prior sessions + ARCHITECTURE.md + Grep keywords
199
+ 4. Derive `phase_goals[]` from flags (apply `skip_when`)
200
+ 5. Write `session.json` + `understanding.md` §1
201
+ 6. Display Goal Prompt (Appendix), continue without blocking
202
+
203
+ **Resume (`-c`):** Glob latest session → read `session.json` → restore `current_state` → jump.
204
+
205
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_INTAKE — 目标解析"`
206
+
207
+ ### Stage 2: Archaeology (S_ARCHAEOLOGY)
208
+ **Step 1 — Git archaeology (spawn_agents_on_csv, Wave 1):**
209
+
210
+ Write `tasks.csv` with Wave 1 rows:
211
+ ```csv
212
+ id,title,description,task_type,deps,wave,status,findings,evidence,error
213
+ "arch-timeline","Git Timeline","Run git log --oneline -20 -- {files}. Return [{sha,date,author,message,files_changed}] as JSON.","archaeology","","1","pending","","",""
214
+ "arch-blame","Git Blame","Top 3 suspicious files: git blame -L {region}. Return [{file,line_range,sha,author,date,content}] as JSON.","archaeology","","1","pending","","",""
215
+ ```
216
+
217
+ ```javascript
218
+ spawn_agents_on_csv({ csv_path:"tasks.csv", id_column:"id",
219
+ instruction: ARCHAEOLOGY_INSTRUCTION + TERMINATION_CONTRACT,
220
+ max_concurrency:2, max_runtime_seconds:300,
221
+ output_csv_path:"wave-1-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
222
+ ```
223
+
224
+ Merge results → evidence.ndjson (phase: "archaeology").
225
+
226
+ **Step 2 — CLI change review:**
227
+ ```bash
228
+ maestro delegate "PURPOSE: Review recent modifications related to: {issue}
229
+ TASK: Analyze intent | Identify risky modifications | Flag potential bug sources
230
+ MODE: analysis
231
+ CONTEXT: @{relevant_files} | Git log: {top_10_commits}
232
+ EXPECTED: JSON [{commit_sha, risk_level, analysis, could_cause_issue, explanation}]
233
+ CONSTRAINTS: Focus on behavioral changes, not formatting
234
+ " --role analyze --mode analysis
235
+ ```
236
+ Run_in_background, STOP, wait for callback. Append results.
237
+
238
+ **Step 3:** Update `understanding.md` §2.
239
+
240
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_ARCHAEOLOGY — 考古"`
241
+
242
+ ### Stage 3: Exploration (S_EXPLORE)
243
+ Skip if no enabled CLI tools (W006).
244
+
245
+ ```bash
246
+ maestro delegate "PURPOSE: Gather codebase evidence for: {issue}
247
+ TASK: Trace call chains | Find recent changes | Identify error gaps | Check similar patterns
248
+ MODE: analysis
249
+ CONTEXT: @**/*
250
+ EXPECTED: JSON {call_chains, recent_changes, error_gaps, similar_patterns}
251
+ CONSTRAINTS: Max 20 entries/category | Symptom-related code paths
252
+ Symptoms: {issue} Archaeology hints: {suspicious_commits}
253
+ " --role explore --mode analysis
254
+ ```
255
+ Run_in_background, STOP, wait for callback.
256
+
257
+ Parse → write `explore.json` + evidence (phase: "explore"). Update §3. Mark G2 done.
258
+
259
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_EXPLORE — 探索"`
260
+
261
+ ### Stage 4: Diagnosis (S_DIAGNOSE)
262
+ 1. **Form hypotheses** from evidence (archaeology + explore), ranked [HIGH]/[MEDIUM]/[LOW] → §4
263
+ 2. **Test each** (rank order): design test → execute → evidence (phase: "diagnosis")
264
+ 3. **Decision journal**: ambiguity → evidence (phase: "decision"); Normal: request_user_input | `-y`: defer
265
+ 4. **Root cause**: confirmed → `session.json.root_cause` + §5. Mark G1 done.
266
+
267
+ **Escalation (3-strike):**
268
+ All hypotheses fail → increment `diagnosis_retries`.
269
+ - < 3: broaden scope via `maestro delegate --role analyze`, form new hypotheses.
270
+ - >= 3: Normal → request_user_input (broaden/new/INCONCLUSIVE) | `-y` → auto INCONCLUSIVE, proceed to S_RECORD.
271
+
272
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_DIAGNOSE — 诊断"`
273
+
274
+ ### Stage 5: Fix (S_FIX)
275
+ Skip if `--skip-fix`.
276
+
277
+ 1. Present root cause + proposed fix. Normal: request_user_input | `-y`: auto proceed
278
+ 2. Implement fix
279
+ 3. Record in evidence (phase: "decision")
280
+
281
+ 📌 **Auto-commit**: `git add -A && git commit -m "odyssey-debug({slug}): S_FIX — 修复"`
282
+
283
+ ### Stage 6: Confirmation (S_CONFIRM)
284
+ Skip if `--skip-fix`.
285
+
286
+ 1. **Tests**: auto-detect framework, run covering tests
287
+ 2. **CLI fix review**:
288
+ ```bash
289
+ maestro delegate "PURPOSE: Review fix for: {issue}
290
+ TASK: Verify correctness | Check regressions | Assess completeness
291
+ MODE: analysis
292
+ CONTEXT: @{modified_files} | Root cause: {summary} | Diff: {git_diff}
293
+ EXPECTED: JSON {verdict, findings [{severity, description, suggestion}], regression_risk}
294
+ CONSTRAINTS: Focus on correctness, not style
295
+ " --role review --mode analysis
296
+ ```
297
+ Run_in_background, STOP, wait for callback.
298
+
299
+ 3. Write `session.json.confirmation`: `{test_result, cli_review, overall, timestamp}`
300
+ 4. Update §6. `needs_rework` → Stage 5. `confirmed` → mark G3 done, advance.
301
+
302
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_CONFIRM — 确认"`
303
+
304
+ ### Stage 7: Generalization (S_GENERALIZE)
305
+ Skip if `--skip-generalize`. 举一反三: extract pattern, scan for siblings.
306
+
307
+ **Step 1 — Multi-layer pattern extraction:**
308
+
309
+ | Layer | Method | Example |
310
+ |-------|--------|---------|
311
+ | Syntax | Regex patterns (direct Grep) | `eval(`, missing `await`, unclosed resource |
312
+ | Semantic | Anti-pattern description (Agent scan) | Unhandled async errors, unvalidated input |
313
+ | Structural | Architecture-level similarity | Same import structure, missing override |
314
+
315
+ Write `session.json.patterns[]`: `[{id, source, layer, signature, description, risk, fix_template}]`
316
+
317
+ **Step 2 — 4-agent scan (spawn_agents_on_csv, Wave 2):**
318
+
319
+ Append Wave 2 rows to `tasks.csv`:
320
+ ```csv
321
+ "gen-syntax","Syntax Grep","Grep syntax-layer signatures '${signature}' across project. Return [{file,line,context,risk_level,layer:'syntax',confidence}].","generalization","","2","pending","","",""
322
+ "gen-semantic","Semantic Scan","Check related modules for anti-pattern: ${description}. Return [{file,line,context,risk_level,layer:'semantic',confidence}].","generalization","","2","pending","","",""
323
+ "gen-structural","Structural Match","Find structurally similar files to ${buggy_files}, check for anti-pattern. Return [{file,line,description,risk,layer:'structural',confidence}].","generalization","","2","pending","","",""
324
+ "gen-historical","Historical Grep","Run git log -S '${signature}' --oneline. Return [{sha,file,date,type:'introduced|fixed',context}].","generalization","","2","pending","","",""
325
+ ```
326
+
327
+ ```javascript
328
+ spawn_agents_on_csv({ csv_path:"tasks.csv", id_column:"id",
329
+ instruction: GENERALIZATION_INSTRUCTION + TERMINATION_CONTRACT,
330
+ max_concurrency:4, max_runtime_seconds:300,
331
+ output_csv_path:"wave-2-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
332
+ ```
333
+
334
+ **Step 3 — Cross-layer dedup**: same file:line multi-layer → boost confidence | single-layer → `needs_review` | historical fixed → `regression_risk`
335
+
336
+ **Step 4 — Iterative deepening**: module ≥3 hits → targeted deep scan (max 1 round).
337
+
338
+ **Step 5 — Quality Gate** (self-iteration).
339
+
340
+ **Step 6:** Write §7 + `session.json.generalization_stats`: `{patterns_extracted, total_hits, cross_layer_confirmed, regression_risks, by_layer, deepening_triggered}`. Mark G4 done.
341
+
342
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_GENERALIZE — 泛化"`
343
+
344
+ ### Stage 8: Discovery (S_DISCOVER)
345
+ Skip if no generalization hits.
346
+
347
+ 1. **Triage** each hit: read ±10 lines → classify `safe`/`risk`/`bug`
348
+ 2. **Route**: see Appendix `-y` behavior. Append evidence (phase: "discovery" + "decision")
349
+ 3. **Cross-phase loop**: discovery finds new bug → S_DIAGNOSE (loops < max_loops → cross_phase_loops++); same-pattern bug + fix template → S_FIX; triage complete OR loops >= max_loops → S_RECORD (剩余 → issue)
350
+ 4. Update §8. Mark G5 done.
351
+
352
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_DISCOVER — 发现"`
353
+
354
+ ### Stage 9: Record (S_RECORD)
355
+ 1. Finalize `understanding.md` §9
356
+ 2. **Write learnings** to understanding.md §9: 按 Knowledge Persistence 表分类记录(临时),completion summary 列出建议的后续命令
357
+ 3. Mark G6 done. Pending decisions: Normal → request_user_input | `-y` → show deferred count
358
+ 4. **Goal audit**: all confirmed → `phase_goals_all_done = true`. Any false: Normal → request_user_input (回退/跳过/接受) | `-y` → auto accept
359
+ 5. **Completion**: `current_state = "COMPLETED"`, emit summary:
360
+ ```
361
+ --- DEBUG ODYSSEY COMPLETE ---
362
+ Issue: {issue}
363
+ Root cause: {root_cause.hypothesis}
364
+ Fix: {applied|skipped|inconclusive}
365
+ Patterns: {patterns_extracted} ({by_layer} distribution)
366
+ Scan hits: {total_hits} ({cross_layer_confirmed} cross-layer confirmed)
367
+ Issues: {N} created
368
+ Decisions: {N} resolved, {M} pending, {K} deferred
369
+ Learnings: {N} spec entries persisted
370
+ Self-iter: {N} quality gate rounds across {M} stages
371
+ Goals: {done}/{total} confirmed ({skipped} skipped)
372
+ ---
373
+ ```
374
+
375
+ Next steps: `$manage-issue list --source debug-odyssey`, `$learn-decompose <module>`,
376
+ `$quality-review`, `$learn-second-opinion <understanding.md>`, `$learn-investigate "<question>"`
377
+
378
+ 📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-debug({slug}): S_RECORD — 总结"`
379
+ </execution>
380
+
381
+ <appendix>
382
+
383
+ ### Goal Prompt Template
384
+
385
+ **时机守卫:仅在 Stage 1 完成后显示一次。Stage 9 完成时禁止重新显示。**
386
+
387
+ ```
388
+ 📋 Debug Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
389
+
390
+ /goal 穷尽迭代:直到根因确认(或明确 INCONCLUSIVE)且修复验证通过
391
+ 且泛化扫描穷尽且 phase_goals_all_done=true 才停。
392
+ 假设失败时扩范围→换视角→升级工具,不轻易放弃。
393
+ 泛化发现的同类 bug 全部修复或创建 issue,不允许遗留。
394
+ 遇到 phase=decision 的 pending 必须 request_user_input,不得自行 resolve。
395
+ ```
396
+
397
+ Odyssey 输出提示词后继续执行不阻塞。`/goal` 由用户任意时刻输入。
398
+
399
+ ### `-y` Auto-Confirm Behavior
400
+
401
+ | Decision Point | Normal | `-y` mode |
402
+ |---------------|--------|-----------|
403
+ | Stage 4 ambiguity | request_user_input blocks | record `deferred`, best-effort continue |
404
+ | Stage 4 3-strike | request_user_input 3-way | auto INCONCLUSIVE |
405
+ | Stage 5 fix direction | request_user_input confirm | auto proceed |
406
+ | Stage 8 bug triage | request_user_input route | auto create issue |
407
+ | Stage 8 ambiguous | request_user_input batch | all `deferred` |
408
+ | Stage 9 decisions | request_user_input per-item | skip, show deferred count |
409
+ | Stage 9 goal audit | request_user_input 3-way | auto accept current state |
410
+
411
+ `deferred` items shown as "待决策" in summary; recoverable via `-c`.
412
+
413
+ ### Phase Goal Lifecycle
414
+
415
+ `pending → done (confirmed=true)` normal | `pending → skipped (confirmed=true)` flags/manual | `pending → failed (confirmed=false)` INCONCLUSIVE
416
+
417
+ `phase_goals_all_done = true` only when ALL goals have `completion_confirmed == true`.
418
+
419
+ </appendix>
420
+
421
+ <error_codes>
422
+ | Code | Severity | Condition | Recovery |
423
+ |------|----------|-----------|----------|
424
+ | E001 | error | No issue and no session to resume | Provide issue or use -c |
425
+ | E003 | error | Resume but no session found | Start new session |
426
+ | E004 | error | Delegate execution failed | Retry or proceed without CLI |
427
+ | W001 | warning | No relevant git history | Proceed with limited context |
428
+ | W002 | warning | All hypotheses inconclusive after 3 retries | INCONCLUSIVE |
429
+ | W003 | warning | Generalization scan 0 hits | Skip discovery |
430
+ | W004 | warning | Delegate parse failed | Use raw output |
431
+ | W005 | warning | Pending decisions unresolved | Filter evidence.ndjson phase=decision |
432
+ | W006 | warning | CLI exploration skipped (no tools) | Proceed without explore.json |
433
+ </error_codes>
434
+
435
+ <success_criteria>
436
+ - [ ] Session directory created with 4 output files
437
+ - [ ] Prior knowledge searched (maestro search + sessions + architecture)
438
+ - [ ] Git archaeology (spawn Wave 1) + CLI change review, evidence phase=archaeology
439
+ - [ ] CLI exploration, explore.json written, evidence phase=explore
440
+ - [ ] Hypotheses formed from archaeology + explore, tested and logged phase=diagnosis
441
+ - [ ] Root cause declared with evidence refs
442
+ - [ ] understanding.md tracks all 9 sections progressively
443
+ - [ ] Fix implemented + confirmed with test + CLI review (unless --skip-fix)
444
+ - [ ] Multi-layer patterns extracted (syntax/semantic/structural) (unless --skip-generalize)
445
+ - [ ] 4-agent scan (spawn Wave 2) + cross-layer dedup + iterative deepening
446
+ - [ ] Discoveries classified and routed (fix/issue/decision/skip)
447
+ - [ ] Decision journal: all human-judgment items in evidence.ndjson phase=decision
448
+ - [ ] phase_goals derived from flags, skip_when applied, each phase marks its goal
449
+ - [ ] Goal audit in Stage 9 — unmet goals surfaced, phase_goals_all_done set correctly
450
+ - [ ] Goal Prompt displayed once after session creation
451
+ - [ ] `-y`: all decisions auto-resolve/defer, deferred count in summary
452
+ - [ ] State saved at each transition (resumable via -c)
453
+ - [ ] Quality Gate self-iteration when insufficient, logged in self_iteration_log
454
+ - [ ] Spec entries persisted for reusable learnings
455
+ - [ ] Completion summary with all stats
456
+ </success_criteria>