maestro-flow 0.5.46 → 0.5.48
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/.agents/agents/ralph-executor.md +14 -24
- package/.agents/skills/domain-add/SKILL.md +9 -0
- package/.agents/skills/learn-decompose/SKILL.md +12 -0
- package/.agents/skills/learn-follow/SKILL.md +41 -0
- package/.agents/skills/learn-investigate/SKILL.md +14 -0
- package/.agents/skills/learn-second-opinion/SKILL.md +14 -0
- package/.agents/skills/maestro-amend/SKILL.md +11 -0
- package/.agents/skills/maestro-analyze/SKILL.md +13 -13
- package/.agents/skills/maestro-companion/SKILL.md +11 -0
- package/.agents/skills/maestro-composer/SKILL.md +12 -1
- package/.agents/skills/maestro-guard/SKILL.md +25 -0
- package/.agents/skills/maestro-help/SKILL.md +2 -0
- package/.agents/skills/maestro-help/index/catalog.json +7 -7
- package/.agents/skills/maestro-init/SKILL.md +29 -1
- package/.agents/skills/maestro-milestone-audit/SKILL.md +2 -2
- package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agents/skills/maestro-next/SKILL.md +2 -2
- package/.agents/skills/maestro-overlay/SKILL.md +11 -0
- package/.agents/skills/maestro-plan/SKILL.md +31 -9
- package/.agents/skills/maestro-player/SKILL.md +11 -0
- package/.agents/skills/maestro-quick/SKILL.md +29 -0
- package/.agents/skills/maestro-ralph-v2/SKILL.md +26 -50
- package/.agents/skills/maestro-roadmap/SKILL.md +2 -2
- package/.agents/skills/maestro-swarm-workflow/SKILL.md +25 -0
- package/.agents/skills/maestro-tools-execute/SKILL.md +29 -0
- package/.agents/skills/maestro-tools-register/SKILL.md +29 -0
- package/.agents/skills/maestro-ui-codify/SKILL.md +11 -0
- package/.agents/skills/maestro-universal-workflow/SKILL.md +59 -0
- package/.agents/skills/maestro-update/SKILL.md +38 -0
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +29 -0
- package/.agents/skills/manage-drift-realign/SKILL.md +12 -0
- package/.agents/skills/manage-harvest/SKILL.md +30 -6
- package/.agents/skills/manage-issue/SKILL.md +23 -0
- package/.agents/skills/manage-issue-discover/SKILL.md +28 -0
- package/.agents/skills/manage-kg-extractors/SKILL.md +27 -1
- package/.agents/skills/manage-knowhow/SKILL.md +26 -0
- package/.agents/skills/manage-knowhow-capture/SKILL.md +24 -0
- package/.agents/skills/manage-knowledge-audit/SKILL.md +13 -0
- package/.agents/skills/manage-status/SKILL.md +22 -0
- package/.agents/skills/manage-wiki/SKILL.md +28 -0
- package/.agents/skills/odyssey-improve/SKILL.md +50 -0
- package/.agents/skills/odyssey-planex/SKILL.md +46 -0
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +50 -0
- package/.agents/skills/odyssey-ui/SKILL.md +50 -0
- package/.agents/skills/quality-auto-test/SKILL.md +13 -1
- package/.agents/skills/quality-debug/SKILL.md +11 -0
- package/.agents/skills/quality-refactor/SKILL.md +11 -0
- package/.agents/skills/quality-retrospective/SKILL.md +11 -0
- package/.agents/skills/quality-review/SKILL.md +11 -0
- package/.agents/skills/quality-sync/SKILL.md +10 -0
- package/.agents/skills/quality-test/SKILL.md +12 -0
- package/.agents/skills/security-audit/SKILL.md +11 -0
- package/.agents/skills/spec-add/SKILL.md +27 -0
- package/.agents/skills/spec-load/SKILL.md +25 -0
- package/.agents/skills/spec-remove/SKILL.md +26 -0
- package/.agents/skills/spec-setup/SKILL.md +30 -0
- package/.agy/agents/ralph-executor.md +14 -23
- package/.agy/skills/domain-add/SKILL.md +9 -0
- package/.agy/skills/learn-decompose/SKILL.md +12 -0
- package/.agy/skills/learn-follow/SKILL.md +41 -0
- package/.agy/skills/learn-investigate/SKILL.md +14 -0
- package/.agy/skills/learn-second-opinion/SKILL.md +14 -0
- package/.agy/skills/maestro-amend/SKILL.md +11 -0
- package/.agy/skills/maestro-analyze/SKILL.md +13 -13
- package/.agy/skills/maestro-companion/SKILL.md +11 -0
- package/.agy/skills/maestro-composer/SKILL.md +12 -1
- package/.agy/skills/maestro-guard/SKILL.md +25 -0
- package/.agy/skills/maestro-help/SKILL.md +2 -0
- package/.agy/skills/maestro-help/index/catalog.json +7 -7
- package/.agy/skills/maestro-init/SKILL.md +29 -1
- package/.agy/skills/maestro-milestone-audit/SKILL.md +2 -2
- package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agy/skills/maestro-next/SKILL.md +2 -2
- package/.agy/skills/maestro-overlay/SKILL.md +11 -0
- package/.agy/skills/maestro-plan/SKILL.md +31 -9
- package/.agy/skills/maestro-player/SKILL.md +11 -0
- package/.agy/skills/maestro-quick/SKILL.md +29 -0
- package/.agy/skills/maestro-ralph-v2/SKILL.md +26 -50
- package/.agy/skills/maestro-roadmap/SKILL.md +2 -2
- package/.agy/skills/maestro-swarm-workflow/SKILL.md +25 -0
- package/.agy/skills/maestro-tools-execute/SKILL.md +29 -0
- package/.agy/skills/maestro-tools-register/SKILL.md +29 -0
- package/.agy/skills/maestro-ui-codify/SKILL.md +11 -0
- package/.agy/skills/maestro-universal-workflow/SKILL.md +59 -0
- package/.agy/skills/maestro-update/SKILL.md +38 -0
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +29 -0
- package/.agy/skills/manage-drift-realign/SKILL.md +12 -0
- package/.agy/skills/manage-harvest/SKILL.md +30 -6
- package/.agy/skills/manage-issue/SKILL.md +23 -0
- package/.agy/skills/manage-issue-discover/SKILL.md +28 -0
- package/.agy/skills/manage-kg-extractors/SKILL.md +27 -1
- package/.agy/skills/manage-knowhow/SKILL.md +26 -0
- package/.agy/skills/manage-knowhow-capture/SKILL.md +24 -0
- package/.agy/skills/manage-knowledge-audit/SKILL.md +13 -0
- package/.agy/skills/manage-status/SKILL.md +22 -0
- package/.agy/skills/manage-wiki/SKILL.md +28 -0
- package/.agy/skills/odyssey-improve/SKILL.md +50 -0
- package/.agy/skills/odyssey-planex/SKILL.md +46 -0
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +50 -0
- package/.agy/skills/odyssey-ui/SKILL.md +50 -0
- package/.agy/skills/quality-auto-test/SKILL.md +13 -1
- package/.agy/skills/quality-debug/SKILL.md +11 -0
- package/.agy/skills/quality-refactor/SKILL.md +11 -0
- package/.agy/skills/quality-retrospective/SKILL.md +11 -0
- package/.agy/skills/quality-review/SKILL.md +11 -0
- package/.agy/skills/quality-sync/SKILL.md +10 -0
- package/.agy/skills/quality-test/SKILL.md +12 -0
- package/.agy/skills/security-audit/SKILL.md +11 -0
- package/.agy/skills/spec-add/SKILL.md +27 -0
- package/.agy/skills/spec-load/SKILL.md +25 -0
- package/.agy/skills/spec-remove/SKILL.md +26 -0
- package/.agy/skills/spec-setup/SKILL.md +30 -0
- package/.claude/agents/ralph-executor.md +14 -24
- package/.claude/commands/domain-add.md +9 -0
- package/.claude/commands/learn-decompose.md +12 -0
- package/.claude/commands/learn-follow.md +41 -0
- package/.claude/commands/learn-investigate.md +14 -0
- package/.claude/commands/learn-second-opinion.md +14 -0
- package/.claude/commands/maestro-amend.md +11 -0
- package/.claude/commands/maestro-analyze.md +13 -13
- package/.claude/commands/maestro-companion.md +11 -0
- package/.claude/commands/maestro-composer.md +12 -1
- package/.claude/commands/maestro-guard.md +25 -0
- package/.claude/commands/maestro-init.md +29 -1
- package/.claude/commands/maestro-milestone-audit.md +2 -2
- package/.claude/commands/maestro-milestone-release.md +1 -1
- package/.claude/commands/maestro-next.md +2 -2
- package/.claude/commands/maestro-overlay.md +11 -0
- package/.claude/commands/maestro-plan.md +31 -9
- package/.claude/commands/maestro-player.md +11 -0
- package/.claude/commands/maestro-quick.md +29 -0
- package/.claude/commands/maestro-ralph-v2.md +26 -50
- package/.claude/commands/maestro-roadmap.md +2 -2
- package/.claude/commands/maestro-swarm-workflow.md +25 -0
- package/.claude/commands/maestro-tools-execute.md +29 -0
- package/.claude/commands/maestro-tools-register.md +29 -0
- package/.claude/commands/maestro-ui-codify.md +11 -0
- package/.claude/commands/maestro-universal-workflow.md +59 -0
- package/.claude/commands/maestro-update.md +38 -0
- package/.claude/commands/manage-codebase-rebuild.md +29 -0
- package/.claude/commands/manage-drift-realign.md +12 -0
- package/.claude/commands/manage-harvest.md +30 -6
- package/.claude/commands/manage-issue-discover.md +28 -0
- package/.claude/commands/manage-issue.md +23 -0
- package/.claude/commands/manage-kg-extractors.md +27 -1
- package/.claude/commands/manage-knowhow-capture.md +24 -0
- package/.claude/commands/manage-knowhow.md +26 -0
- package/.claude/commands/manage-knowledge-audit.md +13 -0
- package/.claude/commands/manage-status.md +22 -0
- package/.claude/commands/manage-wiki.md +28 -0
- package/.claude/commands/odyssey-improve.md +50 -0
- package/.claude/commands/odyssey-planex.md +46 -0
- package/.claude/commands/odyssey-review-test-fix.md +50 -0
- package/.claude/commands/odyssey-ui.md +50 -0
- package/.claude/commands/quality-auto-test.md +13 -1
- package/.claude/commands/quality-debug.md +11 -0
- package/.claude/commands/quality-refactor.md +11 -0
- package/.claude/commands/quality-retrospective.md +11 -0
- package/.claude/commands/quality-review.md +11 -0
- package/.claude/commands/quality-sync.md +10 -0
- package/.claude/commands/quality-test.md +12 -0
- package/.claude/commands/security-audit.md +11 -0
- package/.claude/commands/spec-add.md +27 -0
- package/.claude/commands/spec-load.md +25 -0
- package/.claude/commands/spec-remove.md +26 -0
- package/.claude/commands/spec-setup.md +30 -0
- package/.claude/skills/maestro-help/SKILL.md +2 -0
- package/.claude/skills/maestro-help/index/catalog.json +7 -7
- package/.codex/skills/codify-to-knowhow/SKILL.md +2 -0
- package/.codex/skills/domain-add/SKILL.md +26 -0
- package/.codex/skills/domain-discover/SKILL.md +46 -0
- package/.codex/skills/domain-list/SKILL.md +29 -0
- package/.codex/skills/learn-decompose/SKILL.md +2 -0
- package/.codex/skills/learn-follow/SKILL.md +34 -0
- package/.codex/skills/learn-investigate/SKILL.md +33 -0
- package/.codex/skills/learn-retro/SKILL.md +33 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +30 -0
- package/.codex/skills/maestro/SKILL.md +6 -5
- package/.codex/skills/maestro-amend/SKILL.md +11 -0
- package/.codex/skills/maestro-analyze/SKILL.md +13 -18
- package/.codex/skills/maestro-companion/SKILL.md +11 -0
- package/.codex/skills/maestro-composer/SKILL.md +11 -0
- package/.codex/skills/maestro-guard/SKILL.md +25 -0
- package/.codex/skills/maestro-help/SKILL.md +2 -0
- package/.codex/skills/maestro-help/catalog.json +7 -7
- package/.codex/skills/maestro-init/SKILL.md +16 -0
- package/.codex/skills/maestro-learn/SKILL.md +2 -0
- package/.codex/skills/maestro-next/SKILL.md +2 -2
- package/.codex/skills/maestro-overlay/SKILL.md +1 -0
- package/.codex/skills/maestro-plan/SKILL.md +13 -16
- package/.codex/skills/maestro-player/SKILL.md +2 -0
- package/.codex/skills/maestro-quick/SKILL.md +17 -0
- package/.codex/skills/maestro-ralph/SKILL.md +11 -11
- package/.codex/skills/maestro-ralph-execute/SKILL.md +8 -8
- package/.codex/skills/maestro-tools-execute/SKILL.md +31 -0
- package/.codex/skills/maestro-tools-register/SKILL.md +29 -0
- package/.codex/skills/maestro-ui-codify/SKILL.md +2 -0
- package/.codex/skills/maestro-update/SKILL.md +38 -0
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -0
- package/.codex/skills/manage-codebase-refresh/SKILL.md +11 -0
- package/.codex/skills/manage-drift-realign/SKILL.md +2 -0
- package/.codex/skills/manage-harvest/SKILL.md +30 -8
- package/.codex/skills/manage-issue/SKILL.md +24 -0
- package/.codex/skills/manage-issue-discover/SKILL.md +2 -0
- package/.codex/skills/manage-knowhow/SKILL.md +26 -0
- package/.codex/skills/manage-knowhow-capture/SKILL.md +23 -0
- package/.codex/skills/manage-learn/SKILL.md +2 -0
- package/.codex/skills/manage-status/SKILL.md +22 -0
- package/.codex/skills/manage-wiki/SKILL.md +28 -0
- package/.codex/skills/odyssey-debug/SKILL.md +44 -0
- package/.codex/skills/odyssey-improve/SKILL.md +49 -0
- package/.codex/skills/odyssey-planex/SKILL.md +44 -0
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +48 -0
- package/.codex/skills/odyssey-ui/SKILL.md +49 -0
- package/.codex/skills/quality-auto-test/SKILL.md +2 -0
- package/.codex/skills/quality-debug/SKILL.md +2 -0
- package/.codex/skills/quality-refactor/SKILL.md +2 -0
- package/.codex/skills/quality-retrospective/SKILL.md +2 -0
- package/.codex/skills/quality-review/SKILL.md +2 -0
- package/.codex/skills/quality-sync/SKILL.md +24 -0
- package/.codex/skills/quality-test/SKILL.md +2 -0
- package/.codex/skills/security-audit/SKILL.md +30 -0
- package/.codex/skills/spec-add/SKILL.md +28 -0
- package/.codex/skills/spec-load/SKILL.md +26 -0
- package/.codex/skills/spec-map/SKILL.md +1 -0
- package/.codex/skills/spec-remove/SKILL.md +28 -0
- package/.codex/skills/spec-setup/SKILL.md +28 -0
- package/.codex/skills/wiki-connect/SKILL.md +11 -0
- package/.codex/skills/wiki-digest/SKILL.md +11 -0
- package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.js +3 -1
- package/dashboard/dist-server/dashboard/src/server/agents/api-explore-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js +42 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/db/queries.d.ts +4 -0
- package/dashboard/dist-server/src/graph/kg/db/queries.js +35 -19
- package/dashboard/dist-server/src/graph/kg/db/queries.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js +2 -0
- package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/engine.js +5 -1
- package/dashboard/dist-server/src/graph/kg/engine.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/extraction/orchestrator.js +19 -11
- package/dashboard/dist-server/src/graph/kg/extraction/orchestrator.js.map +1 -1
- package/dashboard/dist-server/src/hooks/kg-sync-hook.js +5 -3
- package/dashboard/dist-server/src/hooks/kg-sync-hook.js.map +1 -1
- package/dashboard/dist-server/src/hooks/session-context.js +3 -1
- package/dashboard/dist-server/src/hooks/session-context.js.map +1 -1
- package/dist/src/agents/api-explore/circuit-breaker.d.ts +41 -0
- package/dist/src/agents/api-explore/circuit-breaker.d.ts.map +1 -0
- package/dist/src/agents/api-explore/circuit-breaker.js +82 -0
- package/dist/src/agents/api-explore/circuit-breaker.js.map +1 -0
- package/dist/src/agents/api-explore/config.d.ts +15 -34
- package/dist/src/agents/api-explore/config.d.ts.map +1 -1
- package/dist/src/agents/api-explore/config.js +17 -42
- package/dist/src/agents/api-explore/config.js.map +1 -1
- package/dist/src/agents/api-explore/index.js +6 -6
- package/dist/src/agents/api-explore/index.js.map +1 -1
- package/dist/src/agents/api-explore/llm.d.ts +2 -0
- package/dist/src/agents/api-explore/llm.d.ts.map +1 -1
- package/dist/src/agents/api-explore/llm.js +16 -4
- package/dist/src/agents/api-explore/llm.js.map +1 -1
- package/dist/src/agents/api-explore/runner.d.ts +5 -0
- package/dist/src/agents/api-explore/runner.d.ts.map +1 -1
- package/dist/src/agents/api-explore/runner.js +66 -15
- package/dist/src/agents/api-explore/runner.js.map +1 -1
- package/dist/src/commands/explore.d.ts.map +1 -1
- package/dist/src/commands/explore.js +23 -4
- package/dist/src/commands/explore.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +62 -28
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/moa.d.ts.map +1 -1
- package/dist/src/commands/moa.js +18 -3
- package/dist/src/commands/moa.js.map +1 -1
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +2 -0
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/config/api-config.d.ts +61 -0
- package/dist/src/config/api-config.d.ts.map +1 -0
- package/dist/src/config/api-config.js +59 -0
- package/dist/src/config/api-config.js.map +1 -0
- package/dist/src/config/cli-tools-config.d.ts +1 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +22 -1
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/graph/kg/db/queries.d.ts +4 -0
- package/dist/src/graph/kg/db/queries.d.ts.map +1 -1
- package/dist/src/graph/kg/db/queries.js +35 -19
- package/dist/src/graph/kg/db/queries.js.map +1 -1
- package/dist/src/graph/kg/embedding/code-embedding.d.ts.map +1 -1
- package/dist/src/graph/kg/embedding/code-embedding.js +2 -0
- package/dist/src/graph/kg/embedding/code-embedding.js.map +1 -1
- package/dist/src/graph/kg/engine.d.ts.map +1 -1
- package/dist/src/graph/kg/engine.js +5 -1
- package/dist/src/graph/kg/engine.js.map +1 -1
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
- package/dist/src/graph/kg/extraction/orchestrator.js +19 -11
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +5 -3
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/hooks/plugins/explore-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/explore-plugin.js +3 -2
- package/dist/src/hooks/plugins/explore-plugin.js.map +1 -1
- package/dist/src/hooks/session-context.js +3 -1
- package/dist/src/hooks/session-context.js.map +1 -1
- package/dist/src/tui/install-ui/EmbeddingConfig.d.ts +25 -0
- package/dist/src/tui/install-ui/EmbeddingConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/EmbeddingConfig.js +58 -0
- package/dist/src/tui/install-ui/EmbeddingConfig.js.map +1 -0
- package/dist/src/tui/install-ui/EmbeddingPanel.d.ts +6 -0
- package/dist/src/tui/install-ui/EmbeddingPanel.d.ts.map +1 -0
- package/dist/src/tui/install-ui/EmbeddingPanel.js +101 -0
- package/dist/src/tui/install-ui/EmbeddingPanel.js.map +1 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts +2 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.js +8 -1
- package/dist/src/tui/install-ui/GroupedHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +4 -2
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/embedding-status.d.ts +12 -0
- package/dist/src/tui/install-ui/embedding-status.d.ts.map +1 -0
- package/dist/src/tui/install-ui/embedding-status.js +82 -0
- package/dist/src/tui/install-ui/embedding-status.js.map +1 -0
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.js +52 -2
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -1
- package/dist/src/tui/shared/tokens.d.ts +1 -1
- package/dist/src/tui/shared/tokens.js +1 -1
- package/dist/src/utils/update-notices.js +11 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +1 -1
- package/workflows/analyze.md +13 -15
- package/workflows/plan.md +33 -21
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-plan
|
|
3
|
-
description: Use when creating, revising, or verifying an execution plan for a
|
|
4
|
-
argument-hint: "[
|
|
3
|
+
description: Use when creating, revising, or verifying an execution plan for a milestone or task
|
|
4
|
+
argument-hint: "[milestone] [--spec SPEC-xxx] [-y] [--gaps] [--tdd] [--dir <path>] [--from <source>] [--revise [instructions]] [--check <plan-dir>]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- read_file
|
|
7
7
|
- write_file
|
|
@@ -31,9 +31,9 @@ Produces plan.json + TASK files; registers PLN artifact in state.json.
|
|
|
31
31
|
</deferred_reading>
|
|
32
32
|
|
|
33
33
|
<context>
|
|
34
|
-
$ARGUMENTS —
|
|
34
|
+
$ARGUMENTS — milestone number, or no args for current milestone, with optional flags.
|
|
35
35
|
|
|
36
|
-
Scope routing, base flags (`--
|
|
36
|
+
Scope routing, base flags (`--spec`, `-y`, `--gaps`, `--dir`), output directory format, and artifact registration are defined in workflow plan.md.
|
|
37
37
|
|
|
38
38
|
**Command-level flags** (extensions beyond workflow base):
|
|
39
39
|
- `--from <source>`: Load upstream context directly (bypasses roadmap requirement):
|
|
@@ -48,8 +48,8 @@ Scope routing, base flags (`--collab`, `--spec`, `-y`, `--gaps`, `--dir`), outpu
|
|
|
48
48
|
1. `--from analyze:ANL-xxx` → uses analyze conclusions.implementation_scope directly
|
|
49
49
|
2. `--from blueprint:BLP-xxx` → uses blueprint requirements + architecture
|
|
50
50
|
3. `--dir <path>` → explicit context directory (unchanged)
|
|
51
|
-
4. Numeric arg → scope = "
|
|
52
|
-
5. No args + roadmap → scope = "
|
|
51
|
+
4. Numeric arg → scope = "milestone", resolve from roadmap
|
|
52
|
+
5. No args + roadmap → scope = "current_milestone"
|
|
53
53
|
6. No args + no roadmap → search state.json for latest analyze artifact, fallback standalone
|
|
54
54
|
|
|
55
55
|
**Ad-hoc milestone (D-008):** When scope resolves to "standalone" via the standard standalone resolution (no `--from` source), and `current_milestone == null`, plan auto-creates an adhoc milestone (`type: "adhoc"`) in state.json before proceeding. This ensures downstream milestone-audit/complete have a valid milestone context. See workflow plan.md § "Ad-hoc Milestone Auto-Creation".
|
|
@@ -71,6 +71,28 @@ If exit code is 1, present warnings and ask whether to proceed.
|
|
|
71
71
|
|
|
72
72
|
Follow '~/.maestro/workflows/plan.md' completely.
|
|
73
73
|
|
|
74
|
+
### Plan Agent Model
|
|
75
|
+
|
|
76
|
+
Plan automatically selects agent mode based on milestone scope:
|
|
77
|
+
|
|
78
|
+
**Single agent mode** (default):
|
|
79
|
+
- Milestone involves ≤3 modules
|
|
80
|
+
- 1 workflow-planner agent, max 8 TASK JSON output
|
|
81
|
+
- Directly produces plan.json
|
|
82
|
+
|
|
83
|
+
**2+1 agent mode** (auto-triggered):
|
|
84
|
+
- Milestone involves >3 modules
|
|
85
|
+
- 2 parallel workflow-planner agents, each scoped to 2-3 modules
|
|
86
|
+
- Each agent produces max 8 TASK JSON (total max 16)
|
|
87
|
+
- +1 synthesis agent:
|
|
88
|
+
- Merges TASK JSON from both agents
|
|
89
|
+
- DAG analysis: dependency correctness, cycle detection, cross-module conflicts
|
|
90
|
+
- Terminology consistency check
|
|
91
|
+
- Wave ordering optimization
|
|
92
|
+
- Produces unified plan.json
|
|
93
|
+
|
|
94
|
+
Module count is derived from milestone phase definitions and analyze upstream context.
|
|
95
|
+
|
|
74
96
|
### Phase Gates (MANDATORY, BLOCKING — Create mode only)
|
|
75
97
|
|
|
76
98
|
**GATE P1 → P2: Context Collection → Clarification**
|
|
@@ -115,7 +137,7 @@ Follow workflow plan.md § "Revise Mode" and § "Check Mode" respectively. These
|
|
|
115
137
|
|
|
116
138
|
```
|
|
117
139
|
=== PLAN READY ===
|
|
118
|
-
|
|
140
|
+
Milestone: {milestone_name}
|
|
119
141
|
Tasks: {task_count} tasks in {wave_count} waves
|
|
120
142
|
Check: {checker_status} (iteration {check_count}/{max_checks})
|
|
121
143
|
Collision: {collision_status}
|
|
@@ -145,13 +167,13 @@ Status verdicts:
|
|
|
145
167
|
|-----------|-----------|
|
|
146
168
|
| Plan confirmed for execution | `/maestro-execute` |
|
|
147
169
|
| Plan confirmed, specific directory | `/maestro-execute --dir {dir}` |
|
|
148
|
-
| Re-plan with modifications | `/maestro-plan {
|
|
170
|
+
| Re-plan with modifications | `/maestro-plan {milestone}` |
|
|
149
171
|
</completion>
|
|
150
172
|
|
|
151
173
|
<error_codes>
|
|
152
174
|
| Code | Severity | Condition | Recovery |
|
|
153
175
|
|------|----------|-----------|----------|
|
|
154
|
-
| E001 | error | No args and no roadmap (cannot determine scope) | Provide
|
|
176
|
+
| E001 | error | No args and no roadmap (cannot determine scope) | Provide milestone number or topic, or create roadmap |
|
|
155
177
|
| E003 | error | --gaps requires prior verification/issues to exist | Run maestro-execute first (verification is built-in) |
|
|
156
178
|
| E004 | error | No plan found to revise (--revise without target) | Use --dir to specify plan, or create plan first |
|
|
157
179
|
| E005 | error | Plan directory not found (--check) | Check path, use --dir |
|
|
@@ -69,8 +69,19 @@ $ARGUMENTS — template slug/path, or flags.
|
|
|
69
69
|
"last_checkpoint": null
|
|
70
70
|
}
|
|
71
71
|
```
|
|
72
|
+
|
|
73
|
+
**Output boundary**: ALL file writes MUST target `.workflow/.maestro/player-*/` (session status.json + step outputs) only. Template files (`~/.maestro/templates/workflows/`) are read-only. NEVER modify source code or `.claude/commands/` files.
|
|
72
74
|
</context>
|
|
73
75
|
|
|
76
|
+
<invariants>
|
|
77
|
+
1. **Resume-safe** — status.json MUST be updated after every step change; an interrupted session MUST be resumable from the last checkpoint via `-c`
|
|
78
|
+
2. **One step at a time** — execution loop MUST process steps sequentially in topological order; parallel steps share a batch index but NEVER run concurrently within the player
|
|
79
|
+
3. **CLI nodes async** — cli-type nodes MUST use `shell(run_in_background: true)` + STOP pattern; NEVER block the main thread on delegate execution
|
|
80
|
+
4. **Templates read-only** — player MUST NOT modify template JSON files; runtime state belongs in status.json only
|
|
81
|
+
5. **Failure requires user decision** — on step failure without explicit `on_fail`, player MUST prompt via ask_user (Retry/Skip/Abort); NEVER silently skip or auto-abort
|
|
82
|
+
6. **Reference resolution at runtime** — `{N-xxx.field}` and `{prev_*}` references MUST be resolved at execution time from status.json step results, NEVER pre-resolved during init
|
|
83
|
+
</invariants>
|
|
84
|
+
|
|
74
85
|
<state_machine>
|
|
75
86
|
|
|
76
87
|
<states>
|
|
@@ -41,9 +41,38 @@ Parse for:
|
|
|
41
41
|
- Browse: `maestro search --category coding`
|
|
42
42
|
- Load task-relevant entries: `maestro load --type knowhow --id <id1> [id2...]`
|
|
43
43
|
3. All are optional — proceed without if unavailable.
|
|
44
|
+
|
|
45
|
+
**Output boundary**: ALL file writes MUST target `.workflow/scratch/` (task directory, plan.json, summaries) and modified source files as defined in plan.json tasks. State.json scratch entry is implicit workflow tracking.
|
|
44
46
|
</context>
|
|
45
47
|
|
|
48
|
+
<invariants>
|
|
49
|
+
1. **Atomic commits** — each task execution MUST produce a commit with only the files modified by that task; NEVER stage unrelated files
|
|
50
|
+
2. **Evidence-based summaries** — task summaries MUST include concrete evidence (files changed, tests run, commands executed); NEVER accept "task completed successfully" as a summary
|
|
51
|
+
3. **Plan before execute** — plan.json MUST be written before any task execution begins; NEVER skip planning even for single-task workflows
|
|
52
|
+
4. **Scratch isolation** — all workflow artifacts MUST live under `.workflow/scratch/{task-dir}/`; NEVER write workflow metadata outside this directory
|
|
53
|
+
5. **Commit confirmation** — staged files and commit message MUST be shown via ask_user before committing (unless `-y`); NEVER auto-commit without user awareness
|
|
54
|
+
</invariants>
|
|
55
|
+
|
|
46
56
|
<execution>
|
|
57
|
+
|
|
58
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
59
|
+
|
|
60
|
+
**GATE 1: Setup → Planning**
|
|
61
|
+
- REQUIRED: Task description parsed and scratch directory created.
|
|
62
|
+
- REQUIRED: Coding specs loaded (optional but attempted).
|
|
63
|
+
- BLOCKED if: no task description (E001) or scratch directory creation failed (E002).
|
|
64
|
+
|
|
65
|
+
**GATE 2: Planning → Execution**
|
|
66
|
+
- REQUIRED: plan.json written with task definitions.
|
|
67
|
+
- REQUIRED: --discuss decisions extracted and recorded (if flag set).
|
|
68
|
+
- BLOCKED if: plan.json missing or empty.
|
|
69
|
+
|
|
70
|
+
**GATE 3: Execution → Completion**
|
|
71
|
+
- REQUIRED: All tasks executed with `.summaries/TASK-*-summary.md` written per task.
|
|
72
|
+
- REQUIRED: Each summary contains concrete evidence of completion.
|
|
73
|
+
- REQUIRED: --full verification passed (if flag set).
|
|
74
|
+
- BLOCKED if: any task summary missing or lacking evidence.
|
|
75
|
+
|
|
47
76
|
Follow '~/.maestro/workflows/quick.md' completely.
|
|
48
77
|
|
|
49
78
|
### Artifact Verification (before completion)
|
|
@@ -45,13 +45,13 @@ Remaining → intent (amend_mode 时为 change_request)
|
|
|
45
45
|
</context>
|
|
46
46
|
|
|
47
47
|
<invariants>
|
|
48
|
-
1. **Ralph-v2 owns the full loop** — locate step → resolve args → load context → dispatch agent → wait for
|
|
49
|
-
2. **One agent per step** — 每个执行 step 派发一个
|
|
50
|
-
3. **Agent is a thin wrapper** — executor agent 调 `ralph next` 获取 skill prompt
|
|
51
|
-
4. **
|
|
52
|
-
- **执行 Agent**(A_STEP_DISPATCH):`delegate_subagent(
|
|
53
|
-
- **评估 Agent**(A_AGENT_EVALUATE / A_AGENT_GOAL_AUDIT / A_AGENT_REGROUND
|
|
54
|
-
- `agent_exec_name`
|
|
48
|
+
1. **Ralph-v2 owns the full loop** — locate step → resolve args → load context → dispatch agent → wait for task-notification → extract signals → drift → complete,全部在本命令内完成
|
|
49
|
+
2. **One agent per step** — 每个执行 step 派发一个 unnamed executor agent,结果通过 task-notification `<result>` 回传,主流程解析结果后决定下一步
|
|
50
|
+
3. **Agent is a thin wrapper** — executor agent 调 `ralph next` 获取 skill prompt 并执行,返回输出文本;arg resolution、context loading、signal extraction、drift analysis、ralph complete 均由主流程完成
|
|
51
|
+
4. **Unified unnamed dispatch** — 执行 Agent 和评估 Agent 均使用 unnamed delegate_subagent(),结果通过 task-notification `<result>` 回传:
|
|
52
|
+
- **执行 Agent**(A_STEP_DISPATCH):`delegate_subagent()` 不传 name — executor 内部编排也用 unnamed Agent(子结果自动回流 executor,嵌套套娃模型)
|
|
53
|
+
- **评估 Agent**(A_AGENT_EVALUATE / A_AGENT_GOAL_AUDIT / A_AGENT_REGROUND):同样 `delegate_subagent()` 不传 name
|
|
54
|
+
- `agent_exec_name` 仅用于 display/日志标识,不作为 Agent name 参数
|
|
55
55
|
5. **主流程调 `ralph complete`** — 每个 step 完成后由主流程调 `maestro ralph complete`,非 agent 上报
|
|
56
56
|
6. **Decision evaluation inline** — decision 节点不 handoff,通过 Agent 或 CLI delegate 在本循环内评估
|
|
57
57
|
7. **CLI delegation for evaluation only** — CLI delegate(`maestro delegate --mode analysis`)仅限评估环节;执行仍通过 executor Agent 完成
|
|
@@ -91,8 +91,7 @@ S_CONFIRM — 用户确认
|
|
|
91
91
|
|
|
92
92
|
S_STEP_LOCATE — 找下一个 pending step PERSIST: —
|
|
93
93
|
S_STEP_RESOLVE — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
|
|
94
|
-
S_STEP_DISPATCH — 组装上下文 + 派发
|
|
95
|
-
S_STEP_WAIT_MSG — 等待 executor 的 send_message 回传 PERSIST: —
|
|
94
|
+
S_STEP_DISPATCH — 组装上下文 + 派发 unnamed executor agent PERSIST: step.agent_exec_name, step.status = "running"
|
|
96
95
|
S_STEP_ANALYZE — 提取信号 + 组装 completion 参数 PERSIST: —
|
|
97
96
|
S_STEP_DRIFT — 产物 vs 目标偏离分析 PERSIST: step.drift_score
|
|
98
97
|
S_STEP_COMPLETE — 调 `ralph complete` 上报 PERSIST: step.completion_*
|
|
@@ -147,12 +146,8 @@ S_STEP_RESOLVE:
|
|
|
147
146
|
→ S_STEP_DISPATCH DO: A_STEP_RESOLVE_ARGS
|
|
148
147
|
|
|
149
148
|
S_STEP_DISPATCH:
|
|
150
|
-
→
|
|
151
|
-
|
|
152
|
-
S_STEP_WAIT_MSG:
|
|
153
|
-
→ S_STEP_ANALYZE WHEN: received agent-message with EXECUTOR_OUTPUT DO: A_STEP_RECEIVE
|
|
154
|
-
→ S_HANDLE_FAIL WHEN: received agent-message with status=ERROR DO: A_STEP_RECEIVE
|
|
155
|
-
→ S_HANDLE_FAIL WHEN: executor idle without send_message(崩溃检测) DO: mark BLOCKED
|
|
149
|
+
→ S_STEP_ANALYZE WHEN: task-notification status=completed DO: A_STEP_DISPATCH
|
|
150
|
+
→ S_HANDLE_FAIL WHEN: task-notification status=failed DO: mark BLOCKED
|
|
156
151
|
|
|
157
152
|
S_STEP_ANALYZE:
|
|
158
153
|
→ S_STEP_DRIFT WHEN: STATUS == DONE|DONE_WITH_CONCERNS DO: A_STEP_EXTRACT
|
|
@@ -332,17 +327,15 @@ Execution criteria: {session.execution_criteria joined by '; '}
|
|
|
332
327
|
| debug | `dbg` |
|
|
333
328
|
| Other | `run` |
|
|
334
329
|
|
|
335
|
-
**4. Dispatch(
|
|
330
|
+
**4. Dispatch(unnamed executor):**
|
|
336
331
|
|
|
337
|
-
> 执行 Agent
|
|
332
|
+
> 执行 Agent 不传 name,结果通过 task-notification `<result>` 自动回传主流程。executor 内部编排也用 unnamed Agent(子结果自动回流 executor,嵌套套娃模型)。
|
|
338
333
|
|
|
339
334
|
```
|
|
340
335
|
delegate_subagent({
|
|
341
|
-
name: "{resolved_agent_name}",
|
|
342
336
|
subagent_type: "ralph-executor",
|
|
343
|
-
description: "执行 step {index}: {step.skill}",
|
|
337
|
+
description: "执行 step {index}: {step.skill} [{resolved_agent_name}]",
|
|
344
338
|
prompt: `Session: {session_id}
|
|
345
|
-
Agent name: {resolved_agent_name}
|
|
346
339
|
|
|
347
340
|
{goal_context 块,仅 protocol < 2 时}
|
|
348
341
|
|
|
@@ -351,24 +344,11 @@ Agent name: {resolved_agent_name}
|
|
|
351
344
|
})
|
|
352
345
|
```
|
|
353
346
|
|
|
354
|
-
5. Write `step.agent_exec_name` to status.json
|
|
347
|
+
5. Write `step.agent_exec_name` to status.json(仅日志标识)
|
|
355
348
|
6. Display: `[{index}/{total}] ⟶ {step.skill} → {resolved_agent_name}`
|
|
356
|
-
7. delegate_subagent()
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
从 executor 的 `agent-message` 中提取执行输出。
|
|
361
|
-
|
|
362
|
-
1. 接收到 `<agent-message from="{resolved_agent_name}">` 后,提取 message 内容
|
|
363
|
-
2. 解析 `EXECUTOR_OUTPUT` 格式:
|
|
364
|
-
- `status: DONE` → agent_output = message 内容,继续 S_STEP_ANALYZE
|
|
365
|
-
- `status: DONE_WITH_CONCERNS` → agent_output = message 内容,继续 S_STEP_ANALYZE
|
|
366
|
-
- `status: ERROR` → STATUS=BLOCKED,转 S_HANDLE_FAIL
|
|
367
|
-
3. idle_notification 处理(区分正常等待与崩溃):
|
|
368
|
-
- 首次收到 `idle_notification`:executor 可能在等待 worker 回传,正常现象,继续等待
|
|
369
|
-
- 连续收到 2 次 `idle_notification` 且中间无 `agent-message`:向 executor 发送 `send_message({to: "{resolved_agent_name}", message: "请回报执行状态"})` 询问
|
|
370
|
-
- 询问后仍只收到 `idle_notification` 无 `agent-message`:STATUS=BLOCKED,转 S_HANDLE_FAIL
|
|
371
|
-
4. `agent_output` = 提取的 message 内容
|
|
349
|
+
7. delegate_subagent() 返回 agentId → 等待 task-notification(status=completed 时 `<result>` 含 executor 输出)
|
|
350
|
+
8. task-notification 到达后,`agent_output` = `<result>` 内容 → 进入 S_STEP_ANALYZE
|
|
351
|
+
9. task-notification status=failed → STATUS=BLOCKED,转 S_HANDLE_FAIL
|
|
372
352
|
|
|
373
353
|
### A_STEP_EXTRACT
|
|
374
354
|
|
|
@@ -751,10 +731,7 @@ GUARD: 已完成(`status: "done"`)的目标不可 supersede(skip + warn)
|
|
|
751
731
|
|
|
752
732
|
- **A_RETRY**: `shell("maestro ralph retry {index}")` — CLI 设 `step.retried = true`, `step.status = "pending"`, 清 `active_step_index`
|
|
753
733
|
- **A_PAUSE_SESSION**: `ralph complete N --status BLOCKED --reason "..."` — CLI 写 `session.status = "paused"`
|
|
754
|
-
- **A_COMPLETE_SESSION**: 校验所有 step `completion_confirmed == true` + `task_decomposition_all_done == true`(若存在),通过后写 `session.status = "completed"
|
|
755
|
-
```
|
|
756
|
-
遍历 steps[].agent_exec_name → send_message({to: name, message: {type: "shutdown_request"}})
|
|
757
|
-
```
|
|
734
|
+
- **A_COMPLETE_SESSION**: 校验所有 step `completion_confirmed == true` + `task_decomposition_all_done == true`(若存在),通过后写 `session.status = "completed"`。unnamed executor 执行完自动终止,无需 shutdown 清理
|
|
758
735
|
|
|
759
736
|
</actions>
|
|
760
737
|
|
|
@@ -886,24 +863,23 @@ E001–E006, W001–W004 适用。Agent 新增:
|
|
|
886
863
|
|
|
887
864
|
### Success Criteria
|
|
888
865
|
|
|
889
|
-
- [ ] ralph-v2 owns full step loop: locate → resolve → dispatch → wait
|
|
890
|
-
- [ ] One agent per step — `delegate_subagent({
|
|
891
|
-
- [ ] Executor 内调 `maestro ralph next` 获取 skill prompt
|
|
892
|
-
- [ ] Executor
|
|
866
|
+
- [ ] ralph-v2 owns full step loop: locate → resolve → dispatch → wait task-notification → extract → drift → complete → next
|
|
867
|
+
- [ ] One agent per step — `delegate_subagent({ subagent_type: "ralph-executor" })` 每步派发一个 unnamed executor
|
|
868
|
+
- [ ] Executor 内调 `maestro ralph next` 获取 skill prompt 并执行,内部编排用 unnamed Agent(子结果回流 executor)
|
|
869
|
+
- [ ] Executor 结果通过 task-notification `<result>` 自动回传主流程
|
|
893
870
|
- [ ] 主流程调 `maestro ralph complete` 上报(非 agent 上报)
|
|
894
871
|
- [ ] 主流程负责 arg resolution、context loading、signal extraction、drift analysis
|
|
895
|
-
- [ ]
|
|
896
|
-
- [ ]
|
|
897
|
-
- [ ] Dual dispatch: 执行 Agent 传 `name`(async + send_message),评估 Agent 不传 `name`(sync)或 CLI delegate
|
|
872
|
+
- [ ] task-notification status=failed → STATUS=BLOCKED,转 S_HANDLE_FAIL
|
|
873
|
+
- [ ] Unified unnamed dispatch: 执行 Agent 和评估 Agent 均不传 name,结果通过 task-notification 回传。CLI delegate 仅限评估环节
|
|
898
874
|
- [ ] Decision evaluation 支持三种模式:agent(同步)、cli(CLI delegate)、dual(并行交叉验证)
|
|
899
875
|
- [ ] `evaluate_via` 字段控制评估模式,默认 `"agent"`
|
|
900
876
|
- [ ] dual 模式合并策略:一致取共识、分歧保守降级、CLI 未返回用 Agent 结果
|
|
901
877
|
- [ ] Verdict 解析保持 `---VERDICT---` 格式,parse 失败 → fallback fix + parse_failed: true
|
|
902
878
|
- [ ] decisions.ndjson 追加:source 字段为 `"ralph-v2"`
|
|
903
|
-
- [ ] Session schema: `execution_mode: "agent"`,`agent_exec_name
|
|
879
|
+
- [ ] Session schema: `execution_mode: "agent"`,`agent_exec_name`(display 标识),含 `artifacts_produced`
|
|
904
880
|
- [ ] Chain building(S_RESOLVE_PHASE through S_BUILD_CHAIN)自包含执行
|
|
905
881
|
- [ ] A_STEP_DISPATCH 含前序产出加载(滑动窗口 5 step + accumulated signals + stage-specific artifacts)
|
|
906
|
-
- [ ] `agent_exec_name` 含 stage prefix(grl/brn/anm/ana/pln/exe/rev/tst/dbg
|
|
882
|
+
- [ ] `agent_exec_name` 含 stage prefix(grl/brn/anm/ana/pln/exe/rev/tst/dbg)——仅用于 display/日志标识
|
|
907
883
|
- [ ] `--summary` 在 DONE/DONE_WITH_CONCERNS 时为 MUST(动词开头,≤100 字)
|
|
908
884
|
- [ ] CAVEATS 在 DONE_WITH_CONCERNS 时同时映射 --concerns
|
|
909
885
|
- [ ] A_STEP_EXTRACT 从 executor 输出提取 artifact IDs、path signals、phase signals
|
|
@@ -17,7 +17,7 @@ allowed-tools:
|
|
|
17
17
|
<purpose>
|
|
18
18
|
Generate milestone/phase roadmap from requirements or upstream context. Three modes: create (default), revise (`--revise`), review (`--review`). For formal spec documents, use `/maestro-blueprint`.
|
|
19
19
|
|
|
20
|
-
Pipeline: brainstorm/blueprint/analyze → **roadmap** → analyze {
|
|
20
|
+
Pipeline: brainstorm/blueprint/analyze → **roadmap** → analyze {milestone} → plan {milestone} → execute.
|
|
21
21
|
</purpose>
|
|
22
22
|
|
|
23
23
|
<required_reading>
|
|
@@ -62,7 +62,7 @@ Follows @~/.maestro/workflows/interview-mechanics.md standard.
|
|
|
62
62
|
|
|
63
63
|
**Interaction mode**: convergent menu-driven
|
|
64
64
|
**Decision tree** (strict order): mode (create / revise / review) → requirement scope (MVP / complete / phased) → decomposition strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order
|
|
65
|
-
**Scope guard**: only roadmap shape; do not pre-resolve
|
|
65
|
+
**Scope guard**: only roadmap shape; do not pre-resolve task breakdown or phase decomposition (belongs to plan)
|
|
66
66
|
**Writeback target**: .workflow/roadmap.md "Roadmap Decisions" section (create if absent)
|
|
67
67
|
**Additional skip conditions**: --revise, --review (skip to respective mode)
|
|
68
68
|
**Exit condition**: on consensus or explicit user signal → finalize Roadmap Decisions section
|
|
@@ -45,6 +45,8 @@ Remaining → intent
|
|
|
45
45
|
| `wf-plan` | `{ context_dir?, from?, phase?, scope?, specs?, gaps?, quick? }` |
|
|
46
46
|
| `wf-execute` | `{ plan_dir, specs?, codebase_context?, wiki_context?, auto_commit? }` |
|
|
47
47
|
| `wf-milestone-audit` | `{ milestone?, is_adhoc? }` |
|
|
48
|
+
|
|
49
|
+
**Output boundary**: ALL file writes MUST target `.workflow/scratch/{YYYYMMDD}-swarm-{script}-{slug}/` (results, ralph-compatible artifacts). When inside a ralph session, writes target the corresponding step's scratch directory. NEVER modify source code, workflow scripts (`~/.maestro/workflows/swarm/`), or `.claude/commands/` files.
|
|
48
50
|
</context>
|
|
49
51
|
|
|
50
52
|
<state_machine>
|
|
@@ -198,6 +200,29 @@ Workflow 返回 JSON 后:
|
|
|
198
200
|
6. **结果必须展示** — Workflow 返回后必须向用户展示格式化摘要,不得静默完成
|
|
199
201
|
</invariants>
|
|
200
202
|
|
|
203
|
+
<execution>
|
|
204
|
+
|
|
205
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
206
|
+
|
|
207
|
+
**GATE 1: Parse → Route**
|
|
208
|
+
- REQUIRED: Intent text or `--script` flag parsed successfully.
|
|
209
|
+
- BLOCKED if: no intent and no `--script` (E001).
|
|
210
|
+
|
|
211
|
+
**GATE 2: Route → Context Assembly**
|
|
212
|
+
- REQUIRED: Target script resolved unambiguously (single match or user-selected from candidates).
|
|
213
|
+
- BLOCKED if: ambiguous routing without user resolution (E002).
|
|
214
|
+
|
|
215
|
+
**GATE 3: Context → Dispatch**
|
|
216
|
+
- REQUIRED: Args payload assembled with all required fields for target script.
|
|
217
|
+
- REQUIRED: Script file exists at `~/.maestro/workflows/swarm/{script}.js`.
|
|
218
|
+
- BLOCKED if: script file not found (E003) or required args missing.
|
|
219
|
+
|
|
220
|
+
**GATE 4: Dispatch → Ingest**
|
|
221
|
+
- REQUIRED: Workflow execution completed (success or partial results available).
|
|
222
|
+
- BLOCKED if: Workflow execution failed entirely (E004) — offer `--resume`.
|
|
223
|
+
|
|
224
|
+
</execution>
|
|
225
|
+
|
|
201
226
|
<appendix>
|
|
202
227
|
|
|
203
228
|
### 与 Ralph 集成
|
|
@@ -37,8 +37,37 @@ $ARGUMENTS — Tool name, keyword, or --category filter
|
|
|
37
37
|
Empty arguments enters interactive mode: list all tools for user selection.
|
|
38
38
|
</context>
|
|
39
39
|
|
|
40
|
+
<invariants>
|
|
41
|
+
1. **Confirmation before execution** — MUST ask_user before executing tool steps; NEVER auto-execute without user consent
|
|
42
|
+
2. **Sequential step execution** — steps MUST be executed in defined order; NEVER skip or reorder steps unless user explicitly requests skip
|
|
43
|
+
3. **Blocker escalation** — step failure MUST be reported to user with retry/skip/abort options; NEVER silently skip failed steps
|
|
44
|
+
4. **Read-only tool definition** — tool execution MUST NOT modify the tool's knowhow document or spec entry; only the target codebase is modified per tool steps
|
|
45
|
+
5. **Progress feedback** — each completed step MUST report `[Step N/M] done — <step_name>`; NEVER execute silently
|
|
46
|
+
6. **Output boundary** — file writes are governed by the individual tool's step definitions. This command itself writes NO files beyond what the loaded tool prescribes
|
|
47
|
+
</invariants>
|
|
48
|
+
|
|
40
49
|
<execution>
|
|
41
50
|
|
|
51
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
52
|
+
|
|
53
|
+
**GATE 1: Parse → Load**
|
|
54
|
+
- REQUIRED: Tool name, keyword, or --category parsed from arguments (or empty for interactive mode).
|
|
55
|
+
- BLOCKED if: invalid category value.
|
|
56
|
+
|
|
57
|
+
**GATE 2: Load → Confirm**
|
|
58
|
+
- REQUIRED: Exactly one tool resolved (direct match or user selection from candidates).
|
|
59
|
+
- REQUIRED: Tool document loaded and steps extracted (ref entries expanded via `maestro load --type knowhow`).
|
|
60
|
+
- BLOCKED if: E001 (no match found), E002 unresolved (multiple matches without user selection).
|
|
61
|
+
|
|
62
|
+
**GATE 3: Confirm → Execute**
|
|
63
|
+
- REQUIRED: User confirmed execution mode via ask_user (execute as-is / adjust / view only).
|
|
64
|
+
- BLOCKED if: user selects "View only" — display steps and END without execution.
|
|
65
|
+
|
|
66
|
+
**GATE 4: Execute → Report**
|
|
67
|
+
- REQUIRED: All steps attempted (completed, skipped with user approval, or aborted by user).
|
|
68
|
+
- REQUIRED: Results collected for each step (success/skip/fail).
|
|
69
|
+
- BLOCKED if: user chose abort mid-execution — report partial results and END.
|
|
70
|
+
|
|
42
71
|
### Step 1: Load Tool
|
|
43
72
|
|
|
44
73
|
**By name**:
|
|
@@ -37,8 +37,37 @@ $ARGUMENTS — Intent description
|
|
|
37
37
|
```
|
|
38
38
|
</context>
|
|
39
39
|
|
|
40
|
+
<invariants>
|
|
41
|
+
1. **Schema validation** — tool knowhow document MUST include `tool: true`, `category`, `keywords`, and `summary` in YAML frontmatter; missing fields → reject write
|
|
42
|
+
2. **No duplicate names** — tool title MUST be unique within its category; duplicate detection → E002 warning with overwrite/optimize confirmation
|
|
43
|
+
3. **Category required** — every tool MUST declare exactly one category from: coding, test, review, arch, debug; empty category → E003
|
|
44
|
+
4. **Confirmation gate** — MUST ask_user before writing knowhow document and spec ref entry; NEVER persist without user confirmation
|
|
45
|
+
5. **Promote is in-place** — promote mode MUST update existing knowhow frontmatter via `maestro wiki update`; NEVER recreate the document
|
|
46
|
+
6. **Output boundary** — ALL file writes MUST target .workflow/knowhow/ (tool documents) and .workflow/specs/ (ref entries via maestro spec add) only. NEVER modify source code or files outside these paths
|
|
47
|
+
7. **Description format** — first line after `### Title` MUST state "Use when ..." (usage timing); this is critical for ref entry summary visibility in spec-load
|
|
48
|
+
</invariants>
|
|
49
|
+
|
|
40
50
|
<execution>
|
|
41
51
|
|
|
52
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
53
|
+
|
|
54
|
+
**GATE 1: Parse → Gather**
|
|
55
|
+
- REQUIRED: Mode determined (extract/generate/optimize/promote) from argument parsing.
|
|
56
|
+
- REQUIRED: For optimize/promote modes, target tool/document exists and is loadable.
|
|
57
|
+
- BLOCKED if: empty args without user response to ask_user.
|
|
58
|
+
|
|
59
|
+
**GATE 2: Gather → Write**
|
|
60
|
+
- REQUIRED: Tool name, category, and usage timing confirmed.
|
|
61
|
+
- REQUIRED: Steps extracted or generated (extract: ≥1 step, generate: user-confirmed scope).
|
|
62
|
+
- REQUIRED: Inline vs ref mode decided based on step count.
|
|
63
|
+
- REQUIRED: User confirmed via ask_user (title, category, keywords, summary, step count).
|
|
64
|
+
- BLOCKED if: E001 (.workflow/specs/ not initialized), E003 (no category), user cancels.
|
|
65
|
+
|
|
66
|
+
**GATE 3: Write → Verify**
|
|
67
|
+
- REQUIRED: Knowhow document written with `tool: true` frontmatter (or updated in-place for promote).
|
|
68
|
+
- REQUIRED: Spec ref entry registered (if user confirmed).
|
|
69
|
+
- BLOCKED if: write failed or spec add returned error.
|
|
70
|
+
|
|
42
71
|
### Step 1: Intent Detection
|
|
43
72
|
|
|
44
73
|
Parse $ARGUMENTS to determine mode:
|
|
@@ -35,8 +35,19 @@ Flags:
|
|
|
35
35
|
- `--package-name <name>`: Package name for reference output (default: auto-generated from source directory)
|
|
36
36
|
- `--output-dir <path>`: Output directory for reference package (default: `.workflow/reference_style`)
|
|
37
37
|
- `--overwrite`: Allow overwriting existing package directory
|
|
38
|
+
|
|
39
|
+
**Output boundary**: ALL file writes MUST target the `--output-dir` path (default: `.workflow/reference_style/`) for reference packages, and `.workflow/knowhow/` for knowledge assets (via `codify-to-knowhow`). NEVER modify the source directory being analyzed.
|
|
38
40
|
</context>
|
|
39
41
|
|
|
42
|
+
<invariants>
|
|
43
|
+
1. **Source read-only** — the source path being analyzed MUST NOT be modified; extraction is purely read-only
|
|
44
|
+
2. **Phase-sequential loading** — workflow files (ui-codify-extract, ui-codify-package, ui-codify-knowhow) MUST be read only when their phase starts; NEVER load all phases eagerly
|
|
45
|
+
3. **User confirmation before knowhow** — Phase 3→4 gate MUST present ask_user before generating knowledge assets; NEVER auto-proceed to knowhow generation
|
|
46
|
+
4. **Overwrite protection** — existing package directory MUST NOT be overwritten without `--overwrite` flag (E003)
|
|
47
|
+
5. **Artifact completeness** — all 5 required artifacts MUST exist before reporting completion; NEVER skip artifact verification
|
|
48
|
+
6. **Token-first extraction** — design-tokens.json MUST be generated before layout-templates.json; layout extraction depends on token foundation
|
|
49
|
+
</invariants>
|
|
50
|
+
|
|
40
51
|
<execution>
|
|
41
52
|
## 1. Load UI Specs
|
|
42
53
|
|
|
@@ -35,6 +35,8 @@ Remaining → intent
|
|
|
35
35
|
**Library locations:**
|
|
36
36
|
- Fixed scripts: `~/.maestro/workflows/swarm/wf-*.js`
|
|
37
37
|
- Dynamic scripts: `~/.maestro/workflows/dynamic/uwf-*.js`
|
|
38
|
+
|
|
39
|
+
**Output boundary**: ALL file writes MUST target `~/.maestro/workflows/dynamic/` (generated scripts) and `.workflow/scratch/{YYYYMMDD}-uwf-*/` (execution results). Fixed scripts at `~/.maestro/workflows/swarm/` are read-only. NEVER modify source code or `.claude/commands/` files.
|
|
38
40
|
</context>
|
|
39
41
|
|
|
40
42
|
<state_machine>
|
|
@@ -511,6 +513,36 @@ Findings: ${digest}
|
|
|
511
513
|
12. **无反斜杠路径** — 字符串中路径用正斜杠(`\u`、`\a` 等会被解析为转义序列)
|
|
512
514
|
</invariants>
|
|
513
515
|
|
|
516
|
+
<execution>
|
|
517
|
+
|
|
518
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
519
|
+
|
|
520
|
+
**GATE 1: Parse → Scan**
|
|
521
|
+
- REQUIRED: Intent text or `--from`/`--resume` flag parsed.
|
|
522
|
+
- BLOCKED if: no intent and no flags (E001).
|
|
523
|
+
|
|
524
|
+
**GATE 2: Scan → Design/Execute**
|
|
525
|
+
- REQUIRED: Library scan completed (both `swarm/` and `dynamic/` directories).
|
|
526
|
+
- REQUIRED: User decision if matches found (reuse existing vs generate new).
|
|
527
|
+
- BLOCKED if: scan fails to read script directories.
|
|
528
|
+
|
|
529
|
+
**GATE 3: Design → Generate**
|
|
530
|
+
- REQUIRED: Task decomposition completed with work_items, decision_points, data_flow.
|
|
531
|
+
- REQUIRED: Phase orchestration and adversarial pattern selection determined by depth.
|
|
532
|
+
- BLOCKED if: task cannot be decomposed (E002).
|
|
533
|
+
|
|
534
|
+
**GATE 4: Generate → Execute**
|
|
535
|
+
- REQUIRED: Script written to `~/.maestro/workflows/dynamic/uwf-{slug}.js`.
|
|
536
|
+
- REQUIRED: `node --check` syntax validation passed.
|
|
537
|
+
- REQUIRED: User confirmation via ask_user (unless resuming).
|
|
538
|
+
- BLOCKED if: syntax validation fails after 2 retries (E003).
|
|
539
|
+
|
|
540
|
+
**GATE 5: Execute → Persist**
|
|
541
|
+
- REQUIRED: Workflow execution completed via `scriptPath` invocation.
|
|
542
|
+
- BLOCKED if: Workflow execution failed (E004) — offer `--resume`.
|
|
543
|
+
|
|
544
|
+
</execution>
|
|
545
|
+
|
|
514
546
|
<appendix>
|
|
515
547
|
|
|
516
548
|
### 使用示例
|
|
@@ -571,3 +603,30 @@ universal-workflow 扫描时会同时检查 swarm/ 和 dynamic/ 目录,
|
|
|
571
603
|
| E005 | 持久化失败 | 展示脚本内容,让用户手动保存 |
|
|
572
604
|
|
|
573
605
|
</appendix>
|
|
606
|
+
|
|
607
|
+
<error_codes>
|
|
608
|
+
| Code | Severity | Condition | Recovery |
|
|
609
|
+
|------|----------|-----------|----------|
|
|
610
|
+
| E001 | error | No intent and no --from/--resume flag | Prompt user for intent text |
|
|
611
|
+
| E002 | error | Task decomposition failed — cannot identify work_items | Require more specific intent description |
|
|
612
|
+
| E003 | error | Generated script syntax error after 2 retries | Show script content + error for manual fix |
|
|
613
|
+
| E004 | error | Workflow execution failed | Show error, offer --resume with runId |
|
|
614
|
+
| E005 | error | Script persistence failed (filesystem write error) | Show script content for manual save |
|
|
615
|
+
| W001 | warning | No matching scripts found in library scan | Proceed directly to S_DESIGN |
|
|
616
|
+
| W002 | warning | Adversarial gate confidence < 50% | Flag low-confidence decision, suggest --depth deep |
|
|
617
|
+
</error_codes>
|
|
618
|
+
|
|
619
|
+
<success_criteria>
|
|
620
|
+
- [ ] Intent parsed and flags extracted (--name, --depth, --dry-run, --from, --resume)
|
|
621
|
+
- [ ] Library scan completed across both swarm/ and dynamic/ directories
|
|
622
|
+
- [ ] User decision captured if matching scripts found (reuse vs generate)
|
|
623
|
+
- [ ] Task decomposition produced: work_items, decision_points, data_flow
|
|
624
|
+
- [ ] Adversarial pattern selected per decision_point according to depth level
|
|
625
|
+
- [ ] Blueprint presented to user with estimated agent count
|
|
626
|
+
- [ ] Script generated as pure JavaScript with all 12 generation rules enforced
|
|
627
|
+
- [ ] `node --check` syntax validation passed
|
|
628
|
+
- [ ] User confirmation obtained before execution (unless --resume)
|
|
629
|
+
- [ ] Workflow executed via scriptPath (not inline script string)
|
|
630
|
+
- [ ] Script persisted to `~/.maestro/workflows/dynamic/uwf-{slug}.js`
|
|
631
|
+
- [ ] Completion summary displayed with reuse/resume commands
|
|
632
|
+
</success_criteria>
|
|
@@ -32,10 +32,38 @@ $ARGUMENTS — optional flags.
|
|
|
32
32
|
- `update-v{TO}-setup.md` — post-migration setup for version {TO}
|
|
33
33
|
|
|
34
34
|
**Schema registry:** `src/migrations/` — handles all intermediate version bumps automatically
|
|
35
|
+
|
|
36
|
+
**Output boundary**: ALL file writes MUST target `.workflow/state.json` (version bump), `.workflow/state.json.backup-*` (backup), and `.workflow/` config files touched by version-specific setup. NEVER modify source code or `src/migrations/` files.
|
|
35
37
|
</context>
|
|
36
38
|
|
|
39
|
+
<invariants>
|
|
40
|
+
1. **Backup before migration** — a timestamped backup of `.workflow/state.json` MUST be created before any schema migration runs; NEVER execute migration without backup
|
|
41
|
+
2. **Idempotent** — running update when already on latest version MUST be a no-op (display "up to date"); NEVER re-apply migrations
|
|
42
|
+
3. **Confirmation before execute** — migration diff MUST be displayed and user MUST confirm via ask_user before execution (unless `--force`); NEVER silently apply schema changes
|
|
43
|
+
4. **Migration diff always visible** — even with `--force`, the migration diff MUST be displayed for audit visibility; NEVER skip diff display
|
|
44
|
+
5. **Restore path on failure** — if migration fails, the backup restore command MUST be displayed; NEVER leave user without recovery instructions
|
|
45
|
+
6. **Sequential migration** — all intermediate version steps MUST be applied in order by the schema registry; NEVER skip intermediate versions
|
|
46
|
+
</invariants>
|
|
47
|
+
|
|
37
48
|
<execution>
|
|
38
49
|
|
|
50
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
51
|
+
|
|
52
|
+
**GATE 1: Detect → Check**
|
|
53
|
+
- REQUIRED: Current version read from `.workflow/state.json`.
|
|
54
|
+
- BLOCKED if: state.json missing or unreadable (E001).
|
|
55
|
+
|
|
56
|
+
**GATE 2: Check → Execute**
|
|
57
|
+
- REQUIRED: Dry-run migration check completed; target version identified.
|
|
58
|
+
- REQUIRED: User confirmation via ask_user (unless `--force`).
|
|
59
|
+
- BLOCKED if: already up to date (display message and exit) or user cancels.
|
|
60
|
+
|
|
61
|
+
**GATE 3: Execute → Summary**
|
|
62
|
+
- REQUIRED: Backup created at `.workflow/state.json.backup-v{current}-{timestamp}`.
|
|
63
|
+
- REQUIRED: Schema migration completed successfully.
|
|
64
|
+
- REQUIRED: Version-specific setup doc followed (if exists).
|
|
65
|
+
- BLOCKED if: migration failed — display restore command and exit.
|
|
66
|
+
|
|
39
67
|
### Step 1: Detect Version
|
|
40
68
|
|
|
41
69
|
```
|
|
@@ -108,6 +136,16 @@ Next steps:
|
|
|
108
136
|
|
|
109
137
|
</execution>
|
|
110
138
|
|
|
139
|
+
<error_codes>
|
|
140
|
+
| Code | Severity | Condition | Recovery |
|
|
141
|
+
|------|----------|-----------|----------|
|
|
142
|
+
| E001 | error | `.workflow/state.json` not found or unreadable | Run `/maestro-init` first |
|
|
143
|
+
| E002 | error | Schema migration failed (npx tsx returned error) | Display backup restore command: `cp .workflow/state.json.backup-* .workflow/state.json` |
|
|
144
|
+
| E003 | error | Version-specific setup doc failed to execute | Manual setup: read `~/.maestro/workflows/updates/update-v{target}-setup.md` |
|
|
145
|
+
| W001 | warning | No version-specific setup doc found for target version | Proceed without setup; schema migration alone is sufficient |
|
|
146
|
+
| W002 | warning | `--setup-only` but no setup script exists for current version | Display message and exit |
|
|
147
|
+
</error_codes>
|
|
148
|
+
|
|
111
149
|
<success_criteria>
|
|
112
150
|
- [ ] Current version detected from state.json
|
|
113
151
|
- [ ] Schema migrations run automatically (no manual intermediate steps)
|
|
@@ -46,13 +46,42 @@ $ARGUMENTS -- optional flags.
|
|
|
46
46
|
- `.workflow/codebase/` -- target directory (will be cleared and rebuilt)
|
|
47
47
|
- `.workflow/codebase/doc-index.json` -- generated documentation index
|
|
48
48
|
- `.workflow/codebase/knowledge-graph.json` -- Knowledge Graph with nodes, edges, layers, and tour (generated by `maestro kg index`)
|
|
49
|
+
|
|
50
|
+
**Output boundary**: ALL file writes MUST target `.workflow/codebase/`, `.workflow/state.json`, or `.workflow/project.md` (Tech Stack section only). NEVER modify source code or files outside these paths.
|
|
49
51
|
</context>
|
|
50
52
|
|
|
53
|
+
<invariants>
|
|
54
|
+
1. **Destructive with confirmation** — rebuild clears `.workflow/codebase/` entirely; MUST confirm with user unless `--force` is set
|
|
55
|
+
2. **Commit confirmation** — git commit MUST be confirmed by user unless `--force` is set; `--skip-commit` bypasses commit entirely
|
|
56
|
+
3. **Partial failure tolerance** — if 1-3 mapper agents fail, proceed with partial results (W001); only abort if all 4 fail (E002)
|
|
57
|
+
4. **Focus scoping** — when `--focus <area>` is set, MUST only regenerate docs relevant to that scope; leave unrelated docs untouched
|
|
58
|
+
5. **State update** — MUST update state.json with rebuild timestamp on completion
|
|
59
|
+
6. **KG pipeline mandatory** — MUST run `maestro kg index` after doc regeneration; KG validation failure is non-fatal (W003)
|
|
60
|
+
</invariants>
|
|
61
|
+
|
|
51
62
|
<execution>
|
|
52
63
|
Follow '~/.maestro/workflows/codebase-rebuild.md' completely.
|
|
53
64
|
|
|
54
65
|
**When `--focus <area>` is set:** pass the area string to each mapper agent as scoping context; only regenerate the docs relevant to that scope (leave others untouched unless missing).
|
|
55
66
|
|
|
67
|
+
### Phase Gates (MANDATORY, BLOCKING)
|
|
68
|
+
|
|
69
|
+
**GATE 1: Confirmation → Mapping** (Pre-flight → Agent spawn)
|
|
70
|
+
- REQUIRED: `.workflow/` initialized (E001 if missing).
|
|
71
|
+
- REQUIRED: User confirmed rebuild (or `--force` set). W002 if existing docs found.
|
|
72
|
+
- BLOCKED if user declines confirmation.
|
|
73
|
+
|
|
74
|
+
**GATE 2: Mapping → KG Pipeline** (Agent results → Knowledge Graph)
|
|
75
|
+
- REQUIRED: At least 1 of 4 mapper agents returned valid results.
|
|
76
|
+
- REQUIRED: All output files written to `.workflow/codebase/`.
|
|
77
|
+
- REQUIRED: doc-index.json generated and valid.
|
|
78
|
+
- BLOCKED if all 4 mapper agents failed (E002).
|
|
79
|
+
|
|
80
|
+
**GATE 3: KG Pipeline → Commit** (Knowledge Graph → Git)
|
|
81
|
+
- REQUIRED: `maestro kg index` executed (W003 if validation fails — non-blocking).
|
|
82
|
+
- REQUIRED: state.json updated with rebuild timestamp.
|
|
83
|
+
- REQUIRED: If not `--skip-commit`: user confirmed git commit (or `--force` set).
|
|
84
|
+
- BLOCKED if state.json update fails.
|
|
56
85
|
</execution>
|
|
57
86
|
|
|
58
87
|
<completion>
|