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
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: manage-knowhow-capture
|
|
3
|
+
description: Capture reusable knowledge into .workflow/knowhow/ — session compact, template, recipe, reference, decision, or tip
|
|
4
|
+
argument-hint: "[type] [description] [--lang lang] [--source url] [--tag tag1,tag2]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Capture reusable knowledge into `.workflow/knowhow/`. Six content types: `session` (full session recovery), `template` (code/config pattern), `recipe` (step-by-step guide), `reference` (external doc summary), `decision` (ADR), `tip` (quick note). Auto-detects type or asks user.
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
<context>
|
|
13
|
+
$ARGUMENTS — type token followed by description and optional flags.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
$manage-knowhow-capture
|
|
17
|
+
$manage-knowhow-capture "compact"
|
|
18
|
+
$manage-knowhow-capture "template React form pattern --lang typescript"
|
|
19
|
+
$manage-knowhow-capture "tip Always check state.json before phase operations --tag workflow,state"
|
|
20
|
+
$manage-knowhow-capture "recipe Deploy to production --tag deploy,ops"
|
|
21
|
+
$manage-knowhow-capture "reference Stripe API --source https://docs.stripe.com/api"
|
|
22
|
+
$manage-knowhow-capture "decision Use PostgreSQL over MongoDB --status accepted"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Types**: `compact` | `template` | `recipe` | `reference` | `decision` | `tip`
|
|
26
|
+
|
|
27
|
+
**Flags**:
|
|
28
|
+
- `--lang <lang>` — Language for templates (typescript, python, bash, yaml, ...)
|
|
29
|
+
- `--source <url>` — Source URL for references
|
|
30
|
+
- `--tag tag1,tag2` — Categorization tags
|
|
31
|
+
- `--title <title>` — Explicit title
|
|
32
|
+
</context>
|
|
33
|
+
|
|
34
|
+
<execution>
|
|
35
|
+
|
|
36
|
+
### Step 1: Validate
|
|
37
|
+
|
|
38
|
+
Verify `.workflow/` exists (E001). Create `.workflow/knowhow/` if missing.
|
|
39
|
+
|
|
40
|
+
### Step 2: Detect Type
|
|
41
|
+
|
|
42
|
+
Parse first token as type. If absent or ambiguous, ask user via AskUserQuestion.
|
|
43
|
+
|
|
44
|
+
| Token | Type |
|
|
45
|
+
|-------|------|
|
|
46
|
+
| `compact`, `session`, `压缩` | session |
|
|
47
|
+
| `template`, `tpl`, `模板` | template |
|
|
48
|
+
| `recipe`, `rcp`, `配方`, `步骤` | recipe |
|
|
49
|
+
| `reference`, `ref`, `参考` | reference |
|
|
50
|
+
| `decision`, `dcs`, `决策` | decision |
|
|
51
|
+
| `tip`, `note`, `记录` | tip |
|
|
52
|
+
|
|
53
|
+
### Step 3: Capture Content by Type
|
|
54
|
+
|
|
55
|
+
**session** (KNW-{YYYYMMDD}-{HHMM}.md):
|
|
56
|
+
Extract from conversation: objective, key decisions, modified files (absolute paths), execution plan (verbatim), pending work, notes. Sections: Session ID, Project Root, Objective, Execution Plan, Working Files, Reference Files, Last Action, Decisions, Constraints, Dependencies, Changes Made, Pending, Notes.
|
|
57
|
+
|
|
58
|
+
**template** (TPL-{YYYYMMDD}-{HHMM}.md):
|
|
59
|
+
Prompt for or extract: language (`--lang`), usage context, code content, parameters, dependencies. Sections: Usage, Parameters, Dependencies, Code (fenced block).
|
|
60
|
+
|
|
61
|
+
**recipe** (RCP-{YYYYMMDD}-{HHMM}.md):
|
|
62
|
+
Prompt for or extract: goal, prerequisites, numbered steps, expected outcome, common pitfalls, related entries. Sections: Goal, Prerequisites, Steps, Expected Outcome, Common Pitfalls, Related.
|
|
63
|
+
|
|
64
|
+
**reference** (REF-{YYYYMMDD}-{HHMM}.md):
|
|
65
|
+
Source from `--source` flag (offer WebFetch if URL). Extract: key points, applicable scenarios, quick examples. Sections: Source, Key Points, Applicable Scenarios, Quick Examples.
|
|
66
|
+
|
|
67
|
+
**decision** (DCS-{YYYYMMDD}-{HHMM}.md):
|
|
68
|
+
Prompt for or extract: context, decision, alternatives (at least 2), rationale, consequences. Sections: Context, Decision, Alternatives Considered (table), Rationale, Consequences, Related.
|
|
69
|
+
|
|
70
|
+
**tip** (TIP-{YYYYMMDD}-{HHMM}.md):
|
|
71
|
+
Content from remaining arguments. Auto-detect context from recent conversation files. Sections: Content, Context, Tags, Timestamp.
|
|
72
|
+
|
|
73
|
+
### Step 4: Write File
|
|
74
|
+
|
|
75
|
+
Write to `.workflow/knowhow/{PREFIX}-{YYYYMMDD}-{HHMM}.md` with YAML frontmatter:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
---
|
|
79
|
+
title: {auto or --title}
|
|
80
|
+
type: {type}
|
|
81
|
+
category: {type}
|
|
82
|
+
created: {ISO timestamp}
|
|
83
|
+
tags: [{tags}]
|
|
84
|
+
```
|
|
85
|
+
Plus type-specific: `lang` (template), `source` (reference), `status` (decision).
|
|
86
|
+
|
|
87
|
+
### Step 5: Confirm
|
|
88
|
+
|
|
89
|
+
Display: type, ID, file path, and type-specific summary.
|
|
90
|
+
</execution>
|
|
91
|
+
|
|
92
|
+
<error_codes>
|
|
93
|
+
| Code | Severity | Description |
|
|
94
|
+
|------|----------|-------------|
|
|
95
|
+
| E001 | error | `.workflow/` not initialized — run `Skill({ skill: "maestro-init" })` first |
|
|
96
|
+
| E002 | error | Template: no code provided after prompt |
|
|
97
|
+
| E003 | error | Recipe: no steps provided after prompt |
|
|
98
|
+
| W001 | warning | No active workflow session — compact captures conversation only |
|
|
99
|
+
| W002 | warning | No explicit plan found — using inferred plan |
|
|
100
|
+
| W003 | warning | `--source` URL could not be fetched — proceeding with manual entry |
|
|
101
|
+
</error_codes>
|
|
102
|
+
|
|
103
|
+
<success_criteria>
|
|
104
|
+
- [ ] `.workflow/` existence validated; `.workflow/knowhow/` created if missing
|
|
105
|
+
- [ ] Type detected or prompted (all 6 types)
|
|
106
|
+
- [ ] Type-specific content collected (code for template, steps for recipe, etc.)
|
|
107
|
+
- [ ] YAML frontmatter with type-specific fields written
|
|
108
|
+
- [ ] Markdown file written with correct prefix and structured sections
|
|
109
|
+
- [ ] Confirmation displayed with ID, type, category, and file path
|
|
110
|
+
</success_criteria>
|
|
@@ -74,98 +74,44 @@ Validate `--category` if provided (allowed: pattern, antipattern, decision, tool
|
|
|
74
74
|
|
|
75
75
|
### Step 2: Bootstrap Learning Store (on first use)
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
```javascript
|
|
79
|
-
// Create directory and empty files — use Bash + Write (apply_patch cannot create empty files reliably)
|
|
80
|
-
Bash('mkdir -p .workflow/learning && touch .workflow/learning/lessons.jsonl')
|
|
81
|
-
Write('.workflow/learning/learning-index.json', '{"version":1,"entries":[]}\n')
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Verify `.workflow/` exists (E001 if not).
|
|
77
|
+
Verify `.workflow/` exists (E001 if not). If `.workflow/learning/lessons.jsonl` missing: create directory, empty `lessons.jsonl`, and initialize `learning-index.json` with `{"version":1,"entries":[]}`.
|
|
85
78
|
|
|
86
79
|
### Step 3: Execute Mode
|
|
87
80
|
|
|
88
81
|
#### Capture Mode
|
|
89
82
|
|
|
90
|
-
1. **Infer category** from
|
|
83
|
+
1. **Infer category** from keywords (no LLM):
|
|
91
84
|
|
|
92
|
-
| Keywords
|
|
93
|
-
|
|
85
|
+
| Keywords | Category |
|
|
86
|
+
|----------|----------|
|
|
94
87
|
| always, should, prefer, best practice | pattern |
|
|
95
88
|
| never, avoid, don't, pitfall, breaks | antipattern |
|
|
96
|
-
| decided, chose, tradeoff, because
|
|
97
|
-
| tool, library, framework, package
|
|
98
|
-
| gotcha, surprising, unexpected
|
|
99
|
-
| technique, approach, method
|
|
100
|
-
|
|
101
|
-
2. **Auto-link phase**: Read `.workflow/state.json` for current phase (derived from artifact registry). Resolve matching directory slug via artifact registry in `state.json` to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`. `--phase 0` forces null.
|
|
102
|
-
|
|
103
|
-
3. **Generate stable INS-id**: `INS-{8 lowercase hex}` from `hash(insightText + timestamp)`.
|
|
104
|
-
|
|
105
|
-
4. **Build lessons.jsonl row**:
|
|
106
|
-
```json
|
|
107
|
-
{
|
|
108
|
-
"id": "INS-a3f7b2c1",
|
|
109
|
-
"title": "<first 80 chars of insight>",
|
|
110
|
-
"summary": "<full insight text>",
|
|
111
|
-
"source": "manual",
|
|
112
|
-
"lens": null,
|
|
113
|
-
"category": "<inferred or explicit>",
|
|
114
|
-
"tags": ["manual", "<user tags...>"],
|
|
115
|
-
"phase": "<N or null>",
|
|
116
|
-
"phase_slug": "<slug or null>",
|
|
117
|
-
"confidence": "<high|medium|low>",
|
|
118
|
-
"routed_to": null,
|
|
119
|
-
"routed_id": null,
|
|
120
|
-
"created_at": "<ISO>"
|
|
121
|
-
}
|
|
122
|
-
```
|
|
89
|
+
| decided, chose, tradeoff, because | decision |
|
|
90
|
+
| tool, library, framework, package | tool |
|
|
91
|
+
| gotcha, surprising, unexpected | gotcha |
|
|
92
|
+
| technique, approach, method | technique |
|
|
123
93
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
6. **Update learning-index.json**: Read, push entry, write back:
|
|
131
|
-
```javascript
|
|
132
|
-
const index = JSON.parse(Read('.workflow/learning/learning-index.json'))
|
|
133
|
-
index.entries.push({ id: insightRow.id, title: insightRow.title, category: insightRow.category, tags: insightRow.tags, phase: insightRow.phase, created_at: insightRow.created_at })
|
|
134
|
-
Write('.workflow/learning/learning-index.json', JSON.stringify(index, null, 2) + '\n')
|
|
135
|
-
```
|
|
94
|
+
2. **Auto-link phase** from `state.json` artifact registry. `--phase 0` forces null.
|
|
95
|
+
3. **Generate INS-id**: `INS-{8 hex}` from `hash(insightText + timestamp)`.
|
|
96
|
+
4. **Build row** with fields: id, title (first 80 chars), summary, source="manual", lens=null, category, tags (includes "manual"), phase, phase_slug, confidence, routed_to=null, created_at.
|
|
97
|
+
5. **Append** JSON line to `lessons.jsonl` (append-only, never rewrite).
|
|
98
|
+
6. **Update** `learning-index.json`: push entry with id, title, category, tags, phase, created_at.
|
|
136
99
|
|
|
137
100
|
#### List Mode
|
|
138
101
|
|
|
139
|
-
Read `learning-index.json
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
ID Category Phase Tags Title
|
|
143
|
-
INS-a3f7b2c1 gotcha 3 manual,zod Zod v4 breaks z.object().strict() API
|
|
144
|
-
INS-b1c2d3e4 pattern 2 manual Always read state.json before planning
|
|
145
|
-
```
|
|
102
|
+
Read `learning-index.json`, apply filters (`--tag`, `--category`, `--phase`, `--lens`), sort newest-first, display up to `--limit` rows (default 20) as table.
|
|
146
103
|
|
|
147
104
|
#### Search Mode
|
|
148
105
|
|
|
149
|
-
Grep
|
|
106
|
+
Grep `lessons.jsonl` for query. Rank by field weight: title (3) > tags (2) > summary (1). Display top matches.
|
|
150
107
|
|
|
151
108
|
#### Show Mode
|
|
152
109
|
|
|
153
|
-
Validate
|
|
110
|
+
Validate `INS-[0-9a-f]{8}` format. Find matching row, display full record. Show linked artifact if `routed_to` is set.
|
|
154
111
|
|
|
155
112
|
### Step 4: Display Confirmation
|
|
156
113
|
|
|
157
|
-
Capture mode:
|
|
158
|
-
```
|
|
159
|
-
=== INSIGHT CAPTURED ===
|
|
160
|
-
ID: INS-a3f7b2c1
|
|
161
|
-
Category: gotcha
|
|
162
|
-
Phase: 3 (phase-03-api-layer)
|
|
163
|
-
Confidence: medium
|
|
164
|
-
Tags: manual, zod, typescript
|
|
165
|
-
|
|
166
|
-
Next: $manage-learn "list" or $manage-learn "search zod"
|
|
167
|
-
Wiki: maestro wiki list --type lesson (lessons auto-indexed in wiki graph)
|
|
168
|
-
```
|
|
114
|
+
Capture mode: display ID, category, phase, confidence, tags, and next-step commands (`$manage-learn "list"`, `$manage-learn "search ..."`).
|
|
169
115
|
</execution>
|
|
170
116
|
|
|
171
117
|
<error_codes>
|
|
@@ -28,19 +28,11 @@ Reads from:
|
|
|
28
28
|
|
|
29
29
|
### Step 1: Validate Project
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
# Verify .workflow/ exists
|
|
33
|
-
test -d .workflow || exit 1 # E001: not initialized
|
|
34
|
-
test -f .workflow/state.json || exit 1 # E002: state missing
|
|
35
|
-
```
|
|
31
|
+
Verify `.workflow/` exists (E001) and `state.json` is present (E002).
|
|
36
32
|
|
|
37
33
|
### Step 2: Load State Files
|
|
38
34
|
|
|
39
|
-
Read all
|
|
40
|
-
- `.workflow/state.json` -- project-level state machine
|
|
41
|
-
- `.workflow/roadmap.md` -- milestone and phase structure
|
|
42
|
-
- `.workflow/scratch/*/index.json` -- per-phase metadata and progress (resolved via state.json artifact registry)
|
|
43
|
-
- `.workflow/scratch/*/.task/TASK-*.json` -- individual task statuses (resolved via state.json artifact registry)
|
|
35
|
+
Read: `state.json`, `roadmap.md`, per-phase `scratch/*/index.json`, task files `scratch/*/.task/TASK-*.json` (all resolved via artifact registry).
|
|
44
36
|
|
|
45
37
|
### Step 3: Calculate Progress
|
|
46
38
|
|
|
@@ -51,30 +43,7 @@ For each phase directory found:
|
|
|
51
43
|
|
|
52
44
|
### Step 4: Render Dashboard
|
|
53
45
|
|
|
54
|
-
Display
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
=== PROJECT DASHBOARD ===
|
|
58
|
-
Project: {name} | Status: {state}
|
|
59
|
-
|
|
60
|
-
--- Milestones & Phases ---
|
|
61
|
-
{For each milestone}
|
|
62
|
-
M{N}: {title}
|
|
63
|
-
{For each phase}
|
|
64
|
-
Phase {N}: {title} [{status}] {progress_bar} {completed}/{total} ({pct}%)
|
|
65
|
-
|
|
66
|
-
--- Active Work ---
|
|
67
|
-
Phase {N}: {title}
|
|
68
|
-
In-progress: {list}
|
|
69
|
-
Blocked: {list}
|
|
70
|
-
|
|
71
|
-
--- Knowledge Graph ---
|
|
72
|
-
Wiki entries: {total} (spec: {N}, memory: {N}, note: {N}, lesson: {N}, issue: {N})
|
|
73
|
-
Health: {score}/100 | Orphans: {N}
|
|
74
|
-
|
|
75
|
-
--- Next Steps ---
|
|
76
|
-
Based on current state: {suggestion with Skill() reference}
|
|
77
|
-
```
|
|
46
|
+
Display sections: **Milestones & Phases** (per-phase status, progress bars, completion %), **Active Work** (in-progress and blocked tasks), **Knowledge Graph** (wiki entry counts by type, health score, orphans), **Next Steps** (state-based suggestion).
|
|
78
47
|
|
|
79
48
|
### Step 5: Suggest Next Steps
|
|
80
49
|
|
|
@@ -87,7 +56,7 @@ Use this decision table to suggest the next action:
|
|
|
87
56
|
| Phase executed, not verified | `Skill({ skill: "maestro-verify", args: "<N>" })` |
|
|
88
57
|
| Phase verified with gaps | `Skill({ skill: "maestro-plan", args: "<N> --gaps" })` |
|
|
89
58
|
| Phase reviewed PASS/WARN | `Skill({ skill: "quality-test", args: "<N>" })` |
|
|
90
|
-
| UAT passed | `Skill({ skill: "maestro-
|
|
59
|
+
| UAT passed | `Skill({ skill: "maestro-milestone-audit" })` |
|
|
91
60
|
| All milestone phases done | `Skill({ skill: "maestro-milestone-audit" })` |
|
|
92
61
|
</execution>
|
|
93
62
|
|
|
@@ -27,7 +27,7 @@ $ARGUMENTS — subcommand and optional flags.
|
|
|
27
27
|
| `stats` | Graph statistics — type distribution, tag frequency, growth |
|
|
28
28
|
|
|
29
29
|
**Flags:**
|
|
30
|
-
- `--type <type>` — Filter: spec,
|
|
30
|
+
- `--type <type>` — Filter: spec, knowhow, note, lesson, issue
|
|
31
31
|
- `--fix` — Auto-fix issues during cleanup
|
|
32
32
|
- `--json` — JSON output
|
|
33
33
|
</context>
|
|
@@ -162,19 +162,7 @@ Record results in `.tests/business/test-results-iter-{N}.json`.
|
|
|
162
162
|
|
|
163
163
|
### Step 7: Build Traceability Matrix
|
|
164
164
|
|
|
165
|
-
Map each result to `REQ-NNN:AC-N
|
|
166
|
-
|
|
167
|
-
```
|
|
168
|
-
FOR each REQ:
|
|
169
|
-
FOR each AC:
|
|
170
|
-
ac_status = "passed" if ALL scenarios passed
|
|
171
|
-
"failed" if ANY failed
|
|
172
|
-
"blocked" if ANY blocked (none failed)
|
|
173
|
-
"untested" if no scenarios mapped
|
|
174
|
-
verdict = "verified" if all MUST+SHOULD passed
|
|
175
|
-
"partial" if some failed
|
|
176
|
-
"unverified" if all failed/untested
|
|
177
|
-
```
|
|
165
|
+
Map each result to `REQ-NNN:AC-N`. Per AC: `passed` (all scenarios pass), `failed` (any fail), `blocked` (any blocked, none failed), `untested` (no scenarios). Per REQ verdict: `verified` (all MUST+SHOULD AC passed), `partial` (some failed), `unverified` (all failed/untested).
|
|
178
166
|
|
|
179
167
|
### Step 8: Generate Reports
|
|
180
168
|
|
|
@@ -196,7 +184,7 @@ FOR each REQ:
|
|
|
196
184
|
|
|
197
185
|
| Result | Suggestion |
|
|
198
186
|
|--------|------------|
|
|
199
|
-
| All requirements verified | Skill({ skill: "maestro-
|
|
187
|
+
| All requirements verified | Skill({ skill: "maestro-milestone-audit" }) |
|
|
200
188
|
| Failures found | Skill({ skill: "quality-debug", args: "--from-business-test {phase}" }) |
|
|
201
189
|
| `--re-run` all pass | Skill({ skill: "maestro-verify", args: "{phase}" }) |
|
|
202
190
|
| Low coverage (< 60%) | Skill({ skill: "quality-test-gen", args: "{phase}" }) |
|
|
@@ -139,30 +139,22 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
|
139
139
|
|
|
140
140
|
### Session Initialization
|
|
141
141
|
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
.trim()
|
|
159
|
-
|
|
160
|
-
const slug = bugDescription.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
|
|
161
|
-
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
162
|
-
const sessionId = fromUatMatch ? `${dateStr}-debug-P${fromUatMatch[1]}-${slug}` : `${dateStr}-debug-${slug}`
|
|
163
|
-
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
164
|
-
|
|
165
|
-
Bash(`mkdir -p ${sessionFolder}`)
|
|
142
|
+
```
|
|
143
|
+
Parse from $ARGUMENTS:
|
|
144
|
+
AUTO_YES ← --yes | -y
|
|
145
|
+
continueMode ← --continue
|
|
146
|
+
maxConcurrency ← --concurrency | -c N (default: 5)
|
|
147
|
+
fromUat ← --from-uat <phase> (default: null)
|
|
148
|
+
parallelMode ← --parallel
|
|
149
|
+
bugDescription ← remaining text after flag removal
|
|
150
|
+
|
|
151
|
+
Derive:
|
|
152
|
+
slug ← bugDescription kebab-cased, max 40 chars
|
|
153
|
+
dateStr ← UTC+8 YYYYMMDD
|
|
154
|
+
sessionId ← fromUat ? "{dateStr}-debug-P{fromUat}-{slug}" : "{dateStr}-debug-{slug}"
|
|
155
|
+
sessionFolder ← ".workflow/.csv-wave/{sessionId}"
|
|
156
|
+
|
|
157
|
+
mkdir -p {sessionFolder}
|
|
166
158
|
```
|
|
167
159
|
|
|
168
160
|
### Phase 1: Input Resolution -> CSV
|
|
@@ -179,7 +171,7 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
179
171
|
| `--parallel` flag present | parallel (implies from-uat, one agent per gap cluster) |
|
|
180
172
|
| Neither flag | standalone (gather symptoms interactively) |
|
|
181
173
|
|
|
182
|
-
2. **Related session discovery**: Query `state.json.artifacts[]` for
|
|
174
|
+
2. **Related session discovery**: Query `state.json.artifacts[]` for matching phase+milestone. Extract relevant outputs by type: execute -> .summaries/.task/, review -> review.json (guide hypotheses), debug -> understanding.md (avoid re-investigation), test -> uat.md.
|
|
183
175
|
|
|
184
176
|
3. **Symptom collection**:
|
|
185
177
|
|
|
@@ -189,15 +181,9 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
189
181
|
| from-uat | test artifact's uat.md (via registry) | Parse Gaps section, cluster by component |
|
|
190
182
|
| parallel | test artifact's uat.md (via registry) | Same as from-uat, one investigation per cluster |
|
|
191
183
|
|
|
192
|
-
3. **Hypothesis generation**:
|
|
193
|
-
- Analyze code patterns around affected area
|
|
194
|
-
- Generate 3-5 ranked hypotheses
|
|
195
|
-
- Each hypothesis becomes a wave 1 CSV row
|
|
184
|
+
3. **Hypothesis generation**: Per symptom cluster, analyze affected code and generate 3-5 ranked hypotheses (each becomes a wave 1 row).
|
|
196
185
|
|
|
197
|
-
4. **Fix task generation**:
|
|
198
|
-
- `deps` points to the hypothesis ID
|
|
199
|
-
- `context_from` points to the hypothesis ID
|
|
200
|
-
- Wave 2 tasks only execute if their hypothesis is confirmed
|
|
186
|
+
4. **Fix task generation**: Pre-generate wave 2 fix row per hypothesis (`deps`/`context_from` -> hypothesis ID). Only executes if hypothesis confirmed.
|
|
201
187
|
|
|
202
188
|
5. **CSV generation**: Hypothesis rows (wave 1) + fix rows (wave 2).
|
|
203
189
|
|
|
@@ -211,134 +197,60 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
211
197
|
|
|
212
198
|
#### Wave 1: Hypothesis Investigation (Parallel)
|
|
213
199
|
|
|
214
|
-
1.
|
|
215
|
-
2.
|
|
216
|
-
3. No prev_context needed (wave 1 has no predecessors)
|
|
217
|
-
4. Write `wave-1.csv`
|
|
218
|
-
5. Execute:
|
|
200
|
+
1. Extract wave 1 pending rows from master `tasks.csv` into `wave-1.csv` (no prev_context needed)
|
|
201
|
+
2. Execute:
|
|
219
202
|
|
|
220
203
|
```javascript
|
|
221
204
|
spawn_agents_on_csv({
|
|
222
205
|
csv_path: `${sessionFolder}/wave-1.csv`,
|
|
223
206
|
id_column: "id",
|
|
224
207
|
instruction: buildInvestigationInstruction(sessionFolder),
|
|
225
|
-
max_concurrency: maxConcurrency,
|
|
226
|
-
max_runtime_seconds: 600,
|
|
208
|
+
max_concurrency: maxConcurrency, max_runtime_seconds: 600,
|
|
227
209
|
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
228
|
-
output_schema: {
|
|
229
|
-
type: "object",
|
|
230
|
-
properties: {
|
|
231
|
-
id: { type: "string" },
|
|
232
|
-
status: { type: "string", enum: ["confirmed", "refuted", "inconclusive", "failed"] },
|
|
233
|
-
findings: { type: "string" },
|
|
234
|
-
evidence_for: { type: "string" },
|
|
235
|
-
evidence_against: { type: "string" },
|
|
236
|
-
error: { type: "string" }
|
|
237
|
-
},
|
|
238
|
-
required: ["id", "status", "findings"]
|
|
239
|
-
}
|
|
210
|
+
output_schema: { id, status: [confirmed|refuted|inconclusive|failed], findings, evidence_for, evidence_against, error }
|
|
240
211
|
})
|
|
241
212
|
```
|
|
242
213
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
8. **Filter for wave 2**: Mark wave 2 fix tasks as `skipped` if their hypothesis was `refuted` or `inconclusive`
|
|
214
|
+
3. Merge results into master `tasks.csv`, delete `wave-1.csv`
|
|
215
|
+
4. **Filter for wave 2**: Mark fix tasks as `skipped` if their hypothesis was `refuted` or `inconclusive`
|
|
246
216
|
|
|
247
217
|
#### Wave 2: Fix Attempts (Parallel, Confirmed Only)
|
|
248
218
|
|
|
249
|
-
1.
|
|
250
|
-
2.
|
|
251
|
-
3.
|
|
252
|
-
4. Build `prev_context` from wave 1 findings:
|
|
253
|
-
```
|
|
254
|
-
[H1: Null pointer in login handler] CONFIRMED: User object null when DB returns empty...
|
|
255
|
-
[H3: Stale session token] CONFIRMED: Refresh logic only handles 403, not 401...
|
|
256
|
-
```
|
|
257
|
-
5. Write `wave-2.csv` with `prev_context` column
|
|
258
|
-
6. Execute:
|
|
219
|
+
1. If no confirmed hypotheses remain, skip wave 2 entirely
|
|
220
|
+
2. Extract wave 2 pending rows, build `prev_context` from confirmed wave 1 findings
|
|
221
|
+
3. Write `wave-2.csv`, then execute:
|
|
259
222
|
|
|
260
223
|
```javascript
|
|
261
224
|
spawn_agents_on_csv({
|
|
262
225
|
csv_path: `${sessionFolder}/wave-2.csv`,
|
|
263
226
|
id_column: "id",
|
|
264
227
|
instruction: buildFixInstruction(sessionFolder),
|
|
265
|
-
max_concurrency: maxConcurrency,
|
|
266
|
-
max_runtime_seconds: 900,
|
|
228
|
+
max_concurrency: maxConcurrency, max_runtime_seconds: 900,
|
|
267
229
|
output_csv_path: `${sessionFolder}/wave-2-results.csv`,
|
|
268
|
-
output_schema: {
|
|
269
|
-
type: "object",
|
|
270
|
-
properties: {
|
|
271
|
-
id: { type: "string" },
|
|
272
|
-
status: { type: "string", enum: ["fixed", "fix_failed", "failed"] },
|
|
273
|
-
findings: { type: "string" },
|
|
274
|
-
fix_applied: { type: "string" },
|
|
275
|
-
verified: { type: "string" },
|
|
276
|
-
error: { type: "string" }
|
|
277
|
-
},
|
|
278
|
-
required: ["id", "status", "findings"]
|
|
279
|
-
}
|
|
230
|
+
output_schema: { id, status: [fixed|fix_failed|failed], findings, fix_applied, verified, error }
|
|
280
231
|
})
|
|
281
232
|
```
|
|
282
233
|
|
|
283
|
-
|
|
284
|
-
8. Delete `wave-2.csv`
|
|
234
|
+
4. Merge results into master `tasks.csv`, delete `wave-2.csv`
|
|
285
235
|
|
|
286
236
|
### Phase 3: Results Aggregation
|
|
287
237
|
|
|
288
238
|
**Objective**: Generate final results and human-readable report.
|
|
289
239
|
|
|
290
|
-
1.
|
|
291
|
-
2. Export as `results.csv`
|
|
292
|
-
3. Generate `context.md`:
|
|
293
|
-
|
|
294
|
-
```markdown
|
|
295
|
-
# Debug Report -- {bug_description}
|
|
240
|
+
1. Export final `tasks.csv` as `results.csv`
|
|
296
241
|
|
|
297
|
-
|
|
298
|
-
- Mode: {standalone | from-uat | parallel}
|
|
299
|
-
- Hypotheses: {total} investigated
|
|
300
|
-
- Confirmed: {confirmed_count}
|
|
301
|
-
- Fixes applied: {fixed_count}
|
|
302
|
-
- Fixes verified: {verified_count}
|
|
303
|
-
|
|
304
|
-
## Hypothesis Results
|
|
305
|
-
|
|
306
|
-
### H{N}: {title} [{status}]
|
|
307
|
-
**Hypothesis**: {hypothesis}
|
|
308
|
-
**Evidence For**: {evidence_for}
|
|
309
|
-
**Evidence Against**: {evidence_against}
|
|
310
|
-
**Findings**: {findings}
|
|
311
|
-
|
|
312
|
-
## Fix Results
|
|
313
|
-
|
|
314
|
-
### FIX-H{N}: {title} [{status}]
|
|
315
|
-
**Fix Applied**: {fix_applied}
|
|
316
|
-
**Verified**: {verified}
|
|
317
|
-
**Findings**: {findings}
|
|
318
|
-
|
|
319
|
-
## Root Causes
|
|
320
|
-
{aggregated confirmed hypotheses with evidence}
|
|
321
|
-
|
|
322
|
-
## Next Steps
|
|
323
|
-
{suggested actions based on results}
|
|
324
|
-
```
|
|
242
|
+
2. **Generate context.md**: Debug report with summary (mode, hypothesis/confirmed/fixed/verified counts), per-hypothesis results (hypothesis, evidence for/against, findings, status), per-fix results (fix applied, verified, findings), aggregated root causes, and next steps.
|
|
325
243
|
|
|
326
|
-
|
|
327
|
-
- Update `{artifact_dir}/uat.md` gaps with `root_cause`, `fix_direction`, `affected_files`
|
|
244
|
+
3. **UAT update** (if --from-uat): Update `uat.md` gaps with `root_cause`, `fix_direction`, `affected_files` for confirmed hypotheses.
|
|
328
245
|
|
|
329
|
-
|
|
330
|
-
- Update matching issues with status `diagnosed`, add `context.suggested_fix` and `context.notes`
|
|
246
|
+
4. **Issue update**: If `issues.jsonl` exists, update matching issues with status `diagnosed`, add `context.suggested_fix` and `context.notes`.
|
|
331
247
|
|
|
332
|
-
|
|
248
|
+
5. **Register artifact** (phase-scoped only): Append to `state.json.artifacts[]` with `type: "debug"`, `id: DBG-NNN`, `depends_on: triggering_review_id || exec_art.id`.
|
|
333
249
|
|
|
334
|
-
|
|
335
|
-
-
|
|
336
|
-
|
|
337
|
-
-
|
|
338
|
-
→ Ask: "This fix used a non-obvious strategy. Should it be recorded as a learning? (`/spec-add learning`)"
|
|
339
|
-
- **Architectural gap**: If root cause traces to architectural boundary violation or missing constraint:
|
|
340
|
-
→ Ask: "Root cause points to an architectural gap. Should `architecture-constraints.md` be updated? (`/spec-add arch`)"
|
|
341
|
-
- If user confirms, append `<spec-entry>` to matching category file via `spec-add` mechanism
|
|
250
|
+
6. **Post-debug Knowledge Inquiry**: Prompt user to capture knowledge when:
|
|
251
|
+
- Recurring root cause pattern detected -> `/spec-add debug`
|
|
252
|
+
- Non-obvious fix strategy used -> `/spec-add learning`
|
|
253
|
+
- Architectural gap identified -> `/spec-add arch`
|
|
342
254
|
|
|
343
255
|
8. **Next step routing**:
|
|
344
256
|
|
|
@@ -375,11 +287,7 @@ spawn_agents_on_csv({
|
|
|
375
287
|
|
|
376
288
|
#### Protocol
|
|
377
289
|
|
|
378
|
-
|
|
379
|
-
2. **Skip covered**: If discovery of same type + dedup key exists, skip
|
|
380
|
-
3. **Write immediately**: Append findings as found
|
|
381
|
-
4. **Append-only**: Never modify or delete
|
|
382
|
-
5. **Deduplicate**: Check before writing
|
|
290
|
+
Read `discoveries.ndjson` before investigation. Append-only: dedup by type+key before writing, never modify/delete.
|
|
383
291
|
|
|
384
292
|
```bash
|
|
385
293
|
echo '{"ts":"<ISO>","worker":"{id}","type":"root_cause","data":{"location":"src/auth/login.ts:42","cause":"null_dereference","severity":"high","confidence":"confirmed"}}' >> {session_folder}/discoveries.ndjson
|