maestro-flow 0.5.1 → 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/learn-decompose/SKILL.md +144 -144
- package/.codex/skills/learn-follow/SKILL.md +83 -83
- package/.codex/skills/learn-investigate/SKILL.md +84 -84
- package/.codex/skills/learn-retro/SKILL.md +113 -113
- package/.codex/skills/learn-second-opinion/SKILL.md +116 -116
- package/.codex/skills/maestro/SKILL.md +11 -8
- package/.codex/skills/maestro-amend/SKILL.md +4 -4
- package/.codex/skills/maestro-analyze/SKILL.md +2 -2
- package/.codex/skills/maestro-blueprint/SKILL.md +4 -4
- package/.codex/skills/maestro-companion/SKILL.md +5 -5
- package/.codex/skills/maestro-composer/SKILL.md +217 -217
- package/.codex/skills/maestro-grill/SKILL.md +1 -1
- package/.codex/skills/maestro-help/SKILL.md +31 -31
- package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
- package/.codex/skills/maestro-init/SKILL.md +1 -1
- package/.codex/skills/maestro-learn/SKILL.md +80 -80
- package/.codex/skills/maestro-merge/SKILL.md +76 -76
- package/.codex/skills/maestro-milestone-release/SKILL.md +74 -74
- package/.codex/skills/maestro-next/SKILL.md +1 -1
- package/.codex/skills/maestro-player/SKILL.md +3 -3
- package/.codex/skills/maestro-quick/SKILL.md +129 -129
- package/.codex/skills/maestro-ralph/SKILL.md +9 -9
- package/.codex/skills/maestro-ralph-beta/SKILL.md +35 -35
- package/.codex/skills/maestro-ralph-execute/SKILL.md +5 -5
- package/.codex/skills/maestro-tools-execute/SKILL.md +3 -3
- package/.codex/skills/maestro-tools-register/SKILL.md +3 -3
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +412 -412
- package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
- package/.codex/skills/manage-harvest/SKILL.md +99 -99
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +137 -137
- package/.codex/skills/manage-status/SKILL.md +7 -7
- package/.codex/skills/manage-wiki/SKILL.md +55 -55
- 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/.codex/skills/quality-auto-test/SKILL.md +1 -1
- package/.codex/skills/quality-debug/SKILL.md +8 -8
- package/.codex/skills/quality-refactor/SKILL.md +3 -3
- package/.codex/skills/quality-review/SKILL.md +1 -1
- package/.codex/skills/quality-sync/SKILL.md +111 -111
- package/.codex/skills/quality-test/SKILL.md +1 -1
- package/.codex/skills/spec-add/SKILL.md +2 -2
- package/.codex/skills/spec-load/SKILL.md +1 -1
- package/.codex/skills/spec-map/SKILL.md +204 -204
- package/.codex/skills/spec-remove/SKILL.md +75 -75
- package/.codex/skills/spec-setup/SKILL.md +2 -2
- package/.codex/skills/wiki-connect/SKILL.md +73 -73
- package/.codex/skills/wiki-digest/SKILL.md +87 -87
- 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/ralph/skill-scanner.d.ts.map +1 -1
- package/dist/src/ralph/skill-scanner.js +9 -3
- package/dist/src/ralph/skill-scanner.js.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
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: learn-retro
|
|
3
|
-
description: Retrospective of git activity and decision quality
|
|
4
|
-
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"[--lens git|decision|all] [--days N] [--author <name>] [--area <path>] [--phase N] [--compare]\""
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep,
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Unified retrospective combining git activity analysis and decision quality evaluation.
|
|
10
|
-
Two lenses, usable independently or together:
|
|
11
|
-
- **git**: Commit metrics, session detection, per-author breakdown, file hotspots, trends
|
|
12
|
-
- **decision**: Decision tracing across wiki/specs/git, multi-perspective evaluation via 3 parallel agents
|
|
13
|
-
|
|
14
|
-
Works on raw git history and wiki/spec data — does not require completed phase artifacts.
|
|
15
|
-
</purpose>
|
|
16
|
-
|
|
17
|
-
<context>
|
|
18
|
-
$ARGUMENTS — lens selection and scope flags.
|
|
19
|
-
|
|
20
|
-
**Lens:** `--lens git` | `--lens decision` | `--lens all` (default)
|
|
21
|
-
|
|
22
|
-
**Git flags:** `--days N` (default: 7), `--author <name>`, `--area <path>`, `--compare`
|
|
23
|
-
**Decision flags:** `--phase N`, `--tag <tag>`, `--id <id>`
|
|
24
|
-
|
|
25
|
-
**Output**: `.workflow/knowhow/KNW-retro-{date}.md` + `KNW-retro-{date}.json`
|
|
26
|
-
</context>
|
|
27
|
-
|
|
28
|
-
<execution>
|
|
29
|
-
|
|
30
|
-
### Phase 1: Parse + Select Lenses
|
|
31
|
-
|
|
32
|
-
### Phase 2: Git Lens (skip if --lens decision)
|
|
33
|
-
**Sequential data gathering** (parallel git commands):
|
|
34
|
-
- Commit stats with shortstat
|
|
35
|
-
- Per-commit numstat for test/production LOC split
|
|
36
|
-
- Timestamps for session detection (>2hr gap clustering)
|
|
37
|
-
- File hotspots (most frequently changed)
|
|
38
|
-
- Per-author commit counts
|
|
39
|
-
|
|
40
|
-
**Compute**: commits, LOC, test ratio, churn rate, active days, sessions, per-author breakdown.
|
|
41
|
-
**Trend comparison** if prior `retro-*.json` exists.
|
|
42
|
-
|
|
43
|
-
### Phase 3: Decision Lens (skip if --lens git)
|
|
44
|
-
**3a: Collect decisions** from wiki, specs, git log, phase context, .workflow/specs/learnings.md.
|
|
45
|
-
**3b: Build decision registry** per decision (id, title, source, rationale, alternatives, evidence).
|
|
46
|
-
|
|
47
|
-
**3c: Multi-perspective evaluation** via spawn_agents_on_csv (3 parallel agents; filter `wave==1 AND status=="pending"`):
|
|
48
|
-
|
|
49
|
-
| id | perspective | focus |
|
|
50
|
-
|----|------------|-------|
|
|
51
|
-
| 1 | technical | Implementation vs intent, context drift. Grade: sound/degraded/violated |
|
|
52
|
-
| 2 | cost | Complexity added, coupling, tech debt. Grade: low-cost/acceptable/expensive |
|
|
53
|
-
| 3 | hindsight | Right call with current knowledge? Grade: confirmed/questionable/should-revisit |
|
|
54
|
-
|
|
55
|
-
**output_schema**:
|
|
56
|
-
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"type": "object",
|
|
60
|
-
"properties": {
|
|
61
|
-
"id": { "type": "string" },
|
|
62
|
-
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
63
|
-
"perspective": { "type": "string", "enum": ["technical", "cost", "hindsight"] },
|
|
64
|
-
"grade": { "type": "string" },
|
|
65
|
-
"findings": { "type": "string", "maxLength": 500 },
|
|
66
|
-
"error": { "type": "string" }
|
|
67
|
-
},
|
|
68
|
-
"required": ["id", "result_status", "grade", "findings"]
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Merge: `result_status` → master `status`; copy `perspective`, `grade`, `findings`, `error`.
|
|
73
|
-
|
|
74
|
-
**Shared termination contract** (embed in every instruction):
|
|
75
|
-
```
|
|
76
|
-
You MUST call report_agent_job_result EXACTLY ONCE before exiting.
|
|
77
|
-
- Success → result_status=completed with concrete grade
|
|
78
|
-
- Failure → result_status=failed with error message
|
|
79
|
-
- Timeout → near max_runtime_seconds → result_status=failed, error="timeout (partial)"
|
|
80
|
-
- NEVER continue indefinitely. NEVER exit silently. NEVER omit the call.
|
|
81
|
-
- Read-only analysis. Do NOT modify source files.
|
|
82
|
-
Do NOT write to tasks.csv, wave-*.csv, results.csv. Do NOT call spawn_agents_on_csv (no recursion).
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
**3d: Classify lifecycle**: Validated / Aging / Questionable / Stale / Reversed.
|
|
86
|
-
|
|
87
|
-
### Phase 4: Unified Report
|
|
88
|
-
Write `KNW-retro-{date}.md` + `KNW-retro-{date}.json` with metrics, sessions, hotspots, decision health, combined insights, recommended actions.
|
|
89
|
-
|
|
90
|
-
### Phase 5: Persist
|
|
91
|
-
Append insights to `.workflow/specs/learnings.md` (source: "retro-git" or "retro-decision"). Display summary.
|
|
92
|
-
|
|
93
|
-
**Next steps:**
|
|
94
|
-
</execution>
|
|
95
|
-
|
|
96
|
-
<error_codes>
|
|
97
|
-
| Code | Severity | Condition | Recovery |
|
|
98
|
-
|------|----------|-----------|----------|
|
|
99
|
-
| E001 | error | Not inside git repo (git lens) | Navigate to git repo |
|
|
100
|
-
| E002 | error | No commits in time window | Increase --days |
|
|
101
|
-
| E003 | error | No decisions found (decision lens) | Check wiki/specs content |
|
|
102
|
-
| W001 | warning | .workflow/knowhow/ not found | Auto-bootstrap |
|
|
103
|
-
| W002 | warning | No prior retro for comparison | First retro establishes baseline |
|
|
104
|
-
| W003 | warning | Decision perspective agent failed | Proceed with partial evaluation |
|
|
105
|
-
</error_codes>
|
|
106
|
-
|
|
107
|
-
<success_criteria>
|
|
108
|
-
- [ ] Lens selection parsed correctly
|
|
109
|
-
- [ ] Git lens: metrics computed, sessions detected, hotspots identified
|
|
110
|
-
- [ ] Decision lens: decisions collected, 3 agents spawned in parallel, lifecycle classified
|
|
111
|
-
- [ ] Unified report written to KNW-retro-{date}.md + KNW-retro-{date}.json
|
|
112
|
-
- [ ] .workflow/specs/learnings.md appended with insights (stable INS-ids)
|
|
113
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: learn-retro
|
|
3
|
+
description: Retrospective of git activity and decision quality
|
|
4
|
+
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"[--lens git|decision|all] [--days N] [--author <name>] [--area <path>] [--phase N] [--compare]\""
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Unified retrospective combining git activity analysis and decision quality evaluation.
|
|
10
|
+
Two lenses, usable independently or together:
|
|
11
|
+
- **git**: Commit metrics, session detection, per-author breakdown, file hotspots, trends
|
|
12
|
+
- **decision**: Decision tracing across wiki/specs/git, multi-perspective evaluation via 3 parallel agents
|
|
13
|
+
|
|
14
|
+
Works on raw git history and wiki/spec data — does not require completed phase artifacts.
|
|
15
|
+
</purpose>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
$ARGUMENTS — lens selection and scope flags.
|
|
19
|
+
|
|
20
|
+
**Lens:** `--lens git` | `--lens decision` | `--lens all` (default)
|
|
21
|
+
|
|
22
|
+
**Git flags:** `--days N` (default: 7), `--author <name>`, `--area <path>`, `--compare`
|
|
23
|
+
**Decision flags:** `--phase N`, `--tag <tag>`, `--id <id>`
|
|
24
|
+
|
|
25
|
+
**Output**: `.workflow/knowhow/KNW-retro-{date}.md` + `KNW-retro-{date}.json`
|
|
26
|
+
</context>
|
|
27
|
+
|
|
28
|
+
<execution>
|
|
29
|
+
|
|
30
|
+
### Phase 1: Parse + Select Lenses
|
|
31
|
+
|
|
32
|
+
### Phase 2: Git Lens (skip if --lens decision)
|
|
33
|
+
**Sequential data gathering** (parallel git commands):
|
|
34
|
+
- Commit stats with shortstat
|
|
35
|
+
- Per-commit numstat for test/production LOC split
|
|
36
|
+
- Timestamps for session detection (>2hr gap clustering)
|
|
37
|
+
- File hotspots (most frequently changed)
|
|
38
|
+
- Per-author commit counts
|
|
39
|
+
|
|
40
|
+
**Compute**: commits, LOC, test ratio, churn rate, active days, sessions, per-author breakdown.
|
|
41
|
+
**Trend comparison** if prior `retro-*.json` exists.
|
|
42
|
+
|
|
43
|
+
### Phase 3: Decision Lens (skip if --lens git)
|
|
44
|
+
**3a: Collect decisions** from wiki, specs, git log, phase context, .workflow/specs/learnings.md.
|
|
45
|
+
**3b: Build decision registry** per decision (id, title, source, rationale, alternatives, evidence).
|
|
46
|
+
|
|
47
|
+
**3c: Multi-perspective evaluation** via spawn_agents_on_csv (3 parallel agents; filter `wave==1 AND status=="pending"`):
|
|
48
|
+
|
|
49
|
+
| id | perspective | focus |
|
|
50
|
+
|----|------------|-------|
|
|
51
|
+
| 1 | technical | Implementation vs intent, context drift. Grade: sound/degraded/violated |
|
|
52
|
+
| 2 | cost | Complexity added, coupling, tech debt. Grade: low-cost/acceptable/expensive |
|
|
53
|
+
| 3 | hindsight | Right call with current knowledge? Grade: confirmed/questionable/should-revisit |
|
|
54
|
+
|
|
55
|
+
**output_schema**:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {
|
|
61
|
+
"id": { "type": "string" },
|
|
62
|
+
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
63
|
+
"perspective": { "type": "string", "enum": ["technical", "cost", "hindsight"] },
|
|
64
|
+
"grade": { "type": "string" },
|
|
65
|
+
"findings": { "type": "string", "maxLength": 500 },
|
|
66
|
+
"error": { "type": "string" }
|
|
67
|
+
},
|
|
68
|
+
"required": ["id", "result_status", "grade", "findings"]
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Merge: `result_status` → master `status`; copy `perspective`, `grade`, `findings`, `error`.
|
|
73
|
+
|
|
74
|
+
**Shared termination contract** (embed in every instruction):
|
|
75
|
+
```
|
|
76
|
+
You MUST call report_agent_job_result EXACTLY ONCE before exiting.
|
|
77
|
+
- Success → result_status=completed with concrete grade
|
|
78
|
+
- Failure → result_status=failed with error message
|
|
79
|
+
- Timeout → near max_runtime_seconds → result_status=failed, error="timeout (partial)"
|
|
80
|
+
- NEVER continue indefinitely. NEVER exit silently. NEVER omit the call.
|
|
81
|
+
- Read-only analysis. Do NOT modify source files.
|
|
82
|
+
Do NOT write to tasks.csv, wave-*.csv, results.csv. Do NOT call spawn_agents_on_csv (no recursion).
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**3d: Classify lifecycle**: Validated / Aging / Questionable / Stale / Reversed.
|
|
86
|
+
|
|
87
|
+
### Phase 4: Unified Report
|
|
88
|
+
Write `KNW-retro-{date}.md` + `KNW-retro-{date}.json` with metrics, sessions, hotspots, decision health, combined insights, recommended actions.
|
|
89
|
+
|
|
90
|
+
### Phase 5: Persist
|
|
91
|
+
Append insights to `.workflow/specs/learnings.md` (source: "retro-git" or "retro-decision"). Display summary.
|
|
92
|
+
|
|
93
|
+
**Next steps:** `$learn-follow <path>`, `$quality-auto-test <area>`, `$learn-investigate <question>`
|
|
94
|
+
</execution>
|
|
95
|
+
|
|
96
|
+
<error_codes>
|
|
97
|
+
| Code | Severity | Condition | Recovery |
|
|
98
|
+
|------|----------|-----------|----------|
|
|
99
|
+
| E001 | error | Not inside git repo (git lens) | Navigate to git repo |
|
|
100
|
+
| E002 | error | No commits in time window | Increase --days |
|
|
101
|
+
| E003 | error | No decisions found (decision lens) | Check wiki/specs content |
|
|
102
|
+
| W001 | warning | .workflow/knowhow/ not found | Auto-bootstrap |
|
|
103
|
+
| W002 | warning | No prior retro for comparison | First retro establishes baseline |
|
|
104
|
+
| W003 | warning | Decision perspective agent failed | Proceed with partial evaluation |
|
|
105
|
+
</error_codes>
|
|
106
|
+
|
|
107
|
+
<success_criteria>
|
|
108
|
+
- [ ] Lens selection parsed correctly
|
|
109
|
+
- [ ] Git lens: metrics computed, sessions detected, hotspots identified
|
|
110
|
+
- [ ] Decision lens: decisions collected, 3 agents spawned in parallel, lifecycle classified
|
|
111
|
+
- [ ] Unified report written to KNW-retro-{date}.md + KNW-retro-{date}.json
|
|
112
|
+
- [ ] .workflow/specs/learnings.md appended with insights (stable INS-ids)
|
|
113
|
+
</success_criteria>
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: learn-second-opinion
|
|
3
|
-
description: Get alternative perspectives -- review, challenge, or consult
|
|
4
|
-
argument-hint: "[-y|--yes] [-c|--concurrency 3] [--continue] \"<target> [--mode review|challenge|consult]\""
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep,
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Structured second-opinion for code, decisions, or plans. Three modes:
|
|
10
|
-
- **review** (default): 3 parallel persona agents independently assess target via spawn_agents_on_csv
|
|
11
|
-
- **challenge**: single adversarial agent via spawn_agents_on_csv (1 worker)
|
|
12
|
-
- **consult**: interactive Q&A (no CSV wave — direct orchestration)
|
|
13
|
-
|
|
14
|
-
Findings persist to `.workflow/specs/learnings.md`. Decoupled from phase lifecycle.
|
|
15
|
-
</purpose>
|
|
16
|
-
|
|
17
|
-
<context>
|
|
18
|
-
$ARGUMENTS — target and optional flags.
|
|
19
|
-
|
|
20
|
-
**Target resolution (auto-detected):**
|
|
21
|
-
- File path → analyze file content
|
|
22
|
-
- Wiki ID (`type-slug`) → fetch via `maestro wiki get`
|
|
23
|
-
- `HEAD` / `staged` → analyze git diff
|
|
24
|
-
- Phase number → analyze phase plan
|
|
25
|
-
|
|
26
|
-
**Flags:**
|
|
27
|
-
- `--mode review` — 3-persona parallel review (default)
|
|
28
|
-
- `--mode challenge` — Adversarial single-agent analysis
|
|
29
|
-
- `--mode consult` — Interactive Q&A session
|
|
30
|
-
|
|
31
|
-
**Output**: `.workflow/knowhow/KNW-opinion-{slug}-{date}.md`
|
|
32
|
-
</context>
|
|
33
|
-
|
|
34
|
-
<execution>
|
|
35
|
-
|
|
36
|
-
### Phase 1: Resolve Target + Load Context
|
|
37
|
-
Resolve target to content. Load specs, `maestro search`, prior lessons for context brief.
|
|
38
|
-
|
|
39
|
-
### Phase 2: Execute Mode
|
|
40
|
-
|
|
41
|
-
#### Review Mode (spawn_agents_on_csv)
|
|
42
|
-
|
|
43
|
-
| id | persona | focus | grading |
|
|
44
|
-
|----|---------|-------|---------|
|
|
45
|
-
| 1 | pragmatist | Simplicity, YAGNI, maintenance cost, readability | complexity score, abstraction depth |
|
|
46
|
-
| 2 | purist | Correctness, type safety, edge cases, error handling | error paths, type completeness |
|
|
47
|
-
| 3 | strategist | Scalability, extensibility, architecture alignment | coupling, cohesion |
|
|
48
|
-
| 4 | synthesis | Merge verdicts → agreements, disagreements, top 3 recommendations | combined verdict |
|
|
49
|
-
|
|
50
|
-
Wave 1: 3 persona agents in parallel (filter `wave==1 AND status=="pending"`). Wave 2: synthesis agent with wave 1 findings as prev_context.
|
|
51
|
-
|
|
52
|
-
**output_schema** (both waves):
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{
|
|
56
|
-
"type": "object",
|
|
57
|
-
"properties": {
|
|
58
|
-
"id": { "type": "string" },
|
|
59
|
-
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
60
|
-
"persona": { "type": "string" },
|
|
61
|
-
"verdict": { "type": "string", "enum": ["approve", "concern", "reject", ""] },
|
|
62
|
-
"confidence": { "type": "string", "description": "0-100" },
|
|
63
|
-
"findings": { "type": "string", "description": "JSON array of {severity, description, location, suggestion}, max 500 chars summary" },
|
|
64
|
-
"summary": { "type": "string", "maxLength": 500 },
|
|
65
|
-
"error": { "type": "string" }
|
|
66
|
-
},
|
|
67
|
-
"required": ["id", "result_status", "findings", "summary"]
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Merge: `result_status` → master `status`; copy `persona`, `verdict`, `confidence`, `findings`, `summary`, `error`.
|
|
72
|
-
|
|
73
|
-
**Shared termination contract** (embed in every instruction):
|
|
74
|
-
```
|
|
75
|
-
You MUST call report_agent_job_result EXACTLY ONCE before exiting.
|
|
76
|
-
- Success → result_status=completed with concrete verdict
|
|
77
|
-
- Failure → result_status=failed with error message
|
|
78
|
-
- Timeout → near max_runtime_seconds → result_status=failed, error="timeout (partial)"
|
|
79
|
-
- NEVER continue indefinitely. NEVER exit silently. NEVER omit the call.
|
|
80
|
-
- Read-only analysis. Do NOT modify source files.
|
|
81
|
-
Do NOT write to tasks.csv, wave-*.csv, results.csv. Do NOT call spawn_agents_on_csv (no recursion).
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
#### Challenge Mode
|
|
85
|
-
Single agent via spawn_agents_on_csv (max_concurrency: 1) with the same `output_schema` + termination contract above. Adversarial analysis with forcing questions:
|
|
86
|
-
- "What assumption would invalidate this entire approach?"
|
|
87
|
-
- "What's the simplest thing that breaks this?"
|
|
88
|
-
- "What's the implicit contract that isn't enforced?"
|
|
89
|
-
|
|
90
|
-
#### Consult Mode
|
|
91
|
-
Interactive loop via
|
|
92
|
-
|
|
93
|
-
### Phase 3: Persist
|
|
94
|
-
1. Write `KNW-opinion-{slug}-{date}.md` with per-persona findings + synthesis
|
|
95
|
-
2. Append non-trivial findings to `.workflow/specs/learnings.md` (source: "second-opinion")
|
|
96
|
-
3. Display summary with verdict and next steps
|
|
97
|
-
|
|
98
|
-
**Next steps:**
|
|
99
|
-
</execution>
|
|
100
|
-
|
|
101
|
-
<error_codes>
|
|
102
|
-
| Code | Severity | Condition | Recovery |
|
|
103
|
-
|------|----------|-----------|----------|
|
|
104
|
-
| E001 | error | Target not resolvable | Verify path/ID |
|
|
105
|
-
| E002 | error | Unknown --mode value | Use: review, challenge, consult |
|
|
106
|
-
| W001 | warning | Persona agent failed — partial perspectives | Proceed with available agents |
|
|
107
|
-
| W003 | warning | Git diff empty for HEAD/staged | Use file path instead |
|
|
108
|
-
</error_codes>
|
|
109
|
-
|
|
110
|
-
<success_criteria>
|
|
111
|
-
- [ ] Target resolved and context loaded
|
|
112
|
-
- [ ] Mode executed: review (3 parallel agents), challenge (adversarial), or consult (interactive)
|
|
113
|
-
- [ ] Synthesis produced with agreements, disagreements, verdict
|
|
114
|
-
- [ ] Report written to `KNW-opinion-{slug}-{date}.md`
|
|
115
|
-
- [ ] Non-trivial findings appended to `.workflow/specs/learnings.md`
|
|
116
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: learn-second-opinion
|
|
3
|
+
description: Get alternative perspectives -- review, challenge, or consult
|
|
4
|
+
argument-hint: "[-y|--yes] [-c|--concurrency 3] [--continue] \"<target> [--mode review|challenge|consult]\""
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Structured second-opinion for code, decisions, or plans. Three modes:
|
|
10
|
+
- **review** (default): 3 parallel persona agents independently assess target via spawn_agents_on_csv
|
|
11
|
+
- **challenge**: single adversarial agent via spawn_agents_on_csv (1 worker)
|
|
12
|
+
- **consult**: interactive Q&A (no CSV wave — direct orchestration)
|
|
13
|
+
|
|
14
|
+
Findings persist to `.workflow/specs/learnings.md`. Decoupled from phase lifecycle.
|
|
15
|
+
</purpose>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
$ARGUMENTS — target and optional flags.
|
|
19
|
+
|
|
20
|
+
**Target resolution (auto-detected):**
|
|
21
|
+
- File path → analyze file content
|
|
22
|
+
- Wiki ID (`type-slug`) → fetch via `maestro wiki get`
|
|
23
|
+
- `HEAD` / `staged` → analyze git diff
|
|
24
|
+
- Phase number → analyze phase plan
|
|
25
|
+
|
|
26
|
+
**Flags:**
|
|
27
|
+
- `--mode review` — 3-persona parallel review (default)
|
|
28
|
+
- `--mode challenge` — Adversarial single-agent analysis
|
|
29
|
+
- `--mode consult` — Interactive Q&A session
|
|
30
|
+
|
|
31
|
+
**Output**: `.workflow/knowhow/KNW-opinion-{slug}-{date}.md`
|
|
32
|
+
</context>
|
|
33
|
+
|
|
34
|
+
<execution>
|
|
35
|
+
|
|
36
|
+
### Phase 1: Resolve Target + Load Context
|
|
37
|
+
Resolve target to content. Load specs, `maestro search`, prior lessons for context brief.
|
|
38
|
+
|
|
39
|
+
### Phase 2: Execute Mode
|
|
40
|
+
|
|
41
|
+
#### Review Mode (spawn_agents_on_csv)
|
|
42
|
+
|
|
43
|
+
| id | persona | focus | grading |
|
|
44
|
+
|----|---------|-------|---------|
|
|
45
|
+
| 1 | pragmatist | Simplicity, YAGNI, maintenance cost, readability | complexity score, abstraction depth |
|
|
46
|
+
| 2 | purist | Correctness, type safety, edge cases, error handling | error paths, type completeness |
|
|
47
|
+
| 3 | strategist | Scalability, extensibility, architecture alignment | coupling, cohesion |
|
|
48
|
+
| 4 | synthesis | Merge verdicts → agreements, disagreements, top 3 recommendations | combined verdict |
|
|
49
|
+
|
|
50
|
+
Wave 1: 3 persona agents in parallel (filter `wave==1 AND status=="pending"`). Wave 2: synthesis agent with wave 1 findings as prev_context.
|
|
51
|
+
|
|
52
|
+
**output_schema** (both waves):
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"type": "object",
|
|
57
|
+
"properties": {
|
|
58
|
+
"id": { "type": "string" },
|
|
59
|
+
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
60
|
+
"persona": { "type": "string" },
|
|
61
|
+
"verdict": { "type": "string", "enum": ["approve", "concern", "reject", ""] },
|
|
62
|
+
"confidence": { "type": "string", "description": "0-100" },
|
|
63
|
+
"findings": { "type": "string", "description": "JSON array of {severity, description, location, suggestion}, max 500 chars summary" },
|
|
64
|
+
"summary": { "type": "string", "maxLength": 500 },
|
|
65
|
+
"error": { "type": "string" }
|
|
66
|
+
},
|
|
67
|
+
"required": ["id", "result_status", "findings", "summary"]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Merge: `result_status` → master `status`; copy `persona`, `verdict`, `confidence`, `findings`, `summary`, `error`.
|
|
72
|
+
|
|
73
|
+
**Shared termination contract** (embed in every instruction):
|
|
74
|
+
```
|
|
75
|
+
You MUST call report_agent_job_result EXACTLY ONCE before exiting.
|
|
76
|
+
- Success → result_status=completed with concrete verdict
|
|
77
|
+
- Failure → result_status=failed with error message
|
|
78
|
+
- Timeout → near max_runtime_seconds → result_status=failed, error="timeout (partial)"
|
|
79
|
+
- NEVER continue indefinitely. NEVER exit silently. NEVER omit the call.
|
|
80
|
+
- Read-only analysis. Do NOT modify source files.
|
|
81
|
+
Do NOT write to tasks.csv, wave-*.csv, results.csv. Do NOT call spawn_agents_on_csv (no recursion).
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### Challenge Mode
|
|
85
|
+
Single agent via spawn_agents_on_csv (max_concurrency: 1) with the same `output_schema` + termination contract above. Adversarial analysis with forcing questions:
|
|
86
|
+
- "What assumption would invalidate this entire approach?"
|
|
87
|
+
- "What's the simplest thing that breaks this?"
|
|
88
|
+
- "What's the implicit contract that isn't enforced?"
|
|
89
|
+
|
|
90
|
+
#### Consult Mode
|
|
91
|
+
Interactive loop via request_user_input. Agent studies target, answers questions with code references. Compile Q&A into report on exit.
|
|
92
|
+
|
|
93
|
+
### Phase 3: Persist
|
|
94
|
+
1. Write `KNW-opinion-{slug}-{date}.md` with per-persona findings + synthesis
|
|
95
|
+
2. Append non-trivial findings to `.workflow/specs/learnings.md` (source: "second-opinion")
|
|
96
|
+
3. Display summary with verdict and next steps
|
|
97
|
+
|
|
98
|
+
**Next steps:** `$manage-issue create`, `$learn-decompose <path>`, `$learn-follow <path>`
|
|
99
|
+
</execution>
|
|
100
|
+
|
|
101
|
+
<error_codes>
|
|
102
|
+
| Code | Severity | Condition | Recovery |
|
|
103
|
+
|------|----------|-----------|----------|
|
|
104
|
+
| E001 | error | Target not resolvable | Verify path/ID |
|
|
105
|
+
| E002 | error | Unknown --mode value | Use: review, challenge, consult |
|
|
106
|
+
| W001 | warning | Persona agent failed — partial perspectives | Proceed with available agents |
|
|
107
|
+
| W003 | warning | Git diff empty for HEAD/staged | Use file path instead |
|
|
108
|
+
</error_codes>
|
|
109
|
+
|
|
110
|
+
<success_criteria>
|
|
111
|
+
- [ ] Target resolved and context loaded
|
|
112
|
+
- [ ] Mode executed: review (3 parallel agents), challenge (adversarial), or consult (interactive)
|
|
113
|
+
- [ ] Synthesis produced with agreements, disagreements, verdict
|
|
114
|
+
- [ ] Report written to `KNW-opinion-{slug}-{date}.md`
|
|
115
|
+
- [ ] Non-trivial findings appended to `.workflow/specs/learnings.md`
|
|
116
|
+
</success_criteria>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: maestro
|
|
3
3
|
description: Auto-route intent to optimal command chain
|
|
4
4
|
argument-hint: "\"intent text\" [-y] [-c|--continue] [--dry-run] [--super]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep,
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
@@ -120,7 +120,7 @@ S_ABORTED:
|
|
|
120
120
|
→ END DO: A_ABORT_REPORT
|
|
121
121
|
|
|
122
122
|
S_FALLBACK:
|
|
123
|
-
→ S_CLASSIFY WHEN: user provides new intent DO:
|
|
123
|
+
→ S_CLASSIFY WHEN: user provides new intent DO: request_user_input
|
|
124
124
|
→ END WHEN: user cancels
|
|
125
125
|
|
|
126
126
|
</transitions>
|
|
@@ -259,7 +259,7 @@ Read `.workflow/state.json` and route by condition:
|
|
|
259
259
|
|
|
260
260
|
### A_CLARIFY_INTENT
|
|
261
261
|
|
|
262
|
-
1. `
|
|
262
|
+
1. `request_user_input` with available chain types
|
|
263
263
|
2. Re-classify with user response
|
|
264
264
|
|
|
265
265
|
### A_DECOMPOSE_TASKS
|
|
@@ -267,7 +267,7 @@ Read `.workflow/state.json` and route by condition:
|
|
|
267
267
|
与 maestro-ralph `A_DECOMPOSE_TASKS` 共享分解契约。Condensed:
|
|
268
268
|
|
|
269
269
|
1. 分类意图广度。narrow / 单步 / `{status,init,quick}` 链跳过
|
|
270
|
-
2. broad/medium → `
|
|
270
|
+
2. broad/medium → `request_user_input` ≤3 轮:Scope / Constraints / Definition of Done
|
|
271
271
|
3. 派生 `execution_criteria` + `task_decomposition`(每个 sub-goal 含 `done_when` + `evidence` + `lifecycle` + `completion_confirmed: false`)
|
|
272
272
|
4. **status.json 唯一真源**:写入 `boundary_contract` / `execution_criteria` / `task_decomposition`;不生成 markdown 清单
|
|
273
273
|
5. 链路末尾(evidence 产出步骤后、milestone-complete/close-out 前)追加 `decision:post-goal-audit`。S_DECISION_EVAL 据此动态生长 `steps[]`
|
|
@@ -282,7 +282,10 @@ Read `.workflow/state.json` and route by condition:
|
|
|
282
282
|
|
|
283
283
|
1. Read `.workflow/state.json` 获取 phase / milestone(D-007 反查 `phase_slugs`);读最新 macro analyze artifact 注入 `scope_verdict` + `analyze_macro_id`;读最新 blueprint artifact 注入 `blueprint_id`
|
|
284
284
|
2. Resolve chain's skill list from Chain Map (see appendix)
|
|
285
|
-
3.
|
|
285
|
+
3. **Prevalidate via `Bash("maestro ralph skills --platform codex --json --quiet")`** 一次性拉取所有可用 codex skills(global `~/.codex/skills/` + project `.codex/skills/`,project 覆盖 global),匹配 skill 名得到:
|
|
286
|
+
- 命中 → `command_scope = "global" | "project"`,`command_path = <绝对 SKILL.md 路径>`
|
|
287
|
+
- 未命中 → `command_scope = "missing"`, `command_path = null`
|
|
288
|
+
4. Create `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/status.json`(与 ralph 共用 schema):
|
|
286
289
|
```json
|
|
287
290
|
{
|
|
288
291
|
"session_id", "source": "maestro", "intent", "task_type", "chain_name",
|
|
@@ -296,7 +299,7 @@ Read `.workflow/state.json` and route by condition:
|
|
|
296
299
|
"skill": "", "args": "",
|
|
297
300
|
"stage": "", "scope": null,
|
|
298
301
|
"command_scope": "global|project|missing|null",
|
|
299
|
-
"command_path": "~/.
|
|
302
|
+
"command_path": "~/.codex/skills/{name}/SKILL.md | .codex/skills/{name}/SKILL.md | null",
|
|
300
303
|
"milestone_id": null, "source_artifact_ref": null,
|
|
301
304
|
"status": "pending", "goal_ref": null,
|
|
302
305
|
"completion_confirmed": false, "completion_status": null,
|
|
@@ -310,8 +313,8 @@ Read `.workflow/state.json` and route by condition:
|
|
|
310
313
|
}
|
|
311
314
|
```
|
|
312
315
|
Decomposition fields written ONLY if A_DECOMPOSE_TASKS produced them (additive)
|
|
313
|
-
|
|
314
|
-
|
|
316
|
+
5. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 列出缺失 skill
|
|
317
|
+
6. Initialize tracking:
|
|
315
318
|
- If decomposed: goal already registered by A_DECOMPOSE_TASKS. Else: `create_goal({ objective: "Maestro {chain}: {N} steps [{skill list}]" })`
|
|
316
319
|
- `update_plan({ plan: steps.map(step => ({ step, status: "pending" })) })`
|
|
317
320
|
|
|
@@ -7,7 +7,7 @@ allowed-tools: Read, Write, Bash, Glob, Grep, request_user_input
|
|
|
7
7
|
<purpose>
|
|
8
8
|
Signal-driven overlay generator — collect workflow deficiency signals from multiple sources, diagnose which commands need amendment, batch-generate targeted overlays. All amendments use overlay system (`~/.maestro/overlays/*.json`) — non-invasive, idempotent, survives reinstall.
|
|
9
9
|
|
|
10
|
-
Differs from
|
|
10
|
+
Differs from `$maestro-overlay` (single explicit intent). This command **discovers** what needs amending by analyzing workflow artifacts.
|
|
11
11
|
</purpose>
|
|
12
12
|
|
|
13
13
|
<required_reading>
|
|
@@ -29,7 +29,7 @@ $ARGUMENTS — optional description and/or source flags.
|
|
|
29
29
|
| `--scan` | Auto-scan .workflow/ | Discover all workflow-related signals |
|
|
30
30
|
| _(positional text)_ | User description | Direct observation |
|
|
31
31
|
|
|
32
|
-
Multiple combinable. No flags + no description → interactive (scan +
|
|
32
|
+
Multiple combinable. No flags + no description → interactive (scan + request_user_input).
|
|
33
33
|
|
|
34
34
|
**Control**: `--dry-run` (preview, don't install), `-y` (skip confirmations)
|
|
35
35
|
|
|
@@ -112,7 +112,7 @@ Per signal, determine:
|
|
|
112
112
|
| Entirely new concern | _(new section)_ | new-section |
|
|
113
113
|
|
|
114
114
|
Read pristine source from `$PKG_ROOT/.claude/commands/<name>.md` to confirm section.
|
|
115
|
-
Classify: command deficiency → proceed; code bug → skip (suggest
|
|
115
|
+
Classify: command deficiency → proceed; code bug → skip (suggest $maestro-quick).
|
|
116
116
|
|
|
117
117
|
### A_GROUP_OVERLAYS
|
|
118
118
|
|
|
@@ -142,7 +142,7 @@ On validation failure: fix JSON, retry (max 2).
|
|
|
142
142
|
| Code | Condition | Recovery |
|
|
143
143
|
|------|-----------|----------|
|
|
144
144
|
| E001 | No signals from any source | Verify artifact paths or provide description |
|
|
145
|
-
| E003 | All signals are code bugs, not command gaps | Use
|
|
145
|
+
| E003 | All signals are code bugs, not command gaps | Use $maestro-quick or $maestro-plan --gaps |
|
|
146
146
|
| E004 | Overlay validation failed after 2 retries | Review JSON manually |
|
|
147
147
|
| W001 | Some signals skipped (code bugs) | Route to appropriate fix command |
|
|
148
148
|
| W002 | Target command has >= 3 existing overlays | Consider consolidating |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: maestro-analyze
|
|
3
3
|
description: Use when a topic needs structured multi-dimensional investigation before planning or decision-making
|
|
4
4
|
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] [--from <source>] \"<phase|topic> [-q|--quick] [--gaps [ISS-ID]]\""
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep,
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
@@ -36,7 +36,7 @@ $ARGUMENTS -- phase number, topic text, and optional flags.
|
|
|
36
36
|
<interview_protocol>
|
|
37
37
|
Interview the user relentlessly until shared understanding is reached. Active only in interactive mode; skip when `-y/--yes`, `--continue`, or input is already specific (explicit phase number or unambiguous topic).
|
|
38
38
|
|
|
39
|
-
- One decision per turn via
|
|
39
|
+
- One decision per turn via request_user_input with 2–4 options + a (Recommended) default. The user controls termination — keep interviewing until convergence; they can interrupt naturally at any time.
|
|
40
40
|
- Search-first when uncertain: before asking, resolve via `state.json`, `roadmap.md`, `issues.jsonl`, `maestro spec load`, `maestro search`, Grep, Read, or — for open-ended multi-file scans — `maestro delegate ... --role explore`. Never ask what code or memory can verify; never bounce your own ambiguity back to the user — search first, then ask only what truly needs human judgment.
|
|
41
41
|
- Writeback cadence: each settled decision is immediately appended/updated in `context.md` "Interview Decisions" (and mirrored into `analysis.md` in full mode). Do NOT batch writeback to the end — partial decisions must already be on disk before the next question.
|
|
42
42
|
- Walk the decision dependency tree strictly: scope → depth → dimensions → Go/No-Go threshold. Do not open the next branch until the current one is settled.
|
|
@@ -82,10 +82,10 @@ P6 gate: Pass (>=80%) → Handoff | Review (60-79%) → Handoff w/caveats | Fail
|
|
|
82
82
|
|
|
83
83
|
| Condition | Suggestion |
|
|
84
84
|
|-----------|-----------|
|
|
85
|
-
| Need codebase analysis |
|
|
86
|
-
| Ready for roadmap |
|
|
87
|
-
| Small scope, direct plan |
|
|
88
|
-
| Need project setup |
|
|
85
|
+
| Need codebase analysis | $maestro-analyze {topic} --from blueprint:BLP-xxx |
|
|
86
|
+
| Ready for roadmap | $maestro-roadmap --from blueprint:BLP-xxx |
|
|
87
|
+
| Small scope, direct plan | $maestro-plan --from blueprint:BLP-xxx |
|
|
88
|
+
| Need project setup | $maestro-init |
|
|
89
89
|
</execution>
|
|
90
90
|
|
|
91
91
|
<invariants>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-companion
|
|
3
|
-
description: Knowledge companion — load context, record companion doc, capture insights, route to skills
|
|
3
|
+
description: "Knowledge companion — load context, record companion doc, capture insights, route to skills"
|
|
4
4
|
argument-hint: "[before|note|after|route] [--task <description>] [--type <task_type>] [--category <cat>]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep,
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
@@ -414,8 +414,8 @@ If promotable entries exist, ask user:
|
|
|
414
414
|
|
|
415
415
|
| Selection | Action |
|
|
416
416
|
|-----------|--------|
|
|
417
|
-
| Spec |
|
|
418
|
-
| Knowhow |
|
|
417
|
+
| Spec | `$spec-add` — guide user through category + content |
|
|
418
|
+
| Knowhow | `$manage-knowhow-capture` — guide through type + content |
|
|
419
419
|
| Both | `spec-add` first, then `manage-knowhow-capture` |
|
|
420
420
|
| Skip | Proceed to Step 4 |
|
|
421
421
|
|
|
@@ -449,7 +449,7 @@ Extract intent text from $ARGUMENTS after removing the `route` keyword.
|
|
|
449
449
|
### Step 2: Delegate to maestro-next
|
|
450
450
|
|
|
451
451
|
```
|
|
452
|
-
|
|
452
|
+
$maestro-next "<intent_text>"
|
|
453
453
|
```
|
|
454
454
|
|
|
455
455
|
Reuses maestro-next routing table and scoring logic to recommend the best single command.
|