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
|
@@ -67,86 +67,27 @@ $ARGUMENTS — session path (required).
|
|
|
67
67
|
|
|
68
68
|
### Orchestration Lifecycle
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
Validate session
|
|
72
|
-
-> Phase 0: Reconcile state (reset interrupted, detect orphans)
|
|
73
|
-
-> Phase 1: Spawn first batch team-worker agents (background) -> STOP
|
|
74
|
-
-> Worker executes -> callback -> executor advances next step
|
|
75
|
-
-> Loop until pipeline complete -> Phase 2 report + completion action
|
|
76
|
-
```
|
|
70
|
+
Validate session -> Phase 0 (reconcile state, reset interrupted tasks, detect orphans) -> Phase 1 (spawn first batch workers, STOP) -> callback loop (advance next step) -> Phase 2 (report + completion action).
|
|
77
71
|
|
|
78
72
|
### Worker Spawn Template
|
|
79
73
|
|
|
80
|
-
|
|
81
|
-
spawn_agent({
|
|
82
|
-
agent_type: "team_worker",
|
|
83
|
-
task_name: "<task-id>",
|
|
84
|
-
fork_turns: "none",
|
|
85
|
-
message: `## Role Assignment
|
|
86
|
-
role: <role>
|
|
87
|
-
role_spec: <session-folder>/role-specs/<role>.md
|
|
88
|
-
session: <session-folder>
|
|
89
|
-
session_id: <session-id>
|
|
90
|
-
requirement: <task-description>
|
|
91
|
-
inner_loop: <true|false>
|
|
92
|
-
|
|
93
|
-
Read role_spec file to load Phase 2-4 domain instructions.
|
|
94
|
-
|
|
95
|
-
## Task Context
|
|
96
|
-
task_id: <task-id>
|
|
97
|
-
title: <task-title>
|
|
98
|
-
description: <task-description>
|
|
99
|
-
pipeline_phase: <pipeline-phase>
|
|
100
|
-
|
|
101
|
-
## Upstream Context
|
|
102
|
-
<prev_context>`
|
|
103
|
-
})
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
After spawning: `wait_agent({ timeout_ms: 1800000 })` (30 min). If `result.timed_out`: STATUS_CHECK via followup_task (3 min) → FINALIZE with interrupt (3 min) → mark timed_out, close agents.
|
|
74
|
+
Spawn via `team-worker` agent with role-spec path from session. Message includes: role, role_spec, session folder/id, requirement, inner_loop flag, task context, upstream context. After spawning: `wait_agent` (30 min). Timeout: STATUS_CHECK (3 min) -> FINALIZE (3 min) -> mark timed_out, close.
|
|
107
75
|
|
|
108
|
-
### Model Selection
|
|
76
|
+
### Model Selection
|
|
109
77
|
|
|
110
|
-
|
|
111
|
-
- Implementation/fix roles: `reasoning_effort: "high"`
|
|
112
|
-
- Verification/test roles: `reasoning_effort: "medium"`
|
|
113
|
-
- Default when unclear: `reasoning_effort: "high"`
|
|
78
|
+
Implementation/fix roles: `reasoning_effort: "high"`. Verification/test: `"medium"`. Default: `"high"`.
|
|
114
79
|
|
|
115
80
|
### State Reconciliation
|
|
116
81
|
|
|
117
|
-
On resume
|
|
118
|
-
```
|
|
119
|
-
const running = list_agents({})
|
|
120
|
-
// Compare with task-analysis.json active tasks
|
|
121
|
-
// Reset orphaned tasks (in_progress but agent gone) to pending
|
|
122
|
-
```
|
|
82
|
+
On resume: compare `list_agents({})` with task-analysis.json. Reset orphaned tasks to pending.
|
|
123
83
|
|
|
124
84
|
### Worker Communication
|
|
125
85
|
|
|
126
|
-
|
|
127
|
-
- `followup_task({ target: "<task-id>", message: "..." })` — assign new work to inner_loop worker
|
|
128
|
-
- `close_agent({ target: "<task-id>" })` — cleanup completed worker
|
|
86
|
+
`send_message` (supplementary context), `followup_task` (assign work to inner_loop worker), `close_agent` (cleanup).
|
|
129
87
|
|
|
130
88
|
### Completion Action
|
|
131
89
|
|
|
132
|
-
|
|
133
|
-
request_user_input({
|
|
134
|
-
questions: [{
|
|
135
|
-
question: "Team pipeline complete. What would you like to do?",
|
|
136
|
-
options: [
|
|
137
|
-
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
138
|
-
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
139
|
-
{ label: "Export Results", description: "Export deliverables to target directory, then clean" }
|
|
140
|
-
]
|
|
141
|
-
}]
|
|
142
|
-
})
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
| Choice | Steps |
|
|
146
|
-
|--------|-------|
|
|
147
|
-
| Archive & Clean | Update session status="completed" -> output final summary with artifact paths |
|
|
148
|
-
| Keep Active | Update session status="paused" -> output resume command |
|
|
149
|
-
| Export Results | request_user_input(target path) -> copy artifacts -> Archive & Clean |
|
|
90
|
+
Present choice: **Archive & Clean** (mark completed, output summary), **Keep Active** (mark paused, output resume command), **Export Results** (prompt path, copy, archive).
|
|
150
91
|
</execution>
|
|
151
92
|
|
|
152
93
|
<error_codes>
|
|
@@ -45,18 +45,11 @@ Parse `$ARGUMENTS` to determine handler:
|
|
|
45
45
|
Worker completed a task. Verify completion, update state, auto-advance.
|
|
46
46
|
|
|
47
47
|
```
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
| +- YES -> close_agent, remove from active_agents -> update tasks.json
|
|
54
|
-
| | +- -> handleSpawnNext
|
|
55
|
-
| +- NO -> progress message, do not advance -> STOP
|
|
56
|
-
+- No matching agent found
|
|
57
|
-
+- Scan all active agents for completed tasks
|
|
58
|
-
+- Found completed -> process each -> handleSpawnNext
|
|
59
|
-
+- None completed -> STOP
|
|
48
|
+
Match agent by role -> route:
|
|
49
|
+
progress_update (not final) -> update state, keep in active_agents -> STOP
|
|
50
|
+
completed -> close_agent, remove from active_agents, -> handleSpawnNext
|
|
51
|
+
not_completed -> log progress -> STOP
|
|
52
|
+
no_match -> scan all agents for completions -> process any found -> handleSpawnNext, else STOP
|
|
60
53
|
```
|
|
61
54
|
|
|
62
55
|
**Fast-advance note**: Check if expected next task is already `in_progress` (fast-advanced). If yes -> skip spawning, sync active_agents.
|
|
@@ -67,39 +60,20 @@ Receive callback from [<role>]
|
|
|
67
60
|
|
|
68
61
|
Read-only status report. No pipeline advancement.
|
|
69
62
|
|
|
70
|
-
|
|
71
|
-
// Read progress and blocker messages from message bus
|
|
72
|
-
const progressMsgs = mcp__maestro-tools__team_msg({
|
|
73
|
-
operation: "list", session_id: sessionId, type: "progress", last: 50
|
|
74
|
-
})
|
|
75
|
-
const blockerMsgs = mcp__maestro-tools__team_msg({
|
|
76
|
-
operation: "list", session_id: sessionId, type: "blocker", last: 10
|
|
77
|
-
})
|
|
78
|
-
```
|
|
63
|
+
Read team_msg (type="progress", last=50) + team_msg (type="blocker", last=10). Aggregate per-worker milestones.
|
|
79
64
|
|
|
65
|
+
**Output format**:
|
|
80
66
|
```
|
|
81
|
-
[executor] Pipeline Status
|
|
82
|
-
[executor]
|
|
83
|
-
|
|
84
|
-
[executor]
|
|
85
|
-
<visual representation with status icons>
|
|
86
|
-
|
|
87
|
-
done=completed >>>=running o=pending .=not created
|
|
88
|
-
|
|
89
|
-
[executor] Active Workers:
|
|
90
|
-
<task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
|
|
91
|
-
|
|
92
|
-
[executor] Blockers:
|
|
93
|
-
<task_id> <role> "<blocker_summary>" <time_ago>
|
|
94
|
-
(omit section if no blockers)
|
|
95
|
-
|
|
67
|
+
[executor] Pipeline Status — Progress: <completed>/<total> (<percent>%)
|
|
68
|
+
[executor] Execution Graph: <dependency graph with status icons> done=completed >>>=running o=pending .=not created
|
|
69
|
+
[executor] Active Workers: <task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
|
|
70
|
+
[executor] Blockers: <task_id> <role> "<blocker_summary>" <time_ago> (omit if none)
|
|
96
71
|
[executor] Ready to spawn: <subjects>
|
|
97
72
|
[executor] Commands: 'resume' to advance | 'check' to refresh
|
|
98
|
-
|
|
99
|
-
**CLI monitoring** (works while executor is blocked):
|
|
100
|
-
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
101
73
|
```
|
|
102
74
|
|
|
75
|
+
**CLI monitoring**: `maestro agent-msg list -s "<session_id>" --type progress --last 10`
|
|
76
|
+
|
|
103
77
|
Then STOP.
|
|
104
78
|
|
|
105
79
|
---
|
|
@@ -109,16 +83,12 @@ Then STOP.
|
|
|
109
83
|
Check active agent completion, process results, advance pipeline.
|
|
110
84
|
|
|
111
85
|
```
|
|
112
|
-
Load active_agents
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
After processing:
|
|
119
|
-
+- Some completed -> handleSpawnNext
|
|
120
|
-
+- All still running -> report status -> STOP
|
|
121
|
-
+- All failed -> handleSpawnNext (retry)
|
|
86
|
+
Load active_agents -> route:
|
|
87
|
+
none -> handleSpawnNext
|
|
88
|
+
has agents -> classify each: completed(close_agent) | in_progress | failed(reset to pending)
|
|
89
|
+
some completed -> handleSpawnNext
|
|
90
|
+
all running -> report status -> STOP
|
|
91
|
+
all failed -> handleSpawnNext (retry)
|
|
122
92
|
```
|
|
123
93
|
|
|
124
94
|
---
|
|
@@ -128,127 +98,42 @@ Load active_agents from tasks.json
|
|
|
128
98
|
Find all ready tasks, spawn team_worker agents, wait for completion, process results.
|
|
129
99
|
|
|
130
100
|
```
|
|
131
|
-
|
|
132
|
-
+- completedTasks: status = completed
|
|
133
|
-
+- inProgressTasks: status = in_progress
|
|
134
|
-
+- readyTasks: pending + all deps in completedTasks
|
|
135
|
-
|
|
136
|
-
Ready tasks found?
|
|
137
|
-
+- NONE + work in progress -> report waiting -> STOP
|
|
138
|
-
+- NONE + nothing in progress -> PIPELINE_COMPLETE -> handleComplete
|
|
139
|
-
+- HAS ready tasks -> for each:
|
|
140
|
-
+- Is task owner an Inner Loop role AND already has active_agents?
|
|
141
|
-
| +- YES -> SKIP spawn (existing worker picks it up)
|
|
142
|
-
| +- NO -> normal spawn below
|
|
143
|
-
+- Update task status in tasks.json -> in_progress
|
|
144
|
-
+- team_msg log -> task_unblocked (session_id=<session-id>)
|
|
145
|
-
+- Spawn team_worker (see spawn tool call below)
|
|
146
|
-
+- Add to tasks.json active_agents
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
**Spawn worker tool call**:
|
|
101
|
+
Classify tasks: completed | in_progress | ready (pending + all deps completed)
|
|
150
102
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
role
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
session_id: ${sessionId}
|
|
159
|
-
team_name: ${teamName}
|
|
160
|
-
requirement: ${task.description}
|
|
161
|
-
inner_loop: ${hasInnerLoop(task.role)}
|
|
162
|
-
|
|
163
|
-
Read role_spec file (${sessionFolder}/role-specs/${task.role}.md) to load Phase 2-4 domain instructions.
|
|
103
|
+
Ready tasks -> route:
|
|
104
|
+
none + in_progress exists -> report waiting -> STOP
|
|
105
|
+
none + nothing in_progress -> PIPELINE_COMPLETE -> handleComplete
|
|
106
|
+
has ready -> for each:
|
|
107
|
+
skip if Inner Loop role already has active_agent
|
|
108
|
+
else: set status="in_progress", log task_unblocked, spawn team_worker, add to active_agents
|
|
109
|
+
```
|
|
164
110
|
|
|
111
|
+
**Spawn worker message template**:
|
|
112
|
+
```
|
|
113
|
+
## Role Assignment
|
|
114
|
+
role: <role> | role_spec: <session-folder>/role-specs/<role>.md
|
|
115
|
+
session: <session-folder> | session_id: <session-id> | team_name: <team-name>
|
|
116
|
+
requirement: <task-description> | inner_loop: <true|false>
|
|
117
|
+
Read role_spec for Phase 2-4 instructions.
|
|
165
118
|
## Task Context
|
|
166
|
-
task_id:
|
|
167
|
-
title: ${task.title}
|
|
168
|
-
description: ${task.description}
|
|
169
|
-
|
|
119
|
+
task_id: <taskId> | title: <task-title> | description: <task-description>
|
|
170
120
|
## Upstream Context
|
|
171
|
-
|
|
172
|
-
|
|
121
|
+
<prevContext>
|
|
173
122
|
## Progress Milestones
|
|
174
|
-
|
|
175
|
-
Report progress via team_msg at natural phase boundaries.
|
|
176
|
-
Report blockers immediately via team_msg type="blocker".
|
|
177
|
-
Report completion via team_msg type="task_complete" after report_agent_job_result.`
|
|
178
|
-
})
|
|
179
|
-
|
|
180
|
-
state.active_agents[taskId] = { agentId, role: task.role, started_at: now }
|
|
123
|
+
Report progress via team_msg at phase boundaries. Blockers via type="blocker". Completion via type="task_complete" after report_agent_job_result.
|
|
181
124
|
```
|
|
182
125
|
|
|
183
126
|
### Wait and Process Results
|
|
184
127
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
.filter(a => !a.resident)
|
|
191
|
-
.map(a => a.agentId)
|
|
192
|
-
const waitResult = wait_agent({ timeout_ms: 1800000 }) // 30 min
|
|
193
|
-
|
|
194
|
-
// Drain progress from message bus
|
|
195
|
-
const progressMsgs = mcp__maestro-tools__team_msg({
|
|
196
|
-
operation: "list", session_id: sessionId, type: "progress", last: 100
|
|
197
|
-
})
|
|
198
|
-
for (const msg of (progressMsgs.result?.messages || [])) {
|
|
199
|
-
console.log(`[executor] trace: ${msg.summary}`)
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
if (waitResult.timed_out) {
|
|
203
|
-
for (const [taskId, agent] of Object.entries(state.active_agents)) {
|
|
204
|
-
if (agent.resident) continue
|
|
205
|
-
// Status probe before closing
|
|
206
|
-
followup_task({ target: taskId, message: "STATUS_CHECK: Report current progress, findings so far, and estimated remaining work." })
|
|
207
|
-
const status = wait_agent({ timeout_ms: 180000 }) // 3 min
|
|
208
|
-
if (status.timed_out) {
|
|
209
|
-
followup_task({ target: taskId, message: "FINALIZE: Output all current findings immediately. Time limit reached.", interrupt: true })
|
|
210
|
-
const forced = wait_agent({ timeout_ms: 180000 }) // 3 min
|
|
211
|
-
if (forced.timed_out) {
|
|
212
|
-
const lastProgress = (progressMsgs.result?.messages || [])
|
|
213
|
-
.filter(m => m.data?.task_id === taskId).pop()
|
|
214
|
-
state.tasks[taskId].status = 'timed_out'
|
|
215
|
-
state.tasks[taskId].error = lastProgress
|
|
216
|
-
? `Timed out at ${lastProgress.data.phase} (${lastProgress.data.progress_pct}%)`
|
|
217
|
-
: 'Timed out with no progress reported'
|
|
218
|
-
close_agent({ target: agent.agentId })
|
|
219
|
-
delete state.active_agents[taskId]
|
|
220
|
-
}
|
|
221
|
-
// else: forced output received, process result
|
|
222
|
-
}
|
|
223
|
-
// else: status received, continue processing
|
|
224
|
-
}
|
|
225
|
-
} else {
|
|
226
|
-
// Collect results from discoveries/{task_id}.json
|
|
227
|
-
for (const [taskId, agent] of Object.entries(state.active_agents)) {
|
|
228
|
-
if (agent.resident) continue
|
|
229
|
-
try {
|
|
230
|
-
const disc = JSON.parse(Read(`${sessionFolder}/discoveries/${taskId}.json`))
|
|
231
|
-
state.tasks[taskId].status = disc.status || 'completed'
|
|
232
|
-
state.tasks[taskId].findings = disc.findings || ''
|
|
233
|
-
state.tasks[taskId].error = disc.error || null
|
|
234
|
-
} catch {
|
|
235
|
-
state.tasks[taskId].status = 'failed'
|
|
236
|
-
state.tasks[taskId].error = 'No discovery file produced'
|
|
237
|
-
}
|
|
238
|
-
close_agent({ target: agent.agentId })
|
|
239
|
-
delete state.active_agents[taskId]
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
```
|
|
128
|
+
`wait_agent({ timeout_ms: 1800000 })` (30 min), drain progress from team_msg.
|
|
129
|
+
|
|
130
|
+
**Timeout escalation**: STATUS_CHECK (3 min) -> FINALIZE with interrupt (3 min) -> mark timed_out with last progress context, close_agent.
|
|
131
|
+
|
|
132
|
+
**Normal completion**: Read `discoveries/{task_id}.json` for status/findings/error. Missing file -> status="failed". Close each agent.
|
|
243
133
|
|
|
244
134
|
### Persist and Loop
|
|
245
135
|
|
|
246
|
-
|
|
247
|
-
1. Write updated tasks.json
|
|
248
|
-
2. Check if more tasks are now ready (deps newly resolved)
|
|
249
|
-
3. If yes -> loop back to step 1 of handleSpawnNext
|
|
250
|
-
4. If no more ready and all done -> handleComplete
|
|
251
|
-
5. If no more ready but some still blocked -> report status, STOP
|
|
136
|
+
Write tasks.json -> more tasks ready? -> loop handleSpawnNext. All done -> handleComplete. Blocked -> report, STOP.
|
|
252
137
|
|
|
253
138
|
---
|
|
254
139
|
|
|
@@ -257,18 +142,15 @@ After processing all results:
|
|
|
257
142
|
Pipeline complete. Execute completion action.
|
|
258
143
|
|
|
259
144
|
```
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
|
270
|
-
+- "auto_archive": Execute Archive & Clean
|
|
271
|
-
+- "auto_keep": Execute Keep Active
|
|
145
|
+
Generate summary: deliverables + stats + duration
|
|
146
|
+
|
|
147
|
+
Route by completion_action:
|
|
148
|
+
"interactive" -> request_user_input:
|
|
149
|
+
"Archive & Clean" -> rm session folder, output summary
|
|
150
|
+
"Keep Active" -> status="paused", output resume command
|
|
151
|
+
"Export Results" -> copy artifacts, then Archive & Clean
|
|
152
|
+
"auto_archive" -> Archive & Clean without prompt
|
|
153
|
+
"auto_keep" -> Keep Active without prompt
|
|
272
154
|
```
|
|
273
155
|
|
|
274
156
|
**Fallback**: If completion action fails, default to Keep Active, log warning.
|
|
@@ -280,14 +162,10 @@ All tasks completed (no pending, no in_progress)
|
|
|
280
162
|
**UNLIKE team-coordinate, executor CANNOT generate new role-specs.**
|
|
281
163
|
|
|
282
164
|
```
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
| +- NO -> genuine gap, report to user:
|
|
288
|
-
| "Capability gap detected. team-executor cannot generate new role-specs.
|
|
289
|
-
| Options: 1. Continue 2. Re-run team-coordinate 3. Manually add role-spec"
|
|
290
|
-
+- Continue execution with existing roles
|
|
165
|
+
Log capability_gap via team_msg (type: warning)
|
|
166
|
+
Existing role covers gap? -> redirect -> STOP
|
|
167
|
+
Genuine gap -> report to user: "Options: 1. Continue 2. Re-run team-coordinate 3. Manually add role-spec"
|
|
168
|
+
Continue with existing roles
|
|
291
169
|
```
|
|
292
170
|
|
|
293
171
|
---
|
|
@@ -305,10 +183,10 @@ Detect orphaned tasks (in_progress without active_agents, > 5 minutes) -> reset
|
|
|
305
183
|
### Consensus-Blocked Handling
|
|
306
184
|
|
|
307
185
|
```
|
|
308
|
-
Route by severity:
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
186
|
+
Route by consensus_blocked severity:
|
|
187
|
+
HIGH -> create REVISION task (max 1, else PAUSE + escalate)
|
|
188
|
+
MEDIUM -> proceed with warning, log to wisdom/issues.md
|
|
189
|
+
LOW -> proceed normally as consensus_reached with notes
|
|
312
190
|
```
|
|
313
191
|
|
|
314
192
|
## Phase 4: Validation
|
|
@@ -43,45 +43,20 @@ team-executor validates the following before execution:
|
|
|
43
43
|
| Role-spec file mapping | Each role in team-session.json#roles must have .md file | "Role-spec file not found: role-specs/<role>.md" |
|
|
44
44
|
| Role-spec structure | Each role-spec must have YAML frontmatter + Phase 2-4 sections | "Invalid role-spec: role-specs/<role>.md missing required section" |
|
|
45
45
|
|
|
46
|
-
### Validation
|
|
46
|
+
### Validation Order
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
+- task_description (string) -> missing -> ERROR
|
|
61
|
-
+- status (string: active|paused|completed) -> invalid -> ERROR
|
|
62
|
-
+- team_name (string) -> missing -> ERROR
|
|
63
|
-
+- roles (array, non-empty) -> missing/empty -> ERROR
|
|
64
|
-
|
|
65
|
-
4. Check task-analysis.json
|
|
66
|
-
+- Not exists -> ERROR: "Invalid session: task-analysis.json missing"
|
|
67
|
-
+- Parse error -> ERROR: "Invalid session: task-analysis.json corrupt"
|
|
68
|
-
+- Validate required fields:
|
|
69
|
-
+- capabilities (array) -> missing -> ERROR
|
|
70
|
-
+- dependency_graph (object) -> missing -> ERROR
|
|
71
|
-
+- roles (array, non-empty) -> missing/empty -> ERROR
|
|
72
|
-
|
|
73
|
-
5. Check role-specs/ directory
|
|
74
|
-
+- Not exists -> ERROR: "Invalid session: role-specs/ directory missing"
|
|
75
|
-
+- No .md files -> ERROR: "Invalid session: no role-spec files in role-specs/"
|
|
76
|
-
|
|
77
|
-
6. Check role-spec file mapping and structure
|
|
78
|
-
+- For each role in team-session.json#roles:
|
|
79
|
-
+- Check role-specs/<role.name>.md exists
|
|
80
|
-
+- Not exists -> ERROR: "Role-spec file not found: role-specs/<role.name>.md"
|
|
81
|
-
+- Validate role-spec structure (see Role-Spec Structure Validation)
|
|
82
|
-
|
|
83
|
-
7. All checks pass -> proceed to Phase 0
|
|
84
|
-
```
|
|
48
|
+
Validate in sequence; halt on first error:
|
|
49
|
+
|
|
50
|
+
| Step | Target | Required Fields / Checks | Error on Failure |
|
|
51
|
+
|------|--------|--------------------------|------------------|
|
|
52
|
+
| 1 | `--session=<path>` argument | Must be provided | "Session required. Usage: --session=<path-to-TC-folder>" |
|
|
53
|
+
| 2 | Directory at path | Must exist | "Session directory not found: <path>" |
|
|
54
|
+
| 3 | `team-session.json` | Exists, valid JSON, contains: `session_id` (string), `task_description` (string), `status` (active\|paused\|completed), `team_name` (string), `roles` (non-empty array) | "Invalid session: team-session.json missing, corrupt, or missing required fields" |
|
|
55
|
+
| 4 | `task-analysis.json` | Exists, valid JSON, contains: `capabilities` (array), `dependency_graph` (object), `roles` (non-empty array) | "Invalid session: task-analysis.json missing, corrupt, or missing required fields" |
|
|
56
|
+
| 5 | `role-specs/` directory | Exists, contains >= 1 `.md` file | "Invalid session: no role-spec files in role-specs/" |
|
|
57
|
+
| 6 | Role-spec mapping | Each role in `team-session.json#roles` has matching `role-specs/<role.name>.md`; each file passes Role-Spec Structure Validation | "Role-spec file not found: role-specs/<role.name>.md" |
|
|
58
|
+
|
|
59
|
+
All checks pass -> proceed to Phase 0.
|
|
85
60
|
|
|
86
61
|
---
|
|
87
62
|
|
|
@@ -207,24 +182,15 @@ message_types:
|
|
|
207
182
|
|
|
208
183
|
### Role-Spec Structure Validation
|
|
209
184
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
+- message_types (object) -> missing -> ERROR
|
|
220
|
-
4. Check for "## Phase 2" section
|
|
221
|
-
+- Not found -> ERROR: "Invalid role-spec: missing Phase 2"
|
|
222
|
-
5. Check for "## Phase 3" section
|
|
223
|
-
+- Not found -> ERROR: "Invalid role-spec: missing Phase 3"
|
|
224
|
-
6. Check for "## Phase 4" section
|
|
225
|
-
+- Not found -> ERROR: "Invalid role-spec: missing Phase 4"
|
|
226
|
-
7. All checks pass -> role-spec valid
|
|
227
|
-
```
|
|
185
|
+
Each `role-specs/<role>.md` must satisfy:
|
|
186
|
+
|
|
187
|
+
| Check | Required | Error on Failure |
|
|
188
|
+
|-------|----------|------------------|
|
|
189
|
+
| YAML frontmatter (between `---` markers) | Present | "Invalid role-spec: missing frontmatter" |
|
|
190
|
+
| Frontmatter fields | `role` (string), `prefix` (string), `inner_loop` (boolean), `message_types` (object) | "Invalid role-spec: missing required field" |
|
|
191
|
+
| Body sections | `## Phase 2`, `## Phase 3`, `## Phase 4` headings present | "Invalid role-spec: missing Phase N" |
|
|
192
|
+
|
|
193
|
+
All checks pass -> role-spec valid.
|
|
228
194
|
|
|
229
195
|
---
|
|
230
196
|
|