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
|
@@ -22,11 +22,7 @@ No arguments. Scans the codebase and generates spec files in `.workflow/specs/`.
|
|
|
22
22
|
|
|
23
23
|
### Step 1: Validate Preconditions
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
test -d .workflow || exit 1 # E001: not initialized
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Verify project contains source files to scan (E002 if empty).
|
|
25
|
+
Verify `.workflow/` exists (E001) and project contains source files (E002).
|
|
30
26
|
|
|
31
27
|
### Step 2: Scan Codebase
|
|
32
28
|
|
|
@@ -55,20 +51,7 @@ Create `.workflow/specs/` directory and write:
|
|
|
55
51
|
|
|
56
52
|
### Step 5: Display Report
|
|
57
53
|
|
|
58
|
-
|
|
59
|
-
=== SPEC SETUP COMPLETE ===
|
|
60
|
-
Created:
|
|
61
|
-
- .workflow/specs/coding-conventions.md (category: coding)
|
|
62
|
-
- .workflow/specs/architecture-constraints.md (category: arch)
|
|
63
|
-
- .workflow/specs/learnings.md (category: learning)
|
|
64
|
-
{optional files if created}
|
|
65
|
-
|
|
66
|
-
Next: Run Skill({ skill: "spec-add", args: "<category> <content>" }) to add entries
|
|
67
|
-
Categories: coding, arch, quality, debug, test, review, learning
|
|
68
|
-
Extended: bug, pattern, decision, rule, validation (stored in closest core category file)
|
|
69
|
-
Remove: /spec-remove <entry-id>
|
|
70
|
-
Wiki: maestro wiki list --type spec (entries auto-indexed in wiki graph)
|
|
71
|
-
```
|
|
54
|
+
List created files with categories. Show next steps: `/spec-add <category> <content>`, available categories (core + extended), `/spec-remove`, wiki graph commands.
|
|
72
55
|
|
|
73
56
|
</execution>
|
|
74
57
|
|
|
@@ -91,20 +91,9 @@ Workers can use CLI tools for analysis and code operations:
|
|
|
91
91
|
|
|
92
92
|
### Orchestration Mode
|
|
93
93
|
|
|
94
|
-
User just provides task description.
|
|
95
|
-
|
|
96
94
|
**Invocation**: `Skill(skill="team-coordinate", args="task description")`
|
|
97
95
|
|
|
98
|
-
**Lifecycle**:
|
|
99
|
-
```
|
|
100
|
-
User provides task description
|
|
101
|
-
-> coordinator Phase 1: task analysis (detect capabilities, build dependency graph)
|
|
102
|
-
-> coordinator Phase 2: generate role-specs + initialize session
|
|
103
|
-
-> coordinator Phase 3: create task chain from dependency graph
|
|
104
|
-
-> coordinator Phase 4: spawn first batch workers (background) -> STOP
|
|
105
|
-
-> Worker executes -> callback -> coordinator advances next step
|
|
106
|
-
-> Loop until pipeline complete -> Phase 5 report + completion action
|
|
107
|
-
```
|
|
96
|
+
**Lifecycle**: Phase 1 (task analysis, dependency graph) -> Phase 2 (generate role-specs, init session) -> Phase 3 (create task chain) -> Phase 4 (spawn workers, STOP) -> callback loop -> Phase 5 (report + completion).
|
|
108
97
|
|
|
109
98
|
**User Commands** (wake paused coordinator):
|
|
110
99
|
|
|
@@ -116,134 +105,41 @@ User provides task description
|
|
|
116
105
|
| `feedback <text>` | Inject feedback into active pipeline |
|
|
117
106
|
| `improve [dimension]` | Auto-improve weakest quality dimension |
|
|
118
107
|
|
|
119
|
-
###
|
|
120
|
-
|
|
121
|
-
#### v2 Worker Spawn (all roles)
|
|
108
|
+
### Worker Spawn Template
|
|
122
109
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
spawn_agent({
|
|
127
|
-
agent_type: "team_worker",
|
|
128
|
-
task_name: "<task-id>",
|
|
129
|
-
fork_turns: "none",
|
|
130
|
-
message: `## Role Assignment
|
|
131
|
-
role: <role>
|
|
132
|
-
role_spec: <session-folder>/role-specs/<role>.md
|
|
133
|
-
session: <session-folder>
|
|
134
|
-
session_id: <session-id>
|
|
135
|
-
requirement: <task-description>
|
|
136
|
-
inner_loop: <true|false>
|
|
137
|
-
|
|
138
|
-
Read role_spec file to load Phase 2-4 domain instructions.
|
|
139
|
-
|
|
140
|
-
## Task Context
|
|
141
|
-
task_id: <task-id>
|
|
142
|
-
title: <task-title>
|
|
143
|
-
description: <task-description>
|
|
144
|
-
pipeline_phase: <pipeline-phase>
|
|
145
|
-
|
|
146
|
-
## Upstream Context
|
|
147
|
-
<prev_context>`
|
|
148
|
-
})
|
|
149
|
-
```
|
|
110
|
+
Spawn via `team-worker` agent with role-spec path. Message includes: role, role_spec path, session folder, session_id, requirement, inner_loop flag, task context (id, title, description, pipeline_phase), and upstream context from prior tasks.
|
|
150
111
|
|
|
151
|
-
After spawning
|
|
112
|
+
After spawning: `wait_agent` (30 min timeout). On timeout: STATUS_CHECK via followup_task (3 min) -> FINALIZE with interrupt (3 min) -> mark timed_out, close agent.
|
|
152
113
|
|
|
153
|
-
**Inner Loop roles
|
|
154
|
-
|
|
155
|
-
**Single-task roles**: Set `inner_loop: false`.
|
|
114
|
+
**Inner Loop**: Set `inner_loop: true` for roles with 2+ serial same-prefix tasks. Single-task roles: `inner_loop: false`.
|
|
156
115
|
|
|
157
116
|
### Model Selection Guide
|
|
158
117
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| responsibility_type | model | reasoning_effort | Rationale |
|
|
162
|
-
|---------------------|-------|-------------------|-----------|
|
|
163
|
-
| exploration | (default) | medium | Read-heavy, less reasoning needed |
|
|
164
|
-
| analysis | (default) | high | Deep analysis requires full reasoning |
|
|
165
|
-
| implementation | (default) | high | Code generation needs precision |
|
|
166
|
-
| synthesis | (default) | medium | Aggregation over generation |
|
|
167
|
-
| review | (default) | high | Quality assessment needs deep reasoning |
|
|
118
|
+
Map each role's `responsibility_type` (from `team-session.json#roles`) to reasoning effort:
|
|
168
119
|
|
|
169
|
-
|
|
120
|
+
| responsibility_type | reasoning_effort |
|
|
121
|
+
|---------------------|-------------------|
|
|
122
|
+
| exploration | medium |
|
|
123
|
+
| analysis | high |
|
|
124
|
+
| implementation | high |
|
|
125
|
+
| synthesis | medium |
|
|
126
|
+
| review | high |
|
|
170
127
|
|
|
171
|
-
Override model
|
|
172
|
-
```
|
|
173
|
-
spawn_agent({
|
|
174
|
-
agent_type: "team_worker",
|
|
175
|
-
task_name: "<task-id>",
|
|
176
|
-
fork_turns: "none",
|
|
177
|
-
model: "<model-override>",
|
|
178
|
-
reasoning_effort: "<effort-level>",
|
|
179
|
-
message: "..."
|
|
180
|
-
})
|
|
181
|
-
```
|
|
128
|
+
Override via `model`/`reasoning_effort` params in spawn_agent for cost optimization.
|
|
182
129
|
|
|
183
130
|
### v4 Agent Coordination
|
|
184
131
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
| Intent | API | Example |
|
|
188
|
-
|--------|-----|---------|
|
|
189
|
-
| Queue supplementary info (don't interrupt) | `send_message` | Send upstream task findings to a running downstream worker |
|
|
190
|
-
| Not used in this skill | `followup_task` | No resident agents -- all workers are one-shot |
|
|
191
|
-
| Check running agents | `list_agents` | Verify agent health during resume |
|
|
192
|
-
|
|
193
|
-
**Note**: Since roles are dynamically generated, the coordinator must resolve task prefixes and role names from `team-session.json#roles` at runtime. There are no hardcoded role-specific examples.
|
|
132
|
+
**Message Semantics**: `send_message` to queue supplementary info to downstream workers (non-interrupting). `list_agents` for health checks. `followup_task` not used (all workers are one-shot).
|
|
194
133
|
|
|
195
|
-
|
|
134
|
+
**fork_turns**: Default `"none"`. Use `"all"` only when task requires deep familiarity with full conversation context (decided per-task in Phase 4).
|
|
196
135
|
|
|
197
|
-
|
|
198
|
-
- Runtime analysis reveals the task requires deep familiarity with the full conversation context
|
|
199
|
-
- The dynamically-generated role-spec indicates the worker needs project-wide understanding
|
|
200
|
-
- The coordinator has already accumulated significant context about the codebase
|
|
136
|
+
**Agent Health Check**: On resume/complete, reconcile `team-session.json.active_workers` with `list_agents({})`. Reset orphaned tasks (in_progress but agent gone) to pending.
|
|
201
137
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
#### Agent Health Check
|
|
205
|
-
|
|
206
|
-
Use `list_agents({})` in handleResume and handleComplete:
|
|
207
|
-
|
|
208
|
-
```
|
|
209
|
-
// Reconcile session state with actual running agents
|
|
210
|
-
const running = list_agents({})
|
|
211
|
-
// Compare with team-session.json active_workers
|
|
212
|
-
// Reset orphaned tasks (in_progress but agent gone) to pending
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
#### Named Agent Targeting
|
|
216
|
-
|
|
217
|
-
Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
|
|
218
|
-
- `send_message({ target: "<TASK-ID>", message: "..." })` -- queue upstream context without interrupting
|
|
219
|
-
- `close_agent({ target: "<TASK-ID>" })` -- cleanup by name
|
|
138
|
+
**Named Targeting**: Workers spawned with `task_name: "<task-id>"` for `send_message`/`close_agent` by name.
|
|
220
139
|
|
|
221
140
|
### Completion Action
|
|
222
141
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
request_user_input({
|
|
227
|
-
questions: [{
|
|
228
|
-
question: "Team pipeline complete. What would you like to do?",
|
|
229
|
-
header: "Completion",
|
|
230
|
-
multiSelect: false,
|
|
231
|
-
options: [
|
|
232
|
-
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
233
|
-
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
234
|
-
{ label: "Export Results", description: "Export deliverables to target directory, then clean" }
|
|
235
|
-
]
|
|
236
|
-
}]
|
|
237
|
-
})
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
#### Action Handlers
|
|
241
|
-
|
|
242
|
-
| Choice | Steps |
|
|
243
|
-
|--------|-------|
|
|
244
|
-
| Archive & Clean | Update session status="completed" -> output final summary with artifact paths |
|
|
245
|
-
| Keep Active | Update session status="paused" -> output: "Resume with: Skill(skill='team-coordinate', args='resume')" |
|
|
246
|
-
| Export Results | request_user_input(target path) -> copy artifacts to target -> Archive & Clean |
|
|
142
|
+
Present interactive choice via `request_user_input`: **Archive & Clean** (recommended -- mark completed, output summary), **Keep Active** (mark paused, output resume command), **Export Results** (prompt target path, copy artifacts, then archive).
|
|
247
143
|
|
|
248
144
|
### Specs Reference
|
|
249
145
|
|
|
@@ -310,15 +206,7 @@ request_user_input({
|
|
|
310
206
|
|
|
311
207
|
### Session Resume
|
|
312
208
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
1. Scan `.workflow/.team/TC-*/team-session.json` for active/paused sessions
|
|
316
|
-
2. Multiple matches -> request_user_input for selection
|
|
317
|
-
3. Audit task states -> reconcile session state <-> task status
|
|
318
|
-
4. Reset in_progress -> pending (interrupted tasks)
|
|
319
|
-
5. Rebuild team and spawn needed workers only
|
|
320
|
-
6. Create missing tasks, set dependencies
|
|
321
|
-
7. Kick first executable task -> Phase 4 coordination loop
|
|
209
|
+
Scan `TC-*/team-session.json` for active/paused sessions (prompt if multiple). Reconcile state: reset interrupted tasks to pending, rebuild team, spawn needed workers, resume Phase 4 loop.
|
|
322
210
|
</context>
|
|
323
211
|
|
|
324
212
|
<error_codes>
|
|
@@ -62,27 +62,14 @@ Parse `$ARGUMENTS` to determine handler:
|
|
|
62
62
|
Worker completed a task. Verify completion, update state, auto-advance.
|
|
63
63
|
|
|
64
64
|
```
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
| +- YES -> remove from active_workers -> update session
|
|
71
|
-
| | +- Close agent: close_agent({ target: <agentId> })
|
|
72
|
-
| | +- -> handleSpawnNext
|
|
73
|
-
| +- NO -> progress message, do not advance -> STOP
|
|
74
|
-
+- No matching worker found
|
|
75
|
-
+- Scan all active workers for completed tasks
|
|
76
|
-
+- Found completed -> process each -> handleSpawnNext
|
|
77
|
-
+- None completed -> STOP
|
|
65
|
+
Match worker by role -> route:
|
|
66
|
+
progress_update (not final) -> update state, keep in active_workers -> STOP
|
|
67
|
+
completed -> remove from active_workers, close_agent, -> handleSpawnNext
|
|
68
|
+
not_completed -> log progress -> STOP
|
|
69
|
+
no_match -> scan all workers for completions -> process any found -> handleSpawnNext, else STOP
|
|
78
70
|
```
|
|
79
71
|
|
|
80
|
-
**Fast-advance reconciliation**:
|
|
81
|
-
1. Read recent `fast_advance` messages from team_msg (type="fast_advance")
|
|
82
|
-
2. For each fast_advance message: add the spawned successor to `active_workers` if not already present
|
|
83
|
-
3. Check if the expected next task is already `in_progress` (fast-advanced)
|
|
84
|
-
4. If yes -> skip spawning that task (already running)
|
|
85
|
-
5. If no -> normal handleSpawnNext
|
|
72
|
+
**Fast-advance reconciliation**: On any callback/resume, sync `fast_advance` messages from team_msg into `active_workers`. Skip spawning tasks already `in_progress` via fast-advance.
|
|
86
73
|
|
|
87
74
|
---
|
|
88
75
|
|
|
@@ -90,17 +77,8 @@ Receive result from wait_agent for [<role>]
|
|
|
90
77
|
|
|
91
78
|
Read-only status report with progress milestones. No pipeline advancement.
|
|
92
79
|
|
|
93
|
-
1. Read tasks.json
|
|
94
|
-
2.
|
|
95
|
-
```javascript
|
|
96
|
-
const progressMsgs = mcp__maestro-tools__team_msg({
|
|
97
|
-
operation: "list", session_id: sessionId, type: "progress", last: 50
|
|
98
|
-
})
|
|
99
|
-
const blockerMsgs = mcp__maestro-tools__team_msg({
|
|
100
|
-
operation: "list", session_id: sessionId, type: "blocker", last: 10
|
|
101
|
-
})
|
|
102
|
-
```
|
|
103
|
-
3. Aggregate latest milestone per active worker
|
|
80
|
+
1. Read tasks.json + team_msg (type="progress", last=50) + team_msg (type="blocker", last=10)
|
|
81
|
+
2. Aggregate latest milestone per active worker
|
|
104
82
|
|
|
105
83
|
**Output format**:
|
|
106
84
|
|
|
@@ -136,29 +114,17 @@ Then STOP.
|
|
|
136
114
|
|
|
137
115
|
### Handler: handleResume
|
|
138
116
|
|
|
139
|
-
**Agent Health Check** (v4):
|
|
140
|
-
```
|
|
141
|
-
// Verify actual running agents match session state
|
|
142
|
-
const runningAgents = list_agents({})
|
|
143
|
-
// For each active_agent in tasks.json:
|
|
144
|
-
// - If agent NOT in runningAgents -> agent crashed
|
|
145
|
-
// - Reset that task to pending, remove from active_agents
|
|
146
|
-
// This prevents stale agent references from blocking the pipeline
|
|
147
|
-
```
|
|
117
|
+
**Agent Health Check** (v4): Cross-check `list_agents()` against session `active_workers`. Any agent not actually running -> reset task to pending, remove from active_workers.
|
|
148
118
|
|
|
149
119
|
Check active worker completion, process results, advance pipeline.
|
|
150
120
|
|
|
151
121
|
```
|
|
152
|
-
Load active_workers
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
After processing:
|
|
159
|
-
+- Some completed -> handleSpawnNext
|
|
160
|
-
+- All still running -> report status -> STOP
|
|
161
|
-
+- All failed -> handleSpawnNext (retry)
|
|
122
|
+
Load active_workers -> route:
|
|
123
|
+
none -> handleSpawnNext
|
|
124
|
+
has workers -> classify each: completed | in_progress | failed(reset to pending)
|
|
125
|
+
some completed -> handleSpawnNext
|
|
126
|
+
all running -> report status -> STOP
|
|
127
|
+
all failed -> handleSpawnNext (retry)
|
|
162
128
|
```
|
|
163
129
|
|
|
164
130
|
---
|
|
@@ -168,155 +134,61 @@ Load active_workers from session
|
|
|
168
134
|
Find all ready tasks, spawn team_worker agents, update session, STOP.
|
|
169
135
|
|
|
170
136
|
```
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
+- Is task role an Inner Loop role AND that role already has an active_worker?
|
|
181
|
-
| +- YES -> SKIP spawn (existing worker will pick it up via inner loop)
|
|
182
|
-
| +- NO -> normal spawn below
|
|
183
|
-
+- Update tasks.json entry status -> "in_progress"
|
|
184
|
-
+- team_msg log -> task_unblocked (session_id=<session-id>)
|
|
185
|
-
+- Spawn team_worker (see spawn call below)
|
|
186
|
-
+- Add to session.active_workers
|
|
187
|
-
Update session file -> output summary -> STOP
|
|
137
|
+
Classify tasks: completed | in_progress | ready (pending + all deps completed)
|
|
138
|
+
|
|
139
|
+
Ready tasks -> route:
|
|
140
|
+
none + in_progress exists -> report waiting -> STOP
|
|
141
|
+
none + nothing in_progress -> PIPELINE_COMPLETE -> handleComplete
|
|
142
|
+
has ready -> for each:
|
|
143
|
+
skip if Inner Loop role already has active_worker
|
|
144
|
+
else: set status="in_progress", log task_unblocked, spawn team_worker, add to active_workers
|
|
145
|
+
Update session -> output summary -> STOP
|
|
188
146
|
```
|
|
189
147
|
|
|
190
|
-
**Cross-Agent Supplementary Context** (v4):
|
|
148
|
+
**Cross-Agent Supplementary Context** (v4): When spawning later-phase workers, use `send_message` (not `followup_task`) to deliver upstream results to already-running downstream workers as non-interrupting supplementary context.
|
|
191
149
|
|
|
192
|
-
|
|
150
|
+
**Spawn worker call** (one per ready task):
|
|
193
151
|
|
|
194
152
|
```
|
|
195
|
-
|
|
196
|
-
send_message({
|
|
197
|
-
target: "<running-agent-task-name>",
|
|
198
|
-
message: `## Supplementary Context\n${upstreamFindings}`
|
|
199
|
-
})
|
|
200
|
-
// Note: send_message queues info without interrupting the agent's current work
|
|
153
|
+
spawn_agent({ agent_type: "team_worker", task_name: taskId, message: <role-assignment> })
|
|
201
154
|
```
|
|
202
155
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
**Spawn worker call** (one per ready task):
|
|
206
|
-
|
|
156
|
+
**Role assignment message template**:
|
|
207
157
|
```
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
role_spec: <session-folder>/role-specs/<role>.md
|
|
214
|
-
session: <session-folder>
|
|
215
|
-
session_id: <session-id>
|
|
216
|
-
team_name: <team-name>
|
|
217
|
-
requirement: <task-description>
|
|
218
|
-
inner_loop: <true|false>
|
|
219
|
-
|
|
220
|
-
Read role_spec file to load Phase 2-4 domain instructions.
|
|
221
|
-
|
|
158
|
+
## Role Assignment
|
|
159
|
+
role: <role> | role_spec: <session-folder>/role-specs/<role>.md
|
|
160
|
+
session: <session-folder> | session_id: <session-id> | team_name: <team-name>
|
|
161
|
+
requirement: <task-description> | inner_loop: <true|false>
|
|
162
|
+
Read role_spec for Phase 2-4 instructions.
|
|
222
163
|
## Progress Milestones
|
|
223
|
-
|
|
224
|
-
Report progress via team_msg at natural phase boundaries.
|
|
225
|
-
Report blockers immediately via team_msg type="blocker".
|
|
226
|
-
Report completion via team_msg type="task_complete" after report_agent_job_result.`
|
|
227
|
-
})
|
|
228
|
-
// Collect results — use task_name for stable targeting (v4):
|
|
229
|
-
const result = wait_agent({ timeout_ms: 1800000 }) // 30 min
|
|
230
|
-
|
|
231
|
-
// Drain progress from message bus (before processing results)
|
|
232
|
-
const progressMsgs = mcp__maestro-tools__team_msg({
|
|
233
|
-
operation: "list", session_id: sessionId, type: "progress", last: 100
|
|
234
|
-
})
|
|
235
|
-
for (const msg of (progressMsgs.result?.messages || [])) {
|
|
236
|
-
console.log(`[coordinator] trace: ${msg.summary}`)
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (result.timed_out) {
|
|
240
|
-
// Status probe before closing
|
|
241
|
-
followup_task({ target: taskId, message: "STATUS_CHECK: Report current progress, findings so far, and estimated remaining work." })
|
|
242
|
-
const status = wait_agent({ timeout_ms: 180000 }) // 3 min
|
|
243
|
-
if (status.timed_out) {
|
|
244
|
-
followup_task({ target: taskId, message: "FINALIZE: Output all current findings immediately. Time limit reached.", interrupt: true })
|
|
245
|
-
const forced = wait_agent({ timeout_ms: 180000 }) // 3 min
|
|
246
|
-
if (forced.timed_out) {
|
|
247
|
-
const lastProgress = (progressMsgs.result?.messages || [])
|
|
248
|
-
.filter(m => m.data?.task_id === taskId).pop()
|
|
249
|
-
state.tasks[taskId].status = 'timed_out'
|
|
250
|
-
state.tasks[taskId].error = lastProgress
|
|
251
|
-
? `Timed out at ${lastProgress.data.phase} (${lastProgress.data.progress_pct}%)`
|
|
252
|
-
: 'Timed out with no progress reported'
|
|
253
|
-
close_agent({ target: taskId })
|
|
254
|
-
}
|
|
255
|
-
// else: forced output received, process result
|
|
256
|
-
}
|
|
257
|
-
// else: status received, continue processing
|
|
258
|
-
} else {
|
|
259
|
-
// Process result, update tasks.json
|
|
260
|
-
close_agent({ target: taskId }) // Use task_name, not agentId
|
|
261
|
-
}
|
|
164
|
+
Report progress via team_msg at phase boundaries. Blockers via type="blocker". Completion via type="task_complete" after report_agent_job_result.
|
|
262
165
|
```
|
|
263
166
|
|
|
167
|
+
**Result collection**: `wait_agent({ timeout_ms: 1800000 })` (30 min), drain progress from team_msg.
|
|
168
|
+
|
|
169
|
+
**Timeout escalation**: STATUS_CHECK (3 min) -> FINALIZE with interrupt (3 min) -> mark timed_out with last progress context, close_agent. Normal completion -> process result, close_agent (use task_name, not agentId).
|
|
170
|
+
|
|
264
171
|
---
|
|
265
172
|
|
|
266
173
|
### Handler: handleComplete
|
|
267
174
|
|
|
268
|
-
**Cleanup Verification** (v4):
|
|
269
|
-
```
|
|
270
|
-
// Verify all agents are properly closed
|
|
271
|
-
const remaining = list_agents({})
|
|
272
|
-
// If any team agents still running -> close_agent each
|
|
273
|
-
// Ensures clean session shutdown
|
|
274
|
-
```
|
|
175
|
+
**Cleanup Verification** (v4): `list_agents()` -> close any still-running team agents.
|
|
275
176
|
|
|
276
177
|
Pipeline complete. Execute completion action based on session configuration.
|
|
277
178
|
|
|
278
179
|
```
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
| request_user_input({
|
|
289
|
-
| questions: [{
|
|
290
|
-
| question: "Team pipeline complete. What would you like to do?",
|
|
291
|
-
| header: "Completion",
|
|
292
|
-
| multiSelect: false,
|
|
293
|
-
| options: [
|
|
294
|
-
| { label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
295
|
-
| { label: "Keep Active", description: "Keep session for follow-up work" },
|
|
296
|
-
| { label: "Export Results", description: "Export deliverables to target directory" }
|
|
297
|
-
| ]
|
|
298
|
-
| }]
|
|
299
|
-
| })
|
|
300
|
-
| +- "Archive & Clean":
|
|
301
|
-
| | Update session status="completed"
|
|
302
|
-
| | Clean up session
|
|
303
|
-
| | Output final summary with artifact paths
|
|
304
|
-
| +- "Keep Active":
|
|
305
|
-
| | Update session status="paused"
|
|
306
|
-
| | Output: "Resume with: Skill(skill='team-coordinate', args='resume')"
|
|
307
|
-
| +- "Export Results":
|
|
308
|
-
| request_user_input for target directory
|
|
309
|
-
| Copy deliverables to target
|
|
310
|
-
| Execute Archive & Clean flow
|
|
311
|
-
|
|
|
312
|
-
+- "auto_archive":
|
|
313
|
-
| Execute Archive & Clean without prompt
|
|
314
|
-
|
|
|
315
|
-
+- "auto_keep":
|
|
316
|
-
Execute Keep Active without prompt
|
|
317
|
-
```
|
|
180
|
+
Generate summary: deliverables + stats + verdicts
|
|
181
|
+
|
|
182
|
+
Route by session.completion_action:
|
|
183
|
+
"interactive" -> request_user_input with options:
|
|
184
|
+
"Archive & Clean" -> status="completed", cleanup, output artifact paths
|
|
185
|
+
"Keep Active" -> status="paused", output resume command
|
|
186
|
+
"Export Results" -> prompt for target dir, copy deliverables, then Archive & Clean
|
|
187
|
+
"auto_archive" -> Archive & Clean without prompt
|
|
188
|
+
"auto_keep" -> Keep Active without prompt
|
|
318
189
|
|
|
319
|
-
|
|
190
|
+
Fallback: default to Keep Active on failure.
|
|
191
|
+
```
|
|
320
192
|
|
|
321
193
|
---
|
|
322
194
|
|
|
@@ -327,25 +199,11 @@ Handle mid-pipeline capability gap discovery. A worker reports `capability_gap`
|
|
|
327
199
|
**CONSTRAINT**: Maximum 5 worker roles per session. handleAdapt MUST enforce this limit.
|
|
328
200
|
|
|
329
201
|
```
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
| +- NO -> genuine gap, proceed to role-spec generation
|
|
336
|
-
+- CHECK ROLE COUNT LIMIT (MAX 5 ROLES):
|
|
337
|
-
+- Count current roles in session.roles
|
|
338
|
-
+- If count >= 5:
|
|
339
|
-
+- Attempt to merge new capability into existing role
|
|
340
|
-
+- If merge NOT possible -> PAUSE, report to user
|
|
341
|
-
+- Generate new role-spec:
|
|
342
|
-
1. Read specs/role-spec-template.md
|
|
343
|
-
2. Fill template with: frontmatter (role, prefix, inner_loop, message_types) + Phase 2-4 content
|
|
344
|
-
3. Write to <session-folder>/role-specs/<new-role>.md
|
|
345
|
-
4. Add to session.roles[]
|
|
346
|
-
+- Create new task(s) (add to tasks.json)
|
|
347
|
-
+- Update team-session.json
|
|
348
|
-
+- Spawn new team_worker -> STOP
|
|
202
|
+
Extract: gap_description, requesting_role, suggested_capability
|
|
203
|
+
Validate: existing role covers gap? -> redirect -> STOP
|
|
204
|
+
Enforce MAX 5 ROLES: count >= 5 -> attempt merge, else PAUSE for user
|
|
205
|
+
Generate role-spec from template -> write to role-specs/<new-role>.md -> add to session.roles
|
|
206
|
+
Create task(s) in tasks.json -> update session -> spawn team_worker -> STOP
|
|
349
207
|
```
|
|
350
208
|
|
|
351
209
|
---
|
|
@@ -363,14 +221,8 @@ When a worker has unexpected status (not completed, not in_progress):
|
|
|
363
221
|
When coordinator detects a fast-advanced task has failed:
|
|
364
222
|
|
|
365
223
|
```
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
+- No active_worker entry for this task
|
|
369
|
-
+- Resolution:
|
|
370
|
-
1. Update tasks.json -> reset task to pending
|
|
371
|
-
2. Remove stale active_worker entry (if any)
|
|
372
|
-
3. Log via team_msg (type: error)
|
|
373
|
-
4. -> handleSpawnNext (will re-spawn the task normally)
|
|
224
|
+
Detect: task in_progress with no active_worker (stale fast-advance)
|
|
225
|
+
-> reset to pending, remove stale entry, log error, -> handleSpawnNext
|
|
374
226
|
```
|
|
375
227
|
|
|
376
228
|
### Fast-Advance State Sync
|
|
@@ -383,16 +235,10 @@ On every coordinator wake (handleCallback, handleResume, handleCheck):
|
|
|
383
235
|
### Consensus-Blocked Handling
|
|
384
236
|
|
|
385
237
|
```
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
| +- Max 1 revision per task. If already revised -> PAUSE, escalate to user
|
|
391
|
-
+- severity = MEDIUM
|
|
392
|
-
| +- Proceed with warning, log to wisdom/issues.md
|
|
393
|
-
| +- Normal handleSpawnNext
|
|
394
|
-
+- severity = LOW
|
|
395
|
-
+- Proceed normally, treat as consensus_reached with notes
|
|
238
|
+
Route by consensus_blocked severity:
|
|
239
|
+
HIGH -> create REVISION task (max 1 per task, else PAUSE + escalate)
|
|
240
|
+
MEDIUM -> proceed with warning, log to wisdom/issues.md, -> handleSpawnNext
|
|
241
|
+
LOW -> proceed normally, treat as consensus_reached with notes
|
|
396
242
|
```
|
|
397
243
|
|
|
398
244
|
## Phase 4: Validation
|