maestro-flow 0.3.14 → 0.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/maestro-amend.md +300 -0
- package/.claude/commands/maestro-analyze.md +1 -49
- package/.claude/commands/maestro-composer.md +354 -0
- package/.claude/commands/maestro-execute.md +2 -56
- package/.claude/commands/maestro-fork.md +3 -50
- package/.claude/commands/maestro-merge.md +2 -26
- package/.claude/commands/maestro-milestone-audit.md +1 -5
- package/.claude/commands/maestro-milestone-complete.md +1 -7
- package/.claude/commands/maestro-plan.md +6 -127
- package/.claude/commands/maestro-player.md +404 -0
- package/.claude/commands/maestro-roadmap.md +3 -101
- package/.claude/commands/maestro-spec-generate.md +1 -25
- package/.claude/commands/maestro-ui-design.md +14 -73
- package/.claude/commands/maestro-verify.md +1 -32
- package/.claude/commands/maestro.md +13 -30
- package/.claude/commands/manage-harvest.md +7 -44
- package/.claude/commands/manage-knowhow-capture.md +193 -0
- package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
- package/.claude/commands/manage-learn.md +3 -28
- package/.claude/commands/manage-status.md +1 -20
- package/.claude/commands/manage-wiki.md +1 -1
- package/.claude/commands/quality-business-test.md +1 -1
- package/.claude/commands/quality-debug.md +3 -18
- package/.claude/commands/quality-integration-test.md +3 -23
- package/.claude/commands/quality-retrospective.md +1 -28
- package/.claude/commands/quality-review.md +3 -52
- package/.claude/commands/quality-test-gen.md +1 -10
- package/.claude/commands/quality-test.md +3 -25
- package/.claude/commands/spec-add.md +1 -21
- package/.claude/commands/spec-load.md +1 -16
- package/.claude/commands/wiki-connect.md +2 -112
- package/.claude/commands/wiki-digest.md +2 -141
- package/.claude/skills/skill-iter-tune/SKILL.md +382 -0
- package/.claude/skills/skill-iter-tune/phases/01-setup.md +144 -0
- package/.claude/skills/skill-iter-tune/phases/02-execute.md +292 -0
- package/.claude/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
- package/.claude/skills/skill-iter-tune/phases/04-improve.md +186 -0
- package/.claude/skills/skill-iter-tune/phases/05-report.md +166 -0
- package/.claude/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
- package/.claude/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
- package/.claude/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
- package/.claude/skills/workflow-skill-designer/SKILL.md +496 -0
- package/.claude/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
- package/.claude/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
- package/.claude/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
- package/.claude/skills/workflow-skill-designer/phases/04-validation.md +471 -0
- package/.codex/skills/learn-decompose/SKILL.md +2 -8
- package/.codex/skills/maestro/SKILL.md +60 -146
- package/.codex/skills/maestro-analyze/SKILL.md +52 -150
- package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
- package/.codex/skills/maestro-composer/SKILL.md +213 -0
- package/.codex/skills/maestro-execute/SKILL.md +46 -177
- package/.codex/skills/maestro-init/SKILL.md +7 -51
- package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
- package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
- package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
- package/.codex/skills/maestro-overlay/SKILL.md +23 -92
- package/.codex/skills/maestro-plan/SKILL.md +42 -166
- package/.codex/skills/maestro-player/SKILL.md +323 -0
- package/.codex/skills/maestro-quick/SKILL.md +5 -48
- package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
- package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
- package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
- package/.codex/skills/maestro-verify/SKILL.md +39 -136
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
- package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
- package/.codex/skills/manage-issue/SKILL.md +1 -6
- package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
- package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
- package/.codex/skills/manage-learn/SKILL.md +17 -71
- package/.codex/skills/manage-status/SKILL.md +4 -35
- package/.codex/skills/manage-wiki/SKILL.md +1 -1
- package/.codex/skills/quality-business-test/SKILL.md +2 -14
- package/.codex/skills/quality-debug/SKILL.md +41 -133
- package/.codex/skills/quality-integration-test/SKILL.md +36 -145
- package/.codex/skills/quality-refactor/SKILL.md +6 -59
- package/.codex/skills/quality-retrospective/SKILL.md +292 -531
- package/.codex/skills/quality-review/SKILL.md +30 -65
- package/.codex/skills/quality-sync/SKILL.md +2 -11
- package/.codex/skills/quality-test/SKILL.md +4 -45
- package/.codex/skills/quality-test-gen/SKILL.md +33 -121
- package/.codex/skills/spec-add/SKILL.md +2 -9
- package/.codex/skills/spec-load/SKILL.md +4 -14
- package/.codex/skills/spec-map/SKILL.md +4 -37
- package/.codex/skills/spec-remove/SKILL.md +3 -35
- package/.codex/skills/spec-setup/SKILL.md +2 -19
- package/.codex/skills/team-coordinate/SKILL.md +20 -132
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
- package/.codex/skills/team-executor/SKILL.md +7 -66
- package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
- package/.codex/skills/team-executor/specs/session-schema.md +22 -56
- package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
- package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
- package/.codex/skills/team-review/SKILL.md +12 -86
- package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
- package/.codex/skills/team-tech-debt/SKILL.md +11 -50
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
- package/.codex/skills/team-testing/SKILL.md +14 -99
- package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
- package/.codex/skills/wiki-connect/SKILL.md +2 -5
- package/README.md +6 -0
- package/README.zh-CN.md +6 -0
- package/chains/_intent-map.json +7 -7
- package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
- package/chains/singles/{memory.json → knowhow.json} +6 -6
- package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
- package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
- package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
- package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
- package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
- package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
- package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
- package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
- package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
- package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
- package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
- package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
- package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
- package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
- package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
- package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
- package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
- package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
- package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
- package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
- package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
- package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
- package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
- package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
- package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
- package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
- package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
- package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
- package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
- package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
- package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
- package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
- package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
- package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
- package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
- package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
- package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
- package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
- package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
- package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
- package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
- package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
- package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
- package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
- package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
- package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
- package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
- package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
- package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
- package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
- package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
- package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
- package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
- package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
- package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
- package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
- package/dashboard/dist-server/src/commands/delegate.js +11 -8
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dist/shared/agent-types.d.ts +2 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/cli.js +2 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +11 -8
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +1 -1
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/knowhow.d.ts +10 -0
- package/dist/src/commands/knowhow.d.ts.map +1 -0
- package/dist/src/commands/knowhow.js +217 -0
- package/dist/src/commands/knowhow.js.map +1 -0
- package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
- package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
- package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
- package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
- package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
- package/dist/src/commands/overlay-ui/index.js +70 -44
- package/dist/src/commands/overlay-ui/index.js.map +1 -1
- package/dist/src/commands/overlay.d.ts.map +1 -1
- package/dist/src/commands/overlay.js +4 -3
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts +1 -1
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js +40 -13
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/core/overlay/loader.d.ts.map +1 -1
- package/dist/src/core/overlay/loader.js +6 -0
- package/dist/src/core/overlay/loader.js.map +1 -1
- package/dist/src/core/overlay/types.d.ts +5 -1
- package/dist/src/core/overlay/types.d.ts.map +1 -1
- package/dist/src/core/overlay/types.js +1 -1
- package/dist/src/core/overlay/types.js.map +1 -1
- package/dist/src/hooks/context-monitor.js +1 -1
- package/dist/src/hooks/context-monitor.js.map +1 -1
- package/dist/src/hooks/skill-context.js +1 -1
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.d.ts +4 -0
- package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.js +73 -4
- package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
- package/dist/src/tools/index.js +2 -2
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/store-knowhow.d.ts +21 -0
- package/dist/src/tools/store-knowhow.d.ts.map +1 -0
- package/dist/src/tools/store-knowhow.js +295 -0
- package/dist/src/tools/store-knowhow.js.map +1 -0
- package/package.json +1 -1
- package/shared/agent-types.ts +2 -0
- package/templates/workflows/specs/node-catalog.md +170 -0
- package/templates/workflows/specs/template-schema.md +157 -0
- package/workflows/analyze.md +61 -185
- package/workflows/brainstorm.md +3 -23
- package/workflows/codebase-rebuild.md +79 -191
- package/workflows/codebase-refresh.md +26 -124
- package/workflows/debug.md +21 -141
- package/workflows/execute.md +183 -350
- package/workflows/fork.md +72 -230
- package/workflows/harvest.md +12 -79
- package/workflows/init.md +3 -17
- package/workflows/integration-test.md +21 -190
- package/workflows/issue-analyze.md +35 -153
- package/workflows/issue-discover.md +88 -263
- package/workflows/issue-execute.md +29 -208
- package/workflows/issue-plan.md +33 -154
- package/workflows/issue.md +44 -202
- package/workflows/knowhow.md +374 -0
- package/workflows/learn.md +30 -177
- package/workflows/maestro-coordinate.codex.md +77 -362
- package/workflows/maestro-link-coordinate.md +12 -61
- package/workflows/maestro.codex.md +124 -457
- package/workflows/maestro.md +562 -976
- package/workflows/map.md +16 -53
- package/workflows/merge.md +42 -197
- package/workflows/milestone-audit.md +5 -43
- package/workflows/milestone-complete.md +11 -60
- package/workflows/plan.md +176 -387
- package/workflows/quick.md +25 -174
- package/workflows/refactor.md +28 -221
- package/workflows/retrospective.md +104 -443
- package/workflows/review.md +87 -299
- package/workflows/roadmap.md +117 -97
- package/workflows/spec-generate.md +22 -118
- package/workflows/specs-add.md +5 -25
- package/workflows/specs-load.md +1 -5
- package/workflows/specs-remove.md +0 -11
- package/workflows/specs-setup.md +11 -47
- package/workflows/status.md +58 -200
- package/workflows/sync.md +28 -141
- package/workflows/test-gen.md +23 -100
- package/workflows/test.md +15 -125
- package/workflows/ui-design.md +139 -465
- package/workflows/ui-style.md +36 -228
- package/workflows/verify.md +52 -273
- package/workflows/wiki-connect.md +9 -46
- package/workflows/wiki-digest.md +7 -50
- package/workflows/wiki-manage.md +11 -108
- package/.claude/commands/maestro-coordinate.md +0 -63
- package/.claude/commands/manage-memory-capture.md +0 -59
- package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
- package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
- package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
- package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
- package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
- package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
- package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
- package/workflows/maestro-coordinate.md +0 -582
- package/workflows/memory.md +0 -451
package/workflows/status.md
CHANGED
|
@@ -17,31 +17,14 @@ Status dashboard with intelligent routing.
|
|
|
17
17
|
3. Read `.workflow/roadmap.md`:
|
|
18
18
|
- Extract phase list with titles
|
|
19
19
|
|
|
20
|
-
4. Load Issue State:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
planning: count(status == "planning"),
|
|
29
|
-
planned: count(status == "planned"),
|
|
30
|
-
executing: count(status == "executing")
|
|
31
|
-
}
|
|
32
|
-
by_severity: {
|
|
33
|
-
critical: count(severity == "critical"),
|
|
34
|
-
high: count(severity == "high"),
|
|
35
|
-
medium: count(severity == "medium"),
|
|
36
|
-
low: count(severity == "low")
|
|
37
|
-
}
|
|
38
|
-
total_open: count where status NOT in [completed, failed, deferred]
|
|
39
|
-
critical_open: count where severity == "critical" AND status NOT in [completed, failed, deferred]
|
|
40
|
-
critical_issues: list of {id, title, status} where severity == "critical" AND status NOT in [completed, failed, deferred]
|
|
41
|
-
```
|
|
42
|
-
- Store as issue_state
|
|
43
|
-
- Else:
|
|
44
|
-
- issue_state = null (no issues tracked)
|
|
20
|
+
4. Load Issue State from `.workflow/issues/issues.jsonl` (if exists):
|
|
21
|
+
```
|
|
22
|
+
Compute: by_status (registered/diagnosed/planning/planned/executing counts),
|
|
23
|
+
by_severity (critical/high/medium/low counts),
|
|
24
|
+
total_open (exclude completed/failed/deferred),
|
|
25
|
+
critical_open + critical_issues list {id, title, status}
|
|
26
|
+
```
|
|
27
|
+
If file missing → issue_state = null
|
|
45
28
|
|
|
46
29
|
---
|
|
47
30
|
|
|
@@ -50,37 +33,15 @@ Status dashboard with intelligent routing.
|
|
|
50
33
|
Derive phase progress from `state.json.artifacts[]`:
|
|
51
34
|
|
|
52
35
|
```
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
has_plan = phase_artifacts.some(a => a.type == "plan" && a.status == "completed")
|
|
63
|
-
has_execute = phase_artifacts.some(a => a.type == "execute" && a.status == "completed")
|
|
64
|
-
has_verify = phase_artifacts.some(a => a.type == "verify" && a.status == "completed")
|
|
65
|
-
|
|
66
|
-
// Derive status from artifact chain
|
|
67
|
-
status = has_verify ? "verified" :
|
|
68
|
-
has_execute ? "executed" :
|
|
69
|
-
has_plan ? "planned" :
|
|
70
|
-
has_analyze ? "analyzed" :
|
|
71
|
-
"pending"
|
|
72
|
-
|
|
73
|
-
// Get task counts from plan artifacts
|
|
74
|
-
plan_artifact = phase_artifacts.find(a => a.type == "plan" && a.status == "completed")
|
|
75
|
-
IF plan_artifact:
|
|
76
|
-
plan_json = read .workflow/{plan_artifact.path}/plan.json
|
|
77
|
-
tasks_total = plan_json.task_ids.length
|
|
78
|
-
tasks_completed = count .task/TASK-*.json where status == "completed"
|
|
79
|
-
|
|
80
|
-
phases[] = { number, slug, title, status, tasks_total, tasks_completed, has_verify }
|
|
81
|
-
|
|
82
|
-
// Also show adhoc artifacts
|
|
83
|
-
adhoc_artifacts = milestone_artifacts.filter(a => a.scope == "adhoc")
|
|
36
|
+
milestone_artifacts = artifacts filtered by current_milestone
|
|
37
|
+
phases_from_roadmap = parse roadmap.md → { number, slug, title }
|
|
38
|
+
|
|
39
|
+
Per phase: check completed artifact types (analyze/plan/execute/verify)
|
|
40
|
+
→ derive status: verified > executed > planned > analyzed > pending
|
|
41
|
+
→ get task counts from plan artifact's plan.json if available
|
|
42
|
+
|
|
43
|
+
Output: phases[] = { number, slug, title, status, tasks_total, tasks_completed, has_verify }
|
|
44
|
+
Also collect: adhoc_artifacts (scope == "adhoc")
|
|
84
45
|
```
|
|
85
46
|
|
|
86
47
|
---
|
|
@@ -88,100 +49,35 @@ adhoc_artifacts = milestone_artifacts.filter(a => a.scope == "adhoc")
|
|
|
88
49
|
## Step 2.5: Artifact Registry Consistency Check
|
|
89
50
|
|
|
90
51
|
```
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
artifact_phases = unique phase numbers from milestone_artifacts
|
|
94
|
-
|
|
95
|
-
// Check for unregistered work (artifacts without matching roadmap phases)
|
|
96
|
-
orphan_artifacts = milestone_artifacts.filter(a => a.phase && !roadmap_phases.includes(a.phase))
|
|
97
|
-
IF orphan_artifacts.length > 0:
|
|
98
|
-
Display WARNING: "Artifacts reference phases not in roadmap"
|
|
99
|
-
|
|
100
|
-
ELSE IF NOT .workflow/roadmap.md exists AND milestone_artifacts.length > 0:
|
|
101
|
-
Display WARNING:
|
|
102
|
-
⚠️ Roadmap missing but artifact registry has {milestone_artifacts.length} entries.
|
|
103
|
-
This may indicate a completed milestone. Run /maestro continue to plan next milestone.
|
|
52
|
+
If roadmap exists → warn if any artifacts reference phases not in roadmap (orphan check)
|
|
53
|
+
If roadmap missing but artifacts exist → warn: may indicate completed milestone, suggest /maestro continue
|
|
104
54
|
```
|
|
105
55
|
|
|
106
56
|
---
|
|
107
57
|
|
|
108
58
|
## Step 3: Compute Progress
|
|
109
59
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
executing = phases.filter(status == "executing").length
|
|
115
|
-
planning = phases.filter(status == "planning").length
|
|
116
|
-
exploring = phases.filter(status == "exploring").length
|
|
117
|
-
pending = phases.filter(status == "pending").length
|
|
118
|
-
blocked = phases.filter(status == "blocked").length
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
2. Calculate overall progress:
|
|
122
|
-
```
|
|
123
|
-
progress_pct = (completed / total) * 100
|
|
124
|
-
```
|
|
60
|
+
```
|
|
61
|
+
Count phases by status: completed, executing, planning, exploring, pending, blocked
|
|
62
|
+
progress_pct = (completed / total) * 100
|
|
63
|
+
```
|
|
125
64
|
|
|
126
65
|
---
|
|
127
66
|
|
|
128
67
|
## Step 4: Display Dashboard
|
|
129
68
|
|
|
130
69
|
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
STATUS: {status}
|
|
135
|
-
PROGRESS: [{progress_bar}] {completed}/{total} phases ({progress_pct}%)
|
|
136
|
-
====================================================
|
|
137
|
-
|
|
138
|
-
PHASES:
|
|
139
|
-
{for each phase}
|
|
140
|
-
[{status_icon}] Phase {number}: {title}
|
|
141
|
-
Status: {status}
|
|
142
|
-
Tasks: {tasks_completed}/{tasks_total}
|
|
143
|
-
Verification: {verification_status}
|
|
144
|
-
{/for}
|
|
145
|
-
|
|
146
|
-
CONTEXT:
|
|
147
|
-
Key Decisions: {key_decisions, comma-separated}
|
|
148
|
-
Blockers: {blockers or "none"}
|
|
149
|
-
Deferred: {deferred or "none"}
|
|
150
|
-
|
|
151
|
-
====================================================
|
|
70
|
+
PROJECT / MILESTONE / STATUS / PROGRESS bar ({completed}/{total} phases)
|
|
71
|
+
Per phase: [{status_icon}] Phase {N}: {title} — status, task counts, verification
|
|
72
|
+
CONTEXT: key_decisions, blockers, deferred
|
|
152
73
|
```
|
|
153
74
|
|
|
154
75
|
### Step 4.1: Render Issue Summary
|
|
155
76
|
|
|
156
|
-
If issue_state
|
|
77
|
+
If issue_state exists: display ISSUES panel (open count, critical count, by-status breakdown, critical issues list).
|
|
78
|
+
- Omit critical sub-section if none. Note blockers→issues migration if applicable. Note deferred items.
|
|
157
79
|
|
|
158
|
-
|
|
159
|
-
┌─────────────────────────────────────────┐
|
|
160
|
-
│ ISSUES │
|
|
161
|
-
├─────────────────────────────────────────┤
|
|
162
|
-
│ Open: {total_open} │
|
|
163
|
-
│ Critical: {critical_open} │
|
|
164
|
-
│ By Status: │
|
|
165
|
-
│ registered: {N} | diagnosed: {N} │
|
|
166
|
-
│ planning: {N} | planned: {N} │
|
|
167
|
-
│ executing: {N} │
|
|
168
|
-
│ │
|
|
169
|
-
│ Critical Issues: │
|
|
170
|
-
│ {id} | {title (truncated 40ch)} | {status} │
|
|
171
|
-
│ ... │
|
|
172
|
-
└─────────────────────────────────────────┘
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
If critical_issues is empty, omit the "Critical Issues:" sub-section.
|
|
176
|
-
|
|
177
|
-
If accumulated_context.blockers is non-empty AND issue_state has critical issues:
|
|
178
|
-
- Print: "Note: Blockers are now tracked as critical issues in .workflow/issues/issues.jsonl"
|
|
179
|
-
|
|
180
|
-
If accumulated_context.deferred is non-empty:
|
|
181
|
-
- Print: "Note: Deferred items are tracked as deferred issues. Use /manage-issue list --status deferred"
|
|
182
|
-
|
|
183
|
-
Else (issue_state is null):
|
|
184
|
-
- Print: "ISSUES: No issues tracked. Use /manage-issue create or /maestro-verify to discover issues."
|
|
80
|
+
If issue_state is null: "No issues tracked. Use /manage-issue create or /maestro-verify to discover issues."
|
|
185
81
|
|
|
186
82
|
Status icons:
|
|
187
83
|
- `[x]` completed
|
|
@@ -193,36 +89,9 @@ Status icons:
|
|
|
193
89
|
### Step 4.2: Render Worktree Status
|
|
194
90
|
|
|
195
91
|
```
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
Display:
|
|
200
|
-
┌─────────────────────────────────────────┐
|
|
201
|
-
│ WORKTREE MODE │
|
|
202
|
-
├─────────────────────────────────────────┤
|
|
203
|
-
│ Milestone: {scope.milestone} │
|
|
204
|
-
│ Branch: {scope.branch} │
|
|
205
|
-
│ Phases: {scope.owned_phases} │
|
|
206
|
-
│ Main: {scope.main_worktree} │
|
|
207
|
-
└─────────────────────────────────────────┘
|
|
208
|
-
|
|
209
|
-
ELSE IF file_exists(".workflow/worktrees.json"):
|
|
210
|
-
// Running in main worktree with active worktrees
|
|
211
|
-
Read .workflow/worktrees.json → registry
|
|
212
|
-
activeWorktrees = registry.worktrees.filter(w => w.status === "active")
|
|
213
|
-
|
|
214
|
-
IF activeWorktrees.length > 0:
|
|
215
|
-
Display:
|
|
216
|
-
┌─────────────────────────────────────────┐
|
|
217
|
-
│ ACTIVE WORKTREES │
|
|
218
|
-
├─────────────────────────────────────────┤
|
|
219
|
-
{for each wt in activeWorktrees}
|
|
220
|
-
│ {wt.milestone} | {wt.branch} | {wt.path} │
|
|
221
|
-
{/for}
|
|
222
|
-
│ │
|
|
223
|
-
│ Sync: /maestro-fork <milestone> --sync │
|
|
224
|
-
│ Merge: /maestro-merge <milestone> │
|
|
225
|
-
└─────────────────────────────────────────┘
|
|
92
|
+
If .workflow/worktree-scope.json exists → WORKTREE MODE panel: milestone, branch, owned_phases, main_worktree
|
|
93
|
+
Else if .workflow/worktrees.json has active entries → ACTIVE WORKTREES panel: milestone/branch/path per worktree,
|
|
94
|
+
with sync (/maestro-fork --sync) and merge (/maestro-merge) hints
|
|
226
95
|
```
|
|
227
96
|
|
|
228
97
|
---
|
|
@@ -231,49 +100,38 @@ ELSE IF file_exists(".workflow/worktrees.json"):
|
|
|
231
100
|
|
|
232
101
|
### Step 5.0: Issue-Aware Routing
|
|
233
102
|
|
|
234
|
-
If issue_state
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
- Suggest: Skill({ skill: "manage-issue", args: "list --severity critical" })
|
|
239
|
-
- Suggest: Skill({ skill: "quality-debug", args: "--from-uat" })
|
|
240
|
-
|
|
241
|
-
If by_status.diagnosed > 0:
|
|
242
|
-
- Recommend: "{diagnosed} issues diagnosed and ready for planning"
|
|
243
|
-
- Suggest: Skill({ skill: "maestro-plan", args: "--gaps" })
|
|
244
|
-
|
|
245
|
-
If by_status.registered > 0:
|
|
246
|
-
- Recommend: "{registered} new issues need investigation"
|
|
247
|
-
- Suggest: Skill({ skill: "quality-debug" })
|
|
103
|
+
If issue_state exists, evaluate BEFORE status routing:
|
|
104
|
+
- critical_open > 0 → suggest manage-issue list --severity critical, quality-debug --from-uat
|
|
105
|
+
- diagnosed > 0 → suggest maestro-plan --gaps
|
|
106
|
+
- registered > 0 → suggest quality-debug
|
|
248
107
|
|
|
249
108
|
### Step 5.1: Status-Based Routing
|
|
250
109
|
|
|
251
|
-
Based on current project
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
```
|
|
110
|
+
Based on current project state, suggest the next command:
|
|
111
|
+
|
|
112
|
+
| Current State | Suggested Command |
|
|
113
|
+
|---|---|
|
|
114
|
+
| No phases planned | /maestro-brainstorm 1 or /maestro-plan 1 |
|
|
115
|
+
| Phase pending, needs analysis | /maestro-analyze \<N\> |
|
|
116
|
+
| Phase pending, needs decisions | /maestro-analyze \<N\> -q |
|
|
117
|
+
| Phase planned, not executed | /maestro-execute \<N\> |
|
|
118
|
+
| Phase executing, tasks blocked | /quality-debug \<N\> |
|
|
119
|
+
| Phase executed, not verified | /maestro-verify \<N\> |
|
|
120
|
+
| Phase verified with gaps | /maestro-plan \<N\> --gaps |
|
|
121
|
+
| Phase verified, not reviewed | /quality-review \<N\> |
|
|
122
|
+
| Phase reviewed, BLOCK verdict | /maestro-plan \<N\> --gaps |
|
|
123
|
+
| Phase reviewed, PASS/WARN | /quality-test \<N\> |
|
|
124
|
+
| Low test coverage | /quality-test-gen \<N\> |
|
|
125
|
+
| UAT passed, all phases done | /maestro-milestone-audit |
|
|
126
|
+
| UAT has failures | /quality-debug --from-uat \<N\> |
|
|
127
|
+
| Need integration tests | /quality-integration-test \<N\> |
|
|
128
|
+
| All milestone phases complete | /maestro-milestone-audit |
|
|
129
|
+
| Milestone audit passed | /maestro-milestone-complete |
|
|
130
|
+
| Ad-hoc small task | /maestro-quick \<task\> |
|
|
273
131
|
|
|
274
132
|
Display:
|
|
275
133
|
```
|
|
276
|
-
NEXT STEP:
|
|
134
|
+
NEXT STEP: {suggested_command}
|
|
277
135
|
{reason}
|
|
278
136
|
```
|
|
279
137
|
|
package/workflows/sync.md
CHANGED
|
@@ -27,42 +27,24 @@ Change detection, impact chain traversal, and codebase documentation synchroniza
|
|
|
27
27
|
### Step 1: Parse Input and Validate
|
|
28
28
|
|
|
29
29
|
```
|
|
30
|
-
Parse
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
--dry-run = preview mode, no writes
|
|
34
|
-
No flags = incremental sync since last tracked sync point
|
|
35
|
-
|
|
36
|
-
Verify .workflow/ directory exists.
|
|
37
|
-
If not initialized: abort with E001.
|
|
30
|
+
Parse flags: --full (resync all), --since <ref> (diff baseline), --dry-run (preview)
|
|
31
|
+
Default: incremental sync since last tracked sync point
|
|
32
|
+
Require .workflow/ exists → else abort E001
|
|
38
33
|
```
|
|
39
34
|
|
|
40
35
|
### Step 2: Detect Changed Files
|
|
41
36
|
|
|
42
37
|
```
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Else:
|
|
47
|
-
Run: git diff --name-only <since-ref>
|
|
48
|
-
If --since not provided: git diff --name-only HEAD~1
|
|
49
|
-
If no prior commit: git diff --name-only --cached
|
|
50
|
-
|
|
51
|
-
Output: changed_files[] — list of file paths that changed
|
|
52
|
-
|
|
53
|
-
If no files changed: emit W001 ("No changes detected") and exit.
|
|
38
|
+
--full → collect all files from doc-index.json code_locations
|
|
39
|
+
else → git diff --name-only <since-ref|HEAD~1|--cached>
|
|
40
|
+
No files changed → emit W001, exit
|
|
54
41
|
```
|
|
55
42
|
|
|
56
43
|
### Step 3: Load Doc Index
|
|
57
44
|
|
|
58
45
|
```
|
|
59
|
-
Read
|
|
60
|
-
|
|
61
|
-
Extract:
|
|
62
|
-
- components[] (with code_locations, feature_ids, symbols)
|
|
63
|
-
- features[] (with component_ids, requirement_ids)
|
|
64
|
-
- requirements[]
|
|
65
|
-
- architecture_decisions[]
|
|
46
|
+
Read .workflow/codebase/doc-index.json
|
|
47
|
+
Extract: components[], features[], requirements[], architecture_decisions[]
|
|
66
48
|
```
|
|
67
49
|
|
|
68
50
|
### Step 4: Impact Chain Traversal
|
|
@@ -70,150 +52,55 @@ Extract:
|
|
|
70
52
|
For each `changed_file` in `changed_files[]`:
|
|
71
53
|
|
|
72
54
|
```
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
b. From components -> find features:
|
|
78
|
-
For each matched component:
|
|
79
|
-
Collect feature_ids from the component entry
|
|
80
|
-
OR: Find features where component_ids[] contains the component.id
|
|
81
|
-
|
|
82
|
-
c. From features -> find requirements:
|
|
83
|
-
For each matched feature:
|
|
84
|
-
Collect requirement_ids from the feature entry
|
|
85
|
-
OR: Find requirements where feature_id matches
|
|
86
|
-
|
|
87
|
-
d. Aggregate all affected:
|
|
88
|
-
affected = {
|
|
89
|
-
files: [changed_file],
|
|
90
|
-
components: [unique component entries],
|
|
91
|
-
features: [unique feature entries],
|
|
92
|
-
requirements: [unique requirement entries]
|
|
93
|
-
}
|
|
55
|
+
Traverse impact chain: file → components (via code_locations match)
|
|
56
|
+
→ features (via component.feature_ids) → requirements (via feature.requirement_ids)
|
|
57
|
+
Aggregate deduplicated: { files, components, features, requirements }
|
|
94
58
|
```
|
|
95
59
|
|
|
96
|
-
Deduplicate across all changed files to build the total impact set.
|
|
97
|
-
|
|
98
60
|
### Step 5: Update Doc Index (skip if --dry-run)
|
|
99
61
|
|
|
100
62
|
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
Re-scan code_locations to refresh symbols[] if the component's files changed
|
|
104
|
-
- Read each code_location file
|
|
105
|
-
- Extract exported symbols (classes, functions, interfaces, types, constants)
|
|
106
|
-
- Update symbols[] array
|
|
107
|
-
|
|
108
|
-
For each affected feature in doc-index.json:
|
|
109
|
-
Update last_updated timestamp
|
|
110
|
-
Update status if needed (based on component changes)
|
|
111
|
-
|
|
63
|
+
Affected components → refresh last_updated, re-scan code_locations for exported symbols[]
|
|
64
|
+
Affected features → refresh last_updated, update status from component changes
|
|
112
65
|
Write updated doc-index.json
|
|
113
66
|
```
|
|
114
67
|
|
|
115
68
|
### Step 6: Regenerate Affected Docs (skip if --dry-run)
|
|
116
69
|
|
|
117
70
|
```
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
- **Type**: {component.type}
|
|
124
|
-
- **Code Locations**: {code_locations joined}
|
|
125
|
-
- **Features**: {feature_ids joined}
|
|
126
|
-
## Symbols
|
|
127
|
-
{symbols as bullet list}
|
|
128
|
-
## Last Updated
|
|
129
|
-
{timestamp}
|
|
130
|
-
|
|
131
|
-
For each affected feature:
|
|
132
|
-
Regenerate .workflow/codebase/feature-maps/{feature-slug}.md
|
|
133
|
-
Content template:
|
|
134
|
-
# {feature.name}
|
|
135
|
-
- **ID**: {feature.id}
|
|
136
|
-
- **Status**: {feature.status}
|
|
137
|
-
- **Phase**: {feature.phase}
|
|
138
|
-
- **Components**: {component_ids joined}
|
|
139
|
-
- **Requirements**: {requirement_ids joined}
|
|
140
|
-
## Component Details
|
|
141
|
-
{for each component: name, type, key symbols}
|
|
142
|
-
## Last Updated
|
|
143
|
-
{timestamp}
|
|
71
|
+
Affected components → regenerate .workflow/codebase/tech-registry/{component-slug}.md
|
|
72
|
+
Template: name, id, type, code_locations, feature_ids, symbols list, timestamp
|
|
73
|
+
|
|
74
|
+
Affected features → regenerate .workflow/codebase/feature-maps/{feature-slug}.md
|
|
75
|
+
Template: name, id, status, phase, component_ids, requirement_ids, component details, timestamp
|
|
144
76
|
```
|
|
145
77
|
|
|
146
78
|
### Step 7: Update State and Specs (skip if --dry-run)
|
|
147
79
|
|
|
148
80
|
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
- Record change summary (files changed, components/features affected)
|
|
152
|
-
- Update last_updated timestamp
|
|
153
|
-
|
|
154
|
-
Update index.json:
|
|
155
|
-
- For each affected phase (if phase-scoped files changed), update the phase index
|
|
81
|
+
state.json → set last_sync timestamp, record change summary, update last_updated
|
|
82
|
+
index.json → update affected phase indexes
|
|
156
83
|
|
|
157
|
-
|
|
158
|
-
- If patterns or conventions changed: append learnings to relevant spec files
|
|
159
|
-
- If new architectural patterns emerged: note in appropriate spec
|
|
160
|
-
- Skip if no spec-relevant changes detected
|
|
84
|
+
Spec updates: if patterns/conventions changed → append learnings to relevant spec files
|
|
161
85
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
changed_deps = changed_files.filter(f => dependency_files.includes(basename(f)))
|
|
166
|
-
If changed_deps.length > 0 AND .workflow/project.md exists:
|
|
167
|
-
Re-scan dependency manifests for current tech stack
|
|
168
|
-
Update .workflow/project.md Tech Stack section with detected changes
|
|
169
|
-
Display: "project.md: Tech Stack refreshed from {changed_deps.join(', ')}"
|
|
86
|
+
Dependency manifest check (package.json, go.mod, pyproject.toml, Cargo.toml,
|
|
87
|
+
requirements.txt, pom.xml, build.gradle, Gemfile):
|
|
88
|
+
If any changed AND .workflow/project.md exists → refresh Tech Stack section
|
|
170
89
|
```
|
|
171
90
|
|
|
172
91
|
### Step 8: Create Action Log
|
|
173
92
|
|
|
174
93
|
```
|
|
175
|
-
|
|
176
|
-
git rev-parse --short HEAD (or use the since-ref hash)
|
|
177
|
-
|
|
94
|
+
hash = git rev-parse --short HEAD (or since-ref)
|
|
178
95
|
Write .workflow/codebase/action-logs/{hash}.md:
|
|
179
|
-
|
|
180
|
-
# Changes in {hash}
|
|
181
|
-
|
|
182
|
-
**Date**: {ISO timestamp}
|
|
183
|
-
**Sync Baseline**: {since-ref}
|
|
184
|
-
|
|
185
|
-
## Files Changed
|
|
186
|
-
{bullet list of changed_files}
|
|
187
|
-
|
|
188
|
-
## Components Affected
|
|
189
|
-
{bullet list: component.id - component.name (component.type)}
|
|
190
|
-
|
|
191
|
-
## Features Affected
|
|
192
|
-
{bullet list: feature.id - feature.name}
|
|
193
|
-
|
|
194
|
-
## Requirements Affected
|
|
195
|
-
{bullet list: requirement.id - requirement.title}
|
|
196
|
-
|
|
197
|
-
## Impact Summary
|
|
198
|
-
- Files changed: {count}
|
|
199
|
-
- Components affected: {count}
|
|
200
|
-
- Features affected: {count}
|
|
201
|
-
- Requirements affected: {count}
|
|
96
|
+
Sections: date, baseline, files changed, components/features/requirements affected, impact counts
|
|
202
97
|
```
|
|
203
98
|
|
|
204
99
|
### Step 9: Report
|
|
205
100
|
|
|
206
|
-
Display summary to user:
|
|
207
|
-
|
|
208
101
|
```
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
Components affected: N (list IDs)
|
|
212
|
-
Features affected: N (list IDs)
|
|
213
|
-
Requirements affected: N (list IDs)
|
|
214
|
-
Specs updated: {list or "none"}
|
|
215
|
-
Action log: .workflow/codebase/action-logs/{hash}.md
|
|
216
|
-
If --dry-run: note that no changes were written
|
|
102
|
+
Display: changed files count, affected components/features/requirements (with IDs),
|
|
103
|
+
specs updated, action log path. Note if --dry-run (no writes).
|
|
217
104
|
```
|
|
218
105
|
|
|
219
106
|
---
|