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,377 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: odyssey-review-test-fix
|
|
3
|
+
description: "Deep review cycle — archaeology, exploration, multi-dimensional review, targeted fix, generalization, discovery, and detailed 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 code review with generalization: archaeology → explore → multi-dimensional review →
|
|
10
|
+
fix critical/high → confirm → generalize (举一反三) → discover → persist.
|
|
11
|
+
|
|
12
|
+
Unlike `quality-review` (pipeline gate verdict), this reviews AND fixes: exhaustive documentation,
|
|
13
|
+
targeted fixes, codebase-wide generalization, decision journal. `--skip-fix` for review-only.
|
|
14
|
+
|
|
15
|
+
**三句哲学约束(穷尽迭代):**
|
|
16
|
+
1. **零遗留** — 每个 finding 必须是 action item(修复 / issue / 决策),不允许只报告不处理
|
|
17
|
+
2. **穷尽迭代** — 按 severity 从高到低逐轮修复,直到 0 remaining actionable findings 才退出 fix loop
|
|
18
|
+
3. **改进即标准** — 每次修复后重审同区域,发现新问题继续修,直到该区域无可改善
|
|
19
|
+
|
|
20
|
+
Core behaviors:
|
|
21
|
+
- **Find one, fix one, find all** — every finding triggers fix + codebase-wide scan
|
|
22
|
+
- **Record everything** — ambiguous items → decision journal, never silent skip
|
|
23
|
+
- **CLI-assisted** — delegate for multi-angle analysis
|
|
24
|
+
</purpose>
|
|
25
|
+
|
|
26
|
+
<boundary>
|
|
27
|
+
**范围内:** 目标代码多维度审查 → 修复 critical/high → 泛化 pattern
|
|
28
|
+
**范围外:** 深度根因 → `$odyssey-debug` | 需求实现 → `$odyssey-planex` | UI 优化 → `$odyssey-ui`
|
|
29
|
+
**探索自由度:** 边界内自由 — 跨维度关联、追溯历史、泛化全项目。穷尽修复 ALL 发现(按 severity 递降)。
|
|
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)交叉验证,修复前后各 review 一次
|
|
37
|
+
</execution_discipline>
|
|
38
|
+
|
|
39
|
+
<context>
|
|
40
|
+
$ARGUMENTS — target and optional flags.
|
|
41
|
+
|
|
42
|
+
**Target resolution:**
|
|
43
|
+
| Input | Resolution |
|
|
44
|
+
|-------|-----------|
|
|
45
|
+
| File/dir path | Review those files |
|
|
46
|
+
| `HEAD` / `staged` | `git diff HEAD` / `git diff --staged` |
|
|
47
|
+
| Phase number | Resolve via state.json → changed files |
|
|
48
|
+
| PR number | `git diff main...HEAD` |
|
|
49
|
+
|
|
50
|
+
**Flags:**
|
|
51
|
+
| Flag | Effect |
|
|
52
|
+
|------|--------|
|
|
53
|
+
| `--dimensions <list>` | Comma-separated subset (default: correctness,security,performance,architecture) |
|
|
54
|
+
| `--skip-fix` | Review-only — skip S_FIX and S_CONFIRM |
|
|
55
|
+
| `--skip-generalize` | Skip S_GENERALIZE and S_DISCOVER |
|
|
56
|
+
| `--auto` | CLI delegates without confirmation |
|
|
57
|
+
| `-y` | Auto-confirm at 5 decision points (see appendix) |
|
|
58
|
+
| `-c` | Resume most recent session |
|
|
59
|
+
|
|
60
|
+
**Session**: `SESSION_DIR = .workflow/scratch/{YYYYMMDD}-review-odyssey-{slug}/`
|
|
61
|
+
|
|
62
|
+
**Output — 4 files:**
|
|
63
|
+
```
|
|
64
|
+
SESSION_DIR/
|
|
65
|
+
├── session.json # state + review_result + confirmation + patterns + phase_goals
|
|
66
|
+
├── evidence.ndjson # ALL evidence (phase: archaeology|explore|review|fix|discovery|decision)
|
|
67
|
+
├── explore.json # CLI exploration snapshot
|
|
68
|
+
└── understanding.md # 8-section evolving narrative (§1-§8, one per major phase)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**session.json schema:**
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"session_id": "review-odyssey-{YYYYMMDD-HHmmss}",
|
|
75
|
+
"target": "", "dimensions": [],
|
|
76
|
+
"flags": { "skip_fix": false, "skip_generalize": false, "auto": false, "auto_confirm": false },
|
|
77
|
+
"current_state": "S_INTAKE",
|
|
78
|
+
"review_result": { "dimensions_reviewed": [], "finding_count": 0, "severity_distribution": {} },
|
|
79
|
+
"patterns": [{ "id": "P1", "source_finding": "", "layer": "syntax|semantic|structural", "signature": "", "description": "", "risk": "", "fix_template": "" }],
|
|
80
|
+
"confirmation": { "test_result": {}, "cli_review": {}, "overall": "confirmed|needs_rework" },
|
|
81
|
+
"generalization_stats": { "patterns_extracted": 0, "total_hits": 0, "true_positives": 0, "false_positives": 0, "cross_layer_confirmed": 0, "regression_risks": 0, "by_layer": {} },
|
|
82
|
+
"phase_goals": [], "phase_goals_all_done": false,
|
|
83
|
+
"self_iteration_log": [],
|
|
84
|
+
"cross_phase_loops": 0, "max_loops": 3
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**evidence.ndjson unified schema:** `{"ts":"","phase":"<phase>","type":"<type>","dimension":"","title":"","severity":"","file":"","line":0,"description":"","suggestion":"","files_modified":[]}`
|
|
89
|
+
|
|
90
|
+
**phase_goals[]:**
|
|
91
|
+
| ID | Goal | Phase | skip_when |
|
|
92
|
+
|----|------|-------|-----------|
|
|
93
|
+
| G1 | Review completed | S_REVIEW | — |
|
|
94
|
+
| G2 | Explore context gathered | S_EXPLORE | — |
|
|
95
|
+
| G3 | Fix applied and confirmed | S_CONFIRM | skip_fix |
|
|
96
|
+
| G4 | Pattern generalized | S_GENERALIZE | skip_generalize |
|
|
97
|
+
| G5 | Discoveries triaged | S_DISCOVER | skip_generalize |
|
|
98
|
+
| G6 | Learnings persisted | S_RECORD | — |
|
|
99
|
+
|
|
100
|
+
Lifecycle: `pending → done | skipped | failed` (all set `completion_confirmed`)
|
|
101
|
+
|
|
102
|
+
### Pre-load(可选,缺失不阻塞)
|
|
103
|
+
|
|
104
|
+
| 层级 | 命令 | 作用 |
|
|
105
|
+
|------|------|------|
|
|
106
|
+
| Codebase docs | Read `.workflow/codebase/ARCHITECTURE.md` | 模块边界 |
|
|
107
|
+
| Wiki search | `maestro search "<target keywords>" --json` | 先前 review(top 5) |
|
|
108
|
+
| Specs | `maestro spec load --category review` | review 标准、checklist |
|
|
109
|
+
| Role knowledge | `maestro search --category review` → 选相关 → `maestro wiki load <id>` | 领域知识 |
|
|
110
|
+
| Prior sessions | `Glob(".workflow/scratch/*-review-odyssey-*")` | 相关会话 |
|
|
111
|
+
|
|
112
|
+
### Knowledge Persistence(S_RECORD 中写入产出文件)
|
|
113
|
+
|
|
114
|
+
S_RECORD 将可沉淀知识 **写入 understanding.md §8 Learnings**,按分类结构化:
|
|
115
|
+
|
|
116
|
+
| 分类 | 写入内容 | 后续建议命令 |
|
|
117
|
+
|------|---------|-------------|
|
|
118
|
+
| 跨维度反复 pattern | 模式描述 + 出现维度 + 建议规范 | `$spec-add review "..."` |
|
|
119
|
+
| 安全发现 | 漏洞类型 + 触发条件 + 修复方案 | `$spec-add debug "..."` |
|
|
120
|
+
| 架构违反 pattern | 违反描述 + 正确边界 + 检查方法 | `$spec-add arch "..."` |
|
|
121
|
+
| 可复用泛化 pattern | pattern 签名 + 风险说明 + fix 模板 | `$spec-add coding "..."` |
|
|
122
|
+
|
|
123
|
+
**两步模式:** 执行中写入产出文件(临时记录)→ 任务完成后用户沉淀为永久知识。执行过程中不调用外部 skill。
|
|
124
|
+
</context>
|
|
125
|
+
|
|
126
|
+
<self_iteration>
|
|
127
|
+
**Quality Gate** — auto-evaluate after each analytical phase. Insufficient → re-enter (max 2 rounds).
|
|
128
|
+
|
|
129
|
+
| Dimension | Sufficient | Insufficient |
|
|
130
|
+
|-----------|-----------|-------------|
|
|
131
|
+
| Coverage | All known related files analyzed | Missed targets discoverable via grep/git log |
|
|
132
|
+
| Depth | ≥80% findings have file:line evidence | Most findings lack specifics |
|
|
133
|
+
| Actionability | Each conclusion has concrete next action | "Consider reviewing" without action |
|
|
134
|
+
|
|
135
|
+
**Expansion:** Round 1 = widen scope. Round 2 = shift perspective.
|
|
136
|
+
**Applicable stages:** S_ARCHAEOLOGY, S_EXPLORE, S_REVIEW, S_FIX, S_GENERALIZE
|
|
137
|
+
</self_iteration>
|
|
138
|
+
|
|
139
|
+
<csv_schema>
|
|
140
|
+
|
|
141
|
+
### Shared Output Schema
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"type": "object",
|
|
145
|
+
"properties": {
|
|
146
|
+
"id": { "type": "string" },
|
|
147
|
+
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
148
|
+
"findings": { "type": "string", "maxLength": 500 },
|
|
149
|
+
"evidence": { "type": "string" },
|
|
150
|
+
"error": { "type": "string" }
|
|
151
|
+
},
|
|
152
|
+
"required": ["id", "result_status", "findings"]
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**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.
|
|
157
|
+
|
|
158
|
+
### tasks.csv
|
|
159
|
+
```csv
|
|
160
|
+
id,title,description,task_type,dimension,deps,wave,status,findings,evidence,error
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Waves:**
|
|
164
|
+
| Wave | Tasks | Parallelism |
|
|
165
|
+
|------|-------|-------------|
|
|
166
|
+
| 1 | Archaeology (git-timeline, git-blame) | 2 agents |
|
|
167
|
+
| 2 | Review (correctness, security, performance, architecture) | 4 agents |
|
|
168
|
+
| 3 | Generalization (syntax-grep, semantic-scan, structural-match, historical-grep) | 4 agents |
|
|
169
|
+
</csv_schema>
|
|
170
|
+
|
|
171
|
+
<invariants>
|
|
172
|
+
1. **Code modifications only in S_FIX** — `--skip-fix` preserves review-only behavior
|
|
173
|
+
2. **Evidence append-only** — evidence.ndjson is never overwritten
|
|
174
|
+
3. **Session is source of truth** — session.json holds all state
|
|
175
|
+
4. **Phase goal tracking** — each stage MUST mark its goal on completion
|
|
176
|
+
5. **`-y` defers, never drops** — auto-confirm records `deferred`, never silently skips
|
|
177
|
+
6. **CLI delegate is background** — all `maestro delegate` calls use run_in_background
|
|
178
|
+
7. **Goal is outcome-oriented** — odyssey outputs prompt then continues
|
|
179
|
+
8. **Invariant violation = BLOCK**
|
|
180
|
+
</invariants>
|
|
181
|
+
|
|
182
|
+
<execution>
|
|
183
|
+
|
|
184
|
+
**States:** S_INTAKE → S_ARCHAEOLOGY → S_EXPLORE → S_REVIEW → S_FIX → S_CONFIRM → S_GENERALIZE → S_DISCOVER → S_RECORD
|
|
185
|
+
- S_FIX/S_CONFIRM skip when `--skip-fix`
|
|
186
|
+
- S_GENERALIZE/S_DISCOVER skip when `--skip-generalize`
|
|
187
|
+
|
|
188
|
+
### S_INTAKE
|
|
189
|
+
Parse target + flags → file list. Create `SESSION_DIR`, derive `phase_goals[]`.
|
|
190
|
+
Search prior knowledge: `maestro search`, prior sessions, ARCHITECTURE.md.
|
|
191
|
+
Write `session.json` + `understanding.md` §1. Display Goal Prompt (appendix).
|
|
192
|
+
|
|
193
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_INTAKE — 目标解析"`
|
|
194
|
+
|
|
195
|
+
### S_ARCHAEOLOGY
|
|
196
|
+
**spawn_agents_on_csv (Wave 1):**
|
|
197
|
+
```csv
|
|
198
|
+
"arch-timeline","Git Timeline","git log --oneline -20 -- {target_files}","archaeology","","","1","pending","","",""
|
|
199
|
+
"arch-blame","Git Blame","git blame on key regions of target files","archaeology","","","1","pending","","",""
|
|
200
|
+
```
|
|
201
|
+
```javascript
|
|
202
|
+
spawn_agents_on_csv({ csv_path: "tasks.csv", id_column: "id",
|
|
203
|
+
instruction: ARCHAEOLOGY_INSTRUCTION + TERMINATION_CONTRACT,
|
|
204
|
+
max_concurrency: 2, max_runtime_seconds: 300,
|
|
205
|
+
output_csv_path: "wave-1-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
|
|
206
|
+
```
|
|
207
|
+
Merge → evidence.ndjson (phase: "archaeology").
|
|
208
|
+
CLI delegate `--role analyze --mode analysis` for change review (run_in_background, STOP).
|
|
209
|
+
Update `understanding.md` §2.
|
|
210
|
+
|
|
211
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_ARCHAEOLOGY — 考古"`
|
|
212
|
+
|
|
213
|
+
### S_EXPLORE
|
|
214
|
+
CLI delegate `--role explore --mode analysis` → `explore.json` + evidence.ndjson (phase: "explore").
|
|
215
|
+
Update `understanding.md` §3. Mark G2 done.
|
|
216
|
+
|
|
217
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_EXPLORE — 探索"`
|
|
218
|
+
|
|
219
|
+
### S_REVIEW
|
|
220
|
+
**spawn_agents_on_csv (Wave 2)** — append rows:
|
|
221
|
+
```csv
|
|
222
|
+
"rev-correct","Correctness","Logic errors, boundary conditions, null/undefined, race conditions","review","correctness","","2","pending","","",""
|
|
223
|
+
"rev-security","Security","Injection, XSS, CSRF, data exposure, auth bypass","review","security","","2","pending","","",""
|
|
224
|
+
"rev-perf","Performance","Hot paths, N+1, memory leaks, unnecessary recomputation","review","performance","","2","pending","","",""
|
|
225
|
+
"rev-arch","Architecture","Layer violations, circular deps, interface contracts, SoC","review","architecture","","2","pending","","",""
|
|
226
|
+
```
|
|
227
|
+
```javascript
|
|
228
|
+
spawn_agents_on_csv({ csv_path: "tasks.csv", id_column: "id",
|
|
229
|
+
instruction: REVIEW_INSTRUCTION + TERMINATION_CONTRACT,
|
|
230
|
+
max_concurrency: 4, max_runtime_seconds: 600,
|
|
231
|
+
output_csv_path: "wave-2-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
|
|
232
|
+
```
|
|
233
|
+
Merge → evidence.ndjson (phase: "review"). Write `session.json.review_result`.
|
|
234
|
+
Update `understanding.md` §4. Mark G1 done.
|
|
235
|
+
Transition: any findings exist AND !skip_fix → S_FIX. Else → S_GENERALIZE or S_RECORD.
|
|
236
|
+
|
|
237
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_REVIEW — 审查"`
|
|
238
|
+
|
|
239
|
+
### S_FIX
|
|
240
|
+
Skip if `--skip-fix` or no critical/high findings.
|
|
241
|
+
**穷尽修复** — 按 severity 递降(critical→high→medium→low)逐轮修复所有 findings。每轮修复后 re-review 修改区域,新发现追加。
|
|
242
|
+
**Normal**: `request_user_input` to confirm. **`-y`**: auto-fix all, record `deferred`.
|
|
243
|
+
Implement targeted fixes. Record evidence (phase: "fix"). Quality Gate check.
|
|
244
|
+
|
|
245
|
+
📌 **Auto-commit**: `git add -A && git commit -m "odyssey-review({slug}): S_FIX — 修复"`
|
|
246
|
+
|
|
247
|
+
### S_CONFIRM
|
|
248
|
+
Skip if `--skip-fix`.
|
|
249
|
+
Run tests on modified files. CLI delegate `--role review --mode analysis` for fix review (run_in_background, STOP).
|
|
250
|
+
Write `session.json.confirmation`. Update `understanding.md` §5.
|
|
251
|
+
`needs_rework` → S_FIX. `confirmed` → mark G3 done.
|
|
252
|
+
|
|
253
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_CONFIRM — 确认"`
|
|
254
|
+
|
|
255
|
+
### S_GENERALIZE
|
|
256
|
+
Skip if `--skip-generalize`.
|
|
257
|
+
|
|
258
|
+
**Pattern extraction** from severity >= medium findings into 3 layers:
|
|
259
|
+
| Layer | Method | Example |
|
|
260
|
+
|-------|--------|---------|
|
|
261
|
+
| Syntax | Regex → Grep | `eval(`, `innerHTML =` |
|
|
262
|
+
| Semantic | Agent anti-pattern scan | Missing error handling on async |
|
|
263
|
+
| Structural | File/module similarity | Same base class missing override |
|
|
264
|
+
|
|
265
|
+
Write `session.json.patterns[]`.
|
|
266
|
+
|
|
267
|
+
**spawn_agents_on_csv (Wave 3)** — 4 agents parallel:
|
|
268
|
+
```csv
|
|
269
|
+
"gen-syntax","Syntax Grep","Grep syntax-layer patterns across project","generalization","syntax","","3","pending","","",""
|
|
270
|
+
"gen-semantic","Semantic Scan","Check related modules for same anti-patterns","generalization","semantic","","3","pending","","",""
|
|
271
|
+
"gen-structural","Structural Match","Find structurally similar files, check for same issues","generalization","structural","","3","pending","","",""
|
|
272
|
+
"gen-historical","Historical Grep","git log -S pattern for introduction/fix history","generalization","historical","","3","pending","","",""
|
|
273
|
+
```
|
|
274
|
+
```javascript
|
|
275
|
+
spawn_agents_on_csv({ csv_path: "tasks.csv", id_column: "id",
|
|
276
|
+
instruction: GENERALIZATION_INSTRUCTION + TERMINATION_CONTRACT,
|
|
277
|
+
max_concurrency: 4, max_runtime_seconds: 600,
|
|
278
|
+
output_csv_path: "wave-3-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Cross-layer dedup**: Multi-layer hit → boost confidence. Single → `needs_review`. Historical fix → `regression_risk`.
|
|
282
|
+
**Iterative deepening**: ≥3 hits in same module → targeted deep scan. Max 1 round.
|
|
283
|
+
**CLI validation** (optional): Delegate to verify true/false positives (run_in_background, STOP).
|
|
284
|
+
|
|
285
|
+
Update `understanding.md` §6. Write `session.json.generalization_stats`. Mark G4 done.
|
|
286
|
+
|
|
287
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_GENERALIZE — 泛化"`
|
|
288
|
+
|
|
289
|
+
### S_DISCOVER
|
|
290
|
+
Classify hits: `bug` / `risk` / `safe`.
|
|
291
|
+
**Normal**: `request_user_input` for bug routing. **`-y`**: auto create issue, `deferred`.
|
|
292
|
+
**Cross-phase loop**: fixable sibling → S_FIX (!skip_fix, loops < max_loops → cross_phase_loops++); new review target → S_REVIEW (loops < max_loops); triage complete OR budget exhausted → S_RECORD.
|
|
293
|
+
Append evidence (phase: discovery + decision). Update `understanding.md` §7. Mark G5 done.
|
|
294
|
+
|
|
295
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_DISCOVER — 发现"`
|
|
296
|
+
|
|
297
|
+
### S_RECORD
|
|
298
|
+
Finalize `understanding.md` §8: per-dimension summary, top findings, generalization results, open decisions.
|
|
299
|
+
Write learnings to understanding.md §8: 按 Knowledge Persistence 表分类记录(临时),completion summary 列出建议的后续命令。
|
|
300
|
+
Pending decisions: **Normal** → `request_user_input`. **`-y`** → skip, display deferred count.
|
|
301
|
+
Goal audit: check all `phase_goals[*].completion_confirmed`. Mark G6 done.
|
|
302
|
+
|
|
303
|
+
Completion summary:
|
|
304
|
+
```
|
|
305
|
+
--- REVIEW ODYSSEY COMPLETE ---
|
|
306
|
+
Target: {target}
|
|
307
|
+
Dimensions: {reviewed}
|
|
308
|
+
Findings: {C}C {H}H {M}M {L}L
|
|
309
|
+
Fix: {F} applied, {S} skipped
|
|
310
|
+
Patterns: {N} extracted ({by_layer} distribution)
|
|
311
|
+
Scan hits: {total} ({cross_layer} cross-layer confirmed)
|
|
312
|
+
Issues: {N} created
|
|
313
|
+
Decisions: {N} resolved, {M} pending, {K} deferred
|
|
314
|
+
Self-iter: {R} rounds across {P} phases
|
|
315
|
+
Goals: {done}/{total} ({skipped} skipped)
|
|
316
|
+
---
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Next steps:** `$odyssey-debug "<finding>"`, `$manage-issue list --source review-odyssey`,
|
|
320
|
+
`$learn-decompose <module>`, `$maestro-plan --gaps`
|
|
321
|
+
|
|
322
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-review({slug}): S_RECORD — 总结"`
|
|
323
|
+
</execution>
|
|
324
|
+
|
|
325
|
+
<appendix>
|
|
326
|
+
|
|
327
|
+
### Goal Prompt Template
|
|
328
|
+
**⚠️ 时机守卫:仅在 Stage 1 完成后显示一次(session 创建后、开始考古前)。Stage 8 完成时禁止重新显示。**
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
📋 Review-Test-Fix Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
|
|
332
|
+
|
|
333
|
+
/goal 穷尽迭代:直到所有 findings 均已处理(fix/issue/decision),remaining_actionable == 0
|
|
334
|
+
且 phase_goals_all_done=true 才停。修复按 severity 逐轮迭代,每轮修复后 re-review。
|
|
335
|
+
不允许"只报告不处理",每个 finding 必须有 action。
|
|
336
|
+
遇到 phase=decision 的 pending 必须 request_user_input,不得自行 resolve。
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
完成时仅输出 completion summary,不重复此提示。
|
|
340
|
+
|
|
341
|
+
### `-y` Auto-Confirm (5 decision points)
|
|
342
|
+
| Decision Point | Normal | `-y` |
|
|
343
|
+
|----------------|--------|------|
|
|
344
|
+
| S_FIX fix candidates | request_user_input | auto-fix critical+high, `deferred` |
|
|
345
|
+
| S_DISCOVER bug routing | request_user_input | auto issue, `deferred` |
|
|
346
|
+
| S_DISCOVER ambiguous | request_user_input | all `deferred` |
|
|
347
|
+
| S_RECORD pending decisions | request_user_input | skip |
|
|
348
|
+
| S_RECORD goal audit | request_user_input | auto accept |
|
|
349
|
+
|
|
350
|
+
</appendix>
|
|
351
|
+
|
|
352
|
+
<error_codes>
|
|
353
|
+
| Code | Severity | Condition | Recovery |
|
|
354
|
+
|------|----------|-----------|----------|
|
|
355
|
+
| E001 | error | No target | Provide target |
|
|
356
|
+
| E002 | error | Target not found | Check path |
|
|
357
|
+
| E003 | error | Resume no session | Start new |
|
|
358
|
+
| W001 | warning | No git history | Proceed |
|
|
359
|
+
| W002 | warning | Dimension agent failed | Partial coverage |
|
|
360
|
+
| W003 | warning | Generalization 0 hits | Skip discovery |
|
|
361
|
+
</error_codes>
|
|
362
|
+
|
|
363
|
+
<success_criteria>
|
|
364
|
+
- [ ] Target resolved, session created
|
|
365
|
+
- [ ] Archaeology via spawn_agents_on_csv Wave 1
|
|
366
|
+
- [ ] CLI exploration, explore.json written
|
|
367
|
+
- [ ] All dimensions reviewed via spawn_agents_on_csv Wave 2
|
|
368
|
+
- [ ] Severity matrix produced
|
|
369
|
+
- [ ] Critical/high fixed and confirmed (unless --skip-fix)
|
|
370
|
+
- [ ] `--skip-fix`: no source code modifications
|
|
371
|
+
- [ ] Generalization via spawn_agents_on_csv Wave 3 (unless --skip-generalize)
|
|
372
|
+
- [ ] Discoveries classified and routed
|
|
373
|
+
- [ ] understanding.md §8 finalized
|
|
374
|
+
- [ ] Goal Prompt displayed, phase_goals G1-G6 tracked
|
|
375
|
+
- [ ] `-y`: no blocking, deferred counted
|
|
376
|
+
- [ ] Self-iteration quality gates passed
|
|
377
|
+
</success_criteria>
|