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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store KnowHow Tool — Create and search reusable knowledge entries.
|
|
3
|
+
*
|
|
4
|
+
* Replaces the deprecated core_memory tool. Writes directly to
|
|
5
|
+
* .workflow/knowhow/ as markdown files, automatically indexed by WikiIndexer.
|
|
6
|
+
*
|
|
7
|
+
* Operations: add, search
|
|
8
|
+
* Storage: .workflow/knowhow/{PREFIX}-{timestamp}.md
|
|
9
|
+
*
|
|
10
|
+
* Content types with type-specific fields:
|
|
11
|
+
* session (KNW-) — session state recovery
|
|
12
|
+
* tip (TIP-) — quick note / reminder
|
|
13
|
+
* template (TPL-) — code/config template [+ lang]
|
|
14
|
+
* recipe (RCP-) — step-by-step guide
|
|
15
|
+
* reference (REF-) — external doc summary [+ source]
|
|
16
|
+
* decision (DCS-) — architecture decision record [+ status]
|
|
17
|
+
*/
|
|
18
|
+
import type { ToolSchema, CcwToolResult } from '../types/tool-schema.js';
|
|
19
|
+
export declare const schema: ToolSchema;
|
|
20
|
+
export declare function handler(params: Record<string, unknown>): Promise<CcwToolResult>;
|
|
21
|
+
//# sourceMappingURL=store-knowhow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-knowhow.d.ts","sourceRoot":"","sources":["../../../src/tools/store-knowhow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA2MzE,eAAO,MAAM,MAAM,EAAE,UA+EpB,CAAC;AAIF,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBrF"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store KnowHow Tool — Create and search reusable knowledge entries.
|
|
3
|
+
*
|
|
4
|
+
* Replaces the deprecated core_memory tool. Writes directly to
|
|
5
|
+
* .workflow/knowhow/ as markdown files, automatically indexed by WikiIndexer.
|
|
6
|
+
*
|
|
7
|
+
* Operations: add, search
|
|
8
|
+
* Storage: .workflow/knowhow/{PREFIX}-{timestamp}.md
|
|
9
|
+
*
|
|
10
|
+
* Content types with type-specific fields:
|
|
11
|
+
* session (KNW-) — session state recovery
|
|
12
|
+
* tip (TIP-) — quick note / reminder
|
|
13
|
+
* template (TPL-) — code/config template [+ lang]
|
|
14
|
+
* recipe (RCP-) — step-by-step guide
|
|
15
|
+
* reference (REF-) — external doc summary [+ source]
|
|
16
|
+
* decision (DCS-) — architecture decision record [+ status]
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync } from 'fs';
|
|
20
|
+
import { join } from 'path';
|
|
21
|
+
import { getProjectRoot } from '../utils/path-validator.js';
|
|
22
|
+
// --- Types ---
|
|
23
|
+
const CATEGORIES = ['session', 'tip', 'template', 'recipe', 'reference', 'decision'];
|
|
24
|
+
const PREFIX_MAP = {
|
|
25
|
+
session: 'KNW',
|
|
26
|
+
tip: 'TIP',
|
|
27
|
+
template: 'TPL',
|
|
28
|
+
recipe: 'RCP',
|
|
29
|
+
reference: 'REF',
|
|
30
|
+
decision: 'DCS',
|
|
31
|
+
};
|
|
32
|
+
const DECISION_STATUSES = ['proposed', 'accepted', 'superseded'];
|
|
33
|
+
// --- Zod Schema ---
|
|
34
|
+
const OperationEnum = z.enum(['add', 'search']);
|
|
35
|
+
const ParamsSchema = z.object({
|
|
36
|
+
operation: OperationEnum,
|
|
37
|
+
// add params
|
|
38
|
+
type: z.enum(CATEGORIES).optional(),
|
|
39
|
+
title: z.string().optional(),
|
|
40
|
+
body: z.string().optional(),
|
|
41
|
+
tags: z.array(z.string()).optional(),
|
|
42
|
+
// type-specific fields (persisted to frontmatter)
|
|
43
|
+
lang: z.string().optional(), // template: programming language
|
|
44
|
+
source: z.string().optional(), // reference: original URL
|
|
45
|
+
status: z.enum(DECISION_STATUSES).optional(), // decision: lifecycle status
|
|
46
|
+
// search params
|
|
47
|
+
query: z.string().optional(),
|
|
48
|
+
limit: z.number().optional().default(20),
|
|
49
|
+
});
|
|
50
|
+
// --- Storage ---
|
|
51
|
+
function getKnowhowDir() {
|
|
52
|
+
return join(getProjectRoot(), '.workflow', 'knowhow');
|
|
53
|
+
}
|
|
54
|
+
function slugify(text) {
|
|
55
|
+
return text
|
|
56
|
+
.toLowerCase()
|
|
57
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
58
|
+
.replace(/^-|-$/g, '');
|
|
59
|
+
}
|
|
60
|
+
function generateId(type) {
|
|
61
|
+
const now = new Date();
|
|
62
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
63
|
+
const ts = `${now.getFullYear()}${pad(now.getMonth() + 1)}${pad(now.getDate())}-${pad(now.getHours())}${pad(now.getMinutes())}`;
|
|
64
|
+
const prefix = PREFIX_MAP[type];
|
|
65
|
+
const filename = `${prefix}-${ts}.md`;
|
|
66
|
+
return { id: `knowhow-${slugify(ts)}`, filename };
|
|
67
|
+
}
|
|
68
|
+
function escapeYamlValue(value) {
|
|
69
|
+
if (/[:\n"'#,{}[\]]/.test(value))
|
|
70
|
+
return JSON.stringify(value);
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
function parseFrontmatter(raw) {
|
|
74
|
+
const match = raw.match(/^---\s*\n([\s\S]*?)\n---\s*\n?/);
|
|
75
|
+
if (!match)
|
|
76
|
+
return { data: {}, body: raw };
|
|
77
|
+
const data = {};
|
|
78
|
+
for (const line of match[1].split('\n')) {
|
|
79
|
+
const kv = line.match(/^(\w[\w\s]*?):\s*(.*)$/);
|
|
80
|
+
if (kv)
|
|
81
|
+
data[kv[1].trim()] = kv[2].trim();
|
|
82
|
+
}
|
|
83
|
+
return { data, body: raw.slice(match[0].length) };
|
|
84
|
+
}
|
|
85
|
+
// --- Operations ---
|
|
86
|
+
function executeAdd(params) {
|
|
87
|
+
const { type, title, body, tags, lang, source, status } = params;
|
|
88
|
+
if (!type)
|
|
89
|
+
return { success: false, error: 'Parameter "type" is required for add operation' };
|
|
90
|
+
if (!title)
|
|
91
|
+
return { success: false, error: 'Parameter "title" is required for add operation' };
|
|
92
|
+
if (!body)
|
|
93
|
+
return { success: false, error: 'Parameter "body" is required for add operation' };
|
|
94
|
+
// Validate type-specific fields
|
|
95
|
+
if (lang && type !== 'template') {
|
|
96
|
+
return { success: false, error: 'Parameter "lang" is only valid for type "template"' };
|
|
97
|
+
}
|
|
98
|
+
if (source && type !== 'reference') {
|
|
99
|
+
return { success: false, error: 'Parameter "source" is only valid for type "reference"' };
|
|
100
|
+
}
|
|
101
|
+
if (status && type !== 'decision') {
|
|
102
|
+
return { success: false, error: 'Parameter "status" is only valid for type "decision"' };
|
|
103
|
+
}
|
|
104
|
+
const dir = getKnowhowDir();
|
|
105
|
+
if (!existsSync(dir))
|
|
106
|
+
mkdirSync(dir, { recursive: true });
|
|
107
|
+
const { id, filename } = generateId(type);
|
|
108
|
+
const filePath = join(dir, filename);
|
|
109
|
+
// Build YAML frontmatter with type-specific fields
|
|
110
|
+
const now = new Date().toISOString();
|
|
111
|
+
const fmLines = ['---'];
|
|
112
|
+
fmLines.push(`title: ${escapeYamlValue(title)}`);
|
|
113
|
+
fmLines.push(`type: ${type}`);
|
|
114
|
+
fmLines.push(`category: ${type}`);
|
|
115
|
+
fmLines.push(`created: ${now}`);
|
|
116
|
+
if (tags && tags.length > 0) {
|
|
117
|
+
fmLines.push(`tags:`);
|
|
118
|
+
for (const t of tags)
|
|
119
|
+
fmLines.push(` - ${t}`);
|
|
120
|
+
}
|
|
121
|
+
// Type-specific frontmatter fields
|
|
122
|
+
if (lang)
|
|
123
|
+
fmLines.push(`lang: ${lang}`);
|
|
124
|
+
if (source)
|
|
125
|
+
fmLines.push(`source: ${escapeYamlValue(source)}`);
|
|
126
|
+
if (status)
|
|
127
|
+
fmLines.push(`status: ${status}`);
|
|
128
|
+
fmLines.push('---', '', body);
|
|
129
|
+
writeFileSync(filePath, fmLines.join('\n'), 'utf-8');
|
|
130
|
+
return {
|
|
131
|
+
success: true,
|
|
132
|
+
result: {
|
|
133
|
+
operation: 'add',
|
|
134
|
+
id,
|
|
135
|
+
filename,
|
|
136
|
+
type,
|
|
137
|
+
path: `knowhow/${filename}`,
|
|
138
|
+
message: `Created ${type} entry: ${id}`,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function executeSearch(params) {
|
|
143
|
+
const { query, limit } = params;
|
|
144
|
+
if (!query)
|
|
145
|
+
return { success: false, error: 'Parameter "query" is required for search operation' };
|
|
146
|
+
const dir = getKnowhowDir();
|
|
147
|
+
if (!existsSync(dir)) {
|
|
148
|
+
return { success: true, result: { operation: 'search', query, matches: [], total_matches: 0 } };
|
|
149
|
+
}
|
|
150
|
+
const queryLower = query.toLowerCase();
|
|
151
|
+
const queryTerms = queryLower.split(/\s+/).filter(Boolean);
|
|
152
|
+
const results = [];
|
|
153
|
+
for (const name of readdirSync(dir)) {
|
|
154
|
+
if (!name.endsWith('.md'))
|
|
155
|
+
continue;
|
|
156
|
+
try {
|
|
157
|
+
const raw = readFileSync(join(dir, name), 'utf-8');
|
|
158
|
+
const { data, body: bodyText } = parseFrontmatter(raw);
|
|
159
|
+
const contentLower = raw.toLowerCase();
|
|
160
|
+
const matchCount = queryTerms.filter((t) => contentLower.includes(t)).length;
|
|
161
|
+
if (matchCount === 0)
|
|
162
|
+
continue;
|
|
163
|
+
const score = matchCount / queryTerms.length;
|
|
164
|
+
const prefix = name.match(/^([A-Z]+)-\d{8}/)?.[1] ?? '';
|
|
165
|
+
const typeCat = Object.entries(PREFIX_MAP).find(([, p]) => p === prefix)?.[0] ?? '';
|
|
166
|
+
results.push({
|
|
167
|
+
id: data.id || name.replace('.md', ''),
|
|
168
|
+
filename: name,
|
|
169
|
+
title: data.title || 'Untitled',
|
|
170
|
+
type: typeCat,
|
|
171
|
+
lang: data.lang,
|
|
172
|
+
source: data.source,
|
|
173
|
+
status: data.status,
|
|
174
|
+
score: Math.round(score * 100) / 100,
|
|
175
|
+
excerpt: bodyText.substring(0, 200) + (bodyText.length > 200 ? '...' : ''),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
results.sort((a, b) => b.score - a.score);
|
|
183
|
+
const limited = results.slice(0, limit);
|
|
184
|
+
return {
|
|
185
|
+
success: true,
|
|
186
|
+
result: {
|
|
187
|
+
operation: 'search',
|
|
188
|
+
query,
|
|
189
|
+
matches: limited,
|
|
190
|
+
total_matches: results.length,
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// --- Tool Schema ---
|
|
195
|
+
export const schema = {
|
|
196
|
+
name: 'store_knowhow',
|
|
197
|
+
description: `Store reusable knowledge (knowhow) entries to .workflow/knowhow/.
|
|
198
|
+
|
|
199
|
+
**Operations:**
|
|
200
|
+
|
|
201
|
+
* **add** — Create a new knowhow entry.
|
|
202
|
+
Required: type, title, body
|
|
203
|
+
Type-specific fields:
|
|
204
|
+
template: lang (programming language)
|
|
205
|
+
reference: source (URL)
|
|
206
|
+
decision: status (proposed | accepted | superseded)
|
|
207
|
+
Optional: tags (string[])
|
|
208
|
+
|
|
209
|
+
* **search** — Full-text search knowhow entries.
|
|
210
|
+
Required: query
|
|
211
|
+
Optional: limit (default: 20)
|
|
212
|
+
|
|
213
|
+
**Types & prefixes:**
|
|
214
|
+
session → KNW-{ts}.md session state recovery
|
|
215
|
+
tip → TIP-{ts}.md quick note / reminder
|
|
216
|
+
template → TPL-{ts}.md code/config template
|
|
217
|
+
recipe → RCP-{ts}.md step-by-step guide
|
|
218
|
+
reference → REF-{ts}.md external doc summary
|
|
219
|
+
decision → DCS-{ts}.md architecture decision record
|
|
220
|
+
|
|
221
|
+
Entries are automatically indexed by WikiIndexer (type=knowhow, category={type}).`,
|
|
222
|
+
inputSchema: {
|
|
223
|
+
type: 'object',
|
|
224
|
+
properties: {
|
|
225
|
+
operation: {
|
|
226
|
+
type: 'string',
|
|
227
|
+
enum: ['add', 'search'],
|
|
228
|
+
description: 'Operation to perform',
|
|
229
|
+
},
|
|
230
|
+
type: {
|
|
231
|
+
type: 'string',
|
|
232
|
+
enum: CATEGORIES,
|
|
233
|
+
description: 'Knowhow content type. Required for add.',
|
|
234
|
+
},
|
|
235
|
+
title: {
|
|
236
|
+
type: 'string',
|
|
237
|
+
description: 'Entry title. Required for add.',
|
|
238
|
+
},
|
|
239
|
+
body: {
|
|
240
|
+
type: 'string',
|
|
241
|
+
description: 'Entry body in markdown. Required for add.',
|
|
242
|
+
},
|
|
243
|
+
tags: {
|
|
244
|
+
type: 'array',
|
|
245
|
+
items: { type: 'string' },
|
|
246
|
+
description: 'Categorization tags.',
|
|
247
|
+
},
|
|
248
|
+
// type-specific
|
|
249
|
+
lang: {
|
|
250
|
+
type: 'string',
|
|
251
|
+
description: '[template] Programming language (e.g. typescript, python, bash, yaml).',
|
|
252
|
+
},
|
|
253
|
+
source: {
|
|
254
|
+
type: 'string',
|
|
255
|
+
description: '[reference] Original URL or document identifier.',
|
|
256
|
+
},
|
|
257
|
+
status: {
|
|
258
|
+
type: 'string',
|
|
259
|
+
enum: DECISION_STATUSES,
|
|
260
|
+
description: '[decision] Lifecycle status: proposed → accepted → superseded.',
|
|
261
|
+
},
|
|
262
|
+
// search
|
|
263
|
+
query: {
|
|
264
|
+
type: 'string',
|
|
265
|
+
description: 'Search query. Required for search.',
|
|
266
|
+
},
|
|
267
|
+
limit: {
|
|
268
|
+
type: 'number',
|
|
269
|
+
description: 'Max search results (default: 20).',
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
required: ['operation'],
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
// --- Handler ---
|
|
276
|
+
export async function handler(params) {
|
|
277
|
+
const parsed = ParamsSchema.safeParse(params);
|
|
278
|
+
if (!parsed.success) {
|
|
279
|
+
return { success: false, error: `Invalid params: ${parsed.error.message}` };
|
|
280
|
+
}
|
|
281
|
+
try {
|
|
282
|
+
switch (parsed.data.operation) {
|
|
283
|
+
case 'add':
|
|
284
|
+
return executeAdd(parsed.data);
|
|
285
|
+
case 'search':
|
|
286
|
+
return executeSearch(parsed.data);
|
|
287
|
+
default:
|
|
288
|
+
return { success: false, error: `Unknown operation: ${parsed.data.operation}` };
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
return { success: false, error: error.message };
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=store-knowhow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-knowhow.js","sourceRoot":"","sources":["../../../src/tools/store-knowhow.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/shared/agent-types.ts
CHANGED
|
@@ -36,6 +36,8 @@ export interface AgentConfig {
|
|
|
36
36
|
envFile?: string;
|
|
37
37
|
/** When true, spawn in interactive mode (stdin kept open for follow-up messages) */
|
|
38
38
|
interactive?: boolean;
|
|
39
|
+
/** Path to MCP config JSON file for CLI agents (claude-code --mcp-config) */
|
|
40
|
+
mcpConfigPath?: string;
|
|
39
41
|
/** Opaque metadata bag — used to pass team session context through the spawn pipeline */
|
|
40
42
|
metadata?: Record<string, unknown>;
|
|
41
43
|
}
|
package/workflows/analyze.md
CHANGED
|
@@ -54,47 +54,19 @@ $ARGUMENTS: "[phase|topic] [-y] [-c] [-q]"
|
|
|
54
54
|
## Scope Routing
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// Scope determination
|
|
71
|
-
IF $ARGUMENTS is empty:
|
|
72
|
-
IF state.json.current_milestone is non-null AND roadmap.md exists:
|
|
73
|
-
→ scope = "milestone"
|
|
74
|
-
→ milestone_slug = slugify(current_milestone name)
|
|
75
|
-
→ Set OUTPUT_DIR = .workflow/scratch/analyze-{milestone_slug}-{date}/
|
|
76
|
-
ELSE:
|
|
77
|
-
→ ERROR E001 "No args and no roadmap — provide topic text or create roadmap first"
|
|
78
|
-
|
|
79
|
-
ELSE IF $ARGUMENTS matches /^\d+$/:
|
|
80
|
-
IF state.json.current_milestone is non-null AND roadmap.md exists:
|
|
81
|
-
→ scope = "phase"
|
|
82
|
-
→ phase_num = parsed number
|
|
83
|
-
→ phase_slug = resolve from roadmap.md
|
|
84
|
-
→ Set OUTPUT_DIR = .workflow/scratch/analyze-{phase_slug}-{date}/
|
|
85
|
-
ELSE:
|
|
86
|
-
→ ERROR "Phase number requires init + roadmap"
|
|
87
|
-
|
|
88
|
-
ELSE (text argument):
|
|
89
|
-
→ topic_slug = slugify(text, max 40 chars)
|
|
90
|
-
IF state.json.current_milestone is non-null:
|
|
91
|
-
→ scope = "adhoc"
|
|
92
|
-
ELSE:
|
|
93
|
-
→ scope = "standalone"
|
|
94
|
-
→ Set OUTPUT_DIR = .workflow/scratch/analyze-{topic_slug}-{date}/
|
|
95
|
-
|
|
96
|
-
// Create output directory
|
|
97
|
-
mkdir -p {OUTPUT_DIR}
|
|
57
|
+
Worktree guard: If .workflow/worktree-scope.json exists, reject phase args not in owned_phases.
|
|
58
|
+
|
|
59
|
+
Auto-bootstrap: Create minimal .workflow/state.json if missing.
|
|
60
|
+
|
|
61
|
+
Scope determination → OUTPUT_DIR:
|
|
62
|
+
(no args) + milestone + roadmap → scope="milestone", OUTPUT_DIR=.workflow/scratch/analyze-{milestone_slug}-{date}/
|
|
63
|
+
(no args) without milestone/roadmap → ERROR E001
|
|
64
|
+
(number) + milestone + roadmap → scope="phase", OUTPUT_DIR=.workflow/scratch/analyze-{phase_slug}-{date}/
|
|
65
|
+
(number) without milestone/roadmap → ERROR
|
|
66
|
+
(text) + milestone → scope="adhoc", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}-{date}/
|
|
67
|
+
(text) without milestone → scope="standalone", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}-{date}/
|
|
68
|
+
|
|
69
|
+
Create OUTPUT_DIR.
|
|
98
70
|
```
|
|
99
71
|
|
|
100
72
|
## Output Structure
|
|
@@ -152,20 +124,8 @@ Before writing any new artifacts, archive existing ones to preserve history:
|
|
|
152
124
|
```
|
|
153
125
|
ARCHIVE_TARGETS = ["discussion.md", "analysis.md", "explorations.json", "perspectives.json", "conclusions.json", "exploration-codebase.json"]
|
|
154
126
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
IF file exists "$OUTPUT_DIR/${artifact}":
|
|
158
|
-
has_existing = true
|
|
159
|
-
break
|
|
160
|
-
|
|
161
|
-
IF has_existing:
|
|
162
|
-
mkdir -p "$OUTPUT_DIR/.history"
|
|
163
|
-
TIMESTAMP = current timestamp formatted as "YYYY-MM-DDTHH-mm-ss"
|
|
164
|
-
FOR artifact IN ARCHIVE_TARGETS:
|
|
165
|
-
IF file exists "$OUTPUT_DIR/${artifact}":
|
|
166
|
-
// Extract name and extension: "analysis.md" → "analysis" + "md"
|
|
167
|
-
mv "$OUTPUT_DIR/${artifact}" "$OUTPUT_DIR/.history/${name}-${TIMESTAMP}.${ext}"
|
|
168
|
-
display "Archived previous analysis artifacts to .history/"
|
|
127
|
+
If any ARCHIVE_TARGETS exist in OUTPUT_DIR:
|
|
128
|
+
Move each existing target to OUTPUT_DIR/.history/{name}-{YYYY-MM-DDTHH-mm-ss}.{ext}
|
|
169
129
|
```
|
|
170
130
|
|
|
171
131
|
### Step 2: Scoping & Dimension Selection
|
|
@@ -222,47 +182,18 @@ Codebase exploration FIRST, then (optionally) external research, then CLI analys
|
|
|
222
182
|
Orchestrator performs targeted web searches, then hands results to `workflow-phase-researcher` agent for synthesis.
|
|
223
183
|
|
|
224
184
|
```
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
Agent(
|
|
238
|
-
subagent_type="workflow-phase-researcher",
|
|
239
|
-
prompt="""
|
|
240
|
-
<objective>
|
|
241
|
-
Synthesize the following web search results for Phase {PHASE_NUM}: {phase_name}.
|
|
242
|
-
Goal: {phase_goal}
|
|
243
|
-
</objective>
|
|
244
|
-
|
|
245
|
-
<search_results>
|
|
246
|
-
{raw_search_output}
|
|
247
|
-
</search_results>
|
|
248
|
-
|
|
249
|
-
<task>
|
|
250
|
-
From the search results above, extract and structure:
|
|
251
|
-
- ## Standard Stack: concrete library recommendations with versions
|
|
252
|
-
- ## Architecture Patterns: recommended patterns for this type of work
|
|
253
|
-
- ## Don't Hand-Roll: problems with existing solutions (don't build custom)
|
|
254
|
-
- ## Common Pitfalls: mistakes to avoid
|
|
255
|
-
|
|
256
|
-
Be prescriptive ("use X") not exploratory ("consider X or Y").
|
|
257
|
-
Cite sources. Assign confidence levels (HIGH/MEDIUM/LOW).
|
|
258
|
-
Do NOT write any files — return structured markdown only.
|
|
259
|
-
</task>
|
|
260
|
-
""",
|
|
261
|
-
run_in_background=false
|
|
262
|
-
)
|
|
263
|
-
|
|
264
|
-
// Step 4.0.3: Store as researchContext (in-memory, no file written)
|
|
265
|
-
researchContext = agent_output
|
|
185
|
+
1. WebSearch 2-3 queries: "{phase_goal} standard library stack", "architecture patterns best practices", "common pitfalls mistakes"
|
|
186
|
+
Fetch top 1-2 results per query for official docs.
|
|
187
|
+
|
|
188
|
+
2. Hand raw search output to workflow-phase-researcher agent to synthesize into:
|
|
189
|
+
- ## Standard Stack: concrete library recommendations with versions
|
|
190
|
+
- ## Architecture Patterns: recommended patterns
|
|
191
|
+
- ## Don't Hand-Roll: problems with existing solutions
|
|
192
|
+
- ## Common Pitfalls: mistakes to avoid
|
|
193
|
+
Style: prescriptive ("use X"), cite sources, confidence levels (HIGH/MEDIUM/LOW).
|
|
194
|
+
Agent returns structured markdown only (no file writes).
|
|
195
|
+
|
|
196
|
+
3. Store agent output as researchContext (in-memory).
|
|
266
197
|
```
|
|
267
198
|
|
|
268
199
|
`researchContext` is passed into Step 4.2 CLI Analysis and Step 8 Decision Extraction.
|
|
@@ -550,75 +481,34 @@ Write to `OUTPUT_DIR/context.md`:
|
|
|
550
481
|
**8.6: Update project.md Key Decisions** (phase mode only)
|
|
551
482
|
|
|
552
483
|
```
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
For each Locked decision from Step 8.4:
|
|
558
|
-
Check if decision already exists in Key Decisions table (by title match)
|
|
559
|
-
If not duplicate:
|
|
560
|
-
Append row to Key Decisions table:
|
|
561
|
-
| {decision title} | {rationale summary} | Phase {NN} — {date} |
|
|
562
|
-
|
|
563
|
-
Write updated project.md
|
|
564
|
-
Display: "project.md: {count} key decisions recorded"
|
|
484
|
+
Phase mode only: Append each new Locked decision to .workflow/project.md "## Key Decisions" table.
|
|
485
|
+
Row format: | {decision title} | {rationale summary} | Phase {NN} — {date} |
|
|
486
|
+
Skip duplicates (match by title).
|
|
565
487
|
```
|
|
566
488
|
|
|
567
489
|
**8.7: Auto-create Issues from Deferred Items**
|
|
568
490
|
|
|
569
491
|
```
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
FOR each item IN deferred_items:
|
|
578
|
-
issue_id = "ISS-{today}-{counter padded to 3 digits}"
|
|
579
|
-
issue = {
|
|
580
|
-
id: issue_id,
|
|
581
|
-
title: "Deferred: " + item.title,
|
|
582
|
-
status: "deferred",
|
|
583
|
-
priority: 5,
|
|
584
|
-
severity: "low",
|
|
585
|
-
source: "analyze",
|
|
586
|
-
phase_ref: PHASE_NUM,
|
|
587
|
-
description: item.context + " -- Chosen to defer: " + item.reason,
|
|
588
|
-
tags: ["deferred", "analyze"],
|
|
589
|
-
created_at: now()
|
|
590
|
-
}
|
|
591
|
-
Append JSON line to .workflow/issues/issues.jsonl
|
|
592
|
-
counter++
|
|
593
|
-
|
|
594
|
-
Print: "Created {deferred_items.length} deferred issues for tracking"
|
|
492
|
+
For each Deferred decision, create an issue in .workflow/issues/issues.jsonl:
|
|
493
|
+
id: "ISS-{YYYYMMDD}-{NNN}"
|
|
494
|
+
title: "Deferred: {item.title}"
|
|
495
|
+
status: "deferred", priority: 5, severity: "low"
|
|
496
|
+
source: "analyze", phase_ref: PHASE_NUM
|
|
497
|
+
description: "{item.context} -- Chosen to defer: {item.reason}"
|
|
498
|
+
tags: ["deferred", "analyze"]
|
|
595
499
|
```
|
|
596
500
|
|
|
597
501
|
### Step 8.8: Register Artifact
|
|
598
502
|
|
|
599
503
|
```
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
milestone: state.json.current_milestone, // null if standalone
|
|
609
|
-
phase: phase_num, // null if milestone/adhoc/standalone
|
|
610
|
-
scope: scope, // "milestone"|"phase"|"adhoc"|"standalone"
|
|
611
|
-
path: OUTPUT_DIR relative to .workflow/, // e.g. "scratch/analyze-auth-2026-04-20"
|
|
612
|
-
status: "completed",
|
|
613
|
-
depends_on: null,
|
|
614
|
-
harvested: false,
|
|
615
|
-
created_at: session_start_time,
|
|
616
|
-
completed_at: now()
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
state.json.artifacts.push(artifact)
|
|
620
|
-
state.json.last_updated = now()
|
|
621
|
-
Write state.json (atomic: write tmp + rename)
|
|
504
|
+
Register artifact in .workflow/state.json:
|
|
505
|
+
id: "ANL-{next sequential 3-digit id}"
|
|
506
|
+
type: "analyze", scope: scope, status: "completed"
|
|
507
|
+
milestone: current_milestone (null if standalone)
|
|
508
|
+
phase: phase_num (null if milestone/adhoc/standalone)
|
|
509
|
+
path: OUTPUT_DIR relative to .workflow/
|
|
510
|
+
harvested: false, created_at: session_start_time, completed_at: now()
|
|
511
|
+
Atomic write (tmp + rename).
|
|
622
512
|
```
|
|
623
513
|
|
|
624
514
|
### Step 9: Report & Next Step
|
|
@@ -649,36 +539,22 @@ Handle selection:
|
|
|
649
539
|
Before invoking maestro-plan, build and persist `implementation_scope` so the planner has concrete "what + done-when" specs:
|
|
650
540
|
|
|
651
541
|
```
|
|
652
|
-
// Step A: Build
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
.
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
// Step B: User scope confirmation (skip in auto mode / quick mode)
|
|
670
|
-
IF NOT AUTO_MODE:
|
|
671
|
-
Display implementation scope summary:
|
|
672
|
-
For each item: objective [priority], target files, "Done when: ..."
|
|
673
|
-
AskUserQuestion (single-select, header: "Scope确认"):
|
|
674
|
-
- "确认执行": Scope is clear, proceed to planning
|
|
675
|
-
- "调整范围": Narrow or expand scope
|
|
676
|
-
- "补充标准": Add/refine acceptance criteria
|
|
677
|
-
Handle adjustments, re-confirm if needed
|
|
678
|
-
|
|
679
|
-
// Step C: Persist to conclusions.json
|
|
680
|
-
conclusions.implementation_scope = implementation_scope
|
|
681
|
-
Write updated conclusions.json to OUTPUT_DIR
|
|
542
|
+
// Step A: Build implementation_scope from accepted/modified recommendations (sorted by priority)
|
|
543
|
+
Each scope item:
|
|
544
|
+
objective: rec.action // WHAT
|
|
545
|
+
rationale: rec.rationale // WHY
|
|
546
|
+
priority: rec.priority
|
|
547
|
+
target_files: from rec.steps targets + matching code_anchors // WHERE
|
|
548
|
+
acceptance_criteria: from rec.steps verification/description // DONE WHEN
|
|
549
|
+
change_summary: "{target}: {description}" per step // HOW
|
|
550
|
+
|
|
551
|
+
// Step B: User scope confirmation (skip in auto/quick mode)
|
|
552
|
+
AskUserQuestion (single-select, header: "Scope确认"):
|
|
553
|
+
- "确认执行": Proceed to planning
|
|
554
|
+
- "调整范围": Narrow or expand scope
|
|
555
|
+
- "补充标准": Add/refine acceptance criteria
|
|
556
|
+
|
|
557
|
+
// Step C: Persist implementation_scope to conclusions.json
|
|
682
558
|
|
|
683
559
|
// Step D: Invoke plan
|
|
684
560
|
Phase mode: Skill({ skill: "maestro-plan", args: "{phase}" })
|