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
|
@@ -23,118 +23,42 @@ Synchronous pipeline coordination using spawn_agent + wait_agent.
|
|
|
23
23
|
|
|
24
24
|
Read-only status report from tasks.json, then STOP.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
2. Count tasks by status (pending, in_progress, completed, failed)
|
|
28
|
-
|
|
29
|
-
```javascript
|
|
30
|
-
// Read progress and blocker messages from message bus
|
|
31
|
-
const progressMsgs = mcp__maestro-tools__team_msg({
|
|
32
|
-
operation: "list", session_id: sessionId, type: "progress", last: 50
|
|
33
|
-
})
|
|
34
|
-
const blockerMsgs = mcp__maestro-tools__team_msg({
|
|
35
|
-
operation: "list", session_id: sessionId, type: "blocker", last: 10
|
|
36
|
-
})
|
|
37
|
-
```
|
|
26
|
+
Read tasks.json + team_msg (type="progress", last=50) + team_msg (type="blocker", last=10). Count tasks by status.
|
|
38
27
|
|
|
28
|
+
**Output format**:
|
|
39
29
|
```
|
|
40
|
-
Pipeline Status (<mode>):
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
[WAIT] TDFIX-001 (executor) -> blocked by TDPLAN-001
|
|
45
|
-
[WAIT] TDVAL-001 (validator) -> blocked by TDFIX-001
|
|
46
|
-
|
|
47
|
-
[coordinator] Active Workers:
|
|
48
|
-
<task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
|
|
49
|
-
|
|
50
|
-
[coordinator] Blockers:
|
|
51
|
-
<task_id> <role> "<blocker_summary>" <time_ago>
|
|
52
|
-
(omit section if no blockers)
|
|
53
|
-
|
|
54
|
-
GC Rounds: 0/3
|
|
55
|
-
Session: <session-id>
|
|
30
|
+
Pipeline Status (<mode>): <task_id> (<role>) [DONE|RUN|WAIT] -> <summary> (per task)
|
|
31
|
+
[coordinator] Active Workers: <task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
|
|
32
|
+
[coordinator] Blockers: <task_id> <role> "<blocker_summary>" <time_ago> (omit if none)
|
|
33
|
+
GC Rounds: <n>/3 | Session: <session-id>
|
|
56
34
|
Commands: 'resume' to advance | 'check' to refresh
|
|
57
|
-
|
|
58
|
-
**CLI monitoring** (works while coordinator is blocked):
|
|
59
|
-
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
60
35
|
```
|
|
61
36
|
|
|
37
|
+
**CLI monitoring**: `maestro agent-msg list -s "<session_id>" --type progress --last 10`
|
|
38
|
+
|
|
62
39
|
Output status -- do NOT advance pipeline.
|
|
63
40
|
|
|
64
41
|
## handleResume
|
|
65
42
|
|
|
66
|
-
**Agent Health Check** (v4):
|
|
67
|
-
```
|
|
68
|
-
// Verify actual running agents match session state
|
|
69
|
-
const runningAgents = list_agents({})
|
|
70
|
-
// For each active_agent in tasks.json:
|
|
71
|
-
// - If agent NOT in runningAgents -> agent crashed
|
|
72
|
-
// - Reset that task to pending, remove from active_agents
|
|
73
|
-
// This prevents stale agent references from blocking the pipeline
|
|
74
|
-
```
|
|
43
|
+
**Agent Health Check** (v4): Cross-check `list_agents()` against `active_agents`. Missing agents -> reset task to pending. Stuck in_progress -> reset to pending. Ready but still pending -> include in spawn list.
|
|
75
44
|
|
|
76
|
-
|
|
77
|
-
2. Tasks stuck in "in_progress" -> reset to "pending"
|
|
78
|
-
3. Tasks with completed deps but still "pending" -> include in spawn list
|
|
79
|
-
4. -> handleSpawnNext
|
|
45
|
+
-> handleSpawnNext
|
|
80
46
|
|
|
81
47
|
## handleSpawnNext
|
|
82
48
|
|
|
83
49
|
Find ready tasks, spawn workers, wait for completion, process results.
|
|
84
50
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
### Spawn Workers
|
|
95
|
-
|
|
96
|
-
For each ready task:
|
|
97
|
-
|
|
98
|
-
```javascript
|
|
99
|
-
// 1) Update status in tasks.json
|
|
100
|
-
state.tasks[taskId].status = 'in_progress'
|
|
101
|
-
|
|
102
|
-
// 2) Spawn worker
|
|
103
|
-
const agentId = spawn_agent({
|
|
104
|
-
agent_type: "team_worker",
|
|
105
|
-
task_name: taskId, // e.g., "TDSCAN-001" — enables named targeting
|
|
106
|
-
message: `## Role Assignment
|
|
107
|
-
role: ${task.role}
|
|
108
|
-
role_spec: ${skillRoot}/roles/${task.role}/role.md
|
|
109
|
-
session: ${sessionFolder}
|
|
110
|
-
session_id: ${sessionId}
|
|
111
|
-
team_name: tech-debt
|
|
112
|
-
requirement: ${task.description}
|
|
113
|
-
inner_loop: ${task.role === 'executor'}
|
|
114
|
-
|
|
115
|
-
Read role_spec file (${skillRoot}/roles/${task.role}/role.md) to load Phase 2-4 domain instructions.
|
|
116
|
-
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).
|
|
117
|
-
|
|
118
|
-
## Task Context
|
|
119
|
-
task_id: ${taskId}
|
|
120
|
-
title: ${task.title}
|
|
121
|
-
description: ${task.description}
|
|
122
|
-
|
|
123
|
-
## Upstream Context
|
|
124
|
-
${prevContext}
|
|
125
|
-
|
|
126
|
-
## Progress Milestones
|
|
127
|
-
session_id: ${sessionId}
|
|
128
|
-
Report progress via team_msg at natural phase boundaries.
|
|
129
|
-
Report blockers immediately via team_msg type="blocker".
|
|
130
|
-
Report completion via team_msg type="task_complete" after report_agent_job_result.`
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
// 3) Track agent
|
|
134
|
-
state.active_agents[taskId] = { agentId, role: task.role, started_at: now }
|
|
51
|
+
```
|
|
52
|
+
Classify tasks: completed | in_progress | ready (pending + all deps completed)
|
|
53
|
+
|
|
54
|
+
Ready tasks -> route:
|
|
55
|
+
none + in_progress exists -> report waiting, STOP
|
|
56
|
+
none + nothing in_progress -> handleComplete
|
|
57
|
+
has ready -> for each:
|
|
58
|
+
skip if inner loop role already has active worker
|
|
59
|
+
else: set status="in_progress", log task_unblocked, spawn team_worker, add to active_agents
|
|
135
60
|
```
|
|
136
61
|
|
|
137
|
-
Stage-to-role mapping:
|
|
138
62
|
| Task Prefix | Role |
|
|
139
63
|
|-------------|------|
|
|
140
64
|
| TDSCAN | scanner |
|
|
@@ -143,166 +67,56 @@ Stage-to-role mapping:
|
|
|
143
67
|
| TDFIX | executor |
|
|
144
68
|
| TDVAL | validator |
|
|
145
69
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
operation: "list", session_id: sessionId, type: "progress", last: 100
|
|
158
|
-
})
|
|
159
|
-
for (const msg of (progressMsgs.result?.messages || [])) {
|
|
160
|
-
console.log(`[coordinator] trace: ${msg.summary}`)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (waitResult.timed_out) {
|
|
164
|
-
for (const taskId of taskNames) {
|
|
165
|
-
// Status probe before closing
|
|
166
|
-
followup_task({ target: taskId, message: "STATUS_CHECK: Report current progress, findings so far, and estimated remaining work." })
|
|
167
|
-
const status = wait_agent({ timeout_ms: 180000 }) // 3 min
|
|
168
|
-
if (status.timed_out) {
|
|
169
|
-
followup_task({ target: taskId, message: "FINALIZE: Output all current findings immediately. Time limit reached.", interrupt: true })
|
|
170
|
-
const forced = wait_agent({ timeout_ms: 180000 }) // 3 min
|
|
171
|
-
if (forced.timed_out) {
|
|
172
|
-
const lastProgress = (progressMsgs.result?.messages || [])
|
|
173
|
-
.filter(m => m.data?.task_id === taskId).pop()
|
|
174
|
-
state.tasks[taskId].status = 'timed_out'
|
|
175
|
-
state.tasks[taskId].error = lastProgress
|
|
176
|
-
? `Timed out at ${lastProgress.data.phase} (${lastProgress.data.progress_pct}%)`
|
|
177
|
-
: 'Timed out with no progress reported'
|
|
178
|
-
close_agent({ target: taskId })
|
|
179
|
-
delete state.active_agents[taskId]
|
|
180
|
-
}
|
|
181
|
-
// else: forced output received, process result
|
|
182
|
-
}
|
|
183
|
-
// else: status received, continue processing
|
|
184
|
-
}
|
|
185
|
-
} else {
|
|
186
|
-
// 5) Collect results
|
|
187
|
-
for (const [taskId, agent] of Object.entries(state.active_agents)) {
|
|
188
|
-
state.tasks[taskId].status = 'completed'
|
|
189
|
-
close_agent({ target: taskId }) // Use task_name, not agentId
|
|
190
|
-
delete state.active_agents[taskId]
|
|
191
|
-
}
|
|
192
|
-
}
|
|
70
|
+
**Spawn worker message template**:
|
|
71
|
+
```
|
|
72
|
+
## Role Assignment
|
|
73
|
+
role: <role> | role_spec: <skillRoot>/roles/<role>/role.md
|
|
74
|
+
session: <session-folder> | session_id: <session-id> | team_name: tech-debt
|
|
75
|
+
requirement: <task-description> | inner_loop: <true for executor>
|
|
76
|
+
Read role_spec for Phase 2-4 instructions. Execute Phase 1 -> role Phase 2-4 -> Phase 5 (report).
|
|
77
|
+
## Task Context + Upstream Context
|
|
78
|
+
task_id: <taskId> | title: <title> | description: <description> | <prevContext>
|
|
79
|
+
## Progress Milestones
|
|
80
|
+
Report progress via team_msg at phase boundaries. Blockers via type="blocker". Completion via type="task_complete" after report_agent_job_result.
|
|
193
81
|
```
|
|
194
82
|
|
|
83
|
+
**Result collection**: `wait_agent({ timeout_ms: 1800000 })` (30 min), drain progress from team_msg.
|
|
84
|
+
|
|
85
|
+
**Timeout escalation**: STATUS_CHECK (3 min) -> FINALIZE with interrupt (3 min) -> mark timed_out with last progress context, close_agent. Normal completion -> mark completed, close_agent (use task_name, not agentId).
|
|
86
|
+
|
|
195
87
|
### Checkpoint Processing
|
|
196
88
|
|
|
197
89
|
After task completion, check for checkpoints:
|
|
198
90
|
|
|
199
|
-
- **TDPLAN-001 completes** -> Plan Approval Gate:
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
multiSelect: false,
|
|
206
|
-
options: [
|
|
207
|
-
{ label: "Approve", description: "Proceed with fix execution" },
|
|
208
|
-
{ label: "Revise", description: "Re-run planner with feedback" },
|
|
209
|
-
{ label: "Abort", description: "Stop pipeline" }
|
|
210
|
-
]
|
|
211
|
-
}]
|
|
212
|
-
})
|
|
213
|
-
```
|
|
214
|
-
- Approve -> Worktree Creation -> continue handleSpawnNext loop
|
|
215
|
-
- Revise -> Add TDPLAN-revised task to tasks.json -> continue
|
|
216
|
-
- Abort -> Log shutdown -> handleComplete
|
|
217
|
-
|
|
218
|
-
- **Worktree Creation** (before TDFIX):
|
|
219
|
-
```
|
|
220
|
-
Bash("git worktree add .worktrees/TD-<slug>-<date> -b tech-debt/TD-<slug>-<date>")
|
|
221
|
-
```
|
|
222
|
-
Update .msg/meta.json with worktree info.
|
|
223
|
-
|
|
224
|
-
- **TDVAL-* completes** -> GC Loop Check:
|
|
225
|
-
Read validation results from .msg/meta.json
|
|
91
|
+
- **TDPLAN-001 completes** -> Plan Approval Gate: `request_user_input` with Approve / Revise / Abort.
|
|
92
|
+
- Approve -> Worktree Creation (`git worktree add .worktrees/TD-<slug>-<date>`) -> continue
|
|
93
|
+
- Revise -> Add TDPLAN-revised task -> continue
|
|
94
|
+
- Abort -> handleComplete
|
|
95
|
+
|
|
96
|
+
- **TDVAL-* completes** -> GC Loop Check (read validation from .msg/meta.json):
|
|
226
97
|
|
|
227
98
|
| Condition | Action |
|
|
228
99
|
|-----------|--------|
|
|
229
100
|
| No regressions | -> continue (pipeline complete) |
|
|
230
|
-
| Regressions AND gc_rounds < 3 | Add fix-verify tasks
|
|
101
|
+
| Regressions AND gc_rounds < 3 | Add fix-verify tasks, increment gc_rounds |
|
|
231
102
|
| Regressions AND gc_rounds >= 3 | Accept current state -> handleComplete |
|
|
232
103
|
|
|
233
|
-
Fix-Verify
|
|
234
|
-
```json
|
|
235
|
-
{
|
|
236
|
-
"TDFIX-fix-<round>": {
|
|
237
|
-
"title": "Fix regressions (Fix-Verify #<round>)",
|
|
238
|
-
"description": "PURPOSE: Fix regressions | Session: <session>",
|
|
239
|
-
"role": "executor",
|
|
240
|
-
"prefix": "TDFIX",
|
|
241
|
-
"deps": [],
|
|
242
|
-
"status": "pending",
|
|
243
|
-
"findings": null,
|
|
244
|
-
"error": null
|
|
245
|
-
},
|
|
246
|
-
"TDVAL-recheck-<round>": {
|
|
247
|
-
"title": "Recheck after fix (Fix-Verify #<round>)",
|
|
248
|
-
"description": "Re-validate after fix",
|
|
249
|
-
"role": "validator",
|
|
250
|
-
"prefix": "TDVAL",
|
|
251
|
-
"deps": ["TDFIX-fix-<round>"],
|
|
252
|
-
"status": "pending",
|
|
253
|
-
"findings": null,
|
|
254
|
-
"error": null
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**Cross-Agent Supplementary Context** (v4):
|
|
260
|
-
|
|
261
|
-
When spawning workers in a later pipeline phase, send upstream results as supplementary context to already-running workers:
|
|
104
|
+
Fix-Verify tasks: `TDFIX-fix-<round>` (role: executor) + `TDVAL-recheck-<round>` (role: validator, deps: [TDFIX-fix]).
|
|
262
105
|
|
|
263
|
-
|
|
264
|
-
// Example: Send scan results to running assessor
|
|
265
|
-
send_message({
|
|
266
|
-
target: "<running-agent-task-name>",
|
|
267
|
-
message: `## Supplementary Context\n${upstreamFindings}`
|
|
268
|
-
})
|
|
269
|
-
// Note: send_message queues info without interrupting the agent's current work
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
Use `send_message` (not `followup_task`) for supplementary info that enriches but doesn't redirect the agent's current task.
|
|
106
|
+
**Cross-Agent Supplementary Context** (v4): Use `send_message` (not `followup_task`) to deliver upstream results to running downstream workers as non-interrupting supplementary context.
|
|
273
107
|
|
|
274
108
|
### Persist and Loop
|
|
275
109
|
|
|
276
|
-
|
|
277
|
-
1. Write updated tasks.json
|
|
278
|
-
2. Check if more tasks are now ready (deps newly resolved)
|
|
279
|
-
3. If yes -> loop back to step 1 of handleSpawnNext
|
|
280
|
-
4. If no more ready and all done -> handleComplete
|
|
281
|
-
5. If no more ready but some still blocked -> report status, STOP
|
|
110
|
+
Write tasks.json -> more tasks ready? -> loop handleSpawnNext. All done -> handleComplete. Blocked -> report, STOP.
|
|
282
111
|
|
|
283
112
|
## handleComplete
|
|
284
113
|
|
|
285
|
-
**Cleanup Verification** (v4):
|
|
286
|
-
```
|
|
287
|
-
// Verify all agents are properly closed
|
|
288
|
-
const remaining = list_agents({})
|
|
289
|
-
// If any team agents still running -> close_agent each
|
|
290
|
-
// Ensures clean session shutdown
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
Pipeline done. Generate report and completion action.
|
|
114
|
+
**Cleanup Verification** (v4): `list_agents()` -> close any still-running team agents.
|
|
294
115
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
- If worktree exists and validation passed: commit, push, gh pr create, cleanup worktree
|
|
300
|
-
- Compile summary: total tasks, completed, gc_rounds, debt_score_before, debt_score_after
|
|
301
|
-
- Transition to coordinator Phase 5
|
|
302
|
-
4. Execute completion action per tasks.json completion_action:
|
|
303
|
-
- interactive -> request_user_input (Archive/Keep/Export)
|
|
304
|
-
- auto_archive -> Archive & Clean (rm -rf session folder)
|
|
305
|
-
- auto_keep -> Keep Active (status=paused)
|
|
116
|
+
Pipeline done. Verify all tasks (including fix-verify) completed. Incomplete -> handleSpawnNext. All complete:
|
|
117
|
+
- If worktree exists + validation passed: commit, push, `gh pr create`, cleanup worktree
|
|
118
|
+
- Compile summary: total tasks, gc_rounds, debt_score_before/after
|
|
119
|
+
- Route by completion_action: interactive (Archive/Keep/Export) | auto_archive | auto_keep.
|
|
306
120
|
|
|
307
121
|
## handleAdapt
|
|
308
122
|
|
|
@@ -316,7 +130,4 @@ Capability gap reported mid-pipeline.
|
|
|
316
130
|
|
|
317
131
|
## Fast-Advance Reconciliation
|
|
318
132
|
|
|
319
|
-
On every
|
|
320
|
-
1. Read team_msg entries with type="fast_advance"
|
|
321
|
-
2. Sync active_agents with spawned successors
|
|
322
|
-
3. No duplicate spawns
|
|
133
|
+
On every wake: sync `fast_advance` messages from team_msg into active_agents. No duplicate spawns.
|
|
@@ -78,56 +78,18 @@ Before calling ANY tool, apply this check:
|
|
|
78
78
|
|
|
79
79
|
### Worker Spawn Template
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
spawn_agent({
|
|
85
|
-
agent_type: "team_worker",
|
|
86
|
-
task_name: "<task-id>",
|
|
87
|
-
fork_turns: "none",
|
|
88
|
-
message: `## Role Assignment
|
|
89
|
-
role: <role>
|
|
90
|
-
role_spec: <skill_root>/roles/<role>/role.md
|
|
91
|
-
session: <session-folder>
|
|
92
|
-
session_id: <session-id>
|
|
93
|
-
requirement: <task-description>
|
|
94
|
-
inner_loop: <true|false>
|
|
95
|
-
|
|
96
|
-
Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
|
|
97
|
-
|
|
98
|
-
## Task Context
|
|
99
|
-
task_id: <task-id>
|
|
100
|
-
title: <task-title>
|
|
101
|
-
description: <task-description>
|
|
102
|
-
pipeline_phase: <pipeline-phase>
|
|
103
|
-
|
|
104
|
-
## Upstream Context
|
|
105
|
-
<prev_context>`
|
|
106
|
-
})
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
After spawning, use `wait_agent({ timeout_ms: 1800000 })` to collect results (30 min). If `result.timed_out`, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents. Use `close_agent({ target })` each worker.
|
|
81
|
+
Spawn via `team-worker` agent. Message includes: role, role_spec path, 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) -> close.
|
|
110
82
|
|
|
111
83
|
### Model Selection Guide
|
|
112
84
|
|
|
113
|
-
| Role |
|
|
114
|
-
|
|
115
|
-
| Strategist (STRATEGY-*) |
|
|
116
|
-
| Generator (TESTGEN-*) |
|
|
117
|
-
| Executor (TESTRUN-*) |
|
|
118
|
-
| Analyst (TESTANA-*) |
|
|
85
|
+
| Role | reasoning_effort |
|
|
86
|
+
|------|-------------------|
|
|
87
|
+
| Strategist (STRATEGY-*) | high |
|
|
88
|
+
| Generator (TESTGEN-*) | high |
|
|
89
|
+
| Executor (TESTRUN-*) | medium |
|
|
90
|
+
| Analyst (TESTANA-*) | high |
|
|
119
91
|
|
|
120
|
-
Override model
|
|
121
|
-
```
|
|
122
|
-
spawn_agent({
|
|
123
|
-
agent_type: "team_worker",
|
|
124
|
-
task_name: "<task-id>",
|
|
125
|
-
fork_turns: "none",
|
|
126
|
-
model: "<model-override>",
|
|
127
|
-
reasoning_effort: "<effort-level>",
|
|
128
|
-
message: "..."
|
|
129
|
-
})
|
|
130
|
-
```
|
|
92
|
+
Override via `model`/`reasoning_effort` params in spawn_agent for cost optimization.
|
|
131
93
|
|
|
132
94
|
### User Commands
|
|
133
95
|
|
|
@@ -140,66 +102,19 @@ spawn_agent({
|
|
|
140
102
|
|
|
141
103
|
### v4 Agent Coordination
|
|
142
104
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
| Intent | API | Example |
|
|
146
|
-
|--------|-----|---------|
|
|
147
|
-
| Send strategy to running generators | `send_message` | Queue test strategy findings to TESTGEN-* workers |
|
|
148
|
-
| Not used in this skill | `followup_task` | No resident agents -- all workers are one-shot |
|
|
149
|
-
| Check running agents | `list_agents` | Verify parallel generator/executor health |
|
|
150
|
-
|
|
151
|
-
#### Parallel Test Generation
|
|
152
|
-
|
|
153
|
-
Comprehensive pipeline spawns multiple generators (per layer) and executors in parallel:
|
|
154
|
-
|
|
155
|
-
```
|
|
156
|
-
// Spawn parallel generators for L1 and L2
|
|
157
|
-
const genNames = ["TESTGEN-001", "TESTGEN-002"]
|
|
158
|
-
for (const name of genNames) {
|
|
159
|
-
spawn_agent({ agent_type: "team_worker", task_name: name, ... })
|
|
160
|
-
}
|
|
161
|
-
wait_agent({ timeout_ms: 1800000 }) // 30 min
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
#### GC Loop Coordination
|
|
165
|
-
|
|
166
|
-
Generator-Critic loops create dynamic TESTGEN-fix and TESTRUN-fix tasks. The coordinator tracks `gc_rounds[layer]` and creates fix tasks dynamically when coverage is below target.
|
|
167
|
-
|
|
168
|
-
#### Agent Health Check
|
|
105
|
+
**Message Semantics**: `send_message` to queue strategy to generators. `list_agents` for health checks. `followup_task` not used (all one-shot).
|
|
169
106
|
|
|
170
|
-
|
|
107
|
+
**Parallel Test Generation**: Spawn multiple generators per layer (L1/L2/L3) in parallel, then executors.
|
|
171
108
|
|
|
172
|
-
|
|
173
|
-
// Reconcile session state with actual running agents
|
|
174
|
-
const running = list_agents({})
|
|
175
|
-
// Compare with tasks.json active_agents
|
|
176
|
-
// Reset orphaned tasks (in_progress but agent gone) to pending
|
|
177
|
-
```
|
|
109
|
+
**GC Loop Coordination**: Create dynamic TESTGEN-fix and TESTRUN-fix tasks when coverage below target. Track `gc_rounds[layer]`.
|
|
178
110
|
|
|
179
|
-
|
|
111
|
+
**Agent Health Check**: Reconcile `tasks.json` with `list_agents({})`. Reset orphaned tasks to pending.
|
|
180
112
|
|
|
181
|
-
|
|
182
|
-
- `send_message({ target: "TESTGEN-001", message: "..." })` -- queue strategy context to running generator
|
|
183
|
-
- `close_agent({ target: "TESTRUN-001" })` -- cleanup by name after wait_agent returns
|
|
113
|
+
**Named Targeting**: `send_message({ target: "TESTGEN-001" })`, `close_agent({ target: "TESTRUN-001" })`.
|
|
184
114
|
|
|
185
115
|
### Completion Action
|
|
186
116
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
request_user_input({
|
|
191
|
-
questions: [{
|
|
192
|
-
question: "Testing pipeline complete. What would you like to do?",
|
|
193
|
-
header: "Completion",
|
|
194
|
-
multiSelect: false,
|
|
195
|
-
options: [
|
|
196
|
-
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
|
|
197
|
-
{ label: "Keep Active", description: "Keep session for follow-up work" },
|
|
198
|
-
{ label: "Deepen Coverage", description: "Add more test layers or increase coverage targets" }
|
|
199
|
-
]
|
|
200
|
-
}]
|
|
201
|
-
})
|
|
202
|
-
```
|
|
117
|
+
Present choice: **Archive & Clean** (recommended), **Keep Active**, **Deepen Coverage** (add layers or raise targets).
|
|
203
118
|
|
|
204
119
|
### Session Directory
|
|
205
120
|
|