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.
- package/.agents/skills/insight-challenge/SKILL.md +228 -0
- package/.agents/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agents/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agents/skills/maestro/SKILL.md +6 -6
- package/.agents/skills/maestro-help/SKILL.md +1 -1
- package/.agents/skills/maestro-help/index/catalog.json +3 -2
- package/.agents/skills/maestro-ralph/SKILL.md +11 -10
- package/.agents/skills/maestro-ralph-beta/SKILL.md +11 -10
- package/.agents/skills/odyssey-debug/SKILL.md +475 -0
- package/.agents/skills/odyssey-improve/SKILL.md +507 -0
- package/.agents/skills/odyssey-planex/SKILL.md +603 -0
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +429 -0
- package/.agents/skills/odyssey-ui/SKILL.md +464 -0
- package/.agy/skills/insight-challenge/SKILL.md +230 -0
- package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agy/skills/maestro/SKILL.md +6 -6
- package/.agy/skills/maestro-help/SKILL.md +1 -1
- package/.agy/skills/maestro-help/index/catalog.json +3 -2
- package/.agy/skills/maestro-ralph/SKILL.md +11 -10
- package/.agy/skills/maestro-ralph-beta/SKILL.md +11 -10
- package/.agy/skills/odyssey-debug/SKILL.md +475 -0
- package/.agy/skills/odyssey-improve/SKILL.md +507 -0
- package/.agy/skills/odyssey-planex/SKILL.md +603 -0
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +429 -0
- package/.agy/skills/odyssey-ui/SKILL.md +464 -0
- package/.claude/commands/maestro-ralph-beta.md +11 -10
- package/.claude/commands/maestro-ralph.md +11 -10
- package/.claude/commands/maestro.md +6 -6
- package/.claude/commands/odyssey-debug.md +473 -0
- package/.claude/commands/odyssey-improve.md +505 -0
- package/.claude/commands/odyssey-planex.md +601 -0
- package/.claude/commands/odyssey-review-test-fix.md +427 -0
- package/.claude/commands/odyssey-ui.md +462 -0
- package/.claude/skills/insight-challenge/SKILL.md +226 -0
- package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.claude/skills/maestro-help/SKILL.md +1 -1
- package/.claude/skills/maestro-help/index/catalog.json +3 -2
- package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
- package/.codex/skills/maestro-companion/SKILL.md +1 -1
- package/.codex/skills/maestro-help/SKILL.md +1 -1
- package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
- package/.codex/skills/maestro-next/SKILL.md +1 -1
- package/.codex/skills/maestro-ralph-beta/SKILL.md +1 -1
- package/.codex/skills/odyssey-debug/SKILL.md +456 -0
- package/.codex/skills/odyssey-improve/SKILL.md +466 -0
- package/.codex/skills/odyssey-planex/SKILL.md +409 -0
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
- package/.codex/skills/odyssey-ui/SKILL.md +411 -0
- package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
- package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
- package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
- package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
- package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
- package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
- package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
- package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
- package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
- package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
- package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
- package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
- package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
- package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
- package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
- package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
- package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
- package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
- package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
- package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
- package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
- package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
- package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
- package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
- package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
- package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
- package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
- package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
- package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
- package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
- package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
- package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
- package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
- package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
- package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
- package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
- package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
- package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
- package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
- package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
- package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
- package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
- package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
- package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
- package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
- package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
- package/dashboard/dist-server/src/types/index.d.ts +9 -0
- package/dist/src/cli.js +3 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +50 -8
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/domain.d.ts +9 -0
- package/dist/src/commands/domain.d.ts.map +1 -0
- package/dist/src/commands/domain.js +445 -0
- package/dist/src/commands/domain.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +10 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +132 -22
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +82 -204
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/kg.d.ts.map +1 -1
- package/dist/src/commands/kg.js +183 -90
- package/dist/src/commands/kg.js.map +1 -1
- package/dist/src/commands/search.d.ts +15 -8
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +205 -59
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +9 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +0 -7
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +8 -1
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/commands/workspace.d.ts +12 -0
- package/dist/src/commands/workspace.d.ts.map +1 -0
- package/dist/src/commands/workspace.js +230 -0
- package/dist/src/commands/workspace.js.map +1 -0
- package/dist/src/config/cli-tools-config.d.ts +5 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +31 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/config/index.d.ts +9 -1
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +35 -1
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/core/install-executor.d.ts +31 -0
- package/dist/src/core/install-executor.d.ts.map +1 -0
- package/dist/src/core/install-executor.js +231 -0
- package/dist/src/core/install-executor.js.map +1 -0
- package/dist/src/core/install-profile.d.ts +103 -0
- package/dist/src/core/install-profile.d.ts.map +1 -0
- package/dist/src/core/install-profile.js +225 -0
- package/dist/src/core/install-profile.js.map +1 -0
- package/dist/src/graph/kg/credibility.d.ts +37 -0
- package/dist/src/graph/kg/credibility.d.ts.map +1 -0
- package/dist/src/graph/kg/credibility.js +141 -0
- package/dist/src/graph/kg/credibility.js.map +1 -0
- package/dist/src/graph/kg/db/connection.d.ts +28 -0
- package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
- package/dist/src/graph/kg/db/connection.js +142 -0
- package/dist/src/graph/kg/db/connection.js.map +1 -0
- package/dist/src/graph/kg/db/index.d.ts +5 -0
- package/dist/src/graph/kg/db/index.d.ts.map +1 -0
- package/dist/src/graph/kg/db/index.js +6 -0
- package/dist/src/graph/kg/db/index.js.map +1 -0
- package/dist/src/graph/kg/db/migrations.d.ts +8 -0
- package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
- package/dist/src/graph/kg/db/migrations.js +88 -0
- package/dist/src/graph/kg/db/migrations.js.map +1 -0
- package/dist/src/graph/kg/db/queries.d.ts +84 -0
- package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
- package/dist/src/graph/kg/db/queries.js +471 -0
- package/dist/src/graph/kg/db/queries.js.map +1 -0
- package/dist/src/graph/kg/db/types.d.ts +123 -0
- package/dist/src/graph/kg/db/types.d.ts.map +1 -0
- package/dist/src/graph/kg/db/types.js +75 -0
- package/dist/src/graph/kg/db/types.js.map +1 -0
- package/dist/src/graph/kg/engine.d.ts +87 -0
- package/dist/src/graph/kg/engine.d.ts.map +1 -0
- package/dist/src/graph/kg/engine.js +247 -0
- package/dist/src/graph/kg/engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +40 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js +296 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.js +208 -0
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
- package/dist/src/graph/kg/index.d.ts +29 -0
- package/dist/src/graph/kg/index.d.ts.map +1 -0
- package/dist/src/graph/kg/index.js +35 -0
- package/dist/src/graph/kg/index.js.map +1 -0
- package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
- package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
- package/dist/src/graph/kg/query/context-builder.js +184 -0
- package/dist/src/graph/kg/query/context-builder.js.map +1 -0
- package/dist/src/graph/kg/query/index.d.ts +8 -0
- package/dist/src/graph/kg/query/index.d.ts.map +1 -0
- package/dist/src/graph/kg/query/index.js +6 -0
- package/dist/src/graph/kg/query/index.js.map +1 -0
- package/dist/src/graph/kg/query/scoring.d.ts +19 -0
- package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
- package/dist/src/graph/kg/query/scoring.js +158 -0
- package/dist/src/graph/kg/query/scoring.js.map +1 -0
- package/dist/src/graph/kg/query/search.d.ts +59 -0
- package/dist/src/graph/kg/query/search.d.ts.map +1 -0
- package/dist/src/graph/kg/query/search.js +158 -0
- package/dist/src/graph/kg/query/search.js.map +1 -0
- package/dist/src/graph/kg/query/traversal.d.ts +75 -0
- package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
- package/dist/src/graph/kg/query/traversal.js +420 -0
- package/dist/src/graph/kg/query/traversal.js.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
- package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/index.d.ts +11 -0
- package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/index.js +7 -0
- package/dist/src/graph/kg/resolution/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
- package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
- package/dist/src/graph/kg/schema.sql +210 -0
- package/dist/src/graph/kg/surface/cli.d.ts +3 -0
- package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/cli.js +500 -0
- package/dist/src/graph/kg/surface/cli.js.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.js +172 -0
- package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
- package/dist/src/graph/kg/surface/index.d.ts +6 -0
- package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/index.js +5 -0
- package/dist/src/graph/kg/surface/index.js.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
- package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
- package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
- package/dist/src/graph/kg/sync/index.d.ts +5 -0
- package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/index.js +4 -0
- package/dist/src/graph/kg/sync/index.js.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.js +90 -0
- package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +0 -2
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +0 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +157 -81
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/kg-auto-init.d.ts +13 -0
- package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
- package/dist/src/hooks/kg-auto-init.js +38 -0
- package/dist/src/hooks/kg-auto-init.js.map +1 -0
- package/dist/src/hooks/kg-context-injector.d.ts +1 -3
- package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
- package/dist/src/hooks/kg-context-injector.js +12 -17
- package/dist/src/hooks/kg-context-injector.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +21 -90
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/hooks/spec-analytics.d.ts +1 -0
- package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
- package/dist/src/hooks/spec-analytics.js +1 -3
- package/dist/src/hooks/spec-analytics.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +65 -1
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +52 -9
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +52 -9
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +40 -4
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
- package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
- package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
- package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
- package/dist/src/tools/domain-loader.d.ts +63 -0
- package/dist/src/tools/domain-loader.d.ts.map +1 -0
- package/dist/src/tools/domain-loader.js +295 -0
- package/dist/src/tools/domain-loader.js.map +1 -0
- package/dist/src/tools/domain-matcher.d.ts +24 -0
- package/dist/src/tools/domain-matcher.d.ts.map +1 -0
- package/dist/src/tools/domain-matcher.js +117 -0
- package/dist/src/tools/domain-matcher.js.map +1 -0
- package/dist/src/tools/domain-scanner.d.ts +32 -0
- package/dist/src/tools/domain-scanner.d.ts.map +1 -0
- package/dist/src/tools/domain-scanner.js +263 -0
- package/dist/src/tools/domain-scanner.js.map +1 -0
- package/dist/src/tools/domain-schema.d.ts +18 -0
- package/dist/src/tools/domain-schema.d.ts.map +1 -0
- package/dist/src/tools/domain-schema.js +104 -0
- package/dist/src/tools/domain-schema.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +1 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +5 -0
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +10 -2
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
- package/dist/src/tui/install-ui/GroupedHub.js +210 -0
- package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/HooksConfig.js +83 -18
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +89 -260
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +45 -267
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +2 -4
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +1 -5
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/tui/install-ui/index.d.ts +5 -1
- package/dist/src/tui/install-ui/index.d.ts.map +1 -1
- package/dist/src/tui/install-ui/index.js +1 -0
- package/dist/src/tui/install-ui/index.js.map +1 -1
- package/dist/src/tui/install-ui/types.d.ts +39 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -1
- package/dist/src/tui/install-ui/types.js +1 -1
- package/dist/src/tui/install-ui/types.js.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
- package/dist/src/tui/shared/components.d.ts +4 -0
- package/dist/src/tui/shared/components.d.ts.map +1 -1
- package/dist/src/tui/shared/components.js +4 -0
- package/dist/src/tui/shared/components.js.map +1 -1
- package/dist/src/tui/shared/index.d.ts +1 -1
- package/dist/src/tui/shared/index.d.ts.map +1 -1
- package/dist/src/tui/shared/index.js +1 -1
- package/dist/src/tui/shared/index.js.map +1 -1
- package/dist/src/tui/shared/tokens.d.ts +5 -5
- package/dist/src/tui/shared/tokens.js +5 -5
- package/dist/src/tui/shared/tokens.js.map +1 -1
- package/dist/src/types/index.d.ts +9 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/cli-format.d.ts +2 -1
- package/dist/src/utils/cli-format.d.ts.map +1 -1
- package/dist/src/utils/cli-format.js +14 -3
- package/dist/src/utils/cli-format.js.map +1 -1
- package/dist/src/utils/cooldown-guard.d.ts +17 -0
- package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
- package/dist/src/utils/cooldown-guard.js +59 -0
- package/dist/src/utils/cooldown-guard.js.map +1 -0
- package/dist/src/utils/jsonl-log.d.ts.map +1 -1
- package/dist/src/utils/jsonl-log.js +2 -1
- package/dist/src/utils/jsonl-log.js.map +1 -1
- package/dist/src/utils/update-notices.js +17 -4
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +4 -5
- package/workflows/claude-instructions.md +23 -0
- package/workflows/codex-instructions.md +22 -0
- package/workflows/finish-work.md +25 -0
- package/workflows/updates/update-v3-setup.md +7 -15
- package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
- package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
- package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
- package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
- package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
|
@@ -0,0 +1,466 @@
|
|
|
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: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Deep codebase improvement: survey (dependency + complexity baseline) -> audit (6 dimensions) ->
|
|
10
|
+
diagnose (root cause analysis) -> fix -> verify -> generalize -> discover -> record.
|
|
11
|
+
|
|
12
|
+
Unlike `$quality-review` (single pass), this is a persistent session with evidence trails,
|
|
13
|
+
baseline metrics, iterative improvement, and codebase-wide generalization. `--skip-fix` for audit-only.
|
|
14
|
+
|
|
15
|
+
Focuses on **program runtime quality** — performance, security, architecture, reliability,
|
|
16
|
+
observability, maintainability. Combines static analysis with runtime-aware reasoning.
|
|
17
|
+
|
|
18
|
+
Core philosophy:
|
|
19
|
+
- **Measure before improving** — baseline first, then optimize
|
|
20
|
+
- **Root cause over symptom** — trace each issue to its origin
|
|
21
|
+
- **Fix one, improve many** — every improvement reveals a class of opportunities
|
|
22
|
+
- **Verify improvement** — measure after fix, compare with baseline
|
|
23
|
+
|
|
24
|
+
**三句哲学约束(穷尽迭代):**
|
|
25
|
+
1. **零遗留** — 每个 finding 必须是 action item(修复 / issue / 决策),不允许只报告不处理
|
|
26
|
+
2. **穷尽迭代** — 按 severity 从高到低逐轮修复,直到 0 remaining actionable findings 才退出 fix loop
|
|
27
|
+
3. **改进即标准** — 每次修复后重审同区域,发现新问题继续修,直到该区域无可改善
|
|
28
|
+
</purpose>
|
|
29
|
+
|
|
30
|
+
<boundary>
|
|
31
|
+
**范围内:** 目标代码运行质量提升 — 性能/安全/架构/可靠性/可观测性/可维护性
|
|
32
|
+
**范围外:** UI → `$odyssey-ui` | 新功能 → `$odyssey-planex` | 单一 bug → `$odyssey-debug` | 代码审查 → `$odyssey-review-test-fix`
|
|
33
|
+
**探索自由度:** profiling、安全扫描、架构分析、依赖审计,在约束下尽可能发现深层问题
|
|
34
|
+
</boundary>
|
|
35
|
+
|
|
36
|
+
<execution_discipline>
|
|
37
|
+
**三条铁律(所有阶段适用):**
|
|
38
|
+
1. **Phase auto-commit** — 阶段完成后**自动** `git commit`,无需用户确认(session.json/evidence.ndjson 不纳入)
|
|
39
|
+
2. **有把握才改** — 确定性高→改代码 commit;不确定→记录 `evidence.ndjson {"phase":"decision","status":"pending"}` 不改代码
|
|
40
|
+
3. **多 CLI 辅助** — `maestro delegate` 多 `--role`(analyze/review/explore)交叉验证关键判断
|
|
41
|
+
</execution_discipline>
|
|
42
|
+
|
|
43
|
+
<context>
|
|
44
|
+
$ARGUMENTS — target and optional flags.
|
|
45
|
+
|
|
46
|
+
**Target resolution:**
|
|
47
|
+
| Input | Resolution |
|
|
48
|
+
|-------|-----------|
|
|
49
|
+
| Module/directory path | Analyze those source files |
|
|
50
|
+
| Package name | Resolve to source directory |
|
|
51
|
+
| `HEAD` / `staged` | `git diff HEAD` / `git diff --staged` (source files only) |
|
|
52
|
+
| Feature area keyword | Grep for keyword, collect relevant source files |
|
|
53
|
+
|
|
54
|
+
**Flags:**
|
|
55
|
+
| Flag | Effect |
|
|
56
|
+
|------|--------|
|
|
57
|
+
| `--dimensions <list>` | Comma-separated subset (default: all 6) |
|
|
58
|
+
| `--skip-fix` | Audit-only — skip S_FIX and S_VERIFY |
|
|
59
|
+
| `--skip-generalize` | Skip S_GENERALIZE and S_DISCOVER |
|
|
60
|
+
| `--auto` | CLI delegates without confirmation |
|
|
61
|
+
| `-y` | Auto-confirm at all decision points (see appendix) |
|
|
62
|
+
| `-c` | Resume most recent session |
|
|
63
|
+
|
|
64
|
+
**Dimensions (6):**
|
|
65
|
+
1. **performance** — hot paths, N+1 queries, memory leaks, cache misses, bundle size
|
|
66
|
+
2. **security** — OWASP Top 10, injection, auth bypass, data exposure, dependency vulns
|
|
67
|
+
3. **architecture** — layer violations, circular deps, coupling, interface design, SRP
|
|
68
|
+
4. **reliability** — error handling, retry logic, timeout config, graceful degradation, resource cleanup
|
|
69
|
+
5. **observability** — logging coverage, metrics, traces, error reporting, health checks
|
|
70
|
+
6. **maintainability** — cyclomatic complexity, dead code, coverage gaps, doc debt
|
|
71
|
+
|
|
72
|
+
**Session**: `SESSION_DIR = .workflow/scratch/{YYYYMMDD}-improve-odyssey-{slug}/`
|
|
73
|
+
|
|
74
|
+
**Output — 3 files:**
|
|
75
|
+
```
|
|
76
|
+
SESSION_DIR/
|
|
77
|
+
├── session.json # state + baseline + audit_result + diagnoses + patterns + phase_goals
|
|
78
|
+
├── evidence.ndjson # ALL evidence (phase: survey|audit|diagnose|fix|discovery|decision|self-iteration)
|
|
79
|
+
└── understanding.md # 9-section evolving narrative (§1-§9, one per major phase)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**session.json schema:**
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"session_id": "improve-odyssey-{YYYYMMDD-HHmmss}",
|
|
86
|
+
"target": "", "dimensions": [],
|
|
87
|
+
"flags": { "skip_fix": false, "skip_generalize": false, "auto": false, "auto_confirm": false },
|
|
88
|
+
"current_state": "S_INTAKE",
|
|
89
|
+
"baseline_metrics": {},
|
|
90
|
+
"audit_result": { "dimensions_audited": [], "finding_count": 0, "severity_distribution": {} },
|
|
91
|
+
"diagnoses": [],
|
|
92
|
+
"patterns": [],
|
|
93
|
+
"generalization_stats": null,
|
|
94
|
+
"phase_goals": [], "phase_goals_all_done": false,
|
|
95
|
+
"self_iteration_log": [],
|
|
96
|
+
"cross_phase_loops": 0, "max_loops": 3,
|
|
97
|
+
"created_at": "", "updated_at": ""
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**evidence.ndjson:** `{"ts":"","phase":"survey|audit|diagnose|fix|discovery|decision|self-iteration","type":"","dimension":"","title":"","severity":"","file":"","line":0,"description":"","suggestion":"","metrics":{}}`
|
|
102
|
+
|
|
103
|
+
**phase_goals[] — auto-derived from flags:**
|
|
104
|
+
|
|
105
|
+
| ID | Goal | Phase | skip_when |
|
|
106
|
+
|----|------|-------|-----------|
|
|
107
|
+
| G1 | Survey completed | S_SURVEY | — |
|
|
108
|
+
| G2 | Audit completed | S_AUDIT | — |
|
|
109
|
+
| G3 | Diagnosis completed | S_DIAGNOSE | — |
|
|
110
|
+
| G4 | Fix applied and verified | S_VERIFY | skip_fix |
|
|
111
|
+
| G5 | Pattern generalized | S_GENERALIZE | skip_generalize |
|
|
112
|
+
| G6 | Discoveries triaged | S_DISCOVER | skip_generalize |
|
|
113
|
+
| G7 | Learnings persisted | S_RECORD | — |
|
|
114
|
+
|
|
115
|
+
Lifecycle: `pending -> done | skipped | failed` (all set `completion_confirmed`)
|
|
116
|
+
|
|
117
|
+
**understanding.md — 9 sections:**
|
|
118
|
+
§1 Target & Baseline (S_INTAKE) | §2 Survey (S_SURVEY) | §3 Audit Findings (S_AUDIT) |
|
|
119
|
+
§4 Root Cause Diagnosis (S_DIAGNOSE) | §5 Fix & Verification (S_FIX+S_VERIFY) |
|
|
120
|
+
§6 Generalization (S_GENERALIZE) | §7 Discoveries (S_DISCOVER) |
|
|
121
|
+
§8 Improvement Metrics (S_RECORD) | §9 Engineering Learnings (S_RECORD)
|
|
122
|
+
|
|
123
|
+
### Pre-load
|
|
124
|
+
|
|
125
|
+
| Layer | Command | Purpose |
|
|
126
|
+
|-------|---------|---------|
|
|
127
|
+
| Codebase docs | Read `.workflow/codebase/ARCHITECTURE.md` | Module boundaries |
|
|
128
|
+
| Wiki search | `maestro search "<target keywords>" --json` | Prior investigations (top 5) |
|
|
129
|
+
| Specs | `maestro spec load --category coding --keyword "<target>"` | Coding conventions |
|
|
130
|
+
| Debug specs | `maestro spec load --category debug` | Known issues, workarounds |
|
|
131
|
+
| Role knowledge | `maestro search --category arch` -> select -> `maestro wiki load <id>` | Domain knowledge |
|
|
132
|
+
| Prior sessions | `Glob(".workflow/scratch/*-improve-odyssey-*")` | Related sessions |
|
|
133
|
+
|
|
134
|
+
### Knowledge Persistence (two-step model)
|
|
135
|
+
|
|
136
|
+
Write to understanding.md §9 during execution (temporary). Completion summary suggests follow-up commands.
|
|
137
|
+
|
|
138
|
+
| Category | Content | Follow-up |
|
|
139
|
+
|----------|---------|-----------|
|
|
140
|
+
| Recurring root cause | Pattern + trigger + fix template | `$spec-add debug "..."` |
|
|
141
|
+
| Non-obvious workaround | Problem + solution + scope | `$spec-add learning "..."` |
|
|
142
|
+
| Architecture violation | Violation + correct boundary + check method | `$spec-add arch "..."` |
|
|
143
|
+
| Reusable pattern | Pattern signature + risk + fix template | `$spec-add coding "..."` |
|
|
144
|
+
|
|
145
|
+
**Two-step:** Execute writes to output files (temporary) -> completion suggests permanent knowledge capture commands. No external skill calls during execution.
|
|
146
|
+
</context>
|
|
147
|
+
|
|
148
|
+
<self_iteration>
|
|
149
|
+
**Quality Gate** — auto-evaluate after each analytical phase. Insufficient -> re-enter (max 2 rounds).
|
|
150
|
+
|
|
151
|
+
| Dimension | Sufficient | Insufficient |
|
|
152
|
+
|-----------|-----------|-------------|
|
|
153
|
+
| Coverage | All known related files/modules analyzed | Missed targets discoverable via grep/glob |
|
|
154
|
+
| Depth | >=80% findings have file:line evidence | Most findings lack specifics |
|
|
155
|
+
| Actionability | Each conclusion has concrete next action | "Consider reviewing" without action |
|
|
156
|
+
|
|
157
|
+
**Expansion:** Round 1 = widen scope (more directories, deeper dependency analysis, additional delegate angles). Round 2 = shift perspective (different CLI tool, reverse trace, manual code reading).
|
|
158
|
+
|
|
159
|
+
**Applicable stages:** S_SURVEY, S_AUDIT, S_DIAGNOSE, S_GENERALIZE
|
|
160
|
+
|
|
161
|
+
**Exit:** All sufficient -> advance | 2-round cap -> record gap, continue. Logged to `evidence.ndjson` + `session.json.self_iteration_log[]`.
|
|
162
|
+
</self_iteration>
|
|
163
|
+
|
|
164
|
+
<csv_schema>
|
|
165
|
+
|
|
166
|
+
### Shared Output Schema (all waves)
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"type": "object",
|
|
170
|
+
"properties": {
|
|
171
|
+
"id": { "type": "string" },
|
|
172
|
+
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
173
|
+
"findings": { "type": "string", "maxLength": 500 },
|
|
174
|
+
"evidence": { "type": "string" },
|
|
175
|
+
"error": { "type": "string" }
|
|
176
|
+
},
|
|
177
|
+
"required": ["id", "result_status", "findings"]
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Termination contract:** Call `report_agent_job_result` EXACTLY ONCE. Read-only. Do NOT modify source files, tasks.csv, wave-*.csv, results.csv, or call spawn_agents_on_csv.
|
|
182
|
+
|
|
183
|
+
### tasks.csv
|
|
184
|
+
```csv
|
|
185
|
+
id,title,description,task_type,dimension,deps,wave,status,findings,evidence,error
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Waves:**
|
|
189
|
+
| Wave | Tasks | Parallelism |
|
|
190
|
+
|------|-------|-------------|
|
|
191
|
+
| 1 | Survey (dependency-audit, complexity-scan) | 2 agents |
|
|
192
|
+
| 2 | Audit (performance, security, architecture, reliability, observability, maintainability) | 6 agents |
|
|
193
|
+
| 3 | Generalization (syntax-grep, semantic-scan, structural-match, historical-grep) | 4 agents |
|
|
194
|
+
</csv_schema>
|
|
195
|
+
|
|
196
|
+
<invariants>
|
|
197
|
+
1. **Measure before improve** — baseline metrics MUST precede any fix
|
|
198
|
+
2. **Root cause over symptom** — NO FIX without diagnosis evidence
|
|
199
|
+
3. **Evidence append-only** — evidence.ndjson is never overwritten
|
|
200
|
+
4. **Session is source of truth** — session.json holds all state
|
|
201
|
+
5. **Phase goal tracking** — each stage MUST mark its goal on completion
|
|
202
|
+
6. **`-y` defers, never drops** — auto-confirm records `deferred`, never silently skips
|
|
203
|
+
7. **CLI delegate is background** — all `maestro delegate` calls use run_in_background
|
|
204
|
+
8. **Goal is outcome-oriented** — odyssey outputs prompt then continues
|
|
205
|
+
9. **Verify improvement** — post-fix metrics MUST be compared with baseline
|
|
206
|
+
10. **Decision journal integrity** — all human-judgment items recorded phase=decision
|
|
207
|
+
11. **Resumable state** — current_state saved at every transition
|
|
208
|
+
12. **Invariant violation = BLOCK** — violating any invariant blocks the operation
|
|
209
|
+
</invariants>
|
|
210
|
+
|
|
211
|
+
<execution>
|
|
212
|
+
|
|
213
|
+
**States:** S_INTAKE -> S_SURVEY -> S_AUDIT -> S_DIAGNOSE -> S_FIX -> S_VERIFY -> S_GENERALIZE -> S_DISCOVER -> S_RECORD
|
|
214
|
+
- S_FIX/S_VERIFY skip when `--skip-fix`
|
|
215
|
+
- S_GENERALIZE/S_DISCOVER skip when `--skip-generalize`
|
|
216
|
+
|
|
217
|
+
**Cross-phase loops:**
|
|
218
|
+
- S_DIAGNOSE -> S_DIAGNOSE (hypothesis retry, max 3)
|
|
219
|
+
- S_VERIFY -> S_FIX (rework on failed verification)
|
|
220
|
+
- S_DISCOVER -> S_DIAGNOSE (new critical issue found, loops < max_loops)
|
|
221
|
+
- S_DISCOVER -> S_FIX (same-pattern fix with template, loops < max_loops)
|
|
222
|
+
- S_DISCOVER -> S_RECORD (complete or budget exhausted)
|
|
223
|
+
|
|
224
|
+
### S_INTAKE
|
|
225
|
+
1. Parse target + flags -> resolve file list
|
|
226
|
+
2. Generate slug, create `SESSION_DIR`
|
|
227
|
+
3. Search prior knowledge: `maestro search "<keywords>"` + Glob prior sessions + ARCHITECTURE.md + spec load (coding, debug)
|
|
228
|
+
4. Derive `phase_goals[]` from flags (apply `skip_when`)
|
|
229
|
+
5. Write `session.json` + `understanding.md` §1
|
|
230
|
+
6. Display Goal Prompt (appendix), continue without blocking
|
|
231
|
+
|
|
232
|
+
**Resume (`-c`):** Glob latest session -> read `session.json` -> restore `current_state` -> jump.
|
|
233
|
+
|
|
234
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_INTAKE — 目标解析"`
|
|
235
|
+
|
|
236
|
+
### S_SURVEY
|
|
237
|
+
**spawn_agents_on_csv (Wave 1):**
|
|
238
|
+
|
|
239
|
+
Write `tasks.csv` with Wave 1 rows:
|
|
240
|
+
```csv
|
|
241
|
+
"survey-deps","Dependency Audit","Analyze dependencies for {target_files}: package versions, known CVEs, unused deps, circular imports, dep depth. Return [{dep,version,issue_type,severity,detail}].","survey","","","1","pending","","",""
|
|
242
|
+
"survey-complexity","Complexity Scan","Measure complexity for {target_files}: cyclomatic complexity, function length, nesting depth, file size, export count. Return [{file,metric,value,threshold,status}].","survey","","","1","pending","","",""
|
|
243
|
+
```
|
|
244
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:2, max_runtime_seconds:300, output_csv_path:"wave-1-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
245
|
+
|
|
246
|
+
Merge -> evidence.ndjson (phase: "survey"). Extract `baseline_metrics` from survey results. Update §2. Mark G1 done.
|
|
247
|
+
|
|
248
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_SURVEY — 调查"`
|
|
249
|
+
|
|
250
|
+
### S_AUDIT
|
|
251
|
+
**spawn_agents_on_csv (Wave 2)** — 6 agents (one per dimension):
|
|
252
|
+
|
|
253
|
+
Append Wave 2 rows to `tasks.csv`:
|
|
254
|
+
```csv
|
|
255
|
+
"audit-perf","Performance","Hot paths, N+1 queries, memory allocation, cache strategy, bundle analysis, lazy loading for {target_files}","audit","performance","","2","pending","","",""
|
|
256
|
+
"audit-security","Security","OWASP Top 10: injection, broken auth, data exposure, XXE, access control, misconfig, XSS, deserialization, deps, logging for {target_files}","audit","security","","2","pending","","",""
|
|
257
|
+
"audit-arch","Architecture","Layer boundaries, circular deps, coupling metrics, interface contracts, SRP compliance, dependency direction for {target_files}","audit","architecture","","2","pending","","",""
|
|
258
|
+
"audit-reliability","Reliability","Error handling completeness, retry logic, timeout config, circuit breakers, graceful degradation, resource cleanup for {target_files}","audit","reliability","","2","pending","","",""
|
|
259
|
+
"audit-observability","Observability","Logging coverage, structured logs, metrics emission, trace propagation, error reporting, health endpoints for {target_files}","audit","observability","","2","pending","","",""
|
|
260
|
+
"audit-maintain","Maintainability","Dead code, complex conditionals, test coverage gaps, magic numbers, naming clarity, doc debt for {target_files}","audit","maintainability","","2","pending","","",""
|
|
261
|
+
```
|
|
262
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:6, max_runtime_seconds:600, output_csv_path:"wave-2-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
263
|
+
|
|
264
|
+
Merge -> evidence.ndjson (phase: "audit"). Write `audit_result` with dimensions audited, finding count, severity distribution. Update §3. Mark G2 done.
|
|
265
|
+
|
|
266
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_AUDIT — 审查"`
|
|
267
|
+
|
|
268
|
+
### S_DIAGNOSE
|
|
269
|
+
Root cause analysis for top audit findings (severity >= high).
|
|
270
|
+
|
|
271
|
+
1. **Rank findings** from audit, group by root cause pattern
|
|
272
|
+
2. **CLI deep analysis** for top finding clusters:
|
|
273
|
+
```bash
|
|
274
|
+
maestro delegate "PURPOSE: Root cause analysis for codebase quality issues in {target}
|
|
275
|
+
TASK: Trace origin of each finding | Identify shared root causes | Map dependency chains | Assess blast radius
|
|
276
|
+
MODE: analysis
|
|
277
|
+
CONTEXT: @{target_files} | Audit findings: {top_findings_json}
|
|
278
|
+
EXPECTED: JSON [{finding_ids, root_cause, origin_file, origin_line, blast_radius, fix_approach, confidence}]
|
|
279
|
+
CONSTRAINTS: Trace to origin, not just symptoms | Group related findings
|
|
280
|
+
" --role analyze --mode analysis
|
|
281
|
+
```
|
|
282
|
+
Run_in_background, STOP, wait for callback.
|
|
283
|
+
|
|
284
|
+
3. **Hypothesis testing**: for each root cause — design verification -> execute -> evidence (phase: "diagnose")
|
|
285
|
+
4. **Decision journal**: ambiguity -> evidence (phase: "decision"); Normal: request_user_input | `-y`: defer
|
|
286
|
+
5. **Confirmed diagnoses** -> `session.json.diagnoses[]`: `[{id, finding_ids, root_cause, evidence_refs, confidence, fix_approach}]`
|
|
287
|
+
|
|
288
|
+
**Escalation (3-strike):** Hypothesis fails -> retry with broader scope via `maestro delegate --role explore`. After 3 retries: Normal -> request_user_input | `-y` -> mark INCONCLUSIVE, proceed.
|
|
289
|
+
|
|
290
|
+
Update §4. Mark G3 done.
|
|
291
|
+
|
|
292
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_DIAGNOSE — 诊断"`
|
|
293
|
+
|
|
294
|
+
### S_FIX
|
|
295
|
+
Skip if `--skip-fix`.
|
|
296
|
+
|
|
297
|
+
1. Present diagnoses + proposed fixes, prioritized by blast radius. Normal: `request_user_input` to confirm. `-y`: auto proceed.
|
|
298
|
+
2. Implement fixes in priority order (highest blast radius first)
|
|
299
|
+
3. Record each fix in evidence (phase: "fix" + "decision")
|
|
300
|
+
4. Update §5
|
|
301
|
+
|
|
302
|
+
📌 **Auto-commit**: `git add -A && git commit -m "odyssey-improve({slug}): S_FIX — 修复"`
|
|
303
|
+
|
|
304
|
+
### S_VERIFY
|
|
305
|
+
Skip if `--skip-fix`.
|
|
306
|
+
|
|
307
|
+
1. **Tests**: auto-detect framework, run covering tests on modified files
|
|
308
|
+
2. **CLI fix review**:
|
|
309
|
+
```bash
|
|
310
|
+
maestro delegate "PURPOSE: Verify improvement fixes for: {target}
|
|
311
|
+
TASK: Check correctness | Assess regression risk | Verify no new issues introduced | Compare metrics
|
|
312
|
+
MODE: analysis
|
|
313
|
+
CONTEXT: @{modified_files} | Diagnoses: {summary} | Diff: {git_diff} | Baseline: {baseline_metrics}
|
|
314
|
+
EXPECTED: JSON {verdict, findings [{severity, description, suggestion}], regression_risk, metrics_comparison}
|
|
315
|
+
CONSTRAINTS: Focus on correctness and measurable improvement
|
|
316
|
+
" --role review --mode analysis
|
|
317
|
+
```
|
|
318
|
+
Run_in_background, STOP, wait for callback.
|
|
319
|
+
|
|
320
|
+
3. **Metrics comparison**: measure post-fix metrics, compare with `baseline_metrics`
|
|
321
|
+
4. `needs_rework` -> S_FIX (loop). `confirmed` -> mark G4 done, advance
|
|
322
|
+
5. Update §5 with before/after metrics
|
|
323
|
+
|
|
324
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_VERIFY — 验证"`
|
|
325
|
+
|
|
326
|
+
### S_GENERALIZE
|
|
327
|
+
Skip if `--skip-generalize`. Extract patterns from confirmed diagnoses, scan for siblings.
|
|
328
|
+
|
|
329
|
+
**Step 1 — Multi-layer pattern extraction:**
|
|
330
|
+
|
|
331
|
+
| Layer | Method | Example |
|
|
332
|
+
|-------|--------|---------|
|
|
333
|
+
| Syntax | Regex patterns (direct Grep) | Missing `await`, unclosed resources, `catch {}` empty |
|
|
334
|
+
| Semantic | Agent anti-pattern scan | Unvalidated input, missing error boundary, no timeout |
|
|
335
|
+
| Structural | Architecture-level similarity | Same import structure, identical anti-pattern |
|
|
336
|
+
| Historical | Git log for pattern introduction | When pattern was introduced, if ever fixed |
|
|
337
|
+
|
|
338
|
+
Write `session.json.patterns[]`: `[{id, source_diagnosis, layer, signature, description, risk, fix_template}]`
|
|
339
|
+
|
|
340
|
+
**Step 2 — 4-agent scan (spawn_agents_on_csv, Wave 3):**
|
|
341
|
+
|
|
342
|
+
Append Wave 3 rows to `tasks.csv`:
|
|
343
|
+
```csv
|
|
344
|
+
"gen-syntax","Syntax Grep","Grep syntax-layer signatures '${signatures}' across project. Return [{file,line,context,risk_level,layer:'syntax',confidence}].","generalization","syntax","","3","pending","","",""
|
|
345
|
+
"gen-semantic","Semantic Scan","Check related modules for anti-pattern: ${description}. Return [{file,line,context,risk_level,layer:'semantic',confidence}].","generalization","semantic","","3","pending","","",""
|
|
346
|
+
"gen-structural","Structural Match","Find structurally similar files to ${diagnosed_files}, check for same anti-pattern. Return [{file,line,description,risk,layer:'structural',confidence}].","generalization","structural","","3","pending","","",""
|
|
347
|
+
"gen-historical","Historical Grep","Run git log -S '${signature}' --oneline. Return [{sha,file,date,type:'introduced|fixed',context}].","generalization","historical","","3","pending","","",""
|
|
348
|
+
```
|
|
349
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:4, max_runtime_seconds:300, output_csv_path:"wave-3-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
350
|
+
|
|
351
|
+
**Step 3 — Cross-layer dedup**: same file:line multi-layer -> boost confidence | single-layer -> `needs_review` | historical fixed -> `regression_risk`
|
|
352
|
+
|
|
353
|
+
**Step 4 — Iterative deepening**: module >= 3 hits -> targeted deep scan (max 1 round).
|
|
354
|
+
|
|
355
|
+
**Step 5 — Quality Gate** (self-iteration).
|
|
356
|
+
|
|
357
|
+
**Step 6:** Write `generalization_stats`: `{patterns_extracted, total_hits, cross_layer_confirmed, regression_risks, by_layer, deepening_triggered}`. Update §6. Mark G5 done.
|
|
358
|
+
|
|
359
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_GENERALIZE — 泛化"`
|
|
360
|
+
|
|
361
|
+
### S_DISCOVER
|
|
362
|
+
Skip if no generalization hits.
|
|
363
|
+
|
|
364
|
+
1. **Triage** each hit: read +-10 lines -> classify `safe` / `risk` / `bug`
|
|
365
|
+
2. **Route**: see appendix `-y` behavior. Append evidence (phase: "discovery" + "decision")
|
|
366
|
+
3. **Cross-phase loop**: discovery finds new critical issue -> S_DIAGNOSE (loops < max_loops -> cross_phase_loops++); same-pattern with fix template -> S_FIX (!skip_fix, loops < max_loops); triage complete OR loops >= max_loops -> S_RECORD (remaining -> issue)
|
|
367
|
+
4. Update §7. Mark G6 done.
|
|
368
|
+
|
|
369
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_DISCOVER — 发现"`
|
|
370
|
+
|
|
371
|
+
### S_RECORD
|
|
372
|
+
1. Finalize §8: before/after metrics comparison table
|
|
373
|
+
2. Write §9: structured by Knowledge Persistence table (temporary)
|
|
374
|
+
3. Mark G7 done. Pending decisions: **Normal** -> `request_user_input`. **`-y`** -> skip, show deferred count
|
|
375
|
+
4. **Goal audit**: all confirmed -> `phase_goals_all_done = true`. Any false: **Normal** -> `request_user_input` (回退/跳过/接受). **`-y`** -> auto accept
|
|
376
|
+
5. **Completion**: `current_state = "COMPLETED"`, emit summary:
|
|
377
|
+
```
|
|
378
|
+
--- IMPROVE ODYSSEY COMPLETE ---
|
|
379
|
+
Target: {target}
|
|
380
|
+
Dimensions: {audited_list}
|
|
381
|
+
Baseline: {baseline_summary}
|
|
382
|
+
Audit: {C}C {H}H {M}M {L}L across {dim_count} dimensions
|
|
383
|
+
Diagnoses: {N} root causes ({confirmed} confirmed, {inconclusive} inconclusive)
|
|
384
|
+
Fix: {F} applied, {S} skipped | Before: {baseline} -> After: {post_fix}
|
|
385
|
+
Patterns: {N} extracted ({by_layer} distribution)
|
|
386
|
+
Scan: {total} hits ({cross_layer} cross-layer confirmed)
|
|
387
|
+
Issues: {N} created
|
|
388
|
+
Decisions: {resolved}/{pending}/{deferred}
|
|
389
|
+
Self-iter: {R} quality gate rounds across {P} stages
|
|
390
|
+
Goals: {done}/{total} ({skipped} skipped)
|
|
391
|
+
---
|
|
392
|
+
```
|
|
393
|
+
**Next steps:** `$manage-issue list --source improve-odyssey`, `$learn-decompose <module>`,
|
|
394
|
+
`$quality-review`, `$learn-second-opinion <understanding.md>`, `$learn-investigate "<question>"`
|
|
395
|
+
|
|
396
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-improve({slug}): S_RECORD — 总结"`
|
|
397
|
+
</execution>
|
|
398
|
+
|
|
399
|
+
<appendix>
|
|
400
|
+
|
|
401
|
+
### Goal Prompt Template
|
|
402
|
+
|
|
403
|
+
**Time guard: display ONCE after S_INTAKE completes (session created, before survey). NEVER redisplay at S_RECORD completion.**
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
Improve Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
|
|
407
|
+
|
|
408
|
+
/goal 穷尽迭代:直到所有 findings 均已处理(fix/issue/decision)
|
|
409
|
+
且 phase_goals_all_done=true 才停。修复按 severity 逐轮迭代,每轮修复后 re-verify。
|
|
410
|
+
Baseline metrics 必须在修复前采集,修复后必须与 baseline 对比。
|
|
411
|
+
不允许"只报告不处理"。遇到 phase=decision 的 pending 必须 request_user_input。
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
Odyssey outputs prompt then continues without blocking. `/goal` entered by user at any time.
|
|
415
|
+
|
|
416
|
+
### `-y` Auto-Confirm Behavior
|
|
417
|
+
|
|
418
|
+
| Decision Point | Normal | `-y` mode |
|
|
419
|
+
|----------------|--------|-----------|
|
|
420
|
+
| S_DIAGNOSE ambiguity | request_user_input blocks | record `deferred`, best-effort continue |
|
|
421
|
+
| S_DIAGNOSE 3-strike | request_user_input 3-way | auto INCONCLUSIVE |
|
|
422
|
+
| S_FIX fix direction | request_user_input confirm | auto proceed by priority |
|
|
423
|
+
| S_DISCOVER bug triage | request_user_input per hit | auto create issue |
|
|
424
|
+
| S_DISCOVER ambiguous | request_user_input batch | all `deferred` |
|
|
425
|
+
| S_RECORD pending decisions | request_user_input per-item | skip, show deferred count |
|
|
426
|
+
|
|
427
|
+
`deferred` items shown as "待决策" in summary; recoverable via `-c`.
|
|
428
|
+
|
|
429
|
+
### Phase Goal Lifecycle
|
|
430
|
+
|
|
431
|
+
`pending -> done (confirmed=true)` normal | `pending -> skipped (confirmed=true)` flags/manual | `pending -> failed (confirmed=false)` incomplete
|
|
432
|
+
|
|
433
|
+
`phase_goals_all_done = true` only when ALL goals have `completion_confirmed == true`.
|
|
434
|
+
|
|
435
|
+
</appendix>
|
|
436
|
+
|
|
437
|
+
<error_codes>
|
|
438
|
+
| Code | Severity | Condition | Recovery |
|
|
439
|
+
|------|----------|-----------|----------|
|
|
440
|
+
| E001 | error | No target and no session to resume | Provide target or use -c |
|
|
441
|
+
| E002 | error | Target not found or no source files | Check path, ensure source files exist |
|
|
442
|
+
| E003 | error | Resume but no session found | Start new session |
|
|
443
|
+
| W001 | warning | No relevant git history | Proceed with limited context |
|
|
444
|
+
| W002 | warning | Audit dimension agent failed | Partial coverage, note gap |
|
|
445
|
+
| W003 | warning | Generalization scan 0 hits | Skip discovery |
|
|
446
|
+
| W004 | warning | Delegate parse failed | Use raw output |
|
|
447
|
+
</error_codes>
|
|
448
|
+
|
|
449
|
+
<success_criteria>
|
|
450
|
+
- [ ] Target resolved to source files, session created with 3 output files
|
|
451
|
+
- [ ] Prior knowledge searched (maestro search + sessions + architecture + specs)
|
|
452
|
+
- [ ] Survey via spawn Wave 1, baseline_metrics extracted, evidence phase=survey
|
|
453
|
+
- [ ] All 6 dimensions audited via spawn Wave 2, severity matrix produced
|
|
454
|
+
- [ ] Root causes diagnosed with evidence refs, hypotheses tested phase=diagnose
|
|
455
|
+
- [ ] Fixes applied priority-order and verified with metric comparison (unless --skip-fix)
|
|
456
|
+
- [ ] `--skip-fix`: no source code modifications
|
|
457
|
+
- [ ] Generalization via spawn Wave 3 + cross-layer dedup (unless --skip-generalize)
|
|
458
|
+
- [ ] Discoveries classified and routed (fix/issue/decision/skip)
|
|
459
|
+
- [ ] understanding.md tracks all 9 sections progressively
|
|
460
|
+
- [ ] phase_goals G1-G7 derived from flags, each phase marks its goal
|
|
461
|
+
- [ ] Goal Prompt displayed once; `-y` auto-resolves/defers
|
|
462
|
+
- [ ] State saved at each transition (resumable via -c)
|
|
463
|
+
- [ ] Quality Gate self-iteration logged in self_iteration_log
|
|
464
|
+
- [ ] Before/after metrics comparison in completion summary
|
|
465
|
+
- [ ] Completion summary with all stats
|
|
466
|
+
</success_criteria>
|