maestro-flow 0.5.2 → 0.5.31
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/learn-follow/SKILL.md +114 -114
- package/.agents/skills/learn-investigate/SKILL.md +138 -139
- package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
- package/.agents/skills/maestro/SKILL.md +8 -16
- package/.agents/skills/maestro-amend/SKILL.md +152 -152
- package/.agents/skills/maestro-analyze/SKILL.md +201 -252
- package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
- package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
- package/.agents/skills/maestro-collab/SKILL.md +159 -159
- package/.agents/skills/maestro-companion/SKILL.md +517 -517
- package/.agents/skills/maestro-composer/SKILL.md +173 -164
- package/.agents/skills/maestro-execute/SKILL.md +169 -170
- package/.agents/skills/maestro-fork/SKILL.md +97 -96
- package/.agents/skills/maestro-grill/SKILL.md +161 -162
- package/.agents/skills/maestro-guard/SKILL.md +93 -92
- package/.agents/skills/maestro-help/SKILL.md +1 -1
- package/.agents/skills/maestro-help/index/catalog.json +3 -2
- package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
- package/.agents/skills/maestro-init/SKILL.md +117 -118
- package/.agents/skills/maestro-merge/SKILL.md +73 -66
- package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
- package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
- package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
- package/.agents/skills/maestro-next/SKILL.md +241 -245
- package/.agents/skills/maestro-overlay/SKILL.md +176 -166
- package/.agents/skills/maestro-plan/SKILL.md +211 -197
- package/.agents/skills/maestro-player/SKILL.md +167 -167
- package/.agents/skills/maestro-quick/SKILL.md +69 -63
- package/.agents/skills/maestro-ralph/SKILL.md +13 -46
- package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -871
- package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
- package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
- package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
- package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
- package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
- package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
- package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
- package/.agents/skills/maestro-update/SKILL.md +109 -106
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
- package/.agents/skills/manage-harvest/SKILL.md +83 -81
- package/.agents/skills/manage-issue/SKILL.md +59 -60
- package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
- package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
- package/.agents/skills/manage-knowhow/SKILL.md +70 -66
- package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
- package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
- package/.agents/skills/manage-status/SKILL.md +52 -42
- package/.agents/skills/manage-wiki/SKILL.md +69 -58
- package/.agents/skills/odyssey-debug/SKILL.md +461 -0
- package/.agents/skills/odyssey-improve/SKILL.md +493 -0
- package/.agents/skills/odyssey-planex/SKILL.md +592 -0
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +416 -0
- package/.agents/skills/odyssey-ui/SKILL.md +447 -0
- package/.agents/skills/quality-auto-test/SKILL.md +140 -123
- package/.agents/skills/quality-debug/SKILL.md +145 -106
- package/.agents/skills/quality-refactor/SKILL.md +91 -53
- package/.agents/skills/quality-retrospective/SKILL.md +109 -63
- package/.agents/skills/quality-review/SKILL.md +141 -114
- package/.agents/skills/quality-sync/SKILL.md +74 -38
- package/.agents/skills/quality-test/SKILL.md +133 -103
- package/.agents/skills/security-audit/SKILL.md +217 -166
- package/.agents/skills/spec-add/SKILL.md +66 -59
- package/.agents/skills/spec-load/SKILL.md +68 -68
- package/.agents/skills/spec-remove/SKILL.md +42 -42
- package/.agents/skills/spec-setup/SKILL.md +38 -41
- 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/learn-follow/SKILL.md +114 -114
- package/.agy/skills/learn-investigate/SKILL.md +138 -139
- package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
- package/.agy/skills/maestro/SKILL.md +8 -16
- package/.agy/skills/maestro-amend/SKILL.md +152 -152
- package/.agy/skills/maestro-analyze/SKILL.md +201 -252
- package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
- package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
- package/.agy/skills/maestro-collab/SKILL.md +159 -159
- package/.agy/skills/maestro-companion/SKILL.md +517 -517
- package/.agy/skills/maestro-composer/SKILL.md +173 -164
- package/.agy/skills/maestro-execute/SKILL.md +169 -170
- package/.agy/skills/maestro-fork/SKILL.md +97 -96
- package/.agy/skills/maestro-grill/SKILL.md +161 -162
- package/.agy/skills/maestro-guard/SKILL.md +93 -92
- package/.agy/skills/maestro-help/SKILL.md +1 -1
- package/.agy/skills/maestro-help/index/catalog.json +3 -2
- package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
- package/.agy/skills/maestro-init/SKILL.md +117 -118
- package/.agy/skills/maestro-merge/SKILL.md +73 -66
- package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
- package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
- package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
- package/.agy/skills/maestro-next/SKILL.md +241 -245
- package/.agy/skills/maestro-overlay/SKILL.md +176 -166
- package/.agy/skills/maestro-plan/SKILL.md +211 -197
- package/.agy/skills/maestro-player/SKILL.md +167 -167
- package/.agy/skills/maestro-quick/SKILL.md +69 -63
- package/.agy/skills/maestro-ralph/SKILL.md +13 -46
- package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -871
- package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
- package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
- package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
- package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
- package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
- package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
- package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
- package/.agy/skills/maestro-update/SKILL.md +109 -106
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
- package/.agy/skills/manage-harvest/SKILL.md +83 -81
- package/.agy/skills/manage-issue/SKILL.md +59 -60
- package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
- package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
- package/.agy/skills/manage-knowhow/SKILL.md +70 -66
- package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
- package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
- package/.agy/skills/manage-status/SKILL.md +52 -42
- package/.agy/skills/manage-wiki/SKILL.md +69 -58
- package/.agy/skills/odyssey-debug/SKILL.md +461 -0
- package/.agy/skills/odyssey-improve/SKILL.md +493 -0
- package/.agy/skills/odyssey-planex/SKILL.md +592 -0
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +416 -0
- package/.agy/skills/odyssey-ui/SKILL.md +447 -0
- package/.agy/skills/quality-auto-test/SKILL.md +140 -123
- package/.agy/skills/quality-debug/SKILL.md +145 -106
- package/.agy/skills/quality-refactor/SKILL.md +91 -53
- package/.agy/skills/quality-retrospective/SKILL.md +109 -63
- package/.agy/skills/quality-review/SKILL.md +141 -114
- package/.agy/skills/quality-sync/SKILL.md +74 -38
- package/.agy/skills/quality-test/SKILL.md +133 -103
- package/.agy/skills/security-audit/SKILL.md +217 -166
- package/.agy/skills/spec-add/SKILL.md +66 -59
- package/.agy/skills/spec-load/SKILL.md +68 -68
- package/.agy/skills/spec-remove/SKILL.md +42 -42
- package/.agy/skills/spec-setup/SKILL.md +38 -41
- package/.claude/commands/learn-follow.md +127 -127
- package/.claude/commands/learn-investigate.md +151 -152
- package/.claude/commands/learn-second-opinion.md +118 -122
- package/.claude/commands/maestro-amend.md +164 -164
- package/.claude/commands/maestro-analyze.md +215 -266
- package/.claude/commands/maestro-blueprint.md +189 -204
- package/.claude/commands/maestro-brainstorm.md +209 -213
- package/.claude/commands/maestro-collab.md +172 -172
- package/.claude/commands/maestro-companion.md +531 -531
- package/.claude/commands/maestro-composer.md +188 -179
- package/.claude/commands/maestro-execute.md +183 -184
- package/.claude/commands/maestro-fork.md +111 -110
- package/.claude/commands/maestro-grill.md +175 -176
- package/.claude/commands/maestro-guard.md +103 -102
- package/.claude/commands/maestro-impeccable.md +311 -268
- package/.claude/commands/maestro-init.md +130 -131
- package/.claude/commands/maestro-merge.md +87 -80
- package/.claude/commands/maestro-milestone-audit.md +4 -10
- package/.claude/commands/maestro-milestone-complete.md +6 -7
- package/.claude/commands/maestro-milestone-release.md +136 -145
- package/.claude/commands/maestro-next.md +253 -257
- package/.claude/commands/maestro-overlay.md +188 -178
- package/.claude/commands/maestro-plan.md +225 -211
- package/.claude/commands/maestro-player.md +182 -182
- package/.claude/commands/maestro-quick.md +83 -77
- package/.claude/commands/maestro-ralph-beta.md +875 -885
- package/.claude/commands/maestro-ralph-execute.md +247 -247
- package/.claude/commands/maestro-ralph.md +13 -46
- package/.claude/commands/maestro-roadmap.md +173 -186
- package/.claude/commands/maestro-swarm-workflow.md +243 -264
- package/.claude/commands/maestro-tools-execute.md +122 -117
- package/.claude/commands/maestro-tools-register.md +162 -157
- package/.claude/commands/maestro-ui-codify.md +117 -100
- package/.claude/commands/maestro-universal-workflow.md +548 -561
- package/.claude/commands/maestro-update.md +122 -119
- package/.claude/commands/maestro.md +8 -16
- package/.claude/commands/manage-codebase-rebuild.md +87 -85
- package/.claude/commands/manage-harvest.md +97 -95
- package/.claude/commands/manage-issue-discover.md +83 -81
- package/.claude/commands/manage-issue.md +72 -73
- package/.claude/commands/manage-kg-extractors.md +128 -0
- package/.claude/commands/manage-knowhow-capture.md +92 -82
- package/.claude/commands/manage-knowhow.md +83 -79
- package/.claude/commands/manage-knowledge-audit.md +105 -88
- package/.claude/commands/manage-status.md +62 -52
- package/.claude/commands/manage-wiki.md +82 -71
- package/.claude/commands/odyssey-debug.md +459 -0
- package/.claude/commands/odyssey-improve.md +491 -0
- package/.claude/commands/odyssey-planex.md +590 -0
- package/.claude/commands/odyssey-review-test-fix.md +414 -0
- package/.claude/commands/odyssey-ui.md +445 -0
- package/.claude/commands/quality-auto-test.md +153 -136
- package/.claude/commands/quality-debug.md +159 -120
- package/.claude/commands/quality-refactor.md +105 -67
- package/.claude/commands/quality-retrospective.md +123 -77
- package/.claude/commands/quality-review.md +155 -128
- package/.claude/commands/quality-sync.md +88 -52
- package/.claude/commands/quality-test.md +147 -117
- package/.claude/commands/security-audit.md +230 -179
- package/.claude/commands/spec-add.md +77 -70
- package/.claude/commands/spec-load.md +78 -78
- package/.claude/commands/spec-remove.md +55 -55
- package/.claude/commands/spec-setup.md +49 -52
- 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 +4 -1
- 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 +189 -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 +42 -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 +325 -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/plugin-engine.d.ts +35 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.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 +220 -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 +215 -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 +597 -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/hooks/workspace.d.ts +4 -2
- package/dist/src/hooks/workspace.d.ts.map +1 -1
- package/dist/src/hooks/workspace.js +6 -2
- package/dist/src/hooks/workspace.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 +91 -92
- package/workflows/analyze.md +25 -49
- package/workflows/auto-test.md +699 -699
- package/workflows/blueprint.md +403 -431
- package/workflows/brainstorm.md +54 -195
- package/workflows/business-test.md +570 -570
- package/workflows/claude-instructions.md +23 -28
- package/workflows/codex-instructions.md +30 -58
- package/workflows/coding-philosophy.md +69 -69
- package/workflows/command-authoring.md +823 -823
- package/workflows/debug.md +43 -98
- package/workflows/delegate-usage.md +39 -241
- package/workflows/execute.md +4 -53
- package/workflows/finish-work.md +25 -0
- package/workflows/grill.md +12 -56
- package/workflows/harvest.md +22 -68
- package/workflows/init.md +148 -148
- package/workflows/instruction-authoring-guide.md +97 -0
- package/workflows/issue-execute.md +110 -110
- package/workflows/issue-gaps-analyze.codex.md +260 -260
- package/workflows/issue-gaps-analyze.md +216 -216
- package/workflows/issue-plan.md +110 -110
- package/workflows/issue.md +338 -346
- package/workflows/knowhow.md +0 -32
- package/workflows/learn.md +277 -277
- package/workflows/maestro-chain-execute.md +20 -20
- package/workflows/refactor.md +22 -44
- package/workflows/retrospective.md +16 -65
- package/workflows/review.md +446 -486
- package/workflows/roadmap.md +35 -132
- package/workflows/skill-authoring.md +265 -265
- package/workflows/spec-generate.md +470 -470
- package/workflows/specs-remove.md +104 -104
- package/workflows/sync.md +11 -41
- package/workflows/test-gen.md +226 -226
- package/workflows/test.md +385 -475
- package/workflows/ui-design.md +391 -391
- package/workflows/ui-style.md +199 -199
- package/workflows/updates/update-v3-setup.md +7 -15
- package/workflows/wiki-connect.md +151 -151
- package/workflows/wiki-digest.md +178 -178
- package/workflows/wiki-manage.md +109 -109
- 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
- package/workflows/cli-tools-usage.md +0 -252
- package/workflows/delegate-protocol.codex.md +0 -65
|
@@ -1,247 +1,247 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-ralph-execute
|
|
3
|
-
description: Execute next pending step in ralph session
|
|
4
|
-
argument-hint: "[-y] [session-id]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Skill
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Single-step executor for ralph (adaptive) and maestro (static) sessions.
|
|
16
|
-
Each invocation: locate session → find next step → resolve args → execute → update → self-invoke next.
|
|
17
|
-
|
|
18
|
-
Mutual invocation with `/maestro-ralph` forms a self-perpetuating work loop.
|
|
19
|
-
Session: `.workflow/.maestro/*/status.json`
|
|
20
|
-
</purpose>
|
|
21
|
-
|
|
22
|
-
<context>
|
|
23
|
-
$ARGUMENTS — optional `-y` flag + optional session ID.
|
|
24
|
-
|
|
25
|
-
**Parse:**
|
|
26
|
-
```
|
|
27
|
-
-y / --yes → auto = true
|
|
28
|
-
Remaining → session_id (if matches maestro-* or ralph-*)
|
|
29
|
-
```
|
|
30
|
-
Also read `session.auto_mode` from status.json — if true, treat as `-y`.
|
|
31
|
-
|
|
32
|
-
**Step kinds:**
|
|
33
|
-
|
|
34
|
-
| Kind | Identifier | Execution | Flow after |
|
|
35
|
-
|------|-----------|-----------|------------|
|
|
36
|
-
| decision step | `step.decision` 非空 | `Skill("maestro-ralph")` | Execution ends here |
|
|
37
|
-
| 执行 step | `step.decision == null` | `Bash("maestro ralph next")` → 内联按其 stdout 执行 → `Bash("maestro ralph complete N --status ...")` | Self-invoke next |
|
|
38
|
-
|
|
39
|
-
HARD RULES:
|
|
40
|
-
- 执行 step:**统一通过 `maestro ralph next` CLI 加载**。CLI 负责读 command_path、解析 `<required_reading>` + `<deferred_reading>`、拼接 prompt、写 `step.load.*` + `active_step_index` + `step.status="running"`。不要再在会话里手动 Read + 解析 required_reading
|
|
41
|
-
- decision step:A_EXEC_DECISION 通过 `Skill({ skill: "maestro-ralph" })` handoff 给 ralph 评估(不走 CLI)
|
|
42
|
-
- `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json(缺失 → ralph next 返回 E006/E007 并拒绝执行)
|
|
43
|
-
- 每个 step 结束必须调用 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`。STATUS 仅 4 个合法值:`DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`(**`NEEDS_CONTEXT` 已废除**,context 容量由 harness 自动压缩处理)
|
|
44
|
-
</context>
|
|
45
|
-
|
|
46
|
-
<invariants>
|
|
47
|
-
1. **执行 = `ralph next` + inline + `ralph complete`** — 调 `maestro ralph next` 拿到 skill 内容,按 stdout 内联执行
|
|
48
|
-
2. **Required reading 由 CLI 负责** — `ralph next` 自动展开 + 加载 `<required_reading>` 引用的所有文件,缺失 → 退出码 1(E007),不写 active_step_index,不进入执行
|
|
49
|
-
3. **Deferred reading recorded only** — `<deferred_reading>` 路径由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
|
|
50
|
-
4. **一致性取代锁** — 同一 session 同时最多一个 step 持 `active_step_index`;CLI 校验失败直接退出码 3,不静默推进
|
|
51
|
-
5. **Completion 通过 CLI 调用** — 每个 step 末尾调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`,由 CLI 写 `completion_*` + 清 `active_step_index`
|
|
52
|
-
6. **Self-invocation chain** — 持续直到全部 `completion_confirmed` 或 paused
|
|
53
|
-
7. **status.json 每步骤后由 CLI 原子写盘** — resume-safe
|
|
54
|
-
8. **STATUS 枚举受限** — 仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;`NEEDS_CONTEXT` 已废除
|
|
55
|
-
9. **CLI 输出禁止截断** — `maestro ralph next` 的 stdout 包含完整 skill prompt,必须全量捕获。**严禁** `| head`、`| tail`、`2>&1 | head -N` 等任何截断管道。Bash timeout 可加长但不可截断输出
|
|
56
|
-
</invariants>
|
|
57
|
-
|
|
58
|
-
<state_machine>
|
|
59
|
-
|
|
60
|
-
<states>
|
|
61
|
-
S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
|
|
62
|
-
S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
|
|
63
|
-
S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
|
|
64
|
-
S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
|
|
65
|
-
S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
|
|
66
|
-
S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
|
|
67
|
-
S_FALLBACK — 无 session 可执行 PERSIST: —
|
|
68
|
-
</states>
|
|
69
|
-
|
|
70
|
-
<transitions>
|
|
71
|
-
|
|
72
|
-
S_LOCATE:
|
|
73
|
-
→ S_RESOLVE_ARGS WHEN: pending step found DO: A_LOCATE_SESSION
|
|
74
|
-
→ S_COMPLETE WHEN: no pending steps
|
|
75
|
-
→ S_FALLBACK WHEN: no running session
|
|
76
|
-
|
|
77
|
-
S_RESOLVE_ARGS:
|
|
78
|
-
→ S_EXECUTE DO: A_RESOLVE_ARGS
|
|
79
|
-
|
|
80
|
-
S_EXECUTE:
|
|
81
|
-
→ END WHEN: step.decision != null DO: A_EXEC_DECISION
|
|
82
|
-
→ S_POST_EXEC WHEN: step.decision == null + ralph complete invoked with DONE|DONE_WITH_CONCERNS DO: A_EXEC_STEP
|
|
83
|
-
→ S_HANDLE_FAIL WHEN: step.decision == null + ralph next exit≠0 OR ralph complete with NEEDS_RETRY|BLOCKED DO: A_EXEC_STEP
|
|
84
|
-
|
|
85
|
-
S_POST_EXEC:
|
|
86
|
-
→ S_LOCATE DO: Bash("maestro ralph complete ...") + Skill("maestro-ralph-execute")
|
|
87
|
-
NOTE: CLI 已写完 completion_*, status, active_step_index;无需额外写盘
|
|
88
|
-
|
|
89
|
-
S_HANDLE_FAIL:
|
|
90
|
-
→ S_LOCATE WHEN: auto + not retried DO: A_RETRY
|
|
91
|
-
→ END WHEN: auto + retried DO: A_PAUSE_SESSION
|
|
92
|
-
→ S_LOCATE WHEN: interactive + user selects retry DO: A_RETRY
|
|
93
|
-
→ S_LOCATE WHEN: interactive + user selects skip DO: A_SKIP_STEP
|
|
94
|
-
→ END WHEN: interactive + user selects abort DO: A_PAUSE_SESSION
|
|
95
|
-
|
|
96
|
-
S_COMPLETE:
|
|
97
|
-
→ END DO: A_COMPLETE_SESSION
|
|
98
|
-
|
|
99
|
-
S_FALLBACK:
|
|
100
|
-
→ END DO: display "无运行中的会话。使用 /maestro 或 /maestro-ralph 创建。"
|
|
101
|
-
|
|
102
|
-
</transitions>
|
|
103
|
-
|
|
104
|
-
<actions>
|
|
105
|
-
|
|
106
|
-
### A_LOCATE_SESSION
|
|
107
|
-
|
|
108
|
-
1. If session_id provided → load `.workflow/.maestro/{session_id}/status.json`
|
|
109
|
-
2. Else: scan `.workflow/.maestro/*/status.json`, filter `status == "running"`, sort DESC, take first
|
|
110
|
-
3. Extract: session_id, source, steps[], phase, milestone, intent, auto_mode, context, cli_tool, active_step_index
|
|
111
|
-
4. **不在此处选 pending step**——pending 选择由 `maestro ralph next` CLI 内部完成;A_LOCATE_SESSION 只确认 session 存在且 running,由 A_EXEC_STEP 调 CLI 推进
|
|
112
|
-
|
|
113
|
-
### A_RESOLVE_ARGS
|
|
114
|
-
|
|
115
|
-
**Placeholder substitution:**
|
|
116
|
-
|
|
117
|
-
| Placeholder | Source |
|
|
118
|
-
|-------------|--------|
|
|
119
|
-
| `{phase}` | session.phase |
|
|
120
|
-
| `{milestone}` | session.milestone |
|
|
121
|
-
| `{intent}` | session.intent |
|
|
122
|
-
| `{description}` | session.intent (alias) |
|
|
123
|
-
| `{scratch_dir}` | session.context.scratch_dir or latest artifact path |
|
|
124
|
-
| `{plan_dir}` | session.context.plan_dir |
|
|
125
|
-
| `{analysis_dir}` | session.context.analysis_dir |
|
|
126
|
-
| `{issue_id}` | session.context.issue_id |
|
|
127
|
-
| `{milestone_num}` | session.context.milestone_num |
|
|
128
|
-
|
|
129
|
-
**Per-skill enrichment** (when args empty or minimal):
|
|
130
|
-
|
|
131
|
-
| Skill | Required context | Source |
|
|
132
|
-
|-------|-----------------|--------|
|
|
133
|
-
| maestro-brainstorm | topic | `"{intent}"` |
|
|
134
|
-
| maestro-roadmap | description | `"{intent}"` |
|
|
135
|
-
| maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
|
|
136
|
-
| maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
|
|
137
|
-
| maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
|
|
138
|
-
| quality-debug | gap context | Read previous step's error/gap |
|
|
139
|
-
| quality-* | phase | `{phase}` |
|
|
140
|
-
|
|
141
|
-
**Artifact dir resolution for --dir:**
|
|
142
|
-
```
|
|
143
|
-
Read state.json → filter artifacts by milestone + phase
|
|
144
|
-
plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
|
|
145
|
-
execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Write enriched args back to status.json.
|
|
149
|
-
|
|
150
|
-
### A_EXEC_DECISION
|
|
151
|
-
|
|
152
|
-
1. Mark step running, write status.json
|
|
153
|
-
2. Display: `[{index}/{total}] ◆ {step.decision} Retry: {retry}/{max}`
|
|
154
|
-
3. `Skill({ skill: "maestro-ralph" })` — ralph 评估 + handoff
|
|
155
|
-
4. 执行在此结束
|
|
156
|
-
|
|
157
|
-
### A_EXEC_STEP
|
|
158
|
-
|
|
159
|
-
1. **Load** — `Bash("maestro ralph next --session <session_id>")` — **必须全量捕获 stdout,严禁 `| head`/`| tail` 等截断管道**(stdout 含完整 skill prompt,截断会导致执行内容不完整)
|
|
160
|
-
- 退出码 0 → 按 stdout 内联执行
|
|
161
|
-
- 退出码 2 → 交给 S_LOCATE
|
|
162
|
-
- 退出码 3 → active_step_index 已被占用
|
|
163
|
-
- 退出码 1 → pause session
|
|
164
|
-
2. **Inline execution** — 按 stdout 执行;deferred_reading 按需 Read
|
|
165
|
-
3. **Complete**:
|
|
166
|
-
- `Bash("maestro ralph complete N --status DONE [--evidence <path>]")`
|
|
167
|
-
- `Bash("maestro ralph complete N --status DONE_WITH_CONCERNS --concerns \"...\"")`
|
|
168
|
-
- `Bash("maestro ralph retry N")`
|
|
169
|
-
- `Bash("maestro ralph complete N --status BLOCKED --reason \"...\"")`
|
|
170
|
-
4. **Propagate context signals** — 关键信号 (`PHASE: N` / `scratch_dir: path` / `BLP-xxx`) 写入 `status.json.context`
|
|
171
|
-
|
|
172
|
-
完成后 S_LOCATE 触发 `Skill({ skill: "maestro-ralph-execute" })` 自调用。
|
|
173
|
-
|
|
174
|
-
### A_RETRY
|
|
175
|
-
|
|
176
|
-
1. `Bash("maestro ralph retry N")` — CLI 设 `step.retried = true`, `step.status = "pending"`, `step.completion_confirmed = false`, 清 `active_step_index`
|
|
177
|
-
2. Display: `[{index}/{total}] ↻ {step.skill} retry`
|
|
178
|
-
|
|
179
|
-
### A_SKIP_STEP
|
|
180
|
-
|
|
181
|
-
跳过执行 step — 手动编辑 `status.json`:将该 step `status` 设为 `"skipped"`,`completion_confirmed` 设为 `false`,并清 `active_step_index`(若指向此 step)。
|
|
182
|
-
(不提供 CLI 子命令;跳过是非常规操作,避免自动化误用。)
|
|
183
|
-
|
|
184
|
-
### A_PAUSE_SESSION
|
|
185
|
-
|
|
186
|
-
通常由 `ralph complete N --status BLOCKED --reason "..."` 触发,CLI 已写 `session.status = "paused"`。手动 pause 场景下直接编辑 status.json。
|
|
187
|
-
Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
|
|
188
|
-
|
|
189
|
-
### A_COMPLETE_SESSION
|
|
190
|
-
|
|
191
|
-
1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
|
|
192
|
-
2. 任一校验失败 → 不标 completed,回 S_LOCATE 或 pause
|
|
193
|
-
3. `session.status = "completed"`, write status.json
|
|
194
|
-
4. Display completion report:
|
|
195
|
-
```
|
|
196
|
-
============================================================
|
|
197
|
-
SESSION COMPLETE
|
|
198
|
-
============================================================
|
|
199
|
-
Session: {session_id} [{source}]
|
|
200
|
-
Steps: {completed}/{total} confirmed: {confirmed}/{completed}
|
|
201
|
-
|
|
202
|
-
[✓] 0. maestro-plan 1 [global]
|
|
203
|
-
[✓] 1. maestro-execute 1 [project]
|
|
204
|
-
[✓] 2. ◆ post-execute [decision]
|
|
205
|
-
...
|
|
206
|
-
============================================================
|
|
207
|
-
```
|
|
208
|
-
Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision
|
|
209
|
-
|
|
210
|
-
</actions>
|
|
211
|
-
|
|
212
|
-
</state_machine>
|
|
213
|
-
|
|
214
|
-
<appendix>
|
|
215
|
-
|
|
216
|
-
### Error Codes
|
|
217
|
-
|
|
218
|
-
| Code | Severity | Description | Recovery |
|
|
219
|
-
|------|----------|-------------|----------|
|
|
220
|
-
| E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
|
|
221
|
-
| E006 | error | command_path missing/unreachable for 执行 step | `ralph next` 拒绝;编辑 status.json 或重 build |
|
|
222
|
-
| E007 | error | required_reading 引用文件缺失 | `ralph next` 拒绝;CLI stderr 列出缺失路径 |
|
|
223
|
-
| E008 | error | `ralph complete` idx ≠ active_step_index | 编辑 status.json 修正一致性 |
|
|
224
|
-
| E009 | error | `ralph complete` step.status ≠ running | 重复 complete 或非法跳跃;编辑 status.json |
|
|
225
|
-
| E010 | error | status.json schema 损坏 | `ralph check` 显示具体损坏字段 |
|
|
226
|
-
| W001 | warning | Step completed with concerns | Log and continue |
|
|
227
|
-
| W005 | warning | active_step_index 指向已 completed step | `ralph next` 自动清理后继续 |
|
|
228
|
-
| W007 | warning | step.skill ≠ command .md frontmatter.name | 提示但不阻塞 |
|
|
229
|
-
|
|
230
|
-
### Success Criteria
|
|
231
|
-
|
|
232
|
-
- [ ] Session discovery covers maestro-* and ralph-*
|
|
233
|
-
- [ ] `-y` parsed from args 或 session.auto_mode;auto=true 时透传 `-y` 到 skill args
|
|
234
|
-
- [ ] Placeholders resolved;per-skill enrichment 正确
|
|
235
|
-
- [ ] Decision 节点(`step.decision != null`)走 Skill("maestro-ralph") handoff(**不调 ralph next CLI**)
|
|
236
|
-
- [ ] 执行 step 通过 `Bash("maestro ralph next")` 加载;CLI 返回拼好的 prompt + completion 协议
|
|
237
|
-
- [ ] required_reading 由 CLI 自动加载并拼入 prompt;缺失 → CLI 退出码 1,pause session
|
|
238
|
-
- [ ] `<deferred_reading>` 由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
|
|
239
|
-
- [ ] 每个 step 末尾必须调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`
|
|
240
|
-
- [ ] STATUS 枚举仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;CLI 拒绝 `NEEDS_CONTEXT`
|
|
241
|
-
- [ ] active_step_index 一致性由 CLI 维护;E008/E009 直接退出,不静默推进
|
|
242
|
-
- [ ] step.completion_evidence 通过 `--evidence` 传入并记录
|
|
243
|
-
- [ ] Context signals 由执行 step 显式写回 status.json.context(非 ralph-execute 内嵌扫描)
|
|
244
|
-
- [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
|
|
245
|
-
- [ ] 自调用持续到全部 completion_confirmed 或 paused
|
|
246
|
-
|
|
247
|
-
</appendix>
|
|
1
|
+
---
|
|
2
|
+
name: maestro-ralph-execute
|
|
3
|
+
description: Execute next pending step in ralph session
|
|
4
|
+
argument-hint: "[-y] [session-id]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Skill
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Single-step executor for ralph (adaptive) and maestro (static) sessions.
|
|
16
|
+
Each invocation: locate session → find next step → resolve args → execute → update → self-invoke next.
|
|
17
|
+
|
|
18
|
+
Mutual invocation with `/maestro-ralph` forms a self-perpetuating work loop.
|
|
19
|
+
Session: `.workflow/.maestro/*/status.json`
|
|
20
|
+
</purpose>
|
|
21
|
+
|
|
22
|
+
<context>
|
|
23
|
+
$ARGUMENTS — optional `-y` flag + optional session ID.
|
|
24
|
+
|
|
25
|
+
**Parse:**
|
|
26
|
+
```
|
|
27
|
+
-y / --yes → auto = true
|
|
28
|
+
Remaining → session_id (if matches maestro-* or ralph-*)
|
|
29
|
+
```
|
|
30
|
+
Also read `session.auto_mode` from status.json — if true, treat as `-y`.
|
|
31
|
+
|
|
32
|
+
**Step kinds:**
|
|
33
|
+
|
|
34
|
+
| Kind | Identifier | Execution | Flow after |
|
|
35
|
+
|------|-----------|-----------|------------|
|
|
36
|
+
| decision step | `step.decision` 非空 | `Skill("maestro-ralph")` | Execution ends here |
|
|
37
|
+
| 执行 step | `step.decision == null` | `Bash("maestro ralph next")` → 内联按其 stdout 执行 → `Bash("maestro ralph complete N --status ...")` | Self-invoke next |
|
|
38
|
+
|
|
39
|
+
HARD RULES:
|
|
40
|
+
- 执行 step:**统一通过 `maestro ralph next` CLI 加载**。CLI 负责读 command_path、解析 `<required_reading>` + `<deferred_reading>`、拼接 prompt、写 `step.load.*` + `active_step_index` + `step.status="running"`。不要再在会话里手动 Read + 解析 required_reading
|
|
41
|
+
- decision step:A_EXEC_DECISION 通过 `Skill({ skill: "maestro-ralph" })` handoff 给 ralph 评估(不走 CLI)
|
|
42
|
+
- `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json(缺失 → ralph next 返回 E006/E007 并拒绝执行)
|
|
43
|
+
- 每个 step 结束必须调用 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`。STATUS 仅 4 个合法值:`DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`(**`NEEDS_CONTEXT` 已废除**,context 容量由 harness 自动压缩处理)
|
|
44
|
+
</context>
|
|
45
|
+
|
|
46
|
+
<invariants>
|
|
47
|
+
1. **执行 = `ralph next` + inline + `ralph complete`** — 调 `maestro ralph next` 拿到 skill 内容,按 stdout 内联执行
|
|
48
|
+
2. **Required reading 由 CLI 负责** — `ralph next` 自动展开 + 加载 `<required_reading>` 引用的所有文件,缺失 → 退出码 1(E007),不写 active_step_index,不进入执行
|
|
49
|
+
3. **Deferred reading recorded only** — `<deferred_reading>` 路径由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
|
|
50
|
+
4. **一致性取代锁** — 同一 session 同时最多一个 step 持 `active_step_index`;CLI 校验失败直接退出码 3,不静默推进
|
|
51
|
+
5. **Completion 通过 CLI 调用** — 每个 step 末尾调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`,由 CLI 写 `completion_*` + 清 `active_step_index`
|
|
52
|
+
6. **Self-invocation chain** — 持续直到全部 `completion_confirmed` 或 paused
|
|
53
|
+
7. **status.json 每步骤后由 CLI 原子写盘** — resume-safe
|
|
54
|
+
8. **STATUS 枚举受限** — 仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;`NEEDS_CONTEXT` 已废除
|
|
55
|
+
9. **CLI 输出禁止截断** — `maestro ralph next` 的 stdout 包含完整 skill prompt,必须全量捕获。**严禁** `| head`、`| tail`、`2>&1 | head -N` 等任何截断管道。Bash timeout 可加长但不可截断输出
|
|
56
|
+
</invariants>
|
|
57
|
+
|
|
58
|
+
<state_machine>
|
|
59
|
+
|
|
60
|
+
<states>
|
|
61
|
+
S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
|
|
62
|
+
S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
|
|
63
|
+
S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
|
|
64
|
+
S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
|
|
65
|
+
S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
|
|
66
|
+
S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
|
|
67
|
+
S_FALLBACK — 无 session 可执行 PERSIST: —
|
|
68
|
+
</states>
|
|
69
|
+
|
|
70
|
+
<transitions>
|
|
71
|
+
|
|
72
|
+
S_LOCATE:
|
|
73
|
+
→ S_RESOLVE_ARGS WHEN: pending step found DO: A_LOCATE_SESSION
|
|
74
|
+
→ S_COMPLETE WHEN: no pending steps
|
|
75
|
+
→ S_FALLBACK WHEN: no running session
|
|
76
|
+
|
|
77
|
+
S_RESOLVE_ARGS:
|
|
78
|
+
→ S_EXECUTE DO: A_RESOLVE_ARGS
|
|
79
|
+
|
|
80
|
+
S_EXECUTE:
|
|
81
|
+
→ END WHEN: step.decision != null DO: A_EXEC_DECISION
|
|
82
|
+
→ S_POST_EXEC WHEN: step.decision == null + ralph complete invoked with DONE|DONE_WITH_CONCERNS DO: A_EXEC_STEP
|
|
83
|
+
→ S_HANDLE_FAIL WHEN: step.decision == null + ralph next exit≠0 OR ralph complete with NEEDS_RETRY|BLOCKED DO: A_EXEC_STEP
|
|
84
|
+
|
|
85
|
+
S_POST_EXEC:
|
|
86
|
+
→ S_LOCATE DO: Bash("maestro ralph complete ...") + Skill("maestro-ralph-execute")
|
|
87
|
+
NOTE: CLI 已写完 completion_*, status, active_step_index;无需额外写盘
|
|
88
|
+
|
|
89
|
+
S_HANDLE_FAIL:
|
|
90
|
+
→ S_LOCATE WHEN: auto + not retried DO: A_RETRY
|
|
91
|
+
→ END WHEN: auto + retried DO: A_PAUSE_SESSION
|
|
92
|
+
→ S_LOCATE WHEN: interactive + user selects retry DO: A_RETRY
|
|
93
|
+
→ S_LOCATE WHEN: interactive + user selects skip DO: A_SKIP_STEP
|
|
94
|
+
→ END WHEN: interactive + user selects abort DO: A_PAUSE_SESSION
|
|
95
|
+
|
|
96
|
+
S_COMPLETE:
|
|
97
|
+
→ END DO: A_COMPLETE_SESSION
|
|
98
|
+
|
|
99
|
+
S_FALLBACK:
|
|
100
|
+
→ END DO: display "无运行中的会话。使用 /maestro 或 /maestro-ralph 创建。"
|
|
101
|
+
|
|
102
|
+
</transitions>
|
|
103
|
+
|
|
104
|
+
<actions>
|
|
105
|
+
|
|
106
|
+
### A_LOCATE_SESSION
|
|
107
|
+
|
|
108
|
+
1. If session_id provided → load `.workflow/.maestro/{session_id}/status.json`
|
|
109
|
+
2. Else: scan `.workflow/.maestro/*/status.json`, filter `status == "running"`, sort DESC, take first
|
|
110
|
+
3. Extract: session_id, source, steps[], phase, milestone, intent, auto_mode, context, cli_tool, active_step_index
|
|
111
|
+
4. **不在此处选 pending step**——pending 选择由 `maestro ralph next` CLI 内部完成;A_LOCATE_SESSION 只确认 session 存在且 running,由 A_EXEC_STEP 调 CLI 推进
|
|
112
|
+
|
|
113
|
+
### A_RESOLVE_ARGS
|
|
114
|
+
|
|
115
|
+
**Placeholder substitution:**
|
|
116
|
+
|
|
117
|
+
| Placeholder | Source |
|
|
118
|
+
|-------------|--------|
|
|
119
|
+
| `{phase}` | session.phase |
|
|
120
|
+
| `{milestone}` | session.milestone |
|
|
121
|
+
| `{intent}` | session.intent |
|
|
122
|
+
| `{description}` | session.intent (alias) |
|
|
123
|
+
| `{scratch_dir}` | session.context.scratch_dir or latest artifact path |
|
|
124
|
+
| `{plan_dir}` | session.context.plan_dir |
|
|
125
|
+
| `{analysis_dir}` | session.context.analysis_dir |
|
|
126
|
+
| `{issue_id}` | session.context.issue_id |
|
|
127
|
+
| `{milestone_num}` | session.context.milestone_num |
|
|
128
|
+
|
|
129
|
+
**Per-skill enrichment** (when args empty or minimal):
|
|
130
|
+
|
|
131
|
+
| Skill | Required context | Source |
|
|
132
|
+
|-------|-----------------|--------|
|
|
133
|
+
| maestro-brainstorm | topic | `"{intent}"` |
|
|
134
|
+
| maestro-roadmap | description | `"{intent}"` |
|
|
135
|
+
| maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
|
|
136
|
+
| maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
|
|
137
|
+
| maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
|
|
138
|
+
| quality-debug | gap context | Read previous step's error/gap |
|
|
139
|
+
| quality-* | phase | `{phase}` |
|
|
140
|
+
|
|
141
|
+
**Artifact dir resolution for --dir:**
|
|
142
|
+
```
|
|
143
|
+
Read state.json → filter artifacts by milestone + phase
|
|
144
|
+
plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
|
|
145
|
+
execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Write enriched args back to status.json.
|
|
149
|
+
|
|
150
|
+
### A_EXEC_DECISION
|
|
151
|
+
|
|
152
|
+
1. Mark step running, write status.json
|
|
153
|
+
2. Display: `[{index}/{total}] ◆ {step.decision} Retry: {retry}/{max}`
|
|
154
|
+
3. `Skill({ skill: "maestro-ralph" })` — ralph 评估 + handoff
|
|
155
|
+
4. 执行在此结束
|
|
156
|
+
|
|
157
|
+
### A_EXEC_STEP
|
|
158
|
+
|
|
159
|
+
1. **Load** — `Bash("maestro ralph next --session <session_id>")` — **必须全量捕获 stdout,严禁 `| head`/`| tail` 等截断管道**(stdout 含完整 skill prompt,截断会导致执行内容不完整)
|
|
160
|
+
- 退出码 0 → 按 stdout 内联执行
|
|
161
|
+
- 退出码 2 → 交给 S_LOCATE
|
|
162
|
+
- 退出码 3 → active_step_index 已被占用
|
|
163
|
+
- 退出码 1 → pause session
|
|
164
|
+
2. **Inline execution** — 按 stdout 执行;deferred_reading 按需 Read
|
|
165
|
+
3. **Complete**:
|
|
166
|
+
- `Bash("maestro ralph complete N --status DONE [--evidence <path>]")`
|
|
167
|
+
- `Bash("maestro ralph complete N --status DONE_WITH_CONCERNS --concerns \"...\"")`
|
|
168
|
+
- `Bash("maestro ralph retry N")`
|
|
169
|
+
- `Bash("maestro ralph complete N --status BLOCKED --reason \"...\"")`
|
|
170
|
+
4. **Propagate context signals** — 关键信号 (`PHASE: N` / `scratch_dir: path` / `BLP-xxx`) 写入 `status.json.context`
|
|
171
|
+
|
|
172
|
+
完成后 S_LOCATE 触发 `Skill({ skill: "maestro-ralph-execute" })` 自调用。
|
|
173
|
+
|
|
174
|
+
### A_RETRY
|
|
175
|
+
|
|
176
|
+
1. `Bash("maestro ralph retry N")` — CLI 设 `step.retried = true`, `step.status = "pending"`, `step.completion_confirmed = false`, 清 `active_step_index`
|
|
177
|
+
2. Display: `[{index}/{total}] ↻ {step.skill} retry`
|
|
178
|
+
|
|
179
|
+
### A_SKIP_STEP
|
|
180
|
+
|
|
181
|
+
跳过执行 step — 手动编辑 `status.json`:将该 step `status` 设为 `"skipped"`,`completion_confirmed` 设为 `false`,并清 `active_step_index`(若指向此 step)。
|
|
182
|
+
(不提供 CLI 子命令;跳过是非常规操作,避免自动化误用。)
|
|
183
|
+
|
|
184
|
+
### A_PAUSE_SESSION
|
|
185
|
+
|
|
186
|
+
通常由 `ralph complete N --status BLOCKED --reason "..."` 触发,CLI 已写 `session.status = "paused"`。手动 pause 场景下直接编辑 status.json。
|
|
187
|
+
Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
|
|
188
|
+
|
|
189
|
+
### A_COMPLETE_SESSION
|
|
190
|
+
|
|
191
|
+
1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
|
|
192
|
+
2. 任一校验失败 → 不标 completed,回 S_LOCATE 或 pause
|
|
193
|
+
3. `session.status = "completed"`, write status.json
|
|
194
|
+
4. Display completion report:
|
|
195
|
+
```
|
|
196
|
+
============================================================
|
|
197
|
+
SESSION COMPLETE
|
|
198
|
+
============================================================
|
|
199
|
+
Session: {session_id} [{source}]
|
|
200
|
+
Steps: {completed}/{total} confirmed: {confirmed}/{completed}
|
|
201
|
+
|
|
202
|
+
[✓] 0. maestro-plan 1 [global]
|
|
203
|
+
[✓] 1. maestro-execute 1 [project]
|
|
204
|
+
[✓] 2. ◆ post-execute [decision]
|
|
205
|
+
...
|
|
206
|
+
============================================================
|
|
207
|
+
```
|
|
208
|
+
Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision
|
|
209
|
+
|
|
210
|
+
</actions>
|
|
211
|
+
|
|
212
|
+
</state_machine>
|
|
213
|
+
|
|
214
|
+
<appendix>
|
|
215
|
+
|
|
216
|
+
### Error Codes
|
|
217
|
+
|
|
218
|
+
| Code | Severity | Description | Recovery |
|
|
219
|
+
|------|----------|-------------|----------|
|
|
220
|
+
| E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
|
|
221
|
+
| E006 | error | command_path missing/unreachable for 执行 step | `ralph next` 拒绝;编辑 status.json 或重 build |
|
|
222
|
+
| E007 | error | required_reading 引用文件缺失 | `ralph next` 拒绝;CLI stderr 列出缺失路径 |
|
|
223
|
+
| E008 | error | `ralph complete` idx ≠ active_step_index | 编辑 status.json 修正一致性 |
|
|
224
|
+
| E009 | error | `ralph complete` step.status ≠ running | 重复 complete 或非法跳跃;编辑 status.json |
|
|
225
|
+
| E010 | error | status.json schema 损坏 | `ralph check` 显示具体损坏字段 |
|
|
226
|
+
| W001 | warning | Step completed with concerns | Log and continue |
|
|
227
|
+
| W005 | warning | active_step_index 指向已 completed step | `ralph next` 自动清理后继续 |
|
|
228
|
+
| W007 | warning | step.skill ≠ command .md frontmatter.name | 提示但不阻塞 |
|
|
229
|
+
|
|
230
|
+
### Success Criteria
|
|
231
|
+
|
|
232
|
+
- [ ] Session discovery covers maestro-* and ralph-*
|
|
233
|
+
- [ ] `-y` parsed from args 或 session.auto_mode;auto=true 时透传 `-y` 到 skill args
|
|
234
|
+
- [ ] Placeholders resolved;per-skill enrichment 正确
|
|
235
|
+
- [ ] Decision 节点(`step.decision != null`)走 Skill("maestro-ralph") handoff(**不调 ralph next CLI**)
|
|
236
|
+
- [ ] 执行 step 通过 `Bash("maestro ralph next")` 加载;CLI 返回拼好的 prompt + completion 协议
|
|
237
|
+
- [ ] required_reading 由 CLI 自动加载并拼入 prompt;缺失 → CLI 退出码 1,pause session
|
|
238
|
+
- [ ] `<deferred_reading>` 由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
|
|
239
|
+
- [ ] 每个 step 末尾必须调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`
|
|
240
|
+
- [ ] STATUS 枚举仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;CLI 拒绝 `NEEDS_CONTEXT`
|
|
241
|
+
- [ ] active_step_index 一致性由 CLI 维护;E008/E009 直接退出,不静默推进
|
|
242
|
+
- [ ] step.completion_evidence 通过 `--evidence` 传入并记录
|
|
243
|
+
- [ ] Context signals 由执行 step 显式写回 status.json.context(非 ralph-execute 内嵌扫描)
|
|
244
|
+
- [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
|
|
245
|
+
- [ ] 自调用持续到全部 completion_confirmed 或 paused
|
|
246
|
+
|
|
247
|
+
</appendix>
|
|
@@ -13,42 +13,8 @@ allowed-tools:
|
|
|
13
13
|
- AskUserQuestion
|
|
14
14
|
---
|
|
15
15
|
<purpose>
|
|
16
|
-
Closed-loop decision engine
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Entry points:
|
|
20
|
-
- **`/maestro-ralph "intent"`** — New session: infer → decompose → build → emit /goal prompt(如有 decomposition)→ dispatch ralph-execute
|
|
21
|
-
- **`/maestro-ralph continue`** — Wrapper; dispatches to ralph-execute(首选直接 `/maestro-ralph-execute` 推进 step)
|
|
22
|
-
- **`/maestro-ralph status`** — Display session progress
|
|
23
|
-
|
|
24
|
-
> 推进规则:**step 推进由 `/maestro-ralph-execute` 负责**;ralph 仅在 build / decision 评估时介入。decision 节点由 ralph-execute 自动 `Skill("maestro-ralph")` handoff,无需用户手动切换。
|
|
25
|
-
|
|
26
|
-
Initial decomposition (S_DECOMPOSE): boundary-clarified via ≤3 questions for broad intents (重构/全面/迁移/重写). 写入 status.json 的 `boundary_contract` / `execution_criteria` / `task_decomposition`,附 `/goal` prompt。
|
|
27
|
-
|
|
28
|
-
Step kinds:
|
|
29
|
-
- **执行 step**: ralph-execute 调 `Bash("maestro ralph next")` 加载 command .md + required_reading 全文,按 stdout 内联执行
|
|
30
|
-
- **decision step**: `step.decision` 字段非空;回 ralph 评估(CLI 只读分析)
|
|
31
|
-
|
|
32
|
-
Key difference from maestro coordinator:
|
|
33
|
-
- maestro: static chain → one-time selection → runs all steps
|
|
34
|
-
- ralph: living chain → decision nodes re-evaluate → chain grows/shrinks dynamically
|
|
35
|
-
|
|
36
|
-
Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`
|
|
37
|
-
Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work loop.
|
|
38
|
-
|
|
39
|
-
### Execution Flow
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
/maestro-ralph "intent" ─▶ ralph infer → decompose → build chain
|
|
43
|
-
│ resolves command_path per step
|
|
44
|
-
│ writes status.json
|
|
45
|
-
│ emits /goal prompt
|
|
46
|
-
▼
|
|
47
|
-
ralph-execute ◀─┐ 执行 step → `maestro ralph next` + inline + `ralph complete`
|
|
48
|
-
│ │ decision step → Skill("maestro-ralph")
|
|
49
|
-
└─────────┘ CLI writes step.completion_confirmed
|
|
50
|
-
loop until all completion_confirmed | paused
|
|
51
|
-
```
|
|
16
|
+
Closed-loop decision engine: read project state → infer position → build adaptive chain → delegate execution.
|
|
17
|
+
Ralph builds/evaluates; ralph-execute runs steps. Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`.
|
|
52
18
|
</purpose>
|
|
53
19
|
|
|
54
20
|
<context>
|
|
@@ -269,8 +235,7 @@ resolve_milestone(phase_number):
|
|
|
269
235
|
| phase 已存在 + 无任何 artifact | `analyze` |
|
|
270
236
|
| phase 已存在 + 最新 artifact = analyze | `plan` |
|
|
271
237
|
| phase 已存在 + 最新 artifact = plan | `execute` |
|
|
272
|
-
| phase 已存在 + 最新 artifact = execute |
|
|
273
|
-
| phase 已存在 + 最新 artifact = verify | → refine from result files |
|
|
238
|
+
| phase 已存在 + 最新 artifact = execute | → refine from post-execute results |
|
|
274
239
|
|
|
275
240
|
**关键不变量**:artifact 过滤按 `session.phase`,不读 `state.json.current_phase`。`phase_is_new` → 直接 `analyze`。
|
|
276
241
|
|
|
@@ -289,11 +254,13 @@ resolve_milestone(phase_number):
|
|
|
289
254
|
| `medium` / `small` | analyze-macro → plan --from analyze:{ANL_ID} → execute → ...(跳过 roadmap + analyze-phase) |
|
|
290
255
|
| `unknown` | 默认走 large 路径,post-analyze-scope 决策节点再纠正 |
|
|
291
256
|
|
|
292
|
-
**Refine from
|
|
257
|
+
**Refine from post-execute results:**
|
|
258
|
+
|
|
259
|
+
在 execute artifact 的 scratch dir 中检查结果文件(verification.json 由 execute 内置 gate 产出):
|
|
293
260
|
|
|
294
261
|
| Condition | Position |
|
|
295
262
|
|-----------|----------|
|
|
296
|
-
| verification.json
|
|
263
|
+
| 无 verification.json 或 passed==false 或 gaps[] | `execute` (触发 post-execute fix loop) |
|
|
297
264
|
| passed==true, no review.json | `business-test` |
|
|
298
265
|
| review.json: verdict=="BLOCK" | `review-failed` |
|
|
299
266
|
| review.json: verdict!="BLOCK" | `test` |
|
|
@@ -304,7 +271,7 @@ resolve_milestone(phase_number):
|
|
|
304
271
|
|
|
305
272
|
决定下游质量管线长度。读 `session.quality_mode_override`(CLI 标志 `--quality`),无则按规则推断:
|
|
306
273
|
|
|
307
|
-
| Condition | Mode | Pipeline (
|
|
274
|
+
| Condition | Mode | Pipeline (execute 之后) |
|
|
308
275
|
|-----------|------|-------------------------|
|
|
309
276
|
| Has `specs/REQ-*.md` + 当前 phase 业务范围明确 | `full` | business-test → review → test-gen → test |
|
|
310
277
|
| Default | `standard` | review → test-gen (当 coverage<80%) → test |
|
|
@@ -335,7 +302,7 @@ options:
|
|
|
335
302
|
- label: "统一规划 (Recommended)"
|
|
336
303
|
description: "一次性分析+规划整个里程碑所有 phase,analyze/plan 走里程碑级,适合 phase 间关联紧密"
|
|
337
304
|
- label: "独立规划"
|
|
338
|
-
description: "逐个 phase 走完整生命周期(analyze→plan→execute
|
|
305
|
+
description: "逐个 phase 走完整生命周期(analyze→plan→execute→...),适合 phase 间独立性高"
|
|
339
306
|
```
|
|
340
307
|
|
|
341
308
|
写入 `session.planning_mode`(`"unified"` 或 `"independent"`)。`A_BUILD_STEPS` 据此决定 skill args 是否携带 `{phase}` 占位符。
|
|
@@ -369,7 +336,7 @@ narrow → derive defaults from intent + codebase, skip questions.
|
|
|
369
336
|
{ "id": "G1", "goal": "<deliverable>", "boundary": "<in/out note>",
|
|
370
337
|
"done_when": "<objectively checkable condition>",
|
|
371
338
|
"evidence": "verification.json|review.json|uat.md|<test path>",
|
|
372
|
-
"lifecycle": ["analyze","execute"
|
|
339
|
+
"lifecycle": ["analyze","execute"], "status": "pending" }
|
|
373
340
|
```
|
|
374
341
|
`done_when` 必须客观可验证,且引用 ralph 已产出的 artifact;`lifecycle` 字段映射到产出 evidence 的生命周期 stage。
|
|
375
342
|
|
|
@@ -410,7 +377,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
410
377
|
3. **quality_mode 过滤**:按 `session.quality_mode` 排除不匹配 stage
|
|
411
378
|
3.5. **grill auto_confirm 跳过**:`auto_confirm == true` 时删除 `grill` stage(grill 为交互式苏格拉底拷问,不支持自动模式);brainstorm args 不含 `--from grill:*`
|
|
412
379
|
4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ decision: "<gate>", retry_count: 0, max_retries: 2, command_scope: null, command_path: null }`
|
|
413
|
-
5. **goal-audit 插入**:`task_decomposition` 存在时,在最后一个 evidence-producing stage(
|
|
380
|
+
5. **goal-audit 插入**:`task_decomposition` 存在时,在最后一个 evidence-producing stage(execute/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
|
|
414
381
|
6. **终点硬约束**:chain 以 `milestone-complete` 结尾
|
|
415
382
|
7. **goal_ref 传播**:`task_decomposition` 存在时,每个 step 按 `step.stage ∈ g.lifecycle` 匹配 `step.goal_ref = g.id`(多匹配取字典序最小);decision 节点不打 goal_ref
|
|
416
383
|
8. **占位符**:independent 保留 `{phase}` `{intent}`;unified 不带 `{phase}`
|
|
@@ -558,7 +525,7 @@ Runs only when `task_decomposition` present.
|
|
|
558
525
|
3. 路径 B(`medium` / `small`):
|
|
559
526
|
- 删除 `goal-audit` 之前所有未完成的 `roadmap` + `analyze` (phase) step
|
|
560
527
|
- 把下一个未完成的 `plan` step 改为 `maestro-plan --from analyze:{analyze_macro_id}`,去掉 `{phase}`,`source_artifact_ref = analyze:{analyze_macro_id}`
|
|
561
|
-
- 后续 `execute`
|
|
528
|
+
- 后续 `execute` 等沿用同一 standalone scope(不带 `{phase}`,由 plan 写出的 task 列表驱动)
|
|
562
529
|
4. 路径 C(`unknown`):
|
|
563
530
|
- 非 auto_confirm → AskUserQuestion 二选一(large / medium-small);auto_confirm → 默认 large
|
|
564
531
|
5. Reindex steps,标 decision completed,write status.json
|
|
@@ -619,7 +586,7 @@ Runs only when `task_decomposition` present.
|
|
|
619
586
|
"index": 0,
|
|
620
587
|
"skill": "", // 执行 step 有值;decision 节点为空字符串/null
|
|
621
588
|
"args": "",
|
|
622
|
-
"stage": "", // brainstorm|blueprint|init|analyze-macro|roadmap|analyze|plan|execute
|
|
589
|
+
"stage": "", // brainstorm|blueprint|init|analyze-macro|roadmap|analyze|plan|execute|...
|
|
623
590
|
"scope": null, // "phase"|"standalone"|"milestone"|null(plan 等需要)
|
|
624
591
|
"decision": null, // 非 null → decision 节点(值为 gate 名,如 "post-execute");null → 执行 step
|
|
625
592
|
"retry_count": 0, // decision 节点专用
|