maestro-flow 0.3.11 → 0.3.13
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/CLAUDE.md +7 -0
- package/.claude/agents/conceptual-planning-agent.md +1 -0
- package/.claude/agents/workflow-analyzer.md +113 -114
- package/.claude/agents/workflow-collab-planner.md +143 -144
- package/.claude/agents/workflow-debugger.md +101 -103
- package/.claude/agents/workflow-executor.md +127 -128
- package/.claude/agents/workflow-integration-checker.md +82 -82
- package/.claude/agents/workflow-nyquist-auditor.md +84 -84
- package/.claude/agents/workflow-phase-researcher.md +85 -85
- package/.claude/agents/workflow-plan-checker.md +90 -90
- package/.claude/agents/workflow-planner.md +177 -178
- package/.claude/agents/workflow-roadmapper.md +81 -83
- package/.claude/agents/workflow-verifier.md +118 -119
- package/.claude/commands/learn-retro.md +2 -2
- package/.claude/commands/learn-second-opinion.md +2 -2
- package/.claude/commands/maestro-analyze.md +10 -2
- package/.claude/commands/maestro-brainstorm.md +2 -1
- package/.claude/commands/maestro-execute.md +21 -4
- package/.claude/commands/maestro-fork.md +133 -111
- package/.claude/commands/maestro-merge.md +85 -77
- package/.claude/commands/maestro-milestone-complete.md +14 -0
- package/.claude/commands/maestro-plan.md +100 -8
- package/.claude/commands/maestro-roadmap.md +113 -2
- package/.claude/commands/maestro-ui-design.md +7 -7
- package/.claude/commands/maestro-update.md +176 -0
- package/.claude/commands/maestro-verify.md +18 -3
- package/.claude/commands/maestro.md +1 -0
- package/.claude/commands/manage-codebase-rebuild.md +0 -1
- package/.claude/commands/manage-harvest.md +1 -1
- package/.claude/commands/manage-learn.md +5 -5
- package/.claude/commands/manage-memory-capture.md +4 -4
- package/.claude/commands/manage-memory.md +1 -1
- package/.claude/commands/manage-wiki.md +62 -0
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +53 -6
- package/.claude/commands/quality-retrospective.md +9 -7
- package/.claude/commands/quality-review.md +39 -7
- package/.claude/commands/quality-sync.md +1 -1
- package/.claude/commands/quality-test-gen.md +5 -4
- package/.claude/commands/quality-test.md +45 -12
- package/.claude/commands/spec-remove.md +51 -0
- package/.claude/commands/spec-setup.md +1 -3
- package/.claude/commands/wiki-connect.md +9 -5
- package/.claude/commands/wiki-digest.md +6 -3
- package/.codex/skills/maestro/SKILL.md +2 -2
- package/.codex/skills/maestro-analyze/SKILL.md +4 -4
- package/.codex/skills/maestro-brainstorm/SKILL.md +4 -4
- package/.codex/skills/maestro-coordinate/SKILL.md +2 -2
- package/.codex/skills/maestro-execute/SKILL.md +15 -5
- package/.codex/skills/maestro-fork/SKILL.md +98 -68
- package/.codex/skills/maestro-init/SKILL.md +5 -4
- package/.codex/skills/maestro-merge/SKILL.md +69 -62
- package/.codex/skills/maestro-milestone-complete/SKILL.md +18 -1
- package/.codex/skills/maestro-plan/SKILL.md +6 -6
- package/.codex/skills/maestro-roadmap/SKILL.md +3 -4
- package/.codex/skills/maestro-spec-generate/SKILL.md +2 -2
- package/.codex/skills/maestro-ui-design/SKILL.md +6 -6
- package/.codex/skills/maestro-verify/SKILL.md +29 -20
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +4 -4
- package/.codex/skills/manage-harvest/SKILL.md +10 -1
- package/.codex/skills/manage-issue-discover/SKILL.md +3 -3
- package/.codex/skills/manage-learn/SKILL.md +3 -2
- package/.codex/skills/manage-memory/SKILL.md +3 -3
- package/.codex/skills/manage-memory-capture/SKILL.md +8 -14
- package/.codex/skills/manage-status/SKILL.md +9 -4
- package/.codex/skills/manage-wiki/SKILL.md +55 -0
- package/.codex/skills/quality-business-test/SKILL.md +8 -6
- package/.codex/skills/quality-debug/SKILL.md +22 -9
- package/.codex/skills/quality-integration-test/SKILL.md +11 -7
- package/.codex/skills/quality-retrospective/SKILL.md +48 -29
- package/.codex/skills/quality-review/SKILL.md +10 -7
- package/.codex/skills/quality-test/SKILL.md +10 -5
- package/.codex/skills/quality-test-gen/SKILL.md +13 -9
- package/.codex/skills/spec-add/SKILL.md +11 -3
- package/.codex/skills/spec-load/SKILL.md +7 -0
- package/.codex/skills/spec-map/SKILL.md +2 -2
- package/.codex/skills/spec-remove/SKILL.md +101 -0
- package/.codex/skills/spec-setup/SKILL.md +4 -8
- package/.codex/skills/wiki-connect/SKILL.md +6 -5
- package/.codex/skills/wiki-digest/SKILL.md +2 -2
- package/README.md +2 -0
- package/README.zh-CN.md +2 -0
- package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
- package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
- package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
- package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
- package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
- package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
- package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
- package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
- package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
- package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
- package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
- package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
- package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
- package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
- package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
- package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
- package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
- package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
- package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
- package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
- package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
- package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
- package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
- package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
- package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
- package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
- package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
- package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
- package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +9 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +109 -9
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.test.js +49 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +5 -4
- package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +5 -13
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +97 -155
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.d.ts +11 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +27 -6
- 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 +25 -7
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js +8 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.d.ts +29 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +148 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +4 -2
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js +8 -2
- package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +80 -38
- 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 +8 -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 +40 -5
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +21 -23
- 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 +33 -3
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +184 -12
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +27 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
- package/dashboard/dist-server/src/commands/delegate.js +26 -0
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dashboard/dist-server/src/coordinator/graph-types.d.ts +11 -1
- package/dashboard/dist-server/src/coordinator/graph-walker.js +29 -2
- package/dashboard/dist-server/src/coordinator/graph-walker.js.map +1 -1
- package/dashboard/dist-server/src/coordinator/prompt-assembler.js +3 -2
- package/dashboard/dist-server/src/coordinator/prompt-assembler.js.map +1 -1
- package/dashboard/dist-server/src/hooks/constants.d.ts +29 -60
- package/dashboard/dist-server/src/hooks/constants.js +105 -82
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +2 -1
- package/dist/shared/agent-types.d.ts +4 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +26 -0
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +2 -4
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +4 -7
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +29 -18
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +2 -3
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +1 -2
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +5 -7
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +3 -6
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.js +21 -17
- package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +95 -0
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +75 -11
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/coordinator/graph-types.d.ts +11 -1
- package/dist/src/coordinator/graph-types.d.ts.map +1 -1
- package/dist/src/coordinator/graph-walker.d.ts.map +1 -1
- package/dist/src/coordinator/graph-walker.js +29 -2
- package/dist/src/coordinator/graph-walker.js.map +1 -1
- package/dist/src/coordinator/prompt-assembler.d.ts.map +1 -1
- package/dist/src/coordinator/prompt-assembler.js +3 -2
- package/dist/src/coordinator/prompt-assembler.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +4 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js +55 -152
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +29 -60
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +105 -82
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts +3 -0
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +149 -15
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts +11 -8
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +284 -179
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/hooks/workspace.d.ts.map +1 -1
- package/dist/src/hooks/workspace.js +2 -1
- package/dist/src/hooks/workspace.js.map +1 -1
- package/dist/src/migrations/_template.d.ts +12 -0
- package/dist/src/migrations/_template.d.ts.map +1 -0
- package/dist/src/migrations/_template.js +55 -0
- package/dist/src/migrations/_template.js.map +1 -0
- package/dist/src/migrations/index.d.ts +14 -0
- package/dist/src/migrations/index.d.ts.map +1 -0
- package/dist/src/migrations/index.js +20 -0
- package/dist/src/migrations/index.js.map +1 -0
- package/dist/src/migrations/run.d.ts +12 -0
- package/dist/src/migrations/run.d.ts.map +1 -0
- package/dist/src/migrations/run.js +119 -0
- package/dist/src/migrations/run.js.map +1 -0
- package/dist/src/migrations/v1-to-v2.d.ts +10 -0
- package/dist/src/migrations/v1-to-v2.d.ts.map +1 -0
- package/dist/src/migrations/v1-to-v2.js +71 -0
- package/dist/src/migrations/v1-to-v2.js.map +1 -0
- package/dist/src/tools/merge-validator.d.ts.map +1 -1
- package/dist/src/tools/merge-validator.js +114 -16
- package/dist/src/tools/merge-validator.js.map +1 -1
- package/dist/src/tools/team-activity.d.ts.map +1 -1
- package/dist/src/tools/team-activity.js +22 -0
- package/dist/src/tools/team-activity.js.map +1 -1
- package/dist/src/tools/transition-recorder.d.ts +2 -17
- package/dist/src/tools/transition-recorder.d.ts.map +1 -1
- package/dist/src/tools/transition-recorder.js +6 -3
- package/dist/src/tools/transition-recorder.js.map +1 -1
- package/dist/src/types/index.d.ts +2 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/migration-registry.d.ts +65 -0
- package/dist/src/utils/migration-registry.d.ts.map +1 -0
- package/dist/src/utils/migration-registry.js +117 -0
- package/dist/src/utils/migration-registry.js.map +1 -0
- package/dist/src/utils/state-schema.d.ts +153 -0
- package/dist/src/utils/state-schema.d.ts.map +1 -0
- package/dist/src/utils/state-schema.js +329 -0
- package/dist/src/utils/state-schema.js.map +1 -0
- package/package.json +1 -1
- package/shared/agent-types.ts +4 -0
- package/templates/state.json +17 -39
- package/templates/worktree-scope.json +9 -10
- package/templates/worktrees.json +26 -27
- package/workflows/brainstorm.md +10 -1
- package/workflows/codebase-rebuild.md +2 -12
- package/workflows/debug.md +17 -8
- package/workflows/execute.md +18 -4
- package/workflows/fork.md +52 -37
- package/workflows/init.md +1 -4
- package/workflows/integration-test.md +13 -2
- package/workflows/issue.md +8 -4
- package/workflows/learn.md +25 -10
- package/workflows/maestro.codex.md +8 -1
- package/workflows/maestro.md +13 -3
- package/workflows/memory.md +26 -71
- package/workflows/merge.md +48 -52
- package/workflows/milestone-complete.md +24 -7
- package/workflows/retrospective.md +87 -80
- package/workflows/review.md +11 -5
- package/workflows/specs-remove.md +115 -0
- package/workflows/specs-setup.md +10 -32
- package/workflows/status.md +291 -290
- package/workflows/sync.md +5 -5
- package/workflows/test.md +11 -2
- package/workflows/ui-style.md +8 -2
- package/workflows/verify.md +2 -2
- package/workflows/wiki-connect.md +188 -0
- package/workflows/wiki-digest.md +221 -0
- package/workflows/wiki-manage.md +204 -0
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
- package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
- package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
- package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
- package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
- package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
- package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
- package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
|
@@ -36,23 +36,56 @@ Phase or task: $ARGUMENTS (optional)
|
|
|
36
36
|
- `--smoke` -- Run cold-start smoke tests before UAT (basic sanity: app starts, routes respond, no crash)
|
|
37
37
|
- `--auto-fix` -- After diagnosis, auto-trigger gap-fix loop instead of asking user
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
**All context via state.json.artifacts[]:**
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
related = artifacts.filter(a =>
|
|
43
|
+
a.phase === target_phase && a.milestone === current_milestone
|
|
44
|
+
).sort_by(completed_at asc)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Each artifact's type determines its outputs at `.workflow/{a.path}/`:
|
|
48
|
+
- **execute** → .summaries/, .task/, verification.json, plan.json (test target source)
|
|
49
|
+
- **verify** → verification.json (must_haves, gaps)
|
|
50
|
+
- **review** → review.json (findings become additional test scenarios)
|
|
51
|
+
- **debug** → understanding.md (confirmed root causes become regression tests)
|
|
52
|
+
- **test** → uat.md (existing session, resumable)
|
|
53
|
+
|
|
54
|
+
Extract conclusions from related artifacts that may affect this test session — review findings generate additional scenarios, debug root causes generate regression tests.
|
|
55
|
+
|
|
56
|
+
**Output**: `TEST_DIR = .workflow/scratch/{YYYYMMDD}-test-P{N}-{slug}/` (P{N} = phase number, enables directory-level identification as state.json fallback)
|
|
47
57
|
</context>
|
|
48
58
|
|
|
49
59
|
<execution>
|
|
50
60
|
Follow '~/.maestro/workflows/test.md' completely.
|
|
51
61
|
|
|
52
|
-
**
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
|
|
62
|
+
**Output writes to TEST_DIR** (`scratch/{YYYYMMDD}-test-P{N}-{slug}/`):
|
|
63
|
+
- uat.md, test-plan.json, .tests/test-results.json, .tests/coverage-report.json
|
|
64
|
+
|
|
65
|
+
**Review findings integration** (from related review artifacts):
|
|
66
|
+
- Extract critical/high findings as additional test scenarios, marked `source: "review_finding"`
|
|
67
|
+
- When review verdict is "BLOCK" and review-finding tests fail, auto-enter gap-fix loop
|
|
68
|
+
|
|
69
|
+
**Debug root cause integration** (from related debug artifacts):
|
|
70
|
+
- Generate regression test scenarios from confirmed root causes, marked `source: "debug_root_cause"`
|
|
71
|
+
|
|
72
|
+
**Register artifact on completion:**
|
|
73
|
+
```
|
|
74
|
+
Append to state.json.artifacts[]:
|
|
75
|
+
{
|
|
76
|
+
id: nextArtifactId(artifacts, "test"), // TST-001
|
|
77
|
+
type: "test",
|
|
78
|
+
milestone: current_milestone,
|
|
79
|
+
phase: target_phase,
|
|
80
|
+
scope: "phase",
|
|
81
|
+
path: "scratch/{YYYYMMDD}-test-P{N}-{slug}",
|
|
82
|
+
status: issues == 0 ? "completed" : "failed",
|
|
83
|
+
depends_on: exec_art.id,
|
|
84
|
+
harvested: false,
|
|
85
|
+
created_at: start_time,
|
|
86
|
+
completed_at: now()
|
|
87
|
+
}
|
|
88
|
+
```
|
|
56
89
|
|
|
57
90
|
**Next-step routing on completion:**
|
|
58
91
|
- All tests pass → `/maestro-phase-transition {phase}`
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-remove
|
|
3
|
+
description: Remove a spec entry from a specs file by entry ID
|
|
4
|
+
argument-hint: "<entry-id>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Remove a `<spec-entry>` from a specs file. Symmetric with `/spec-add`.
|
|
16
|
+
Uses `maestro wiki remove-entry` for atomic removal with index auto-update.
|
|
17
|
+
</purpose>
|
|
18
|
+
|
|
19
|
+
<required_reading>
|
|
20
|
+
@~/.maestro/workflows/specs-remove.md
|
|
21
|
+
</required_reading>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
$ARGUMENTS -- expects `<entry-id>` (e.g., `spec-learnings-003`, `spec-coding-conventions-001`)
|
|
25
|
+
|
|
26
|
+
**Entry ID format**: `spec-{file-stem}-{NNN}` — the sub-node ID assigned by WikiIndexer when indexing `<spec-entry>` blocks.
|
|
27
|
+
|
|
28
|
+
**Discovery**: Use `maestro wiki list --type spec --json` or `/spec-load --keyword <term>` to find entry IDs.
|
|
29
|
+
</context>
|
|
30
|
+
|
|
31
|
+
<execution>
|
|
32
|
+
Follow '~/.maestro/workflows/specs-remove.md' completely.
|
|
33
|
+
</execution>
|
|
34
|
+
|
|
35
|
+
<error_codes>
|
|
36
|
+
| Code | Severity | Description | Stage |
|
|
37
|
+
|------|----------|-------------|-------|
|
|
38
|
+
| E001 | fatal | Entry ID is required -- usage: `/spec-remove <entry-id>` | parse_input |
|
|
39
|
+
| E002 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | validate |
|
|
40
|
+
| E003 | fatal | Entry ID not found in wiki index | lookup |
|
|
41
|
+
| E004 | fatal | Entry is not a spec sub-node (wrong type) | validate |
|
|
42
|
+
</error_codes>
|
|
43
|
+
|
|
44
|
+
<success_criteria>
|
|
45
|
+
- [ ] Entry ID parsed and validated
|
|
46
|
+
- [ ] Entry found in wiki index (type=spec, is sub-node)
|
|
47
|
+
- [ ] User confirmed removal (unless -y flag)
|
|
48
|
+
- [ ] Entry removed from container file via `maestro wiki remove-entry`
|
|
49
|
+
- [ ] Wiki index auto-updated
|
|
50
|
+
- [ ] Confirmation displayed with removed entry details
|
|
51
|
+
</success_criteria>
|
|
@@ -12,7 +12,7 @@ allowed-tools:
|
|
|
12
12
|
<purpose>
|
|
13
13
|
Initialize the project-level specs directory by scanning the codebase for conventions, patterns, and tech stack.
|
|
14
14
|
Core files (coding, arch, learning) are always created. Optional files (quality, debug, test, review) are created only when relevant signals are detected.
|
|
15
|
-
All output lands in `.workflow/specs
|
|
15
|
+
All output lands in `.workflow/specs/`.
|
|
16
16
|
</purpose>
|
|
17
17
|
|
|
18
18
|
<required_reading>
|
|
@@ -20,7 +20,6 @@ All output lands in `.workflow/specs/` and `.workflow/project-tech.json`.
|
|
|
20
20
|
</required_reading>
|
|
21
21
|
|
|
22
22
|
<deferred_reading>
|
|
23
|
-
- [project-tech.json](~/.maestro/templates/project-tech.json) — read when generating project-tech configuration
|
|
24
23
|
</deferred_reading>
|
|
25
24
|
|
|
26
25
|
<context>
|
|
@@ -47,7 +46,6 @@ Follow '~/.maestro/workflows/specs-setup.md' completely.
|
|
|
47
46
|
- [ ] `.workflow/specs/` directory created
|
|
48
47
|
- [ ] Core files always created: `coding-conventions.md`, `architecture-constraints.md`, `learnings.md`
|
|
49
48
|
- [ ] Optional files created when detected: `quality-rules.md` (linter/CI), `test-conventions.md` (test framework), `debug-notes.md` (on demand), `review-standards.md` (on demand)
|
|
50
|
-
- [ ] `project-tech.json` written with detected tech stack
|
|
51
49
|
- [ ] Report displayed with summary and next steps
|
|
52
50
|
</success_criteria>
|
|
53
51
|
</output>
|
|
@@ -11,6 +11,10 @@ allowed-tools:
|
|
|
11
11
|
- Agent
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
|
+
<required_reading>
|
|
15
|
+
@~/.maestro/workflows/wiki-connect.md
|
|
16
|
+
</required_reading>
|
|
17
|
+
|
|
14
18
|
<purpose>
|
|
15
19
|
Knowledge graph link discovery and health improvement. Analyzes the wiki index to find orphaned entries, missing connections, and transitive link gaps, then suggests or auto-applies new `related` links to improve graph connectivity.
|
|
16
20
|
|
|
@@ -21,7 +25,7 @@ Leverages maestro's unique wiki graph infrastructure (BM25 search, backlinks, he
|
|
|
21
25
|
Arguments: $ARGUMENTS
|
|
22
26
|
|
|
23
27
|
**Flags:**
|
|
24
|
-
- `--scope <type>` — Limit analysis to a wiki type (spec,
|
|
28
|
+
- `--scope <type>` — Limit analysis to a wiki type (spec, memory, note, lesson, issue). Default: all types.
|
|
25
29
|
- `--min-similarity N` — Minimum similarity score threshold 0.0-1.0 (default: 0.3)
|
|
26
30
|
- `--fix` — Auto-apply the top suggestions by updating wiki entries with new `related` links
|
|
27
31
|
- `--max N` — Maximum number of suggestions to generate (default: 20)
|
|
@@ -66,13 +70,13 @@ For each entry, compute potential connections:
|
|
|
66
70
|
For each orphan entry, search for related entries using:
|
|
67
71
|
- `maestro wiki search "<orphan title>"` — BM25 match by title
|
|
68
72
|
- Tag overlap: entries sharing 2+ tags with the orphan
|
|
69
|
-
- Same
|
|
73
|
+
- Same category: entries with matching `category`
|
|
70
74
|
|
|
71
75
|
**2b. Missing Bidirectional Links:**
|
|
72
76
|
For entries that have forward links but no corresponding backlink (A links to B, but B doesn't link to A), suggest adding the reverse link.
|
|
73
77
|
|
|
74
78
|
**2c. Transitive Closure:**
|
|
75
|
-
If A → B and B → C, but A has no link to C, and A and C share tags or
|
|
79
|
+
If A → B and B → C, but A has no link to C, and A and C share tags or category, suggest A → C.
|
|
76
80
|
|
|
77
81
|
**2d. Type Bridge:**
|
|
78
82
|
Entries of different types that reference the same concept (e.g., a `spec-auth` and a `lesson-auth-gotcha`) but aren't linked.
|
|
@@ -83,13 +87,13 @@ For each candidate connection (source → target), compute similarity:
|
|
|
83
87
|
```
|
|
84
88
|
score = 0.4 × tag_overlap_ratio
|
|
85
89
|
+ 0.3 × title_bm25_similarity
|
|
86
|
-
+ 0.2 ×
|
|
90
|
+
+ 0.2 × same_category_bonus
|
|
87
91
|
+ 0.1 × type_bridge_bonus
|
|
88
92
|
```
|
|
89
93
|
|
|
90
94
|
- `tag_overlap_ratio`: shared_tags / max(source_tags, target_tags)
|
|
91
95
|
- `title_bm25_similarity`: normalized BM25 score from wiki search
|
|
92
|
-
- `
|
|
96
|
+
- `same_category_bonus`: 1.0 if same category, else 0.0
|
|
93
97
|
- `type_bridge_bonus`: 1.0 if different types, else 0.0
|
|
94
98
|
|
|
95
99
|
Filter by `--min-similarity`, rank descending, limit to `--max`.
|
|
@@ -17,6 +17,10 @@ Knowledge synthesis command that generates actionable digests from the wiki know
|
|
|
17
17
|
Unlike `maestro wiki list` which shows raw entries, this command synthesizes and interprets the knowledge base, producing a curated summary with gap analysis and recommended next actions.
|
|
18
18
|
</purpose>
|
|
19
19
|
|
|
20
|
+
<required_reading>
|
|
21
|
+
@~/.maestro/workflows/wiki-digest.md
|
|
22
|
+
</required_reading>
|
|
23
|
+
|
|
20
24
|
<deferred_reading>
|
|
21
25
|
- @~/.maestro/workflows/issue.md (issues.jsonl canonical schema for `--create-issues` routing)
|
|
22
26
|
</deferred_reading>
|
|
@@ -27,7 +31,7 @@ Arguments: $ARGUMENTS
|
|
|
27
31
|
**Scope resolution (auto-detected):**
|
|
28
32
|
- `<topic>` — Search wiki for entries matching the topic via `maestro wiki search`
|
|
29
33
|
- `--recent N` — Entries updated in the last N days
|
|
30
|
-
- `--type <type>` — Filter by wiki type (spec,
|
|
34
|
+
- `--type <type>` — Filter by wiki type (spec, memory, note, lesson, issue)
|
|
31
35
|
- No arguments — digest of the entire wiki
|
|
32
36
|
|
|
33
37
|
**Flags:**
|
|
@@ -101,7 +105,6 @@ Build a matrix showing knowledge density by type × theme:
|
|
|
101
105
|
```
|
|
102
106
|
Theme 1 Theme 2 Theme 3 Theme 4 Theme 5
|
|
103
107
|
spec ███░░ ░░░░░ █████ ██░░░ ░░░░░
|
|
104
|
-
phase ████░ ███░░ ░░░░░ █████ ██░░░
|
|
105
108
|
memory ░░░░░ ████░ ██░░░ ░░░░░ ███░░
|
|
106
109
|
lesson █░░░░ ██░░░ ████░ █░░░░ ░░░░░
|
|
107
110
|
issue ██░░░ ░░░░░ █░░░░ ███░░ ░░░░░
|
|
@@ -166,7 +169,7 @@ For each knowledge gap identified in Stage 5:
|
|
|
166
169
|
1. Write digest file
|
|
167
170
|
2. Append meta-insights to `lessons.jsonl`:
|
|
168
171
|
- `source: "wiki-digest"`, `category: "technique"`
|
|
169
|
-
- e.g., "Auth knowledge is concentrated in specs but lacks lessons", "
|
|
172
|
+
- e.g., "Auth knowledge is concentrated in specs but lacks lessons", "Security category has no decision entries"
|
|
170
173
|
3. Update `learning-index.json`
|
|
171
174
|
4. Display summary with key findings
|
|
172
175
|
|
|
@@ -63,7 +63,7 @@ After a barrier skill completes **in its spawned sub-agent**, coordinator reads
|
|
|
63
63
|
| Skill | Artifacts to Read | Context Updates |
|
|
64
64
|
|-------|------------------|-----------------|
|
|
65
65
|
| `maestro-analyze` | `.workflow/.csv-wave/*/context.md`, `state.json` | `gaps`, `phase`, `analysis_dir` |
|
|
66
|
-
| `maestro-plan` | `{
|
|
66
|
+
| `maestro-plan` | `{artifact_dir}/plan.json`, `{artifact_dir}/.task/TASK-*.json` | `plan_dir`, `task_count`, `wave_count` |
|
|
67
67
|
| `maestro-brainstorm` | `.workflow/.csv-wave/*/.brainstorming/` | `brainstorm_dir`, `features` |
|
|
68
68
|
| `maestro-spec-generate` | `.workflow/.csv-wave/*/specs/` | `spec_session_id` |
|
|
69
69
|
| `maestro-execute` | `.workflow/.csv-wave/*/results.csv` | `exec_status`, `completed_tasks`, `failed_tasks` |
|
|
@@ -111,7 +111,7 @@ function analyzeBarrierArtifacts(step, result, ctx) {
|
|
|
111
111
|
**`--continue`**: Glob `.workflow/.maestro-coordinate/MCC-*/state.json` sorted desc; load most recent; resume from first pending wave.
|
|
112
112
|
|
|
113
113
|
**Fresh mode**:
|
|
114
|
-
1. Read `.workflow/state.json` for project context (
|
|
114
|
+
1. Read `.workflow/state.json` for project context (derive current phase from artifact registry, `workflow_name`)
|
|
115
115
|
2. If `--chain` given, use directly
|
|
116
116
|
3. Otherwise classify intent via keyword heuristics (see chain_map)
|
|
117
117
|
4. No match + not AUTO_YES → one clarifying question via `AskUserQuestion`
|
|
@@ -61,7 +61,7 @@ Wave-based multi-dimensional analysis using `spawn_agents_on_csv`. Diamond topol
|
|
|
61
61
|
$maestro-analyze "3"
|
|
62
62
|
$maestro-analyze -y "microservices vs monolith"
|
|
63
63
|
$maestro-analyze -c 6 "3 -q"
|
|
64
|
-
$maestro-analyze --continue "analyze-microservices
|
|
64
|
+
$maestro-analyze --continue "20260318-analyze-microservices"
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
**Flags**:
|
|
@@ -132,7 +132,7 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
|
132
132
|
### Session Structure
|
|
133
133
|
|
|
134
134
|
```
|
|
135
|
-
.workflow/.csv-wave/analyze-{slug}
|
|
135
|
+
.workflow/.csv-wave/{YYYYMMDD}-analyze-{slug}/
|
|
136
136
|
+-- tasks.csv
|
|
137
137
|
+-- results.csv
|
|
138
138
|
+-- discoveries.ndjson
|
|
@@ -219,9 +219,9 @@ if (GAPS_MODE) {
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
const dateStr = getUtc8ISOString().substring(0, 10)
|
|
222
|
-
const sessionId =
|
|
222
|
+
const sessionId = `${dateStr}-analyze-${slug}`
|
|
223
223
|
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
224
|
-
const scratchDir = `.workflow/scratch
|
|
224
|
+
const scratchDir = `.workflow/scratch/${dateStr}-analyze-${slug}`
|
|
225
225
|
|
|
226
226
|
Bash(`mkdir -p ${sessionFolder}`)
|
|
227
227
|
Bash(`mkdir -p ${scratchDir}`)
|
|
@@ -60,7 +60,7 @@ Wave-based multi-role brainstorming using `spawn_agents_on_csv`. Diamond topolog
|
|
|
60
60
|
$maestro-brainstorm "Build real-time collaboration platform"
|
|
61
61
|
$maestro-brainstorm -y "Build real-time collaboration platform"
|
|
62
62
|
$maestro-brainstorm -c 6 "Build real-time collaboration platform --count 5"
|
|
63
|
-
$maestro-brainstorm --continue "brainstorm-collab
|
|
63
|
+
$maestro-brainstorm --continue "20260318-brainstorm-collab"
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
**Flags**:
|
|
@@ -125,7 +125,7 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
|
125
125
|
### Session Structure
|
|
126
126
|
|
|
127
127
|
```
|
|
128
|
-
.workflow/.csv-wave/brainstorm-{slug}
|
|
128
|
+
.workflow/.csv-wave/{YYYYMMDD}-brainstorm-{slug}/
|
|
129
129
|
+-- tasks.csv
|
|
130
130
|
+-- results.csv
|
|
131
131
|
+-- discoveries.ndjson
|
|
@@ -184,7 +184,7 @@ const topicArg = $ARGUMENTS
|
|
|
184
184
|
|
|
185
185
|
const slug = topicArg.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
|
|
186
186
|
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
187
|
-
const sessionId =
|
|
187
|
+
const sessionId = `${dateStr}-brainstorm-${slug}`
|
|
188
188
|
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
189
189
|
|
|
190
190
|
Bash(`mkdir -p ${sessionFolder}/.brainstorming`)
|
|
@@ -196,7 +196,7 @@ Bash(`mkdir -p ${sessionFolder}/.brainstorming`)
|
|
|
196
196
|
|
|
197
197
|
**Decomposition Rules**:
|
|
198
198
|
|
|
199
|
-
1. **Mode detection**: Number = phase mode (resolve `.workflow/
|
|
199
|
+
1. **Mode detection**: Number = phase mode (resolve via state.json artifact registry to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`), text = scratch mode
|
|
200
200
|
2. **Project specs loading**: Read `.workflow/specs/` for architecture-aware analysis context
|
|
201
201
|
3. **Role selection**:
|
|
202
202
|
|
|
@@ -106,7 +106,7 @@ const AUTO_FLAG_MAP = {
|
|
|
106
106
|
|
|
107
107
|
function assembleArgs(step) {
|
|
108
108
|
let a = (step.args || '')
|
|
109
|
-
.replace(/\{phase\}/g, context.
|
|
109
|
+
.replace(/\{phase\}/g, context.phase || '')
|
|
110
110
|
.replace(/\{description\}/g, context.user_intent || '')
|
|
111
111
|
.replace(/\{issue_id\}/g, context.issue_id || '')
|
|
112
112
|
.replace(/\{spec_session_id\}/g, context.spec_session_id || '')
|
|
@@ -145,7 +145,7 @@ Bash({
|
|
|
145
145
|
```javascript
|
|
146
146
|
// Context propagation from output
|
|
147
147
|
const phaseMatch = output.match(/PHASE:\s*(\d+)/m);
|
|
148
|
-
if (phaseMatch) context.
|
|
148
|
+
if (phaseMatch) context.phase = phaseMatch[1]; // derived from output, not stored in state
|
|
149
149
|
const specMatch = output.match(/SPEC-[\w-]+/);
|
|
150
150
|
if (specMatch) context.spec_session_id = specMatch[0];
|
|
151
151
|
const scratchMatch = output.match(/scratch_dir:\s*(.+)/m);
|
|
@@ -60,7 +60,7 @@ $maestro-execute "3"
|
|
|
60
60
|
$maestro-execute -c 4 "3 --auto-commit"
|
|
61
61
|
$maestro-execute -y "3 --method cli"
|
|
62
62
|
$maestro-execute "3 --dir .workflow/scratch/quick-fix"
|
|
63
|
-
$maestro-execute --continue "execute-phase3
|
|
63
|
+
$maestro-execute --continue "20260318-execute-P3-phase3"
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
**Flags**:
|
|
@@ -130,7 +130,7 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column populated fr
|
|
|
130
130
|
### Session Structure
|
|
131
131
|
|
|
132
132
|
```
|
|
133
|
-
.workflow/.csv-wave/execute-{
|
|
133
|
+
.workflow/.csv-wave/{YYYYMMDD}-execute-P{N}-{slug}/
|
|
134
134
|
+-- tasks.csv
|
|
135
135
|
+-- results.csv
|
|
136
136
|
+-- discoveries.ndjson
|
|
@@ -181,8 +181,8 @@ const phaseArg = $ARGUMENTS
|
|
|
181
181
|
|
|
182
182
|
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
183
183
|
const sessionId = scratchDir
|
|
184
|
-
?
|
|
185
|
-
:
|
|
184
|
+
? `${dateStr}-execute-scratch`
|
|
185
|
+
: `${dateStr}-execute-P${phaseArg}-${phaseSlug}`
|
|
186
186
|
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
187
187
|
|
|
188
188
|
Bash(`mkdir -p ${sessionFolder}`)
|
|
@@ -325,9 +325,19 @@ If a task is blocked/failed and other tasks in later waves depend on it:
|
|
|
325
325
|
5. **Extract incremental learnings**:
|
|
326
326
|
- Read all `.summaries/` from PLAN_DIR
|
|
327
327
|
- Extract strategy adjustments, patterns, pitfalls
|
|
328
|
-
-
|
|
328
|
+
- Check existing entries via `maestro spec load --category learning` (dedup)
|
|
329
|
+
- Append to `.workflow/specs/learnings.md` using `<spec-entry>` closed-tag format (category=`learning`, auto-extract keywords, date=today, source=`execute`)
|
|
329
330
|
- Mark artifact `harvested: true` in state.json
|
|
330
331
|
|
|
332
|
+
5b. **Post-task Knowledge Inquiry** (after each task completes):
|
|
333
|
+
- **Execution deviation**: If task summary mentions approach change, dependency swap, or plan deviation:
|
|
334
|
+
→ Ask: "TASK-{NNN} deviated from the plan. Should this decision be recorded as an architecture constraint? (`/spec-add arch`)"
|
|
335
|
+
- **Retry success**: If task required ≥2 retries before completion:
|
|
336
|
+
→ Ask: "TASK-{NNN} succeeded after {N} retries. Should this fix pattern be documented? (`/spec-add debug`)"
|
|
337
|
+
- **Implicit knowledge**: If task summary contains design rationale ("chose X because", "rejected Y due to"):
|
|
338
|
+
→ Ask: "Design decision detected. Should it be recorded as a learning? (`/spec-add learning`)"
|
|
339
|
+
- If user confirms, append `<spec-entry>` to matching category file via `spec-add` mechanism
|
|
340
|
+
|
|
331
341
|
6. **Generate context.md**:
|
|
332
342
|
|
|
333
343
|
```markdown
|
|
@@ -1,68 +1,98 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-fork
|
|
3
|
-
description: Create git worktree for milestone-level parallel development, or sync existing worktree with main. Copies .workflow/ context into worktree since
|
|
4
|
-
argument-hint: "-m <milestone-number> [--base <branch>] [--sync]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Create a git worktree for an entire milestone, enabling inter-milestone parallel development.
|
|
10
|
-
|
|
11
|
-
this command explicitly copies project context
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
- `--
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-fork
|
|
3
|
+
description: Create git worktree for milestone-level parallel development, or sync existing worktree with main. Copies .workflow/ context and scratch artifacts into worktree since .workflow/ is gitignored.
|
|
4
|
+
argument-hint: "-m <milestone-number> [--base <branch>] [--sync]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Create a git worktree for an entire milestone, enabling inter-milestone parallel development.
|
|
10
|
+
The worktree scope is milestone-level — all scratch artifacts for that milestone are owned by
|
|
11
|
+
the worktree. Since `.workflow/` is gitignored, this command explicitly copies project context
|
|
12
|
+
and milestone scratch artifacts into the worktree.
|
|
13
|
+
|
|
14
|
+
Also supports `--sync` mode to pull latest main into an active worktree.
|
|
15
|
+
</purpose>
|
|
16
|
+
|
|
17
|
+
<required_reading>
|
|
18
|
+
@~/.maestro/workflows/fork.md
|
|
19
|
+
</required_reading>
|
|
20
|
+
|
|
21
|
+
<context>
|
|
22
|
+
$ARGUMENTS — milestone number and optional flags.
|
|
23
|
+
|
|
24
|
+
**Modes:**
|
|
25
|
+
| Mode | Trigger | Behavior |
|
|
26
|
+
|------|---------|----------|
|
|
27
|
+
| Fork | `-m 2` or `2` | Create worktree for milestone 2 |
|
|
28
|
+
| Sync | `-m 2 --sync` | Sync existing worktree with main |
|
|
29
|
+
|
|
30
|
+
**Flags:**
|
|
31
|
+
- `-m <N>` or bare `<N>`: Milestone number
|
|
32
|
+
- `--base <branch>`: Override base branch (default: HEAD)
|
|
33
|
+
- `--sync`: Pull main into existing worktree, re-copy shared artifacts
|
|
34
|
+
|
|
35
|
+
**Worktree layout:**
|
|
36
|
+
```
|
|
37
|
+
.worktrees/m{N}-{slug}/
|
|
38
|
+
├── .workflow/
|
|
39
|
+
│ ├── worktree-scope.json (milestone scope marker)
|
|
40
|
+
│ ├── state.json (scoped — this milestone's artifacts only)
|
|
41
|
+
│ ├── project.md, roadmap.md, config.json, specs/ (read-only copies)
|
|
42
|
+
│ └── scratch/ (milestone's existing + new artifacts)
|
|
43
|
+
└── <source code>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Artifact scoping:**
|
|
47
|
+
Fork copies scratch artifacts belonging to the target milestone (filtered from `state.json.artifacts[]` where `milestone == target`). New work creates scratch artifacts normally, registered in the worktree's local `state.json`.
|
|
48
|
+
</context>
|
|
49
|
+
|
|
50
|
+
<execution>
|
|
51
|
+
Follow '~/.maestro/workflows/fork.md' completely.
|
|
52
|
+
|
|
53
|
+
**Fork flow:**
|
|
54
|
+
1. Validate: initialized, roadmap exists, not inside worktree, milestone not forked
|
|
55
|
+
2. Resolve milestone: `state.json.milestones[N-1]`
|
|
56
|
+
3. Create worktree: `git worktree add -b milestone/{slug} .worktrees/m{N}-{slug} HEAD`
|
|
57
|
+
4. Copy `.workflow/`: shared files + milestone scratch artifacts
|
|
58
|
+
5. Write `worktree-scope.json` with milestone scope
|
|
59
|
+
6. Write scoped `state.json` (this milestone's artifacts only)
|
|
60
|
+
7. Update main: `worktrees.json` registry, mark milestone `"forked"`
|
|
61
|
+
|
|
62
|
+
**Sync flow:**
|
|
63
|
+
1. Find worktree from `worktrees.json`
|
|
64
|
+
2. `cd worktree && git merge main`
|
|
65
|
+
3. Re-copy shared files (project.md, roadmap.md, config.json, specs/)
|
|
66
|
+
|
|
67
|
+
**Next steps:**
|
|
68
|
+
- Fork → `cd {wt.path} && $maestro-analyze`
|
|
69
|
+
- Sync → resume work in worktree
|
|
70
|
+
</execution>
|
|
71
|
+
|
|
72
|
+
<error_codes>
|
|
73
|
+
| Code | Severity | Condition | Recovery |
|
|
74
|
+
|------|----------|-----------|----------|
|
|
75
|
+
| E001 | error | Project not initialized | Run maestro-init |
|
|
76
|
+
| E002 | error | No roadmap found | Run maestro-roadmap |
|
|
77
|
+
| E003 | error | Running inside a worktree | Run from main worktree |
|
|
78
|
+
| E004 | error | No milestone number | Provide `-m <N>` |
|
|
79
|
+
| E006 | error | Milestone out of range | Check available milestones |
|
|
80
|
+
| E008 | error | Milestone already has active worktree | Merge or cleanup first |
|
|
81
|
+
</error_codes>
|
|
82
|
+
|
|
83
|
+
<success_criteria>
|
|
84
|
+
Fork mode:
|
|
85
|
+
- [ ] Milestone resolved from state.json.milestones[]
|
|
86
|
+
- [ ] Git worktree created with branch `milestone/{slug}`
|
|
87
|
+
- [ ] Shared `.workflow/` files copied (project.md, roadmap.md, config.json, specs/)
|
|
88
|
+
- [ ] Milestone scratch artifacts copied (filtered from artifact registry)
|
|
89
|
+
- [ ] `worktree-scope.json` written with milestone scope
|
|
90
|
+
- [ ] Scoped `state.json` written (this milestone's artifacts only)
|
|
91
|
+
- [ ] `worktrees.json` registry updated in main worktree
|
|
92
|
+
- [ ] Milestone marked `"forked"` in main state.json
|
|
93
|
+
|
|
94
|
+
Sync mode:
|
|
95
|
+
- [ ] Git merge main into worktree branch
|
|
96
|
+
- [ ] Shared artifacts re-copied
|
|
97
|
+
- [ ] Conflicts reported if any
|
|
98
|
+
</success_criteria>
|
|
@@ -16,7 +16,7 @@ When `--auto`: After config questions, run research without further interaction.
|
|
|
16
16
|
```bash
|
|
17
17
|
$maestro-init ""
|
|
18
18
|
$maestro-init "--auto"
|
|
19
|
-
$maestro-init "--from-brainstorm brainstorm-auth
|
|
19
|
+
$maestro-init "--from-brainstorm 20260318-brainstorm-auth"
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
**Flags**:
|
|
@@ -87,7 +87,7 @@ Read the following templates:
|
|
|
87
87
|
### Step 5: Create .workflow/ Structure
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
mkdir -p .workflow/specs .workflow/
|
|
90
|
+
mkdir -p .workflow/specs .workflow/scratch .workflow/codebase
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
### Step 6: Write project.md
|
|
@@ -103,9 +103,10 @@ Write to `.workflow/project.md`.
|
|
|
103
103
|
### Step 7: Write state.json
|
|
104
104
|
|
|
105
105
|
Initialize state from template:
|
|
106
|
-
- `current_phase`: null
|
|
107
106
|
- `current_milestone`: null
|
|
107
|
+
- `current_task_id`: null
|
|
108
108
|
- `status`: "initialized"
|
|
109
|
+
- `artifacts`: []
|
|
109
110
|
|
|
110
111
|
Write to `.workflow/state.json`.
|
|
111
112
|
|
|
@@ -122,7 +123,7 @@ Write to `.workflow/config.json`.
|
|
|
122
123
|
|
|
123
124
|
Create convention files in `.workflow/specs/`:
|
|
124
125
|
- `conventions.md` — detected or specified coding conventions
|
|
125
|
-
- `learnings.md` — empty, populated during
|
|
126
|
+
- `learnings.md` — empty, populated during execute summaries extraction
|
|
126
127
|
|
|
127
128
|
### Step 10: Completion Report
|
|
128
129
|
|