maestro-flow 0.3.15 → 0.3.17
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/agents/workflow-planner.md +24 -8
- package/.claude/commands/maestro-amend.md +300 -0
- package/.claude/commands/maestro-analyze.md +1 -49
- 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-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/.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 +4 -76
- 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 +70 -166
- package/.codex/skills/maestro-player/SKILL.md +24 -149
- 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/install-ui/ExecutionView.d.ts.map +1 -1
- package/dist/src/commands/install-ui/ExecutionView.js +4 -1
- package/dist/src/commands/install-ui/ExecutionView.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +4 -1
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install.js +5 -5
- package/dist/src/commands/install.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/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +31 -21
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/core/manifest.d.ts +8 -1
- package/dist/src/core/manifest.d.ts.map +1 -1
- package/dist/src/core/manifest.js +3 -1
- package/dist/src/core/manifest.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/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 +188 -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
|
@@ -163,31 +163,22 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
|
163
163
|
|
|
164
164
|
### Session Initialization
|
|
165
165
|
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
.replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--count\s+\d+|--skip-questions/g, '')
|
|
183
|
-
.trim()
|
|
184
|
-
|
|
185
|
-
const slug = topicArg.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
|
|
186
|
-
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
187
|
-
const sessionId = `${dateStr}-brainstorm-${slug}`
|
|
188
|
-
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
189
|
-
|
|
190
|
-
Bash(`mkdir -p ${sessionFolder}/.brainstorming`)
|
|
166
|
+
```
|
|
167
|
+
Parse from $ARGUMENTS:
|
|
168
|
+
AUTO_YES ← --yes | -y
|
|
169
|
+
continueMode ← --continue
|
|
170
|
+
maxConcurrency ← --concurrency | -c N (default: 6)
|
|
171
|
+
roleCount ← --count N (default: 3, max: 9)
|
|
172
|
+
skipQuestions ← --skip-questions
|
|
173
|
+
topicArg ← remaining text after flag removal
|
|
174
|
+
|
|
175
|
+
Derive:
|
|
176
|
+
slug ← topicArg kebab-cased, max 40 chars
|
|
177
|
+
dateStr ← UTC+8 YYYYMMDD
|
|
178
|
+
sessionId ← "{dateStr}-brainstorm-{slug}"
|
|
179
|
+
sessionFolder ← ".workflow/.csv-wave/{sessionId}"
|
|
180
|
+
|
|
181
|
+
mkdir -p {sessionFolder}/.brainstorming
|
|
191
182
|
```
|
|
192
183
|
|
|
193
184
|
### Phase 1: Topic Resolution -> CSV
|
|
@@ -231,37 +222,22 @@ Bash(`mkdir -p ${sessionFolder}/.brainstorming`)
|
|
|
231
222
|
|
|
232
223
|
#### Wave 1: Guidance Specification (Single Agent)
|
|
233
224
|
|
|
234
|
-
1.
|
|
235
|
-
2.
|
|
236
|
-
3. No prev_context needed (wave 1 has no predecessors)
|
|
237
|
-
4. Write `wave-1.csv`
|
|
238
|
-
5. Execute:
|
|
225
|
+
1. Extract wave 1 pending rows from master `tasks.csv` into `wave-1.csv` (no prev_context needed)
|
|
226
|
+
2. Execute:
|
|
239
227
|
|
|
240
228
|
```javascript
|
|
241
229
|
spawn_agents_on_csv({
|
|
242
230
|
csv_path: `${sessionFolder}/wave-1.csv`,
|
|
243
231
|
id_column: "id",
|
|
244
232
|
instruction: buildGuidanceInstruction(sessionFolder, topicArg),
|
|
245
|
-
max_concurrency: 1,
|
|
246
|
-
max_runtime_seconds: 600,
|
|
233
|
+
max_concurrency: 1, max_runtime_seconds: 600,
|
|
247
234
|
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
248
|
-
output_schema: {
|
|
249
|
-
type: "object",
|
|
250
|
-
properties: {
|
|
251
|
-
id: { type: "string" },
|
|
252
|
-
status: { type: "string", enum: ["completed", "failed"] },
|
|
253
|
-
findings: { type: "string" },
|
|
254
|
-
analysis_file: { type: "string" },
|
|
255
|
-
error: { type: "string" }
|
|
256
|
-
},
|
|
257
|
-
required: ["id", "status", "findings"]
|
|
258
|
-
}
|
|
235
|
+
output_schema: { id, status: [completed|failed], findings, analysis_file, error }
|
|
259
236
|
})
|
|
260
237
|
```
|
|
261
238
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
8. Read generated `guidance-specification.md` for wave 2 context propagation
|
|
239
|
+
3. Merge results into master `tasks.csv`, delete `wave-1.csv`
|
|
240
|
+
4. Read generated `guidance-specification.md` for wave 2 context propagation
|
|
265
241
|
|
|
266
242
|
**Guidance agent responsibilities**:
|
|
267
243
|
- Analyze topic, extract 5-10 core domain terms
|
|
@@ -272,40 +248,23 @@ spawn_agents_on_csv({
|
|
|
272
248
|
|
|
273
249
|
#### Wave 2: Role Analysis (Parallel, 3-9 Agents)
|
|
274
250
|
|
|
275
|
-
1.
|
|
276
|
-
2.
|
|
277
|
-
3.
|
|
278
|
-
|
|
279
|
-
[Task 1: Guidance Specification] Generated guidance-specification.md with N features, M terms defined...
|
|
280
|
-
```
|
|
281
|
-
4. Include `guidance-specification.md` content in prev_context for each role agent
|
|
282
|
-
5. Write `wave-2.csv` with `prev_context` column
|
|
283
|
-
6. Execute:
|
|
251
|
+
1. Extract wave 2 pending rows from master `tasks.csv`
|
|
252
|
+
2. Build `prev_context` from wave 1 findings + `guidance-specification.md` content
|
|
253
|
+
3. Write `wave-2.csv` with `prev_context` column
|
|
254
|
+
4. Execute:
|
|
284
255
|
|
|
285
256
|
```javascript
|
|
286
257
|
spawn_agents_on_csv({
|
|
287
258
|
csv_path: `${sessionFolder}/wave-2.csv`,
|
|
288
259
|
id_column: "id",
|
|
289
260
|
instruction: buildRoleAnalysisInstruction(sessionFolder),
|
|
290
|
-
max_concurrency: maxConcurrency,
|
|
291
|
-
max_runtime_seconds: 900,
|
|
261
|
+
max_concurrency: maxConcurrency, max_runtime_seconds: 900,
|
|
292
262
|
output_csv_path: `${sessionFolder}/wave-2-results.csv`,
|
|
293
|
-
output_schema: {
|
|
294
|
-
type: "object",
|
|
295
|
-
properties: {
|
|
296
|
-
id: { type: "string" },
|
|
297
|
-
status: { type: "string", enum: ["completed", "failed"] },
|
|
298
|
-
findings: { type: "string" },
|
|
299
|
-
analysis_file: { type: "string" },
|
|
300
|
-
error: { type: "string" }
|
|
301
|
-
},
|
|
302
|
-
required: ["id", "status", "findings"]
|
|
303
|
-
}
|
|
263
|
+
output_schema: { id, status: [completed|failed], findings, analysis_file, error }
|
|
304
264
|
})
|
|
305
265
|
```
|
|
306
266
|
|
|
307
|
-
|
|
308
|
-
8. Delete `wave-2.csv`
|
|
267
|
+
5. Merge results into master `tasks.csv`, delete `wave-2.csv`
|
|
309
268
|
|
|
310
269
|
**Role agent responsibilities**:
|
|
311
270
|
- Read guidance-specification.md for framework context
|
|
@@ -321,19 +280,10 @@ spawn_agents_on_csv({
|
|
|
321
280
|
|
|
322
281
|
#### Wave 3: Synthesis + Feature Index (Single Agent)
|
|
323
282
|
|
|
324
|
-
1.
|
|
325
|
-
2.
|
|
326
|
-
3.
|
|
327
|
-
4.
|
|
328
|
-
```
|
|
329
|
-
[Task 2: System Architect Analysis] Key findings: microservice architecture with event sourcing...
|
|
330
|
-
[Task 3: UI Designer Analysis] Key findings: component-based design system with real-time cursors...
|
|
331
|
-
[Task 4: Product Manager Analysis] Key findings: MVP focuses on document editing + presence...
|
|
332
|
-
```
|
|
333
|
-
5. Write `wave-3.csv` with `prev_context` column
|
|
334
|
-
6. Execute `spawn_agents_on_csv` for synthesis agent
|
|
335
|
-
7. Merge results into master `tasks.csv`
|
|
336
|
-
8. Delete `wave-3.csv`
|
|
283
|
+
1. If all wave 2 tasks failed, skip synthesis entirely
|
|
284
|
+
2. Extract wave 3 pending rows, build `prev_context` from wave 2 findings
|
|
285
|
+
3. Write `wave-3.csv`, execute `spawn_agents_on_csv` for synthesis agent (same output_schema pattern)
|
|
286
|
+
4. Merge results into master `tasks.csv`, delete `wave-3.csv`
|
|
337
287
|
|
|
338
288
|
**Synthesis agent responsibilities**:
|
|
339
289
|
- Cross-role analysis: consensus, conflicts, unique contributions
|
|
@@ -347,9 +297,8 @@ spawn_agents_on_csv({
|
|
|
347
297
|
|
|
348
298
|
**Objective**: Generate final results and human-readable report.
|
|
349
299
|
|
|
350
|
-
1.
|
|
351
|
-
2.
|
|
352
|
-
3. Generate `context.md`:
|
|
300
|
+
1. Export final `tasks.csv` as `results.csv`
|
|
301
|
+
2. Generate `context.md`:
|
|
353
302
|
|
|
354
303
|
```markdown
|
|
355
304
|
# Brainstorm Report -- {topic}
|
|
@@ -411,11 +360,7 @@ spawn_agents_on_csv({
|
|
|
411
360
|
|
|
412
361
|
#### Protocol
|
|
413
362
|
|
|
414
|
-
|
|
415
|
-
2. **Skip covered**: If discovery of same type + dedup key exists, skip
|
|
416
|
-
3. **Write immediately**: Append findings as found
|
|
417
|
-
4. **Append-only**: Never modify or delete
|
|
418
|
-
5. **Deduplicate**: Check before writing
|
|
363
|
+
Read `discoveries.ndjson` before analysis. Append-only: dedup by type+key before writing, never modify/delete.
|
|
419
364
|
|
|
420
365
|
```bash
|
|
421
366
|
echo '{"ts":"<ISO>","worker":"{id}","type":"terminology","data":{"term":"CRDT","definition":"Conflict-free Replicated Data Type","aliases":["conflict-free"],"category":"technical"}}' >> {session_folder}/discoveries.ndjson
|
|
@@ -99,26 +99,7 @@ Example: 'analyze the code, then plan, implement, and test the feature'"
|
|
|
99
99
|
|
|
100
100
|
**Step 1.6** — Write `intent.json` to `.workflow/templates/design-drafts/WFD-<slug>-<date>/`.
|
|
101
101
|
|
|
102
|
-
**Step 1.7 — Interactive confirmation**:
|
|
103
|
-
```
|
|
104
|
-
============================================================
|
|
105
|
-
COMPOSER — Intent Parsed
|
|
106
|
-
============================================================
|
|
107
|
-
Description: "<original input>"
|
|
108
|
-
Task type: <type>
|
|
109
|
-
Complexity: <level>
|
|
110
|
-
|
|
111
|
-
Detected steps:
|
|
112
|
-
1. <description> → <type_hint>
|
|
113
|
-
2. <description> → <type_hint>
|
|
114
|
-
3. <description> → <type_hint>
|
|
115
|
-
|
|
116
|
-
Variables:
|
|
117
|
-
- goal (required): <inferred description>
|
|
118
|
-
============================================================
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
AskUserQuestion: `Looks good, continue to resolution` / `Edit steps` / `Add a step` / `Cancel`
|
|
102
|
+
**Step 1.7 — Interactive confirmation**: Display description, task type, complexity, detected steps (numbered with type_hint), and variables. AskUserQuestion: `Continue to resolution` / `Edit steps` / `Add a step` / `Cancel`
|
|
122
103
|
|
|
123
104
|
---
|
|
124
105
|
|
|
@@ -153,20 +134,7 @@ If spec not found, use built-in fallback:
|
|
|
153
134
|
|
|
154
135
|
**Step 2.4** — Write `nodes.json`.
|
|
155
136
|
|
|
156
|
-
**Step 2.5 — Interactive confirmation**:
|
|
157
|
-
```
|
|
158
|
-
============================================================
|
|
159
|
-
COMPOSER — Nodes Resolved
|
|
160
|
-
============================================================
|
|
161
|
-
N-001 [skill] maestro-plan "{goal}"
|
|
162
|
-
N-002 [skill] maestro-execute {phase}
|
|
163
|
-
N-003 [skill] quality-test {phase}
|
|
164
|
-
|
|
165
|
-
Parallel groups: none
|
|
166
|
-
============================================================
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
AskUserQuestion: `Continue to checkpoint injection` / `Change executor` / `Change node type` / `Back to intent` / `Cancel`
|
|
137
|
+
**Step 2.5 — Interactive confirmation**: Display resolved nodes table (ID, type, executor, args) and parallel groups. AskUserQuestion: `Continue to checkpoint injection` / `Change executor` / `Change node type` / `Back to intent` / `Cancel`
|
|
170
138
|
|
|
171
139
|
---
|
|
172
140
|
|
|
@@ -195,28 +163,7 @@ Set `auto_continue: false` for checkpoints before user-facing deliverables.
|
|
|
195
163
|
|
|
196
164
|
### Phase 4: Confirm — Visualize + User Approval
|
|
197
165
|
|
|
198
|
-
**Step 4.1** — Render ASCII pipeline:
|
|
199
|
-
```
|
|
200
|
-
============================================================
|
|
201
|
-
COMPOSER — Pipeline Review
|
|
202
|
-
============================================================
|
|
203
|
-
Pipeline: <template-name>
|
|
204
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
205
|
-
N-001 [skill] maestro-plan "{goal}"
|
|
206
|
-
|
|
|
207
|
-
CP-01 [checkpoint] After Plan auto-continue
|
|
208
|
-
|
|
|
209
|
-
N-002 [skill] maestro-execute {phase}
|
|
210
|
-
|
|
|
211
|
-
CP-02 [checkpoint] Before Tests pause-for-user
|
|
212
|
-
|
|
|
213
|
-
N-003 [skill] quality-test {phase}
|
|
214
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
215
|
-
Variables (required): goal
|
|
216
|
-
Checkpoints: 2 (1 auto, 1 pause)
|
|
217
|
-
Nodes: 3 work + 2 checkpoints
|
|
218
|
-
============================================================
|
|
219
|
-
```
|
|
166
|
+
**Step 4.1** — Render ASCII pipeline: vertical node chain with `|` connectors showing each node (ID, type, executor, args) and checkpoint nodes (auto-continue vs pause-for-user). Footer: required variables, checkpoint counts, node counts.
|
|
220
167
|
|
|
221
168
|
**Step 4.2** — AskUserQuestion: `Confirm & Save` / `Edit a node` / `Add a node` / `Remove a node` / `Rename template` / `Re-run checkpoint injection` / `Cancel`
|
|
222
169
|
|
|
@@ -236,26 +183,7 @@ Nodes: 3 work + 2 checkpoints
|
|
|
236
183
|
|
|
237
184
|
**Step 5.4** — Update `~/.maestro/templates/workflows/index.json`.
|
|
238
185
|
|
|
239
|
-
**Step 5.5** — Output summary:
|
|
240
|
-
```
|
|
241
|
-
============================================================
|
|
242
|
-
COMPOSER — Template Saved
|
|
243
|
-
============================================================
|
|
244
|
-
Path: ~/.maestro/templates/workflows/<slug>.json
|
|
245
|
-
ID: wft-<slug>-<date>
|
|
246
|
-
Nodes: <n> work + <n> checkpoints
|
|
247
|
-
Variables: <required vars>
|
|
248
|
-
|
|
249
|
-
To execute:
|
|
250
|
-
$maestro-player <slug> --context goal="<your goal>"
|
|
251
|
-
|
|
252
|
-
To edit later:
|
|
253
|
-
$maestro-composer --edit ~/.maestro/templates/workflows/<slug>.json
|
|
254
|
-
|
|
255
|
-
To list all templates:
|
|
256
|
-
$maestro-player --list
|
|
257
|
-
============================================================
|
|
258
|
-
```
|
|
186
|
+
**Step 5.5** — Output summary: path, template ID, node/checkpoint counts, required variables. Include usage commands: `$maestro-player <slug> --context goal="..."`, `$maestro-composer --edit <path>`, `$maestro-player --list`.
|
|
259
187
|
|
|
260
188
|
**Step 5.6** — Clean up design draft directory.
|
|
261
189
|
</execution>
|
|
@@ -158,34 +158,22 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column populated fr
|
|
|
158
158
|
|
|
159
159
|
### Session Initialization
|
|
160
160
|
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
// Clean phase text
|
|
178
|
-
const phaseArg = $ARGUMENTS
|
|
179
|
-
.replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--auto-commit|--method\s+\w+|--dir\s+\S+/g, '')
|
|
180
|
-
.trim()
|
|
181
|
-
|
|
182
|
-
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
183
|
-
const sessionId = scratchDir
|
|
184
|
-
? `${dateStr}-execute-scratch`
|
|
185
|
-
: `${dateStr}-execute-P${phaseArg}-${phaseSlug}`
|
|
186
|
-
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
187
|
-
|
|
188
|
-
Bash(`mkdir -p ${sessionFolder}`)
|
|
161
|
+
```
|
|
162
|
+
Parse from $ARGUMENTS:
|
|
163
|
+
AUTO_YES ← --yes | -y
|
|
164
|
+
continueMode ← --continue
|
|
165
|
+
maxConcurrency ← --concurrency | -c N (default: 5)
|
|
166
|
+
autoCommit ← --auto-commit
|
|
167
|
+
executionMethod ← --method agent|cli (default: from config.json)
|
|
168
|
+
scratchDir ← --dir <path> (default: null)
|
|
169
|
+
phaseArg ← remaining text after flag removal
|
|
170
|
+
|
|
171
|
+
Derive:
|
|
172
|
+
dateStr ← UTC+8 YYYYMMDD
|
|
173
|
+
sessionId ← scratchDir ? "{dateStr}-execute-scratch" : "{dateStr}-execute-P{phaseArg}-{phaseSlug}"
|
|
174
|
+
sessionFolder ← ".workflow/.csv-wave/{sessionId}"
|
|
175
|
+
|
|
176
|
+
mkdir -p {sessionFolder}
|
|
189
177
|
```
|
|
190
178
|
|
|
191
179
|
### Phase 1: Plan Resolution -> CSV
|
|
@@ -204,27 +192,13 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
204
192
|
|
|
205
193
|
For multi-plan: execute sequentially. Each plan is a full CSV session.
|
|
206
194
|
|
|
207
|
-
2. **Load plan
|
|
208
|
-
- Read `{PLAN_DIR}/plan.json` for wave structure
|
|
209
|
-
- Extract `plan.waves` array with task assignments
|
|
195
|
+
2. **Load plan**: Read `{PLAN_DIR}/plan.json` for wave structure and task assignments
|
|
210
196
|
|
|
211
|
-
3. **Detect completed tasks (breakpoint resume)**:
|
|
212
|
-
- For each task in plan, read `.task/TASK-{NNN}.json`
|
|
213
|
-
- If `status == "completed"`: exclude from CSV
|
|
214
|
-
- Log: "Resuming: {completed}/{total} tasks already completed"
|
|
197
|
+
3. **Detect completed tasks (breakpoint resume)**: Read `.task/TASK-{NNN}.json` for each task; exclude completed ones from CSV. Log resume count.
|
|
215
198
|
|
|
216
|
-
4. **Build tasks.csv from task
|
|
217
|
-
- For each pending task in each wave:
|
|
218
|
-
- Read `.task/TASK-{NNN}.json`
|
|
219
|
-
- Extract: title, description, files (build scope), convergence.criteria, hints, execution_directives
|
|
220
|
-
- Set `deps` from task dependency field
|
|
221
|
-
- Set `context_from` = same as deps (findings propagate along dependency edges)
|
|
222
|
-
- Set `wave` from plan.json wave assignment
|
|
223
|
-
- Write `tasks.csv`
|
|
199
|
+
4. **Build tasks.csv**: For each pending task per wave, read `.task/TASK-{NNN}.json` and extract: title, description, scope (from files), convergence.criteria, hints, execution_directives. Set `deps` from task dependency, `context_from` = deps, `wave` from plan.json.
|
|
224
200
|
|
|
225
|
-
5. **Load project specs**:
|
|
226
|
-
- Read `.workflow/specs/` for coding conventions and architecture constraints
|
|
227
|
-
- Pass as context to all executor agents
|
|
201
|
+
5. **Load project specs**: Read `.workflow/specs/` for coding conventions and architecture constraints (passed to all agents)
|
|
228
202
|
|
|
229
203
|
6. **User validation**: Display task/wave breakdown. Skip if AUTO_YES.
|
|
230
204
|
|
|
@@ -234,160 +208,59 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
234
208
|
|
|
235
209
|
#### Per-Wave Execution Loop
|
|
236
210
|
|
|
237
|
-
For each wave in ascending order:
|
|
211
|
+
For each wave N in ascending order:
|
|
238
212
|
|
|
239
|
-
1.
|
|
240
|
-
2.
|
|
241
|
-
3.
|
|
242
|
-
4. Build `prev_context` for each task from completed predecessor findings:
|
|
243
|
-
```
|
|
244
|
-
[TASK-001: Setup auth module] Created src/auth/auth.ts with verifyToken and generateToken...
|
|
245
|
-
[TASK-002: Create user model] Created src/models/user.ts with User interface...
|
|
246
|
-
```
|
|
247
|
-
5. Write `wave-{N}.csv` with `prev_context` column added
|
|
248
|
-
6. Execute:
|
|
213
|
+
1. Extract wave N pending rows from master `tasks.csv` (skip wave if none)
|
|
214
|
+
2. Build `prev_context` per task from completed predecessor findings
|
|
215
|
+
3. Write `wave-{N}.csv` with `prev_context` column, then execute:
|
|
249
216
|
|
|
250
217
|
```javascript
|
|
251
218
|
spawn_agents_on_csv({
|
|
252
219
|
csv_path: `${sessionFolder}/wave-${N}.csv`,
|
|
253
220
|
id_column: "id",
|
|
254
221
|
instruction: buildExecutorInstruction(sessionFolder, phaseDir, autoCommit, specsContent),
|
|
255
|
-
max_concurrency: maxConcurrency,
|
|
256
|
-
max_runtime_seconds: 900,
|
|
222
|
+
max_concurrency: maxConcurrency, max_runtime_seconds: 900,
|
|
257
223
|
output_csv_path: `${sessionFolder}/wave-${N}-results.csv`,
|
|
258
|
-
output_schema: {
|
|
259
|
-
type: "object",
|
|
260
|
-
properties: {
|
|
261
|
-
id: { type: "string" },
|
|
262
|
-
status: { type: "string", enum: ["completed", "failed", "blocked"] },
|
|
263
|
-
findings: { type: "string" },
|
|
264
|
-
files_modified: { type: "string" },
|
|
265
|
-
tests_passed: { type: "string" },
|
|
266
|
-
error: { type: "string" }
|
|
267
|
-
},
|
|
268
|
-
required: ["id", "status", "findings"]
|
|
269
|
-
}
|
|
224
|
+
output_schema: { id, status: [completed|failed|blocked], findings, files_modified, tests_passed, error }
|
|
270
225
|
})
|
|
271
226
|
```
|
|
272
227
|
|
|
273
|
-
|
|
274
|
-
8. Delete `wave-{N}.csv`
|
|
228
|
+
4. Merge results into master `tasks.csv`, delete `wave-{N}.csv`
|
|
275
229
|
|
|
276
230
|
#### Blocked Task Handling
|
|
277
231
|
|
|
278
|
-
After each wave:
|
|
279
|
-
- Count blocked/failed tasks
|
|
280
|
-
- If any blocked and NOT AUTO_YES:
|
|
281
|
-
```
|
|
282
|
-
AskUserQuestion: "Tasks blocked: {blocked_list}. Continue to next wave or stop?"
|
|
283
|
-
Options: [Continue (skip blocked deps), Stop and review]
|
|
284
|
-
```
|
|
285
|
-
- If AUTO_YES: auto-continue, skip tasks whose deps are blocked
|
|
232
|
+
After each wave: if blocked tasks exist, prompt user to continue or stop (AUTO_YES: auto-continue). Skip tasks whose deps are blocked/failed.
|
|
286
233
|
|
|
287
234
|
#### Cascading Skip
|
|
288
235
|
|
|
289
|
-
|
|
290
|
-
- Mark dependent tasks as `skipped` with error: "Dependency {dep_id} blocked/failed"
|
|
291
|
-
- Do not attempt execution of skipped tasks
|
|
236
|
+
Blocked/failed tasks cascade: mark all downstream dependents as `skipped` with error "Dependency {dep_id} blocked/failed".
|
|
292
237
|
|
|
293
238
|
### Phase 3: Results Aggregation
|
|
294
239
|
|
|
295
240
|
**Objective**: Update all state files and generate execution report.
|
|
296
241
|
|
|
297
|
-
1.
|
|
298
|
-
2. Export as `results.csv`
|
|
242
|
+
1. Export final `tasks.csv` as `results.csv`
|
|
299
243
|
|
|
300
|
-
|
|
301
|
-
- Read `.task/{id}.json`
|
|
302
|
-
- Update `status` to match CSV status
|
|
303
|
-
- Write back to disk
|
|
244
|
+
2. **Update task files**: Write each task's status from CSV back to `.task/{id}.json`
|
|
304
245
|
|
|
305
|
-
|
|
306
|
-
-
|
|
307
|
-
- Collect all `task_refs[]` statuses for that issue:
|
|
308
|
-
- All task_refs completed -> `issue.status = "resolved"`
|
|
309
|
-
- Any task_ref failed -> `issue.status = "in_progress"`
|
|
246
|
+
3. **Issue status sync**: For tasks with `issue_id`, update `.workflow/issues/issues.jsonl`:
|
|
247
|
+
- All task_refs completed -> `issue.status = "resolved"`; any failed -> `"in_progress"`
|
|
310
248
|
- Append history entry: `{ action: "executed", at: <ISO>, by: "maestro-execute", summary: "TASK-{NNN} {status}" }`
|
|
311
|
-
- Write updated issue back to `issues.jsonl`
|
|
312
|
-
|
|
313
|
-
4. **Register EXC artifact in state.json**:
|
|
314
|
-
```
|
|
315
|
-
Read .workflow/state.json
|
|
316
|
-
plan_artifact = state.json.artifacts.find(a => a.type == "plan" && a.path == PLAN_DIR_relative)
|
|
317
|
-
next_id = max EXC-NNN + 1
|
|
318
|
-
Push artifact: { id: "EXC-{next_id}", type: "execute", milestone: plan_artifact.milestone,
|
|
319
|
-
phase: plan_artifact.phase, scope: plan_artifact.scope, path: plan_artifact.path,
|
|
320
|
-
status: "completed", depends_on: plan_artifact.id, harvested: false,
|
|
321
|
-
created_at: execution_start, completed_at: now() }
|
|
322
|
-
Write state.json (atomic)
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
5. **Extract incremental learnings**:
|
|
326
|
-
- Read all `.summaries/` from PLAN_DIR
|
|
327
|
-
- Extract strategy adjustments, patterns, pitfalls
|
|
328
|
-
- Check existing entries via `maestro spec load --category learning` (dedup)
|
|
329
|
-
- Append to `.workflow/specs/learnings.md` using `<spec-entry>` closed-tag format (category=`learning`, auto-extract keywords, date=today, source=`execute`)
|
|
330
|
-
- Mark artifact `harvested: true` in state.json
|
|
331
|
-
|
|
332
|
-
5b. **Post-task Knowledge Inquiry** (after each task completes):
|
|
333
|
-
- **Execution deviation**: If task summary mentions approach change, dependency swap, or plan deviation:
|
|
334
|
-
→ Ask: "TASK-{NNN} deviated from the plan. Should this decision be recorded as an architecture constraint? (`/spec-add arch`)"
|
|
335
|
-
- **Retry success**: If task required ≥2 retries before completion:
|
|
336
|
-
→ Ask: "TASK-{NNN} succeeded after {N} retries. Should this fix pattern be documented? (`/spec-add debug`)"
|
|
337
|
-
- **Implicit knowledge**: If task summary contains design rationale ("chose X because", "rejected Y due to"):
|
|
338
|
-
→ Ask: "Design decision detected. Should it be recorded as a learning? (`/spec-add learning`)"
|
|
339
|
-
- If user confirms, append `<spec-entry>` to matching category file via `spec-add` mechanism
|
|
340
|
-
|
|
341
|
-
6. **Generate context.md**:
|
|
342
|
-
|
|
343
|
-
```markdown
|
|
344
|
-
# Execution Report -- Phase {phase}
|
|
345
|
-
|
|
346
|
-
## Summary
|
|
347
|
-
- Tasks: {completed}/{total} completed
|
|
348
|
-
- Blocked: {blocked_count}
|
|
349
|
-
- Waves executed: {waves_run}/{waves_total}
|
|
350
|
-
- Auto-commit: {yes/no}
|
|
351
|
-
|
|
352
|
-
## Wave Results
|
|
353
|
-
|
|
354
|
-
### Wave {N}
|
|
355
|
-
| Task | Status | Files Modified | Tests |
|
|
356
|
-
|------|--------|---------------|-------|
|
|
357
|
-
| {id}: {title} | {status} | {files} | {tests} |
|
|
358
|
-
|
|
359
|
-
## Blocked Tasks
|
|
360
|
-
{if any: task ID, error, checkpoint info}
|
|
361
|
-
|
|
362
|
-
## Discovery Board Summary
|
|
363
|
-
{aggregated discovery findings}
|
|
364
|
-
|
|
365
|
-
## Next Steps
|
|
366
|
-
- Run verify to validate results
|
|
367
|
-
- Run debug for any blocked tasks
|
|
368
|
-
```
|
|
369
249
|
|
|
370
|
-
|
|
371
|
-
- Detect changed files from execution
|
|
372
|
-
- Trigger codebase doc update
|
|
250
|
+
4. **Register EXC artifact in state.json**: Find matching plan artifact, create `{ id: "EXC-{next_id}", type: "execute", milestone, phase, scope, path, status: "completed", depends_on: plan_artifact.id, harvested: false, created_at, completed_at }`
|
|
373
251
|
|
|
374
|
-
|
|
252
|
+
5. **Extract incremental learnings**: Read `.summaries/`, dedup against existing specs, append to `.workflow/specs/learnings.md` as `<spec-entry>` (category=learning), mark artifact `harvested: true`
|
|
375
253
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
Next steps:
|
|
387
|
-
Skill({ skill: "maestro-verify" })
|
|
388
|
-
Skill({ skill: "maestro-verify", args: "--dir {PLAN_DIR}" })
|
|
389
|
-
Skill({ skill: "manage-status" })
|
|
390
|
-
```
|
|
254
|
+
6. **Post-task Knowledge Inquiry**: Prompt user to capture knowledge when:
|
|
255
|
+
- Execution deviation detected (plan change) -> `/spec-add arch`
|
|
256
|
+
- Retry success (>=2 retries) -> `/spec-add debug`
|
|
257
|
+
- Implicit design rationale found -> `/spec-add learning`
|
|
258
|
+
|
|
259
|
+
7. **Generate context.md**: Execution report with summary (tasks/blocked/waves/auto-commit), per-wave result table (task, status, files, tests), blocked tasks, discovery board summary, next steps.
|
|
260
|
+
|
|
261
|
+
8. **Auto-sync** (if config.json.codebase.auto_sync_after_execute == true): detect changed files, trigger codebase doc update.
|
|
262
|
+
|
|
263
|
+
9. **Display completion report**: Phase, completed/blocked counts, wave progress, paths to `.summaries/` and `.task/`, next step suggestions (`maestro-verify`, `manage-status`).
|
|
391
264
|
|
|
392
265
|
### Shared Discovery Board Protocol
|
|
393
266
|
|
|
@@ -404,11 +277,7 @@ Next steps:
|
|
|
404
277
|
|
|
405
278
|
#### Protocol
|
|
406
279
|
|
|
407
|
-
|
|
408
|
-
2. **Skip covered**: If discovery of same type + dedup key exists, skip
|
|
409
|
-
3. **Write immediately**: Append findings as discovered
|
|
410
|
-
4. **Append-only**: Never modify or delete existing entries
|
|
411
|
-
5. **Deduplicate**: Check before writing
|
|
280
|
+
Read `discoveries.ndjson` before implementation. Append-only: dedup by type+key before writing, never modify/delete.
|
|
412
281
|
|
|
413
282
|
```bash
|
|
414
283
|
echo '{"ts":"<ISO>","worker":"TASK-001","type":"code_pattern","data":{"name":"Result type","file":"src/types/result.ts","description":"All functions return Result<T,E> for error handling"}}' >> {session_folder}/discoveries.ndjson
|
|
@@ -46,11 +46,7 @@ Extract flags from arguments:
|
|
|
46
46
|
|
|
47
47
|
### Step 2: Detect Project State
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
# Check existing state
|
|
51
|
-
ls .workflow/state.json 2>/dev/null
|
|
52
|
-
ls package.json pyproject.toml Cargo.toml go.mod 2>/dev/null
|
|
53
|
-
```
|
|
49
|
+
Check for `.workflow/state.json` and common manifests (`package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`).
|
|
54
50
|
|
|
55
51
|
Classify as:
|
|
56
52
|
- **existing**: `.workflow/state.json` found — warn and exit (E002)
|
|
@@ -86,67 +82,27 @@ Read the following templates:
|
|
|
86
82
|
|
|
87
83
|
### Step 5: Create .workflow/ Structure
|
|
88
84
|
|
|
89
|
-
|
|
90
|
-
mkdir -p .workflow/specs .workflow/scratch .workflow/codebase
|
|
91
|
-
```
|
|
85
|
+
Create directories: `.workflow/specs`, `.workflow/scratch`, `.workflow/codebase`.
|
|
92
86
|
|
|
93
87
|
### Step 6: Write project.md
|
|
94
88
|
|
|
95
|
-
Populate template with
|
|
96
|
-
- Project name, core value proposition
|
|
97
|
-
- Requirements: Validated / Active / Out of Scope
|
|
98
|
-
- Key decisions and constraints
|
|
99
|
-
- Tech stack (detected or specified)
|
|
100
|
-
|
|
101
|
-
Write to `.workflow/project.md`.
|
|
89
|
+
Populate template with: project name, core value proposition, requirements (Validated/Active/Out of Scope), key decisions, constraints, tech stack. Write to `.workflow/project.md`.
|
|
102
90
|
|
|
103
91
|
### Step 7: Write state.json
|
|
104
92
|
|
|
105
|
-
Initialize
|
|
106
|
-
- `current_milestone`: null
|
|
107
|
-
- `current_task_id`: null
|
|
108
|
-
- `status`: "initialized"
|
|
109
|
-
- `artifacts`: []
|
|
110
|
-
|
|
111
|
-
Write to `.workflow/state.json`.
|
|
93
|
+
Initialize from template with `current_milestone: null`, `status: "initialized"`, empty `artifacts[]`. Write to `.workflow/state.json`.
|
|
112
94
|
|
|
113
95
|
### Step 8: Write config.json
|
|
114
96
|
|
|
115
|
-
Configuration questions (or defaults for --auto):
|
|
116
|
-
- Granularity: fine / medium / coarse
|
|
117
|
-
- Workflow agents: enable/disable optional agents
|
|
118
|
-
- Gate preferences: verification strictness
|
|
119
|
-
|
|
120
|
-
Write to `.workflow/config.json`.
|
|
97
|
+
Configuration questions (or defaults for --auto): granularity (fine/medium/coarse), workflow agents (enable/disable), gate preferences. Write to `.workflow/config.json`.
|
|
121
98
|
|
|
122
99
|
### Step 9: Initialize specs/
|
|
123
100
|
|
|
124
|
-
Create
|
|
125
|
-
- `conventions.md` — detected or specified coding conventions
|
|
126
|
-
- `learnings.md` — empty, populated during execute summaries extraction
|
|
101
|
+
Create in `.workflow/specs/`: `conventions.md` (detected coding conventions), `learnings.md` (empty placeholder).
|
|
127
102
|
|
|
128
103
|
### Step 10: Completion Report
|
|
129
104
|
|
|
130
|
-
|
|
131
|
-
=== WORKFLOW INITIALIZED ===
|
|
132
|
-
Project: {project_name}
|
|
133
|
-
State: .workflow/state.json (active)
|
|
134
|
-
|
|
135
|
-
Created:
|
|
136
|
-
.workflow/project.md
|
|
137
|
-
.workflow/state.json
|
|
138
|
-
.workflow/config.json
|
|
139
|
-
.workflow/specs/
|
|
140
|
-
|
|
141
|
-
Next steps (choose one path to create roadmap):
|
|
142
|
-
$maestro-spec-generate "<idea>" -- Full spec package + roadmap (heavy)
|
|
143
|
-
$maestro-roadmap "<requirement>" -- Direct interactive roadmap (light)
|
|
144
|
-
|
|
145
|
-
Other commands:
|
|
146
|
-
$manage-status -- View project dashboard
|
|
147
|
-
$maestro-brainstorm "<topic>" -- Explore ideas first
|
|
148
|
-
$maestro-quick "<task>" -- Quick ad-hoc task
|
|
149
|
-
```
|
|
105
|
+
Display created files and next steps: `$maestro-spec-generate` (full spec), `$maestro-roadmap` (light), `$manage-status`, `$maestro-brainstorm`, `$maestro-quick`.
|
|
150
106
|
|
|
151
107
|
</execution>
|
|
152
108
|
|