maestro-flow 0.3.14 → 0.3.16
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/.claude/commands/maestro-amend.md +300 -0
- package/.claude/commands/maestro-analyze.md +1 -49
- package/.claude/commands/maestro-composer.md +354 -0
- package/.claude/commands/maestro-execute.md +2 -56
- package/.claude/commands/maestro-fork.md +3 -50
- package/.claude/commands/maestro-merge.md +2 -26
- package/.claude/commands/maestro-milestone-audit.md +1 -5
- package/.claude/commands/maestro-milestone-complete.md +1 -7
- package/.claude/commands/maestro-plan.md +6 -127
- package/.claude/commands/maestro-player.md +404 -0
- package/.claude/commands/maestro-roadmap.md +3 -101
- package/.claude/commands/maestro-spec-generate.md +1 -25
- package/.claude/commands/maestro-ui-design.md +14 -73
- package/.claude/commands/maestro-verify.md +1 -32
- package/.claude/commands/maestro.md +13 -30
- package/.claude/commands/manage-harvest.md +7 -44
- package/.claude/commands/manage-knowhow-capture.md +193 -0
- package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
- package/.claude/commands/manage-learn.md +3 -28
- package/.claude/commands/manage-status.md +1 -20
- package/.claude/commands/manage-wiki.md +1 -1
- package/.claude/commands/quality-business-test.md +1 -1
- package/.claude/commands/quality-debug.md +3 -18
- package/.claude/commands/quality-integration-test.md +3 -23
- package/.claude/commands/quality-retrospective.md +1 -28
- package/.claude/commands/quality-review.md +3 -52
- package/.claude/commands/quality-test-gen.md +1 -10
- package/.claude/commands/quality-test.md +3 -25
- package/.claude/commands/spec-add.md +1 -21
- package/.claude/commands/spec-load.md +1 -16
- package/.claude/commands/wiki-connect.md +2 -112
- package/.claude/commands/wiki-digest.md +2 -141
- package/.claude/skills/skill-iter-tune/SKILL.md +382 -0
- package/.claude/skills/skill-iter-tune/phases/01-setup.md +144 -0
- package/.claude/skills/skill-iter-tune/phases/02-execute.md +292 -0
- package/.claude/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
- package/.claude/skills/skill-iter-tune/phases/04-improve.md +186 -0
- package/.claude/skills/skill-iter-tune/phases/05-report.md +166 -0
- package/.claude/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
- package/.claude/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
- package/.claude/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
- package/.claude/skills/workflow-skill-designer/SKILL.md +496 -0
- package/.claude/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
- package/.claude/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
- package/.claude/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
- package/.claude/skills/workflow-skill-designer/phases/04-validation.md +471 -0
- package/.codex/skills/learn-decompose/SKILL.md +2 -8
- package/.codex/skills/maestro/SKILL.md +60 -146
- package/.codex/skills/maestro-analyze/SKILL.md +52 -150
- package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
- package/.codex/skills/maestro-composer/SKILL.md +213 -0
- package/.codex/skills/maestro-execute/SKILL.md +46 -177
- package/.codex/skills/maestro-init/SKILL.md +7 -51
- package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
- package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
- package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
- package/.codex/skills/maestro-overlay/SKILL.md +23 -92
- package/.codex/skills/maestro-plan/SKILL.md +42 -166
- package/.codex/skills/maestro-player/SKILL.md +323 -0
- package/.codex/skills/maestro-quick/SKILL.md +5 -48
- package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
- package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
- package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
- package/.codex/skills/maestro-verify/SKILL.md +39 -136
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
- package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
- package/.codex/skills/manage-issue/SKILL.md +1 -6
- package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
- package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
- package/.codex/skills/manage-learn/SKILL.md +17 -71
- package/.codex/skills/manage-status/SKILL.md +4 -35
- package/.codex/skills/manage-wiki/SKILL.md +1 -1
- package/.codex/skills/quality-business-test/SKILL.md +2 -14
- package/.codex/skills/quality-debug/SKILL.md +41 -133
- package/.codex/skills/quality-integration-test/SKILL.md +36 -145
- package/.codex/skills/quality-refactor/SKILL.md +6 -59
- package/.codex/skills/quality-retrospective/SKILL.md +292 -531
- package/.codex/skills/quality-review/SKILL.md +30 -65
- package/.codex/skills/quality-sync/SKILL.md +2 -11
- package/.codex/skills/quality-test/SKILL.md +4 -45
- package/.codex/skills/quality-test-gen/SKILL.md +33 -121
- package/.codex/skills/spec-add/SKILL.md +2 -9
- package/.codex/skills/spec-load/SKILL.md +4 -14
- package/.codex/skills/spec-map/SKILL.md +4 -37
- package/.codex/skills/spec-remove/SKILL.md +3 -35
- package/.codex/skills/spec-setup/SKILL.md +2 -19
- package/.codex/skills/team-coordinate/SKILL.md +20 -132
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
- package/.codex/skills/team-executor/SKILL.md +7 -66
- package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
- package/.codex/skills/team-executor/specs/session-schema.md +22 -56
- package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
- package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
- package/.codex/skills/team-review/SKILL.md +12 -86
- package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
- package/.codex/skills/team-tech-debt/SKILL.md +11 -50
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
- package/.codex/skills/team-testing/SKILL.md +14 -99
- package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
- package/.codex/skills/wiki-connect/SKILL.md +2 -5
- package/README.md +6 -0
- package/README.zh-CN.md +6 -0
- package/chains/_intent-map.json +7 -7
- package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
- package/chains/singles/{memory.json → knowhow.json} +6 -6
- package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
- package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
- package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
- package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
- package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
- package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
- package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
- package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
- package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
- package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
- package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
- package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
- package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
- package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
- package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
- package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
- package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
- package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
- package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
- package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
- package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
- package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
- package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
- package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
- package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
- package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
- package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
- package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
- package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
- package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
- package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
- package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
- package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
- package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
- package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
- package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
- package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
- package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
- package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
- package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
- package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
- package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
- package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
- package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
- package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
- package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
- package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
- package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
- package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
- package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
- package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
- package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
- package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
- package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
- package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
- package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
- package/dashboard/dist-server/src/commands/delegate.js +11 -8
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dist/shared/agent-types.d.ts +2 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/cli.js +2 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +11 -8
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +1 -1
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/knowhow.d.ts +10 -0
- package/dist/src/commands/knowhow.d.ts.map +1 -0
- package/dist/src/commands/knowhow.js +217 -0
- package/dist/src/commands/knowhow.js.map +1 -0
- package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
- package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
- package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
- package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
- package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
- package/dist/src/commands/overlay-ui/index.js +70 -44
- package/dist/src/commands/overlay-ui/index.js.map +1 -1
- package/dist/src/commands/overlay.d.ts.map +1 -1
- package/dist/src/commands/overlay.js +4 -3
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts +1 -1
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js +40 -13
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/core/overlay/loader.d.ts.map +1 -1
- package/dist/src/core/overlay/loader.js +6 -0
- package/dist/src/core/overlay/loader.js.map +1 -1
- package/dist/src/core/overlay/types.d.ts +5 -1
- package/dist/src/core/overlay/types.d.ts.map +1 -1
- package/dist/src/core/overlay/types.js +1 -1
- package/dist/src/core/overlay/types.js.map +1 -1
- package/dist/src/hooks/context-monitor.js +1 -1
- package/dist/src/hooks/context-monitor.js.map +1 -1
- package/dist/src/hooks/skill-context.js +1 -1
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.d.ts +4 -0
- package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.js +73 -4
- package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
- package/dist/src/tools/index.js +2 -2
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/store-knowhow.d.ts +21 -0
- package/dist/src/tools/store-knowhow.d.ts.map +1 -0
- package/dist/src/tools/store-knowhow.js +295 -0
- package/dist/src/tools/store-knowhow.js.map +1 -0
- package/package.json +1 -1
- package/shared/agent-types.ts +2 -0
- package/templates/workflows/specs/node-catalog.md +170 -0
- package/templates/workflows/specs/template-schema.md +157 -0
- package/workflows/analyze.md +61 -185
- package/workflows/brainstorm.md +3 -23
- package/workflows/codebase-rebuild.md +79 -191
- package/workflows/codebase-refresh.md +26 -124
- package/workflows/debug.md +21 -141
- package/workflows/execute.md +183 -350
- package/workflows/fork.md +72 -230
- package/workflows/harvest.md +12 -79
- package/workflows/init.md +3 -17
- package/workflows/integration-test.md +21 -190
- package/workflows/issue-analyze.md +35 -153
- package/workflows/issue-discover.md +88 -263
- package/workflows/issue-execute.md +29 -208
- package/workflows/issue-plan.md +33 -154
- package/workflows/issue.md +44 -202
- package/workflows/knowhow.md +374 -0
- package/workflows/learn.md +30 -177
- package/workflows/maestro-coordinate.codex.md +77 -362
- package/workflows/maestro-link-coordinate.md +12 -61
- package/workflows/maestro.codex.md +124 -457
- package/workflows/maestro.md +562 -976
- package/workflows/map.md +16 -53
- package/workflows/merge.md +42 -197
- package/workflows/milestone-audit.md +5 -43
- package/workflows/milestone-complete.md +11 -60
- package/workflows/plan.md +176 -387
- package/workflows/quick.md +25 -174
- package/workflows/refactor.md +28 -221
- package/workflows/retrospective.md +104 -443
- package/workflows/review.md +87 -299
- package/workflows/roadmap.md +117 -97
- package/workflows/spec-generate.md +22 -118
- package/workflows/specs-add.md +5 -25
- package/workflows/specs-load.md +1 -5
- package/workflows/specs-remove.md +0 -11
- package/workflows/specs-setup.md +11 -47
- package/workflows/status.md +58 -200
- package/workflows/sync.md +28 -141
- package/workflows/test-gen.md +23 -100
- package/workflows/test.md +15 -125
- package/workflows/ui-design.md +139 -465
- package/workflows/ui-style.md +36 -228
- package/workflows/verify.md +52 -273
- package/workflows/wiki-connect.md +9 -46
- package/workflows/wiki-digest.md +7 -50
- package/workflows/wiki-manage.md +11 -108
- package/.claude/commands/maestro-coordinate.md +0 -63
- package/.claude/commands/manage-memory-capture.md +0 -59
- package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
- package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
- package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
- package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
- package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
- package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
- package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
- package/workflows/maestro-coordinate.md +0 -582
- package/workflows/memory.md +0 -451
|
@@ -36,66 +36,15 @@ All plan output goes to `.workflow/scratch/{YYYYMMDD}-plan-[P{N}-|M{N}-]{slug}/`
|
|
|
36
36
|
<context>
|
|
37
37
|
$ARGUMENTS — phase number, or no args for milestone-wide planning, with optional flags.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
- `--collab` -- Multi-planner collaborative mode (spawn N workflow-collab-planner agents with pre-allocated TASK ID ranges)
|
|
41
|
-
- `--spec SPEC-xxx` -- Reference a task-spec for requirements input
|
|
42
|
-
- `--auto` -- Skip interactive clarification (P2), use defaults
|
|
43
|
-
- `--gaps` -- Gap closure mode: load verification/issue gaps, skip exploration, plan only gap fixes
|
|
44
|
-
- `--dir <path>` -- Use arbitrary scratch directory as context source (e.g., from analyze session)
|
|
45
|
-
- `--revise [instructions]` -- Revise existing plan. Auto-discovers latest plan for current phase from state.json, or use with `--dir` to target specific plan. If instructions provided, apply directly (e.g. `--revise "add TASK-005 for error handling"`). If omitted, ask user via AskUserQuestion. Skips P1-P3 (exploration/clarification/planning), loads existing plan.json + tasks, applies targeted modifications, re-runs P4 (plan-checker).
|
|
46
|
-
- `--check <plan-dir>` -- Standalone plan verification. Run plan-checker (P4 only) against existing plan without modification. Also checks roadmap consistency and collision detection. Read-only.
|
|
39
|
+
Scope routing, base flags (`--collab`, `--spec`, `--auto`, `--gaps`, `--dir`), output directory format, and artifact registration are defined in workflow plan.md.
|
|
47
40
|
|
|
48
|
-
**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|-----------|-------------|-------|----------|
|
|
52
|
-
| `plan` (no args) | init + roadmap | milestone | Plan all phases in current milestone |
|
|
53
|
-
| `plan 1` | init + roadmap | phase | Plan phase 1 only |
|
|
54
|
-
| `plan --dir scratch/analyze-xxx` | none | inherited | Plan against specified analyze session |
|
|
55
|
-
| `plan --revise "instructions"` | existing plan | revise | Modify existing plan with instructions |
|
|
56
|
-
| `plan --revise` | existing plan | revise | Modify existing plan, ask user for instructions |
|
|
57
|
-
| `plan --check scratch/plan-xxx` | existing plan | check | Verify existing plan (read-only) |
|
|
41
|
+
**Command-level flags** (extensions beyond workflow base):
|
|
42
|
+
- `--revise [instructions]` -- See workflow plan.md § Revise Mode
|
|
43
|
+
- `--check <plan-dir>` -- See workflow plan.md § Check Mode
|
|
58
44
|
|
|
59
45
|
**Upstream context:**
|
|
60
46
|
- Reads `context.md` from prior analyze artifact (auto-discovered from state.json or via --dir)
|
|
61
47
|
- Reads `conclusions.json` if available (implementation_scope seeds task generation)
|
|
62
|
-
|
|
63
|
-
**Output directory** (relative to `.workflow/`):
|
|
64
|
-
|
|
65
|
-
| Scope | Directory format | Example |
|
|
66
|
-
|-------|-----------------|---------|
|
|
67
|
-
| Phase | `scratch/{YYYYMMDD}-plan-P{N}-{slug}/` | `20260420-plan-P1-auth` |
|
|
68
|
-
| Milestone | `scratch/{YYYYMMDD}-plan-M{N}-{slug}/` | `20260420-plan-M1-mvp` |
|
|
69
|
-
| Adhoc/Standalone | `scratch/{YYYYMMDD}-plan-{slug}/` | `20260420-plan-caching` |
|
|
70
|
-
|
|
71
|
-
**Output structure:**
|
|
72
|
-
```
|
|
73
|
-
{YYYYMMDD}-plan-P{N}-{slug}/
|
|
74
|
-
├── plan.json # summary, task_ids[], waves[] with phase labels
|
|
75
|
-
└── .task/
|
|
76
|
-
├── TASK-001.json # { phase: 1, phase_slug: "auth", ... }
|
|
77
|
-
├── TASK-002.json
|
|
78
|
-
└── ...
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Collision detection**: After plan generation, before user confirmation, check for file overlaps with existing plans in same milestone. Non-blocking warning only.
|
|
82
|
-
|
|
83
|
-
**Artifact registration**: On completion, register in `state.json.artifacts[]`:
|
|
84
|
-
```jsonc
|
|
85
|
-
{
|
|
86
|
-
"id": "PLN-{NNN}",
|
|
87
|
-
"type": "plan",
|
|
88
|
-
"milestone": "{current_milestone or null}",
|
|
89
|
-
"phase": "{phase_number or null}",
|
|
90
|
-
"scope": "{milestone|phase|adhoc|standalone}",
|
|
91
|
-
"path": "scratch/{YYYYMMDD}-plan-P{N}-{slug}", // P{N} for phase, M{N} for milestone, omit for adhoc/standalone
|
|
92
|
-
"status": "completed",
|
|
93
|
-
"depends_on": "{ANL-NNN or null}",
|
|
94
|
-
"harvested": false,
|
|
95
|
-
"created_at": "...",
|
|
96
|
-
"completed_at": "..."
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
48
|
</context>
|
|
100
49
|
|
|
101
50
|
<execution>
|
|
@@ -158,79 +107,9 @@ Next steps:
|
|
|
158
107
|
/maestro-plan {phase} -- Re-plan with modifications
|
|
159
108
|
```
|
|
160
109
|
|
|
161
|
-
### Mode: Revise
|
|
162
|
-
|
|
163
|
-
Incrementally modify an existing plan without rebuilding from scratch.
|
|
164
|
-
|
|
165
|
-
**Plan discovery:**
|
|
166
|
-
- With `--dir`: use specified plan directory
|
|
167
|
-
- Without `--dir`: auto-discover latest completed plan for current phase from `state.json.artifacts[]` (type=plan, status=completed, matching phase)
|
|
168
|
-
|
|
169
|
-
**Execution flow:**
|
|
170
|
-
|
|
171
|
-
1. **Load existing plan**
|
|
172
|
-
- Read `plan.json` + all `.task/TASK-*.json` from discovered directory
|
|
173
|
-
- Show current plan summary: task count, waves, status per task
|
|
174
|
-
|
|
175
|
-
2. **Obtain revision instructions**
|
|
176
|
-
- If `--revise "instructions"` provided → parse as change directive
|
|
177
|
-
- If `--revise` without instructions → AskUserQuestion for what to change:
|
|
178
|
-
- Add/remove tasks
|
|
179
|
-
- Modify task scope, action, implementation
|
|
180
|
-
- Reorder waves or adjust dependencies
|
|
181
|
-
- Update convergence criteria
|
|
182
|
-
- Parse instructions into concrete changes
|
|
183
|
-
|
|
184
|
-
3. **Apply targeted changes**
|
|
185
|
-
- Modify affected TASK files in-place
|
|
186
|
-
- If tasks added/removed: re-sequence task IDs, regenerate wave assignments
|
|
187
|
-
- Update plan.json summary (task count, wave structure)
|
|
188
|
-
- Preserve unmodified tasks completely
|
|
189
|
-
|
|
190
|
-
4. **Re-run plan-checker (P4)**
|
|
191
|
-
- Validate modified plan with same checker as create mode
|
|
192
|
-
- Re-run collision detection against same-milestone plans
|
|
193
|
-
- Present check results for confirmation
|
|
194
|
-
|
|
195
|
-
5. **Update artifact**
|
|
196
|
-
- Overwrite plan files in existing scratch directory
|
|
197
|
-
- Update artifact timestamp in state.json (no new artifact created)
|
|
198
|
-
|
|
199
|
-
### Mode: Check (`--check <plan-dir>`)
|
|
200
|
-
|
|
201
|
-
Read-only plan verification without modification.
|
|
202
|
-
|
|
203
|
-
**Execution flow:**
|
|
204
|
-
|
|
205
|
-
1. **Load plan**
|
|
206
|
-
- Read `plan.json` + `.task/TASK-*.json` from specified directory
|
|
207
|
-
- Read `.workflow/roadmap.md` for consistency comparison
|
|
208
|
-
|
|
209
|
-
2. **Run checks**
|
|
210
|
-
- Plan-checker (P4 pipeline stage) — task quality, convergence criteria
|
|
211
|
-
- Roadmap consistency — plan tasks align with phase scope and requirements
|
|
212
|
-
- Collision detection — file overlaps with other plans in same milestone
|
|
213
|
-
- Dependency integrity — no broken cross-task dependencies
|
|
214
|
-
|
|
215
|
-
3. **Produce check report**
|
|
216
|
-
```
|
|
217
|
-
=== PLAN CHECK ===
|
|
218
|
-
Plan: {plan_dir}/plan.json
|
|
219
|
-
Tasks: {total} ({completed} done, {pending} pending)
|
|
220
|
-
|
|
221
|
-
Checker: {PASS|WARN|FAIL} ({issues} issues)
|
|
222
|
-
Roadmap: {aligned|drift detected}
|
|
223
|
-
Collision: {clear|{N} overlaps}
|
|
224
|
-
|
|
225
|
-
Issues:
|
|
226
|
-
1. [{severity}] {description}
|
|
227
|
-
|
|
228
|
-
Suggested actions:
|
|
229
|
-
/maestro-plan --revise "fix instructions" -- Apply fixes
|
|
230
|
-
/maestro-execute --dir {plan_dir} -- Execute as-is
|
|
231
|
-
```
|
|
110
|
+
### Mode: Revise / Check
|
|
232
111
|
|
|
233
|
-
|
|
112
|
+
Follow workflow plan.md § "Revise Mode" and § "Check Mode" respectively. These modes bypass the standard P1-P5 create pipeline.
|
|
234
113
|
</execution>
|
|
235
114
|
|
|
236
115
|
<error_codes>
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-player
|
|
3
|
+
description: Workflow template player — load JSON template, bind variables, execute DAG nodes in order, persist state at checkpoints, support resume
|
|
4
|
+
argument-hint: "<template-slug|path> [--context key=value...] [-c [session-id]] [--list] [--dry-run]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Agent
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
- Skill
|
|
15
|
+
---
|
|
16
|
+
<purpose>
|
|
17
|
+
Load a workflow template (produced by maestro-composer) → bind context variables →
|
|
18
|
+
execute DAG nodes in topological order → persist state at checkpoints → support resume.
|
|
19
|
+
|
|
20
|
+
Node execution mechanisms:
|
|
21
|
+
- `skill` node → `Skill()` (synchronous)
|
|
22
|
+
- `command` node → `Skill()` with namespace (synchronous)
|
|
23
|
+
- `cli` node → `maestro delegate` (background + wait for callback)
|
|
24
|
+
- `agent` node → `Agent()` (sync or background per config)
|
|
25
|
+
- `checkpoint` node → state save, optional user pause
|
|
26
|
+
|
|
27
|
+
Session state persisted at `.workflow/.maestro/<session_id>/status.json` (same tracking
|
|
28
|
+
location as maestro.md), enabling resume from any checkpoint via `-c`.
|
|
29
|
+
</purpose>
|
|
30
|
+
|
|
31
|
+
<context>
|
|
32
|
+
$ARGUMENTS — template slug/path, or flags.
|
|
33
|
+
|
|
34
|
+
**Flags:**
|
|
35
|
+
- `--context key=value` — Bind context variables (repeatable)
|
|
36
|
+
- `-c` / `--continue [session-id]` — Resume paused/interrupted session (consistent with maestro.md)
|
|
37
|
+
- `--list` — List available templates from `~/.maestro/templates/workflows/index.json`
|
|
38
|
+
- `--dry-run` — Show execution plan without executing
|
|
39
|
+
|
|
40
|
+
**Entry routing:**
|
|
41
|
+
|
|
42
|
+
| Detection | Condition | Handler |
|
|
43
|
+
|-----------|-----------|---------|
|
|
44
|
+
| List templates | `--list` in args | handleList |
|
|
45
|
+
| Resume session | `-c [session-id]` | Phase 0: Resume |
|
|
46
|
+
| Dry run | `--dry-run` in args | Phase 1 + 2, print plan, exit |
|
|
47
|
+
| Normal | Template slug/path provided | Phase 1 |
|
|
48
|
+
| No args | Empty args | handleList + AskUserQuestion |
|
|
49
|
+
|
|
50
|
+
**Shared constants (aligned with maestro.md tracking):**
|
|
51
|
+
|
|
52
|
+
| Constant | Value |
|
|
53
|
+
|----------|-------|
|
|
54
|
+
| Session prefix | `player` |
|
|
55
|
+
| Session dir | `.workflow/.maestro/player-<YYYYMMDD>-<HHmmss>/` |
|
|
56
|
+
| State file | `status.json` |
|
|
57
|
+
| Template dir (global) | `~/.maestro/templates/workflows/` |
|
|
58
|
+
| Template index (global) | `~/.maestro/templates/workflows/index.json` |
|
|
59
|
+
|
|
60
|
+
**Session status.json schema (aligned with maestro.md):**
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"session_id": "player-<YYYYMMDD>-<HHmmss>",
|
|
65
|
+
"created_at": "<ISO>",
|
|
66
|
+
"intent": "<template_name> with context",
|
|
67
|
+
"task_type": "player",
|
|
68
|
+
"chain_name": "<template_id>",
|
|
69
|
+
"template_id": "wft-<slug>-<date>",
|
|
70
|
+
"template_path": "~/.maestro/templates/workflows/<slug>.json",
|
|
71
|
+
"template_name": "<name>",
|
|
72
|
+
"auto_mode": false,
|
|
73
|
+
"status": "running | paused | completed | failed | aborted",
|
|
74
|
+
"context": { "goal": "...", "scope": "..." },
|
|
75
|
+
"steps": [
|
|
76
|
+
{
|
|
77
|
+
"index": 0,
|
|
78
|
+
"node_id": "N-001",
|
|
79
|
+
"skill": "<executor>",
|
|
80
|
+
"args": "<resolved_args>",
|
|
81
|
+
"type": "skill | cli | command | agent | checkpoint",
|
|
82
|
+
"status": "pending | running | completed | skipped | failed",
|
|
83
|
+
"started_at": null,
|
|
84
|
+
"completed_at": null,
|
|
85
|
+
"session_id": null,
|
|
86
|
+
"output_path": null,
|
|
87
|
+
"artifacts": [],
|
|
88
|
+
"error": null
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"current_step": 0,
|
|
92
|
+
"last_checkpoint": null,
|
|
93
|
+
"updated_at": "<ISO>",
|
|
94
|
+
"completed_at": null
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Session directory structure (under .workflow/.maestro/):**
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
.workflow/.maestro/player-<YYYYMMDD>-<HHmmss>/
|
|
102
|
+
├── status.json # Main state file (maestro.md compatible)
|
|
103
|
+
├── checkpoints/
|
|
104
|
+
│ ├── CP-01.json
|
|
105
|
+
│ └── CP-02.json
|
|
106
|
+
└── artifacts/
|
|
107
|
+
└── N-001-output.md
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Node execution mechanisms:**
|
|
111
|
+
|
|
112
|
+
| Node type | Mechanism | Blocking |
|
|
113
|
+
|-----------|-----------|----------|
|
|
114
|
+
| skill | `Skill(skill=executor, args=resolved_args)` | sync |
|
|
115
|
+
| command | `Skill(skill=executor, args=resolved_args)` | sync |
|
|
116
|
+
| cli | `maestro delegate "prompt" --to tool --mode mode --rule rule` via `Bash(run_in_background: true)` | async, wait for callback |
|
|
117
|
+
| agent | `Agent(subagent_type=executor, prompt=resolved_args)` | configurable |
|
|
118
|
+
| checkpoint | State save + optional user pause | — |
|
|
119
|
+
|
|
120
|
+
**Runtime reference resolution:**
|
|
121
|
+
|
|
122
|
+
Before executing each node, resolve `{ref}` patterns in `args_template`:
|
|
123
|
+
|
|
124
|
+
| Reference | Resolves To |
|
|
125
|
+
|-----------|-------------|
|
|
126
|
+
| `{variable}` | `session_state.context[variable]` |
|
|
127
|
+
| `{N-001.session_id}` | `node_states["N-001"].session_id` |
|
|
128
|
+
| `{N-001.output_path}` | `node_states["N-001"].output_path` |
|
|
129
|
+
| `{prev_session_id}` | session_id of previous non-checkpoint node |
|
|
130
|
+
| `{prev_output_path}` | output_path of previous non-checkpoint node |
|
|
131
|
+
|
|
132
|
+
Fallback: if referenced field is null, substitution results in empty string.
|
|
133
|
+
</context>
|
|
134
|
+
|
|
135
|
+
<execution>
|
|
136
|
+
|
|
137
|
+
### handleList
|
|
138
|
+
|
|
139
|
+
Scan `~/.maestro/templates/workflows/index.json`. Display:
|
|
140
|
+
```
|
|
141
|
+
Available workflow templates:
|
|
142
|
+
feature-tdd-review [feature, complex] 3 work nodes, 2 checkpoints
|
|
143
|
+
quick-bugfix [bugfix, simple] 2 work nodes, 1 checkpoint
|
|
144
|
+
|
|
145
|
+
Run: /maestro-player <slug> --context goal="..."
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
If index not found, output: "No templates found. Create one with /maestro-composer"
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### Phase 0: Resume — Session Reconciliation
|
|
153
|
+
|
|
154
|
+
**Trigger**: `-c [session-id]`
|
|
155
|
+
|
|
156
|
+
1. If session-id provided: load `.workflow/.maestro/<session-id>/status.json`
|
|
157
|
+
2. If no session-id: scan `.workflow/.maestro/player-*/status.json` for `status = "running" | "paused"`
|
|
158
|
+
3. Multiple found → AskUserQuestion for selection
|
|
159
|
+
4. None found → error E004
|
|
160
|
+
5. Reset any `running` steps back to `pending` (interrupted mid-execution)
|
|
161
|
+
6. Determine next executable step from `steps[]` after `last_checkpoint`
|
|
162
|
+
7. Set `current_step` to resume point
|
|
163
|
+
8. Resume at Phase 3 (Execute Loop) from that step
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### Phase 1: Load & Bind
|
|
168
|
+
|
|
169
|
+
**Objective**: Load template, collect missing variables, bind all references.
|
|
170
|
+
|
|
171
|
+
**Step 1.1** — Resolve template path:
|
|
172
|
+
1. Absolute path → use as-is
|
|
173
|
+
2. Relative path (`.` prefix) → resolve from cwd
|
|
174
|
+
3. Slug only → look up in `~/.maestro/templates/workflows/index.json`
|
|
175
|
+
4. Partial match → scan index, confirm with user
|
|
176
|
+
5. Not found → show available templates, AskUserQuestion
|
|
177
|
+
|
|
178
|
+
**Step 1.2** — Parse `--context key=value` pairs into `bound_context`.
|
|
179
|
+
|
|
180
|
+
**Step 1.3** — Load and validate template JSON (`template_id`, `nodes`, `edges`, `context_schema` must be present).
|
|
181
|
+
|
|
182
|
+
**Step 1.4** — Collect missing required variables:
|
|
183
|
+
- For each `context_schema` entry where `required: true` and not in `bound_context`:
|
|
184
|
+
AskUserQuestion to collect value
|
|
185
|
+
- For optional variables: use `default` or empty string
|
|
186
|
+
|
|
187
|
+
**Step 1.5** — Bind variables: replace `{variable_name}` with values in all `args_template` strings. Leave `{N-xxx.field}` and `{prev_*}` unresolved (runtime Phase 3).
|
|
188
|
+
|
|
189
|
+
**Step 1.6** — If `--dry-run`: print execution plan and exit:
|
|
190
|
+
```
|
|
191
|
+
Workflow: <template.name>
|
|
192
|
+
Context: goal = "<value>"
|
|
193
|
+
|
|
194
|
+
Execution Plan:
|
|
195
|
+
[1] N-001 [skill] maestro-plan "<goal>"
|
|
196
|
+
[2] CP-01 [checkpoint] After Plan auto-continue
|
|
197
|
+
[3] N-002 [skill] maestro-execute --resume-session {N-001.session_id}
|
|
198
|
+
|
|
199
|
+
To execute: /maestro-player <slug> --context goal="..."
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### Phase 2: Instantiate — Init Session State
|
|
205
|
+
|
|
206
|
+
**Objective**: Create session directory, init state, compute execution plan.
|
|
207
|
+
|
|
208
|
+
**Step 2.1** — Generate session ID: `player-<YYYYMMDD>-<HHmmss>`. Create directory at `.workflow/.maestro/<session_id>/`.
|
|
209
|
+
|
|
210
|
+
**Step 2.2** — Topological sort via Kahn's algorithm. Flatten nodes into `steps[]` array (maestro.md format). Parallel nodes get same batch index.
|
|
211
|
+
|
|
212
|
+
**Step 2.3** — Init all steps as `status: "pending"`.
|
|
213
|
+
|
|
214
|
+
**Step 2.4** — Write `status.json` (see schema in Context section).
|
|
215
|
+
|
|
216
|
+
**Step 2.5** — Show execution start banner:
|
|
217
|
+
```
|
|
218
|
+
============================================================
|
|
219
|
+
MAESTRO PLAYER
|
|
220
|
+
============================================================
|
|
221
|
+
Template: <template.name>
|
|
222
|
+
Session: <session_id>
|
|
223
|
+
Context: goal="<value>"
|
|
224
|
+
|
|
225
|
+
Pipeline:
|
|
226
|
+
1. N-001 [skill] maestro-plan
|
|
227
|
+
2. CP-01 [checkpoint] After Plan
|
|
228
|
+
3. N-002 [skill] maestro-execute
|
|
229
|
+
============================================================
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### Phase 3: Execute Loop
|
|
235
|
+
|
|
236
|
+
**Objective**: Execute each step in order. Save state after every step.
|
|
237
|
+
|
|
238
|
+
**CRITICAL**: After each step status change, write `status.json` immediately. This enables resume on interruption.
|
|
239
|
+
|
|
240
|
+
**For each step starting at `current_step`:**
|
|
241
|
+
|
|
242
|
+
**3a. Display step banner** (consistent with maestro.md):
|
|
243
|
+
```
|
|
244
|
+
------------------------------------------------------------
|
|
245
|
+
STEP {i+1}/{total}: {node_id} [{type}] {executor}
|
|
246
|
+
------------------------------------------------------------
|
|
247
|
+
Args: {resolved_args}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**3b. Update status.json**: Set step status = `"running"`, started_at = now.
|
|
251
|
+
|
|
252
|
+
**3c. Execute by node type:**
|
|
253
|
+
|
|
254
|
+
**skill / command node**:
|
|
255
|
+
```
|
|
256
|
+
resolved_args = resolveArgs(step.args_template, status)
|
|
257
|
+
Skill(skill=step.skill, args=resolved_args)
|
|
258
|
+
|
|
259
|
+
Extract from result: session_id (WFS-*), output_path, artifacts
|
|
260
|
+
Update step: status="completed", session_id, output_path, artifacts, completed_at
|
|
261
|
+
Write status.json
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**cli node — CRITICAL: background + stop**:
|
|
265
|
+
```
|
|
266
|
+
resolved_args = resolveArgs(step.args_template, status)
|
|
267
|
+
|
|
268
|
+
Bash({
|
|
269
|
+
command: `maestro delegate "${resolved_args}" --to ${step.cli_tool} --mode ${step.cli_mode} --rule ${step.cli_rule}`,
|
|
270
|
+
run_in_background: true
|
|
271
|
+
})
|
|
272
|
+
|
|
273
|
+
Write status.json // persist "running" state
|
|
274
|
+
STOP — wait for background callback
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
On callback:
|
|
278
|
+
```
|
|
279
|
+
Load status.json
|
|
280
|
+
Find step with status "running"
|
|
281
|
+
Retrieve output: maestro delegate output <exec_id>
|
|
282
|
+
Update step: status="completed", output_path, completed_at
|
|
283
|
+
Write status.json
|
|
284
|
+
Advance to next step
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**agent node**:
|
|
288
|
+
```
|
|
289
|
+
resolved_args = resolveArgs(step.args_template, status)
|
|
290
|
+
|
|
291
|
+
Agent({
|
|
292
|
+
subagent_type: step.skill,
|
|
293
|
+
prompt: resolved_args,
|
|
294
|
+
run_in_background: step.run_in_background ?? false,
|
|
295
|
+
description: step.node_id
|
|
296
|
+
})
|
|
297
|
+
|
|
298
|
+
Update step: status="completed", output_path, completed_at
|
|
299
|
+
Write status.json
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**checkpoint node**:
|
|
303
|
+
```
|
|
304
|
+
// 1. Write checkpoint snapshot
|
|
305
|
+
Write <session_dir>/checkpoints/<step.node_id>.json with:
|
|
306
|
+
session_id, checkpoint_id, saved_at, steps_snapshot, last_completed_step
|
|
307
|
+
|
|
308
|
+
// 2. Update status.json
|
|
309
|
+
status.last_checkpoint = step.node_id
|
|
310
|
+
Mark step completed, write status.json
|
|
311
|
+
|
|
312
|
+
// 3. If auto_continue == false: pause for user
|
|
313
|
+
AskUserQuestion:
|
|
314
|
+
- Continue → proceed
|
|
315
|
+
- Pause → set status="paused", write status.json, output resume command, EXIT
|
|
316
|
+
- Abort → set status="aborted", EXIT
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**3d. Handle result** (consistent with maestro.md):
|
|
320
|
+
|
|
321
|
+
On success: update step status = `"completed"`, advance `current_step`.
|
|
322
|
+
|
|
323
|
+
On failure:
|
|
324
|
+
```
|
|
325
|
+
on_fail = step.on_fail || "abort"
|
|
326
|
+
|
|
327
|
+
skip → mark "skipped", log warning, advance
|
|
328
|
+
retry → retry once, if still fails → fall to abort
|
|
329
|
+
abort → AskUserQuestion: Retry / Skip / Abort
|
|
330
|
+
On Abort: save progress, display: "Resume with: /maestro-player -c"
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**3e. Context cleanup hint** (after step 3+, consistent with maestro.md):
|
|
334
|
+
```
|
|
335
|
+
⚡ 已执行 {i} 步,上下文较重。可随时 /maestro-player -c 在新上下文中恢复。
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
### Phase 4: Complete — Archive + Summary
|
|
341
|
+
|
|
342
|
+
**Objective**: Mark session complete, output summary.
|
|
343
|
+
|
|
344
|
+
**Step 4.1** — Set `status = "completed"`, `completed_at = <ISO>`, write `status.json`.
|
|
345
|
+
|
|
346
|
+
**Step 4.2** — Collect all artifacts from steps.
|
|
347
|
+
|
|
348
|
+
**Step 4.3** — Display execution summary (consistent with maestro.md):
|
|
349
|
+
```
|
|
350
|
+
============================================================
|
|
351
|
+
MAESTRO PLAYER SESSION COMPLETE
|
|
352
|
+
============================================================
|
|
353
|
+
Session: <session_id>
|
|
354
|
+
Template: <template_name> (<template_id>)
|
|
355
|
+
Steps: <completed>/<total> completed
|
|
356
|
+
Context: goal="<value>"
|
|
357
|
+
|
|
358
|
+
Results:
|
|
359
|
+
[✓] 1. N-001 maestro-plan — completed (WFS-plan-xxx)
|
|
360
|
+
[✓] 2. CP-01 After Plan — completed (checkpoint)
|
|
361
|
+
[✓] 3. N-002 maestro-execute — completed (WFS-exec-xxx)
|
|
362
|
+
[✓] 4. N-003 quality-test — completed (WFS-test-xxx)
|
|
363
|
+
|
|
364
|
+
Artifacts:
|
|
365
|
+
- IMPL_PLAN.md (N-001)
|
|
366
|
+
- src/auth/index.ts (N-002)
|
|
367
|
+
- test/auth.test.ts (N-003)
|
|
368
|
+
|
|
369
|
+
Session dir: .workflow/.maestro/<session_id>/
|
|
370
|
+
============================================================
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Step 4.4** — AskUserQuestion completion action:
|
|
374
|
+
- **Keep session** → leave at current path
|
|
375
|
+
- **Run again** → AskUserQuestion for same/new context, re-enter Phase 1
|
|
376
|
+
- **Nothing** → done
|
|
377
|
+
</execution>
|
|
378
|
+
|
|
379
|
+
<error_codes>
|
|
380
|
+
| Code | Severity | Description | Recovery |
|
|
381
|
+
|------|----------|-------------|----------|
|
|
382
|
+
| E001 | error | Template not found | Show --list output, suggest closest match |
|
|
383
|
+
| E002 | error | Template JSON invalid (missing required fields) | Point to template file for fix |
|
|
384
|
+
| E003 | error | Required context variable missing and user declined | Cannot proceed without required vars |
|
|
385
|
+
| E004 | error | Resume session not found | Scan `.workflow/.maestro/player-*/`, list available |
|
|
386
|
+
| E005 | error | DAG cycle in template | Point to template for fix, suggest maestro-composer --edit |
|
|
387
|
+
| E006 | error | Node execution failed + abort chosen | Save state, suggest --resume |
|
|
388
|
+
| W001 | warning | Node completed with warnings | Log and continue |
|
|
389
|
+
| W002 | warning | Runtime reference resolved to empty string | Log, executor handles gracefully |
|
|
390
|
+
</error_codes>
|
|
391
|
+
|
|
392
|
+
<success_criteria>
|
|
393
|
+
- [ ] Template loaded from `~/.maestro/templates/workflows/` and validated
|
|
394
|
+
- [ ] All required context variables bound (from --context or user input)
|
|
395
|
+
- [ ] Session directory created at `.workflow/.maestro/player-*/` with `status.json`
|
|
396
|
+
- [ ] Steps array computed via topological sort (maestro.md compatible format)
|
|
397
|
+
- [ ] Each step executed with correct mechanism (Skill/delegate/Agent)
|
|
398
|
+
- [ ] Runtime references ({N-xxx.field}, {prev_*}) resolved before each step
|
|
399
|
+
- [ ] `status.json` written after every step status change (resume-safe)
|
|
400
|
+
- [ ] Checkpoints saved with snapshots under `checkpoints/`
|
|
401
|
+
- [ ] CLI nodes use `maestro delegate` with `Bash(run_in_background: true)` + stop pattern
|
|
402
|
+
- [ ] Step banners and completion report match maestro.md format
|
|
403
|
+
- [ ] Resume via `-c` scans `.workflow/.maestro/player-*/status.json`
|
|
404
|
+
</success_criteria>
|
|
@@ -59,15 +59,7 @@ Alternative heavy path (skip maestro-roadmap):
|
|
|
59
59
|
maestro-init → maestro-spec-generate → spec package + roadmap.md
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
| Mode | Strategy | Best For |
|
|
64
|
-
|------|----------|----------|
|
|
65
|
-
| Progressive | MVP → Usable → Refined (as **Milestones**, each with 1-2 phases) | High uncertainty, need validation |
|
|
66
|
-
| Direct | Topological task sequence (1-2 phases, wave DAG handles ordering) | Clear requirements, confirmed tech |
|
|
67
|
-
|
|
68
|
-
Auto-selection: ≥3 high uncertainty factors → Progressive, ≥3 low → Direct, else → ask user.
|
|
69
|
-
|
|
70
|
-
**Minimum-phase principle:** Default 1 phase per milestone. Only split into 2 phases when hard dependency exists (runtime + not parallelizable + full barrier). Max 2 phases, exceptional 3 with justification.
|
|
62
|
+
Dual modes (Progressive vs Direct), auto-selection criteria, and minimum-phase principle are defined in workflow roadmap.md (Steps 2-3).
|
|
71
63
|
</context>
|
|
72
64
|
|
|
73
65
|
<execution>
|
|
@@ -84,101 +76,11 @@ Follow '~/.maestro/workflows/roadmap.md' completely.
|
|
|
84
76
|
|
|
85
77
|
### Mode: Revise (`--revise [instructions]`)
|
|
86
78
|
|
|
87
|
-
Revise
|
|
88
|
-
|
|
89
|
-
**Pre-conditions:**
|
|
90
|
-
- `.workflow/roadmap.md` exists
|
|
91
|
-
- `.workflow/state.json` exists (for progress tracking)
|
|
92
|
-
|
|
93
|
-
**Execution flow:**
|
|
94
|
-
|
|
95
|
-
1. **Load current state**
|
|
96
|
-
- Read `.workflow/roadmap.md` — parse milestones, phases, dependencies, progress markers
|
|
97
|
-
- Read `.workflow/state.json` — get artifact registry, current milestone
|
|
98
|
-
- Identify completed vs in-progress vs pending phases
|
|
99
|
-
|
|
100
|
-
2. **Obtain revision instructions**
|
|
101
|
-
- If `--revise "instructions text"` provided → use directly as change directive
|
|
102
|
-
- If `--revise` without instructions → use AskUserQuestion to ask user what to change
|
|
103
|
-
- Show current roadmap summary with phase statuses
|
|
104
|
-
- Present options: add/remove/reorder phases, modify scope/criteria/deps, move between milestones
|
|
105
|
-
- Capture change instructions from response
|
|
106
|
-
|
|
107
|
-
3. **Impact analysis**
|
|
108
|
-
- For each proposed change, assess impact on:
|
|
109
|
-
- Phase dependency chain (re-validate no circular deps)
|
|
110
|
-
- Requirement coverage (every Active requirement still mapped)
|
|
111
|
-
- Completed phases (warn if change invalidates completed work)
|
|
112
|
-
- Existing plan artifacts (warn if plan exists for affected phase)
|
|
113
|
-
- Present impact summary for confirmation
|
|
114
|
-
|
|
115
|
-
4. **Apply revisions**
|
|
116
|
-
- Update `.workflow/roadmap.md` preserving:
|
|
117
|
-
- Completed phase progress markers (✓, completion dates)
|
|
118
|
-
- Phase numbering for completed phases (renumber only pending phases)
|
|
119
|
-
- Cross-references from state.json artifacts
|
|
120
|
-
- Update `state.json` if milestone structure changed
|
|
121
|
-
- Add revision log entry to roadmap.md metadata section
|
|
122
|
-
|
|
123
|
-
5. **Post-revision validation**
|
|
124
|
-
- Re-check dependency integrity (no circular deps)
|
|
125
|
-
- Re-check requirement coverage (every Active req mapped)
|
|
126
|
-
- Verify completed phases unaffected
|
|
127
|
-
|
|
128
|
-
**Next-step routing on completion:**
|
|
129
|
-
- Phases changed, need re-analysis → `/maestro-analyze {phase}`
|
|
130
|
-
- Phases changed, ready to plan → `/maestro-plan {phase}`
|
|
131
|
-
- Only pending phases adjusted → `/maestro-plan` (continue from where left off)
|
|
79
|
+
Follow workflow roadmap.md "Mode: Revise" section for full algorithm (load state, obtain instructions, impact analysis, apply revisions, post-validation).
|
|
132
80
|
|
|
133
81
|
### Mode: Review (`--review`)
|
|
134
82
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
**Pre-conditions:**
|
|
138
|
-
- `.workflow/roadmap.md` exists
|
|
139
|
-
|
|
140
|
-
**Execution flow:**
|
|
141
|
-
|
|
142
|
-
1. **Load roadmap + execution history**
|
|
143
|
-
- Read `.workflow/roadmap.md` — full structure
|
|
144
|
-
- Read `.workflow/state.json` — artifact registry, milestone progress
|
|
145
|
-
- Cross-reference: for each phase, check ANL/PLN/EXC/VRF artifact status
|
|
146
|
-
|
|
147
|
-
2. **Assessment dimensions**
|
|
148
|
-
- **Progress tracking**: Actual vs planned per phase, milestone velocity
|
|
149
|
-
- **Drift detection**: Completed phases deviating from original scope (via verify/audit findings)
|
|
150
|
-
- **Relevance check**: Pending phases still aligned with current project goals (from project.md)
|
|
151
|
-
- **Dependency health**: Pending phase dependencies still valid given completed work
|
|
152
|
-
- **Risk assessment**: Identify phases at risk (blocked, scope creep, dependency failures)
|
|
153
|
-
|
|
154
|
-
3. **Produce review report**
|
|
155
|
-
- Write to `.workflow/scratch/{YYYYMMDD}-roadmap-review.md`
|
|
156
|
-
- Format:
|
|
157
|
-
```
|
|
158
|
-
=== ROADMAP REVIEW ===
|
|
159
|
-
Date: {date}
|
|
160
|
-
Milestone: {current}
|
|
161
|
-
|
|
162
|
-
Progress: {completed}/{total} phases ({percentage}%)
|
|
163
|
-
Drift: {none|minor|significant}
|
|
164
|
-
Risk: {low|medium|high}
|
|
165
|
-
|
|
166
|
-
Phase Assessment:
|
|
167
|
-
[✓] Phase 1: {name} — completed, on-scope
|
|
168
|
-
[~] Phase 2: {name} — in-progress, {status notes}
|
|
169
|
-
[ ] Phase 3: {name} — pending, {risk/notes}
|
|
170
|
-
|
|
171
|
-
Recommendations:
|
|
172
|
-
1. {actionable recommendation}
|
|
173
|
-
2. ...
|
|
174
|
-
|
|
175
|
-
Suggested actions:
|
|
176
|
-
/maestro-roadmap --revise — Apply recommended changes
|
|
177
|
-
/maestro-plan {phase} — Plan next phase
|
|
178
|
-
/manage-status — View full dashboard
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**No state modifications.** Pure assessment + recommendations.
|
|
83
|
+
Follow workflow roadmap.md "Mode: Review" section for full algorithm (load state, assess dimensions, produce report).
|
|
182
84
|
</execution>
|
|
183
85
|
|
|
184
86
|
<error_codes>
|