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,409 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: odyssey-planex
|
|
3
|
+
description: "Requirement-driven iterative cycle — plan, execute, strict verify, fix loop until acceptance criteria met"
|
|
4
|
+
argument-hint: "<requirement> [--max-iterations N] [--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
|
+
Requirement-to-delivery closed loop: parse requirement → define strict acceptance criteria →
|
|
10
|
+
plan tasks → execute → verify against criteria → fix gaps → iterate until ALL criteria pass.
|
|
11
|
+
|
|
12
|
+
Core philosophy:
|
|
13
|
+
- **Acceptance criteria are sacred** — no "close enough", no manual override
|
|
14
|
+
- **Iterate, don't restart** — each fix cycle targets only the failing criteria
|
|
15
|
+
- **CLI-assisted verification** — delegate to external tools for objective checks
|
|
16
|
+
- **Evidence-based progress** — every iteration logged with pass/fail per criterion
|
|
17
|
+
|
|
18
|
+
**三句哲学约束(穷尽迭代):**
|
|
19
|
+
1. **零遗留** — 验收标准必须 ALL pass,不允许"接近通过"
|
|
20
|
+
2. **穷尽迭代** — verify 失败自动修复重试,直到全部通过或明确升级
|
|
21
|
+
3. **改进即标准** — 修复后重新验证同区域,新发现的标准违反继续修
|
|
22
|
+
</purpose>
|
|
23
|
+
|
|
24
|
+
<boundary>
|
|
25
|
+
**范围内:** 单一需求的实现闭环 — 需求 → 验收标准 → 计划 → 实现 → 验证 → 迭代 → 泛化
|
|
26
|
+
**范围外:** 多需求编排 → `/maestro-roadmap` | 深度 debug → `$odyssey-debug` | 代码审查 → `$odyssey-review-test-fix` | UI 优化 → `$odyssey-ui`
|
|
27
|
+
**探索自由度:** 边界内自由 — 可自主分解任务、选择实现策略、verify→fix 循环内尝试不同方案
|
|
28
|
+
**模板:** `--template <name>` — feature | bugfix | refactor | migration | api-endpoint
|
|
29
|
+
</boundary>
|
|
30
|
+
|
|
31
|
+
<execution_discipline>
|
|
32
|
+
**三条铁律(所有阶段适用):**
|
|
33
|
+
1. **Phase auto-commit** — 阶段完成后**自动** `git commit`,无需用户确认(session.json/evidence.ndjson 不纳入)
|
|
34
|
+
2. **有把握才改** — 有把握→改代码 commit;不确定→记录 `evidence.ndjson {"phase":"decision","status":"pending"}` 不改代码
|
|
35
|
+
3. **多 CLI 辅助** — plan 用 `--role analyze`,verify 用 cli-review delegate,fix 前后用 `--role review`
|
|
36
|
+
</execution_discipline>
|
|
37
|
+
|
|
38
|
+
<context>
|
|
39
|
+
$ARGUMENTS — requirement description and optional flags.
|
|
40
|
+
|
|
41
|
+
**Flags:**
|
|
42
|
+
| Flag | Description | Default |
|
|
43
|
+
|------|-------------|---------|
|
|
44
|
+
| `--max-iterations N` | Max verify→fix cycles before escalation | 3 |
|
|
45
|
+
| `--template <name>` | 预定义需求模板 | — |
|
|
46
|
+
| `--skip-generalize` | Skip S_GENERALIZE + S_DISCOVER | false |
|
|
47
|
+
| `--auto` | CLI delegate calls without confirmation | false |
|
|
48
|
+
| `-y` | Auto-confirm — decisions recorded as `deferred` | false |
|
|
49
|
+
| `-c` | Resume most recent session | — |
|
|
50
|
+
|
|
51
|
+
**Session**: `SESSION_DIR = .workflow/scratch/{YYYYMMDD}-planex-odyssey-{slug}/`
|
|
52
|
+
|
|
53
|
+
**Output — 3 files:**
|
|
54
|
+
```
|
|
55
|
+
SESSION_DIR/
|
|
56
|
+
├── session.json # state + criteria + iterations + plan
|
|
57
|
+
├── evidence.ndjson # append-only log (phase distinguishes origin)
|
|
58
|
+
└── understanding.md # evolving narrative (8 sections, one per phase)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**session.json schema:**
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"session_id": "planex-odyssey-{YYYYMMDD-HHmmss}",
|
|
65
|
+
"requirement": "",
|
|
66
|
+
"flags": { "max_iterations": 3, "skip_generalize": false, "auto": false, "auto_confirm": false },
|
|
67
|
+
"current_state": "S_INTAKE",
|
|
68
|
+
"acceptance_criteria": [
|
|
69
|
+
{"id":"AC1","criterion":"","verify_method":"test|grep|cli-review|manual","status":"pending","evidence":"","passed_at":null}
|
|
70
|
+
],
|
|
71
|
+
"plan": { "tasks": [{"id":"T1","title":"","description":"","criteria_refs":["AC1"],"status":"pending","files_modified":[]}], "created_at":"" },
|
|
72
|
+
"iterations": [
|
|
73
|
+
{"iteration":1,"started_at":"","completed_at":"","criteria_before":{"passed":0,"total":0},"criteria_after":{"passed":0,"total":0},"gaps_fixed":[],"files_modified":[]}
|
|
74
|
+
],
|
|
75
|
+
"current_iteration": 0,
|
|
76
|
+
"patterns": [
|
|
77
|
+
{"id":"P1","source":"AC1 fix","layer":"syntax|semantic|structural","signature":"","description":"","risk":"","fix_template":""}
|
|
78
|
+
],
|
|
79
|
+
"generalization_stats": {"patterns_extracted":0,"total_hits":0,"cross_layer_confirmed":0,"by_layer":{"syntax":0,"semantic":0,"structural":0},"deepening_triggered":false},
|
|
80
|
+
"phase_goals": [],
|
|
81
|
+
"phase_goals_all_done": false,
|
|
82
|
+
"self_iteration_log": [],
|
|
83
|
+
"cross_phase_loops": 0, "max_loops": 3,
|
|
84
|
+
"created_at": "", "updated_at": ""
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**evidence.ndjson** — one JSON per line, `phase` field = `planning|execution|verification|fix|decision|generalization|discovery|self-iteration`
|
|
89
|
+
|
|
90
|
+
**understanding.md sections:** §1 Requirement & Criteria ← S_INTAKE, §2 Plan ← S_PLAN, §3 Execution ← S_EXECUTE, §4 Verification (per iter) ← S_VERIFY, §5 Fix Log (per iter) ← S_FIX, §6 Generalization ← S_GENERALIZE, §7 Discoveries ← S_DISCOVER, §8 Learnings ← S_RECORD
|
|
91
|
+
|
|
92
|
+
**phase_goals[]:**
|
|
93
|
+
| ID | Goal | Done When | Phase | Skip When |
|
|
94
|
+
|----|------|-----------|-------|-----------|
|
|
95
|
+
| G1 | Acceptance criteria defined | ≥1 criterion in acceptance_criteria[] | S_INTAKE | — |
|
|
96
|
+
| G2 | Plan created | session.json.plan populated | S_PLAN | — |
|
|
97
|
+
| G3 | Implementation complete | all plan tasks executed | S_EXECUTE | — |
|
|
98
|
+
| G4 | All criteria pass | all acceptance_criteria[].status == passed | S_VERIFY | — |
|
|
99
|
+
| G5 | Pattern generalized | patterns[] populated ≥1 entry | S_GENERALIZE | skip_generalize |
|
|
100
|
+
| G6 | Discoveries triaged | all scan hits classified | S_DISCOVER | skip_generalize |
|
|
101
|
+
| G7 | Learnings persisted | spec entries created OR no actionable | S_RECORD | — |
|
|
102
|
+
|
|
103
|
+
### Pre-load(可选,缺失不阻塞)
|
|
104
|
+
|
|
105
|
+
| 层级 | 命令 | 作用 |
|
|
106
|
+
|------|------|------|
|
|
107
|
+
| Codebase docs | Read `.workflow/codebase/ARCHITECTURE.md` | 模块边界 |
|
|
108
|
+
| Wiki search | `maestro search "<requirement keywords>" --json` | 先前实现(top 5) |
|
|
109
|
+
| Coding specs | `maestro spec load --category coding` | 编码规范 + knowhow 工具 |
|
|
110
|
+
| UI specs(条件) | 若涉及前端 → `maestro spec load --category ui` | UI 规范 |
|
|
111
|
+
| Role knowledge | `maestro search --category coding` → 选相关 → `maestro wiki load <id>` | 领域知识 |
|
|
112
|
+
| Prior sessions | `Glob(".workflow/scratch/*-planex-odyssey-*")` | 相关会话 |
|
|
113
|
+
|
|
114
|
+
### Knowledge Persistence(S_RECORD 中写入产出文件)
|
|
115
|
+
|
|
116
|
+
S_RECORD 将可沉淀知识 **写入 understanding.md §8 Learnings**,按分类结构化:
|
|
117
|
+
|
|
118
|
+
| 分类 | 写入内容 | 后续建议命令 |
|
|
119
|
+
|------|---------|-------------|
|
|
120
|
+
| 多轮 fix cycle pattern | 问题场景 + 迭代过程 + 最终方案 | `$spec-add debug "..."` |
|
|
121
|
+
| 可复用实现模式 | 模式描述 + 适用场景 + 代码模板 | `$spec-add coding "..."` |
|
|
122
|
+
| 验收标准模板 | 标准模板 + verify_method 建议 | `$spec-add review "..."` |
|
|
123
|
+
| 泛化 pattern | pattern 签名 + 风险说明 + fix 模板 | `$spec-add coding "..."` |
|
|
124
|
+
|
|
125
|
+
**两步模式:** 执行中写入产出文件(临时记录)→ 任务完成后用户沉淀为永久知识。执行过程中不调用外部 skill。
|
|
126
|
+
</context>
|
|
127
|
+
|
|
128
|
+
<self_iteration>
|
|
129
|
+
**Quality Gate** — auto-evaluate after each analytical stage. Insufficient → re-enter with expanded strategy.
|
|
130
|
+
|
|
131
|
+
| Dimension | Sufficient | Insufficient |
|
|
132
|
+
|-----------|-----------|-------------|
|
|
133
|
+
| Coverage | All known files/modules analyzed | Missed targets discoverable via grep/git log |
|
|
134
|
+
| Depth | ≥80% findings have file:line evidence | Most findings lack specifics |
|
|
135
|
+
| Actionability | Each conclusion has concrete next action | Only vague "consider" recommendations |
|
|
136
|
+
|
|
137
|
+
**Rules:** stage complete → evaluate 3 dims → any insufficient → re-enter (max **2 rounds** per stage). Record to evidence.ndjson `{"phase":"self-iteration","type":"quality-gate","stage":"S_XXX","round":N,"assessment":{...},"expansion":"strategy"}`.
|
|
138
|
+
|
|
139
|
+
**Expansion:** Round 1 = broaden scope (more dirs, more delegate angles). Round 2 = shift perspective (different CLI tool, reverse-trace from expected result).
|
|
140
|
+
|
|
141
|
+
**Applies to:** S_PLAN, S_VERIFY, S_GENERALIZE
|
|
142
|
+
</self_iteration>
|
|
143
|
+
|
|
144
|
+
<csv_schema>
|
|
145
|
+
|
|
146
|
+
### Shared Output Schema
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"type": "object",
|
|
151
|
+
"properties": {
|
|
152
|
+
"id": { "type": "string" },
|
|
153
|
+
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
154
|
+
"findings": { "type": "string", "maxLength": 500 },
|
|
155
|
+
"evidence": { "type": "string" },
|
|
156
|
+
"error": { "type": "string" }
|
|
157
|
+
},
|
|
158
|
+
"required": ["id", "result_status", "findings"]
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Termination Contract:** You MUST call `report_agent_job_result` EXACTLY ONCE before exiting. Do NOT write to tasks.csv, wave-*.csv, results.csv. Do NOT call spawn_agents_on_csv.
|
|
163
|
+
|
|
164
|
+
### tasks.csv
|
|
165
|
+
|
|
166
|
+
```csv
|
|
167
|
+
id,title,description,task_type,criterion_refs,deps,wave,status,findings,evidence,error
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Waves:**
|
|
171
|
+
- Wave 1: Verification agents (one per `cli-review` criterion) — parallel
|
|
172
|
+
- Wave 2: Generalization agents (syntax-grep, semantic-scan, structural-match, historical-grep) — parallel
|
|
173
|
+
</csv_schema>
|
|
174
|
+
|
|
175
|
+
<invariants>
|
|
176
|
+
1. **Acceptance criteria are iron gates** — no bypass, no "close enough"
|
|
177
|
+
2. **Fix targets failing criteria only** — never re-implement passing parts
|
|
178
|
+
3. **Iteration cap respected** — max_iterations prevents infinite loops
|
|
179
|
+
4. **Evidence append-only** — evidence.ndjson never modified
|
|
180
|
+
5. **Session is source of truth** — session.json holds all state
|
|
181
|
+
6. **Phase goal tracking** — each stage MUST mark its goal
|
|
182
|
+
7. **`-y` defers, never drops** — records `deferred`, never silently skips
|
|
183
|
+
8. **CLI delegate is background** — all `maestro delegate` use run_in_background
|
|
184
|
+
9. **Goal is outcome-oriented** — `/goal` user-bound
|
|
185
|
+
10. **Invariant violation = BLOCK**
|
|
186
|
+
</invariants>
|
|
187
|
+
|
|
188
|
+
<execution>
|
|
189
|
+
|
|
190
|
+
### S_INTAKE
|
|
191
|
+
|
|
192
|
+
1. Parse requirement and flags, create SESSION_DIR
|
|
193
|
+
2. **Define acceptance criteria** — analyze requirement → derive testable criteria. Each gets `verify_method`: test | grep | cli-review | manual
|
|
194
|
+
- **Normal**: `request_user_input` to confirm/edit
|
|
195
|
+
- **`-y`**: auto-derive, record `{"phase":"decision","type":"criteria-confirmation","status":"deferred"}`
|
|
196
|
+
3. Search prior knowledge: `maestro search`, related sessions
|
|
197
|
+
4. Write session.json + understanding.md §1. Mark G1 done. Display Goal Prompt (see Appendix).
|
|
198
|
+
|
|
199
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-planex({slug}): S_INTAKE — 目标解析"`
|
|
200
|
+
|
|
201
|
+
### S_PLAN
|
|
202
|
+
|
|
203
|
+
1. Decompose requirement into ordered tasks mapped to acceptance criteria
|
|
204
|
+
2. CLI-assisted planning (optional):
|
|
205
|
+
```bash
|
|
206
|
+
maestro delegate "PURPOSE: Create plan for: {requirement}
|
|
207
|
+
TASK: Decompose into subtasks | Map to acceptance criteria | Identify dependencies
|
|
208
|
+
MODE: analysis
|
|
209
|
+
CONTEXT: @**/* | Criteria: {criteria_summary}
|
|
210
|
+
EXPECTED: JSON [{task_id, title, description, criteria_refs, deps}]
|
|
211
|
+
" --role analyze --mode analysis
|
|
212
|
+
```
|
|
213
|
+
Run_in_background, STOP, wait for callback.
|
|
214
|
+
3. Write session.json.plan, append evidence (planning), update understanding.md §2. Mark G2 done.
|
|
215
|
+
|
|
216
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-planex({slug}): S_PLAN — 计划"`
|
|
217
|
+
|
|
218
|
+
### S_EXECUTE
|
|
219
|
+
|
|
220
|
+
1. Execute tasks sequentially — implement code changes
|
|
221
|
+
2. Per task: record evidence (execution), update task status
|
|
222
|
+
3. Update understanding.md §3. Mark G3 done.
|
|
223
|
+
|
|
224
|
+
📌 **Auto-commit**: `git add -A && git commit -m "odyssey-planex({slug}): S_EXECUTE — 执行"`
|
|
225
|
+
|
|
226
|
+
### S_VERIFY
|
|
227
|
+
|
|
228
|
+
Iron gate — every acceptance criterion verified.
|
|
229
|
+
|
|
230
|
+
**Verify each criterion by method:**
|
|
231
|
+
| Method | Action |
|
|
232
|
+
|--------|--------|
|
|
233
|
+
| `test` | Run relevant tests, check pass/fail |
|
|
234
|
+
| `grep` | Grep for expected pattern |
|
|
235
|
+
| `cli-review` | `spawn_agents_on_csv` Wave 1 (see below) |
|
|
236
|
+
| `manual` | **Normal**: `request_user_input` / **`-y`**: `deferred` |
|
|
237
|
+
|
|
238
|
+
**Wave 1 — cli-review verification via spawn_agents_on_csv:**
|
|
239
|
+
```csv
|
|
240
|
+
"verify-AC1","Verify AC1","Review against criterion: {AC1.criterion}","verification","AC1","","1","pending","","",""
|
|
241
|
+
```
|
|
242
|
+
```javascript
|
|
243
|
+
spawn_agents_on_csv({ csv_path: "tasks.csv", id_column: "id",
|
|
244
|
+
instruction: VERIFICATION_INSTRUCTION + TERMINATION_CONTRACT,
|
|
245
|
+
max_concurrency: 4, max_runtime_seconds: 300,
|
|
246
|
+
output_csv_path: "wave-1-results.csv", output_schema: SHARED_OUTPUT_SCHEMA })
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Record per criterion to evidence (verification). Update acceptance_criteria[].status. Append to iterations[]. Update understanding.md §4 with pass/fail table.
|
|
250
|
+
|
|
251
|
+
**Route:** all passed → mark G4 done → next state. Some failed + iteration < max → S_FIX. Fundamental plan flaw → S_PLAN (loops < max_loops → cross_phase_loops++, 重规划). Some failed + iteration >= max → **Normal**: `request_user_input` (continue/lower/accept) / **`-y`**: `deferred`, proceed S_RECORD.
|
|
252
|
+
|
|
253
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-planex({slug}): S_VERIFY — 验证"`
|
|
254
|
+
|
|
255
|
+
### S_FIX
|
|
256
|
+
|
|
257
|
+
1. Increment current_iteration
|
|
258
|
+
2. For each failed criterion: diagnose gap → targeted code fix
|
|
259
|
+
3. CLI fix review (optional): `maestro delegate --role review --mode analysis` for regression check
|
|
260
|
+
4. Append evidence (fix), update understanding.md §5 → S_VERIFY (loop)
|
|
261
|
+
|
|
262
|
+
📌 **Auto-commit**: `git add -A && git commit -m "odyssey-planex({slug}): S_FIX — 修复"`
|
|
263
|
+
|
|
264
|
+
### S_GENERALIZE
|
|
265
|
+
|
|
266
|
+
Skip if `--skip-generalize`. Extract reusable patterns, scan codebase for similar sites.
|
|
267
|
+
|
|
268
|
+
**Pattern extraction (3 layers):**
|
|
269
|
+
| Layer | Method | Example |
|
|
270
|
+
|-------|--------|---------|
|
|
271
|
+
| Syntax | Code regex patterns | validation/error handling patterns |
|
|
272
|
+
| Semantic | Logic pattern description | missing similar checks at other entry points |
|
|
273
|
+
| Structural | File/module structure match | sibling modules lacking same treatment |
|
|
274
|
+
|
|
275
|
+
**Wave 2 — 4-agent scan via spawn_agents_on_csv:**
|
|
276
|
+
```csv
|
|
277
|
+
"gen-syntax","Syntax Grep","Grep patterns across project","generalization","syntax","","2","pending","","",""
|
|
278
|
+
"gen-semantic","Semantic Scan","Check related modules for anti-pattern","generalization","semantic","","2","pending","","",""
|
|
279
|
+
"gen-structural","Structural Match","Find files needing same treatment","generalization","structural","","2","pending","","",""
|
|
280
|
+
"gen-historical","Historical Grep","git log -S for similar patterns","generalization","historical","","2","pending","","",""
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Each returns: `[{pattern_id, file, line, context, risk_level, layer, confidence}]`
|
|
284
|
+
|
|
285
|
+
**Cross-layer dedup:** multi-layer hit on same file:line → boost confidence. Historical hit with existing fix → `already_handled`. Single layer only → `needs_review`.
|
|
286
|
+
|
|
287
|
+
**Quality Gate** (self-iteration) → evaluate coverage/depth/actionability.
|
|
288
|
+
|
|
289
|
+
Write understanding.md §6, generalization_stats. Mark G5 done.
|
|
290
|
+
|
|
291
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-planex({slug}): S_GENERALIZE — 泛化"`
|
|
292
|
+
|
|
293
|
+
### S_DISCOVER
|
|
294
|
+
|
|
295
|
+
1. **Triage:** per hit, read context (+-10 lines), classify as `already_handled` | `needs_treatment` | `low_risk`
|
|
296
|
+
2. **Route:**
|
|
297
|
+
| Classification | Normal | `-y` |
|
|
298
|
+
|---------------|--------|------|
|
|
299
|
+
| needs_treatment | `request_user_input`: create issue / plan next iter | auto create issue, `deferred` |
|
|
300
|
+
| low_risk | Record only | Record only |
|
|
301
|
+
| already_handled | Skip | Skip |
|
|
302
|
+
3. **Cross-phase loop**: needs_treatment area → S_EXECUTE (loops < max_loops → cross_phase_loops++); triage complete OR budget exhausted → S_RECORD
|
|
303
|
+
4. Append evidence (discovery + decision), update understanding.md §7. Mark G6 done.
|
|
304
|
+
|
|
305
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-planex({slug}): S_DISCOVER — 发现"`
|
|
306
|
+
|
|
307
|
+
### S_RECORD
|
|
308
|
+
|
|
309
|
+
1. Finalize understanding.md §8 — iteration summary, what worked, what needed rework
|
|
310
|
+
2. Write learnings to understanding.md §8: 按 Knowledge Persistence 表分类记录(临时),completion summary 列出建议的后续命令
|
|
311
|
+
3. Pending decisions: **Normal** → `request_user_input`. **`-y`** → display deferred count.
|
|
312
|
+
4. Goal audit: check all phase_goals[*].completion_confirmed. Mark G7 done.
|
|
313
|
+
5. Output completion summary:
|
|
314
|
+
```
|
|
315
|
+
--- PLANEX ODYSSEY COMPLETE ---
|
|
316
|
+
Requirement: {requirement}
|
|
317
|
+
Criteria: {passed}/{total} passed
|
|
318
|
+
Iterations: {N} cycles
|
|
319
|
+
Patterns: {patterns_extracted} ({by_layer} distribution)
|
|
320
|
+
Scan hits: {total_hits} ({cross_layer_confirmed} cross-layer confirmed)
|
|
321
|
+
Issues: {N} created | Decisions: {N} resolved, {M} pending, {K} deferred
|
|
322
|
+
Learnings: {N} spec entries
|
|
323
|
+
Self-iter: {N} rounds across {M} stages
|
|
324
|
+
Goals: {done}/{total} confirmed ({skipped} skipped)
|
|
325
|
+
Status: {ALL_PASSED|PARTIAL|ESCALATED}
|
|
326
|
+
---
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Next steps:** `$odyssey-review-test-fix <changed-files>`, `$odyssey-debug "<failing>"`, `$quality-review`, `$manage-issue list --source odyssey-planex`
|
|
330
|
+
|
|
331
|
+
📌 **Auto-commit**: `git add understanding.md && git commit -m "odyssey-planex({slug}): S_RECORD — 总结"`
|
|
332
|
+
</execution>
|
|
333
|
+
|
|
334
|
+
<appendix>
|
|
335
|
+
|
|
336
|
+
### Goal Prompt Template
|
|
337
|
+
|
|
338
|
+
**⚠️ 时机守卫:仅在 Stage 1 完成后显示一次(session 创建后、开始 Plan 前)。Stage 9 完成时禁止重新显示。**
|
|
339
|
+
|
|
340
|
+
```
|
|
341
|
+
📋 Planex Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
|
|
342
|
+
|
|
343
|
+
/goal 穷尽迭代:直到 acceptance_criteria[*] 全部 status==passed
|
|
344
|
+
且 phase_goals_all_done=true 才停。verify 失败自动 fix→re-verify 循环。
|
|
345
|
+
每轮修复后重新验证,新发现的标准违反继续修,不超过 max_iterations。
|
|
346
|
+
遇到 phase=decision 的 pending 必须 request_user_input,不得自行 resolve。
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
完成时仅输出 completion summary,不重复此提示。
|
|
350
|
+
|
|
351
|
+
### `-y` Auto-Confirm Behavior
|
|
352
|
+
|
|
353
|
+
| Decision Point | Normal | `-y` |
|
|
354
|
+
|----------------|--------|------|
|
|
355
|
+
| S_INTAKE criteria confirmation | request_user_input | auto-derive, `deferred` |
|
|
356
|
+
| S_VERIFY manual criterion | request_user_input | `deferred` |
|
|
357
|
+
| S_VERIFY max iteration reached | request_user_input | auto accept, `deferred` |
|
|
358
|
+
| S_DISCOVER classification routing | request_user_input | auto create issue, `deferred` |
|
|
359
|
+
| S_DISCOVER ambiguous items | request_user_input | all `deferred` |
|
|
360
|
+
| S_RECORD decision list | request_user_input | skip |
|
|
361
|
+
| S_RECORD goal audit | request_user_input | auto accept |
|
|
362
|
+
|
|
363
|
+
### Iteration Model
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
S_EXECUTE → S_VERIFY ──all pass──→ S_GENERALIZE → S_DISCOVER → S_RECORD
|
|
367
|
+
│ │
|
|
368
|
+
some fail + iter < max no hits ─→ S_RECORD
|
|
369
|
+
▼
|
|
370
|
+
S_FIX ──→ S_VERIFY (loop)
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
Max iterations (default 3) prevents infinite loops. Each iteration records criteria_before, gaps_fixed, criteria_after.
|
|
374
|
+
|
|
375
|
+
### Phase Goal Lifecycle
|
|
376
|
+
|
|
377
|
+
`pending → done | skipped | failed`
|
|
378
|
+
|
|
379
|
+
</appendix>
|
|
380
|
+
|
|
381
|
+
<error_codes>
|
|
382
|
+
| Code | Severity | Condition | Recovery |
|
|
383
|
+
|------|----------|-----------|----------|
|
|
384
|
+
| E001 | error | No requirement provided | Provide requirement |
|
|
385
|
+
| E003 | error | Resume but no session found | Start new |
|
|
386
|
+
| E004 | error | Delegate failed | Retry or skip |
|
|
387
|
+
| W001 | warning | No criteria derived | Manual definition |
|
|
388
|
+
| W002 | warning | Max iterations, criteria failing | Escalate |
|
|
389
|
+
| W003 | warning | CLI regression concern | Review before next |
|
|
390
|
+
| W004 | warning | Delegate parse failed | Raw output |
|
|
391
|
+
</error_codes>
|
|
392
|
+
|
|
393
|
+
<success_criteria>
|
|
394
|
+
- [ ] Requirement parsed and ≥1 acceptance criterion defined with verify_method
|
|
395
|
+
- [ ] Plan created with tasks mapped to criteria
|
|
396
|
+
- [ ] Tasks executed with evidence logged
|
|
397
|
+
- [ ] Every criterion verified by its method after each iteration
|
|
398
|
+
- [ ] Failing criteria trigger targeted fix (not full re-implementation)
|
|
399
|
+
- [ ] Iteration count tracked, max respected
|
|
400
|
+
- [ ] understanding.md updated per phase (§1-§8)
|
|
401
|
+
- [ ] Multi-layer generalization + 4-agent scan (unless --skip-generalize)
|
|
402
|
+
- [ ] Discoveries classified and routed (unless --skip-generalize)
|
|
403
|
+
- [ ] Quality Gate self-iteration triggered when insufficient, logged in self_iteration_log
|
|
404
|
+
- [ ] phase_goals G1-G7 tracked and audited
|
|
405
|
+
- [ ] Goal Prompt displayed once after intake
|
|
406
|
+
- [ ] `-y` mode: no blocking prompts, deferred counted
|
|
407
|
+
- [ ] Session resumable via -c
|
|
408
|
+
- [ ] Completion summary with iteration stats
|
|
409
|
+
</success_criteria>
|