maestro-flow 0.4.10 → 0.4.12
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/cli-explore-agent.md +187 -0
- package/.agents/agents/cross-role-reviewer.md +173 -0
- package/.agents/agents/impeccable-agent.md +101 -0
- package/.agents/agents/role-design-author.md +218 -0
- package/.agents/agents/team-supervisor.md +145 -0
- package/.agents/agents/team-worker.md +239 -0
- package/.agents/agents/ui-design-agent.md +272 -0
- package/.agents/agents/workflow-analyzer.md +117 -0
- package/.agents/agents/workflow-codebase-mapper.md +79 -0
- package/.agents/agents/workflow-collab-planner.md +145 -0
- package/.agents/agents/workflow-debugger.md +105 -0
- package/.agents/agents/workflow-executor.md +134 -0
- package/.agents/agents/workflow-external-researcher.md +88 -0
- package/.agents/agents/workflow-integration-checker.md +85 -0
- package/.agents/agents/workflow-nyquist-auditor.md +87 -0
- package/.agents/agents/workflow-phase-researcher.md +87 -0
- package/.agents/agents/workflow-plan-checker.md +92 -0
- package/.agents/agents/workflow-planner.md +197 -0
- package/.agents/agents/workflow-project-researcher.md +76 -0
- package/.agents/agents/workflow-research-synthesizer.md +72 -0
- package/.agents/agents/workflow-reviewer.md +84 -0
- package/.agents/agents/workflow-roadmapper.md +83 -0
- package/.agents/agents/workflow-verifier.md +122 -0
- package/.agents/skills/codify-to-knowhow/SKILL.md +169 -0
- package/.agents/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
- package/.agents/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
- package/.agents/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
- package/.agents/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
- package/.agents/skills/learn-decompose/SKILL.md +118 -0
- package/.agents/skills/learn-follow/SKILL.md +129 -0
- package/.agents/skills/learn-investigate/SKILL.md +154 -0
- package/.agents/skills/learn-retro/SKILL.md +159 -0
- package/.agents/skills/learn-second-opinion/SKILL.md +124 -0
- package/.agents/skills/maestro/SKILL.md +258 -0
- package/.agents/skills/maestro-amend/SKILL.md +165 -0
- package/.agents/skills/maestro-analyze/SKILL.md +161 -0
- package/.agents/skills/maestro-blueprint/SKILL.md +132 -0
- package/.agents/skills/maestro-brainstorm/SKILL.md +134 -0
- package/.agents/skills/maestro-collab/SKILL.md +174 -0
- package/.agents/skills/maestro-composer/SKILL.md +181 -0
- package/.agents/skills/maestro-execute/SKILL.md +133 -0
- package/.agents/skills/maestro-fork/SKILL.md +88 -0
- package/.agents/skills/maestro-guard/SKILL.md +103 -0
- package/.agents/skills/maestro-help/SKILL.md +300 -0
- package/.agents/skills/maestro-help/index/catalog.json +202 -0
- package/.agents/skills/maestro-help/phases/01-parse-intent.md +122 -0
- package/.agents/skills/maestro-help/phases/02-search-present.md +183 -0
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +213 -0
- package/.agents/skills/maestro-impeccable/SKILL.md +251 -0
- package/.agents/skills/maestro-init/SKILL.md +80 -0
- package/.agents/skills/maestro-learn/SKILL.md +142 -0
- package/.agents/skills/maestro-merge/SKILL.md +66 -0
- package/.agents/skills/maestro-milestone-audit/SKILL.md +72 -0
- package/.agents/skills/maestro-milestone-complete/SKILL.md +79 -0
- package/.agents/skills/maestro-milestone-release/SKILL.md +98 -0
- package/.agents/skills/maestro-overlay/SKILL.md +180 -0
- package/.agents/skills/maestro-plan/SKILL.md +182 -0
- package/.agents/skills/maestro-player/SKILL.md +177 -0
- package/.agents/skills/maestro-quick/SKILL.md +67 -0
- package/.agents/skills/maestro-ralph/SKILL.md +756 -0
- package/.agents/skills/maestro-ralph-execute/SKILL.md +273 -0
- package/.agents/skills/maestro-roadmap/SKILL.md +131 -0
- package/.agents/skills/maestro-tools-execute/SKILL.md +119 -0
- package/.agents/skills/maestro-tools-register/SKILL.md +159 -0
- package/.agents/skills/maestro-ui-codify/SKILL.md +82 -0
- package/.agents/skills/maestro-update/SKILL.md +178 -0
- package/.agents/skills/maestro-verify/SKILL.md +111 -0
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +77 -0
- package/.agents/skills/manage-codebase-refresh/SKILL.md +59 -0
- package/.agents/skills/manage-harvest/SKILL.md +96 -0
- package/.agents/skills/manage-issue/SKILL.md +75 -0
- package/.agents/skills/manage-issue-discover/SKILL.md +83 -0
- package/.agents/skills/manage-knowhow/SKILL.md +79 -0
- package/.agents/skills/manage-knowhow-capture/SKILL.md +81 -0
- package/.agents/skills/manage-learn/SKILL.md +67 -0
- package/.agents/skills/manage-status/SKILL.md +54 -0
- package/.agents/skills/manage-wiki/SKILL.md +64 -0
- package/.agents/skills/quality-auto-test/SKILL.md +138 -0
- package/.agents/skills/quality-debug/SKILL.md +122 -0
- package/.agents/skills/quality-refactor/SKILL.md +69 -0
- package/.agents/skills/quality-retrospective/SKILL.md +79 -0
- package/.agents/skills/quality-review/SKILL.md +130 -0
- package/.agents/skills/quality-sync/SKILL.md +53 -0
- package/.agents/skills/quality-test/SKILL.md +119 -0
- package/.agents/skills/security-audit/SKILL.md +157 -0
- package/.agents/skills/skill-iter-tune/SKILL.md +384 -0
- package/.agents/skills/skill-iter-tune/phases/01-setup.md +144 -0
- package/.agents/skills/skill-iter-tune/phases/02-execute.md +292 -0
- package/.agents/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
- package/.agents/skills/skill-iter-tune/phases/04-improve.md +186 -0
- package/.agents/skills/skill-iter-tune/phases/05-report.md +166 -0
- package/.agents/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
- package/.agents/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
- package/.agents/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
- package/.agents/skills/spec-add/SKILL.md +70 -0
- package/.agents/skills/spec-load/SKILL.md +73 -0
- package/.agents/skills/spec-remove/SKILL.md +53 -0
- package/.agents/skills/spec-setup/SKILL.md +50 -0
- package/.agents/skills/team-coordinate/SKILL.md +268 -0
- package/.agents/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
- package/.agents/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
- package/.agents/skills/team-coordinate/roles/coordinator/commands/monitor.md +358 -0
- package/.agents/skills/team-coordinate/roles/coordinator/role.md +365 -0
- package/.agents/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
- package/.agents/skills/team-coordinate/specs/pipelines.md +97 -0
- package/.agents/skills/team-coordinate/specs/quality-gates.md +112 -0
- package/.agents/skills/team-coordinate/specs/role-spec-template.md +198 -0
- package/.agents/skills/team-executor/SKILL.md +191 -0
- package/.agents/skills/team-executor/roles/executor/commands/monitor.md +239 -0
- package/.agents/skills/team-executor/roles/executor/role.md +171 -0
- package/.agents/skills/team-executor/specs/session-schema.md +264 -0
- package/.agents/skills/team-lifecycle-v4/SKILL.md +211 -0
- package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +96 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
- package/.agents/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
- package/.agents/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
- package/.agents/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
- package/.agents/skills/team-lifecycle-v4/roles/executor/role.md +69 -0
- package/.agents/skills/team-lifecycle-v4/roles/planner/role.md +87 -0
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/role.md +71 -0
- package/.agents/skills/team-lifecycle-v4/roles/supervisor/role.md +194 -0
- package/.agents/skills/team-lifecycle-v4/roles/tester/role.md +89 -0
- package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +97 -0
- package/.agents/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
- package/.agents/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
- package/.agents/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
- package/.agents/skills/team-lifecycle-v4/templates/architecture.md +254 -0
- package/.agents/skills/team-lifecycle-v4/templates/epics.md +196 -0
- package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
- package/.agents/skills/team-lifecycle-v4/templates/requirements.md +224 -0
- package/.agents/skills/team-quality-assurance/SKILL.md +149 -0
- package/.agents/skills/team-quality-assurance/roles/analyst/role.md +90 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +250 -0
- package/.agents/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
- package/.agents/skills/team-quality-assurance/roles/executor/role.md +68 -0
- package/.agents/skills/team-quality-assurance/roles/generator/role.md +70 -0
- package/.agents/skills/team-quality-assurance/roles/scout/role.md +77 -0
- package/.agents/skills/team-quality-assurance/roles/strategist/role.md +73 -0
- package/.agents/skills/team-quality-assurance/specs/pipelines.md +115 -0
- package/.agents/skills/team-quality-assurance/specs/team-config.json +131 -0
- package/.agents/skills/team-review/SKILL.md +149 -0
- package/.agents/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
- package/.agents/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
- package/.agents/skills/team-review/roles/coordinator/commands/monitor.md +224 -0
- package/.agents/skills/team-review/roles/coordinator/role.md +132 -0
- package/.agents/skills/team-review/roles/fixer/role.md +78 -0
- package/.agents/skills/team-review/roles/reviewer/role.md +70 -0
- package/.agents/skills/team-review/roles/scanner/role.md +81 -0
- package/.agents/skills/team-review/specs/dimensions.md +82 -0
- package/.agents/skills/team-review/specs/finding-schema.json +82 -0
- package/.agents/skills/team-review/specs/pipelines.md +102 -0
- package/.agents/skills/team-review/specs/team-config.json +27 -0
- package/.agents/skills/team-tech-debt/SKILL.md +130 -0
- package/.agents/skills/team-tech-debt/roles/assessor/role.md +79 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/commands/monitor.md +209 -0
- package/.agents/skills/team-tech-debt/roles/coordinator/role.md +123 -0
- package/.agents/skills/team-tech-debt/roles/executor/role.md +78 -0
- package/.agents/skills/team-tech-debt/roles/planner/role.md +71 -0
- package/.agents/skills/team-tech-debt/roles/scanner/role.md +92 -0
- package/.agents/skills/team-tech-debt/roles/validator/role.md +80 -0
- package/.agents/skills/team-tech-debt/specs/pipelines.md +47 -0
- package/.agents/skills/team-tech-debt/specs/team-config.json +129 -0
- package/.agents/skills/team-testing/SKILL.md +145 -0
- package/.agents/skills/team-testing/roles/analyst/role.md +105 -0
- package/.agents/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
- package/.agents/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
- package/.agents/skills/team-testing/roles/coordinator/commands/monitor.md +257 -0
- package/.agents/skills/team-testing/roles/coordinator/role.md +134 -0
- package/.agents/skills/team-testing/roles/executor/role.md +101 -0
- package/.agents/skills/team-testing/roles/generator/role.md +100 -0
- package/.agents/skills/team-testing/roles/strategist/role.md +85 -0
- package/.agents/skills/team-testing/specs/pipelines.md +101 -0
- package/.agents/skills/team-testing/specs/team-config.json +93 -0
- package/.agents/skills/wiki-connect/SKILL.md +64 -0
- package/.agents/skills/wiki-digest/SKILL.md +70 -0
- package/.agents/skills/workflow-skill-designer/SKILL.md +498 -0
- package/.agents/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
- package/.agents/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
- package/.agents/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
- package/.agents/skills/workflow-skill-designer/phases/04-validation.md +471 -0
- package/.agy/agents/cli-explore-agent.md +1 -3
- package/.agy/agents/cross-role-reviewer.md +170 -0
- package/.agy/agents/role-design-author.md +215 -0
- package/.agy/agents/ui-design-agent.md +1 -18
- package/.agy/agents/workflow-analyzer.md +1 -1
- package/.agy/agents/workflow-external-researcher.md +1 -1
- package/.agy/skills/maestro/SKILL.md +63 -27
- package/.agy/skills/maestro-analyze/SKILL.md +30 -4
- package/.agy/skills/maestro-blueprint/SKILL.md +132 -0
- package/.agy/skills/maestro-brainstorm/SKILL.md +119 -103
- package/.agy/skills/maestro-help/SKILL.md +48 -14
- package/.agy/skills/maestro-help/index/catalog.json +29 -11
- package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.agy/skills/maestro-init/SKILL.md +3 -3
- package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
- package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
- package/.agy/skills/maestro-plan/SKILL.md +14 -4
- package/.agy/skills/maestro-ralph/SKILL.md +368 -162
- package/.agy/skills/maestro-ralph-execute/SKILL.md +81 -67
- package/.agy/skills/maestro-roadmap/SKILL.md +42 -81
- package/.agy/skills/quality-auto-test/SKILL.md +1 -1
- package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.claude/agents/cli-explore-agent.md +1 -3
- package/.claude/agents/cross-role-reviewer.md +171 -0
- package/.claude/agents/role-design-author.md +216 -0
- package/.claude/agents/ui-design-agent.md +1 -18
- package/.claude/agents/workflow-analyzer.md +1 -1
- package/.claude/agents/workflow-external-researcher.md +1 -1
- package/.claude/commands/maestro-analyze.md +30 -4
- package/.claude/commands/maestro-blueprint.md +130 -0
- package/.claude/commands/maestro-brainstorm.md +132 -116
- package/.claude/commands/maestro-init.md +3 -3
- package/.claude/commands/maestro-milestone-audit.md +5 -3
- package/.claude/commands/maestro-milestone-complete.md +7 -5
- package/.claude/commands/maestro-plan.md +14 -4
- package/.claude/commands/maestro-ralph-execute.md +81 -67
- package/.claude/commands/maestro-ralph.md +368 -162
- package/.claude/commands/maestro-roadmap.md +42 -81
- package/.claude/commands/maestro.md +63 -27
- package/.claude/commands/quality-auto-test.md +1 -1
- package/.claude/skills/maestro-help/SKILL.md +48 -14
- package/.claude/skills/maestro-help/index/catalog.json +29 -11
- package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.codex/skills/maestro/SKILL.md +84 -41
- package/.codex/skills/maestro-amend/SKILL.md +157 -0
- package/.codex/skills/maestro-analyze/SKILL.md +71 -23
- package/.codex/skills/maestro-blueprint/SKILL.md +122 -0
- package/.codex/skills/maestro-brainstorm/SKILL.md +135 -45
- package/.codex/skills/maestro-composer/SKILL.md +1 -1
- package/.codex/skills/maestro-execute/SKILL.md +13 -4
- package/.codex/skills/maestro-help/SKILL.md +28 -18
- package/.codex/skills/maestro-help/catalog.json +29 -11
- package/.codex/skills/maestro-init/SKILL.md +7 -7
- package/.codex/skills/maestro-plan/SKILL.md +27 -9
- package/.codex/skills/maestro-ralph/SKILL.md +740 -491
- package/.codex/skills/maestro-roadmap/SKILL.md +55 -72
- package/.codex/skills/maestro-update/SKILL.md +169 -0
- package/.codex/skills/maestro-verify/SKILL.md +11 -2
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -2
- package/.codex/skills/manage-harvest/SKILL.md +10 -2
- package/.codex/skills/quality-retrospective/SKILL.md +9 -2
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/README.md +8 -8
- package/README.zh-CN.md +8 -8
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +13 -7
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +12 -0
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +144 -0
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +8 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/core/component-defs.d.ts +6 -0
- package/dist/src/core/component-defs.d.ts.map +1 -1
- package/dist/src/core/component-defs.js +97 -0
- package/dist/src/core/component-defs.js.map +1 -1
- package/dist/src/tools/spec-init.d.ts +16 -2
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +58 -187
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +16 -16
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/spec-seeds.d.ts +33 -0
- package/dist/src/tools/spec-seeds.d.ts.map +1 -0
- package/dist/src/tools/spec-seeds.js +200 -0
- package/dist/src/tools/spec-seeds.js.map +1 -0
- package/dist/src/tools/spec-writer.d.ts.map +1 -1
- package/dist/src/tools/spec-writer.js +7 -9
- package/dist/src/tools/spec-writer.js.map +1 -1
- package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts +11 -0
- package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ExtraMcpConfig.js +61 -0
- package/dist/src/tui/install-ui/ExtraMcpConfig.js.map +1 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +3 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts +2 -0
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +14 -2
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +16 -3
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +8 -0
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +3 -1
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/utils/update-notices.js +31 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +5 -2
- package/templates/business-test-report.json +1 -1
- package/templates/index.json +1 -1
- package/templates/roadmap.md +15 -9
- package/templates/state.json +18 -17
- package/workflows/analyze.md +79 -11
- package/workflows/auto-test.md +6 -6
- package/workflows/blueprint.md +431 -0
- package/workflows/brainstorm.md +603 -496
- package/workflows/business-test.md +7 -7
- package/workflows/codebase-rebuild.md +4 -4
- package/workflows/harvest.md +184 -10
- package/workflows/init.md +9 -8
- package/workflows/maestro.md +1 -1
- package/workflows/milestone-audit.md +12 -4
- package/workflows/milestone-complete.md +11 -6
- package/workflows/plan.md +88 -22
- package/workflows/roadmap-common.md +1 -1
- package/workflows/roadmap.md +13 -3
- package/workflows/spec-generate.md +24 -13
- package/workflows/ui-design.md +2 -2
- package/workflows/ui-style.md +1 -1
- package/.agy/agents/conceptual-planning-agent.md +0 -244
- package/.claude/agents/conceptual-planning-agent.md +0 -245
|
@@ -1,491 +1,740 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-ralph
|
|
3
|
-
description: Use when the optimal command sequence is unclear and needs automated state-based determination
|
|
4
|
-
argument-hint: "
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
|
273
|
-
|
|
274
|
-
|
|
|
275
|
-
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
###
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
5.
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
-
|
|
434
|
-
-
|
|
435
|
-
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-ralph
|
|
3
|
+
description: Use when the optimal command sequence is unclear and needs automated state-based determination
|
|
4
|
+
argument-hint: "<intent> [-y] | status | continue"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
<purpose>
|
|
8
|
+
Closed-loop decision engine for the maestro workflow lifecycle.
|
|
9
|
+
Reads project state → infers position → builds adaptive chain → delegates execution.
|
|
10
|
+
|
|
11
|
+
Entry points:
|
|
12
|
+
- **`/maestro-ralph "intent"`** — New session: infer → decompose → build → execute
|
|
13
|
+
- **`/maestro-ralph continue`** — Resume via maestro-ralph-execute
|
|
14
|
+
- **`/maestro-ralph status`** — Display session progress
|
|
15
|
+
|
|
16
|
+
Initial decomposition (S_DECOMPOSE): boundary-clarified via ≤3 questions for broad intents (重构/全面/迁移/重写). 写入 status.json 的 `boundary_contract` / `execution_criteria` / `task_decomposition`,附 `/goal` prompt。
|
|
17
|
+
|
|
18
|
+
Node types:
|
|
19
|
+
- **internal** (default): ralph-execute `Read({command_path})` 命令 .md,按内容内联执行
|
|
20
|
+
- **decision**: 回 ralph 评估
|
|
21
|
+
- **external**: 仅在显式声明时使用(`maestro delegate --to claude`)
|
|
22
|
+
|
|
23
|
+
Key difference from maestro coordinator:
|
|
24
|
+
- maestro: static chain → one-time selection → runs all steps
|
|
25
|
+
- ralph: living chain → decision nodes re-evaluate → chain grows/shrinks dynamically
|
|
26
|
+
|
|
27
|
+
Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`
|
|
28
|
+
Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work loop.
|
|
29
|
+
|
|
30
|
+
### Execution Flow
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/maestro-ralph "intent" ─▶ ralph infer → decompose → build chain
|
|
34
|
+
│ resolves command_path per step
|
|
35
|
+
│ writes status.json
|
|
36
|
+
│ emits /goal prompt
|
|
37
|
+
▼
|
|
38
|
+
ralph-execute ◀─┐ internal → Read(command_path) inline
|
|
39
|
+
│ │ decision → Skill("maestro-ralph")
|
|
40
|
+
└─────────┘ writes step.completion_confirmed
|
|
41
|
+
loop until all completion_confirmed | paused
|
|
42
|
+
```
|
|
43
|
+
</purpose>
|
|
44
|
+
|
|
45
|
+
<context>
|
|
46
|
+
$ARGUMENTS — intent text, flags, or keywords.
|
|
47
|
+
|
|
48
|
+
**Parse:**
|
|
49
|
+
```
|
|
50
|
+
-y flag → auto_confirm = true
|
|
51
|
+
.md/.txt path → input_doc (supplementary context only, NEVER substitutes lifecycle stages)
|
|
52
|
+
Remaining → intent
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**State files:**
|
|
56
|
+
- `.workflow/state.json` — artifact registry, milestones, phases
|
|
57
|
+
- `.workflow/roadmap.md` — milestone/phase structure
|
|
58
|
+
- `.workflow/.maestro/ralph-*/status.json` — ralph session state
|
|
59
|
+
</context>
|
|
60
|
+
|
|
61
|
+
<invariants>
|
|
62
|
+
1. **Ralph never executes steps** — only creates sessions and evaluates decisions
|
|
63
|
+
2. **Handoff via Skill("maestro-ralph-execute")** — at session creation and after decision evaluation
|
|
64
|
+
3. **Decision delegates read-only** — `maestro delegate --role analyze --mode analysis`
|
|
65
|
+
4. **Default type = internal** — `external` 仅显式标注时出现,build 不默认生成
|
|
66
|
+
5. **status.json 是唯一真源** — 不生成 markdown 清单或侧文件
|
|
67
|
+
6. **每个 step 必须 `completion_confirmed: true`** — 基于 `--- COMPLETION STATUS ---` 的 `STATUS: DONE`;缺失则视为未完成
|
|
68
|
+
7. **command_path 在 A_BUILD_STEPS 解析** — 全局优先 `~/.claude/commands/{name}.md`,fallback 项目 `.claude/commands/{name}.md`,写入 status.json
|
|
69
|
+
8. **Decomposition is outcome-oriented** — sub-goals 为可观测交付,禁止 lifecycle 复刻;`/goal` 用户绑定,ralph 只发提示词
|
|
70
|
+
9. **planning_mode governs arg granularity** — `unified` → skill args 无 `{phase}`;`independent` → 含 `{phase}`
|
|
71
|
+
10. **task_decomposition 驱动 steps[] 动态生长** — `post-goal-audit` 按 unmet 子目标插入 scoped mini-loop;字段可选/累加,既有字段不删不改
|
|
72
|
+
</invariants>
|
|
73
|
+
|
|
74
|
+
<state_machine>
|
|
75
|
+
|
|
76
|
+
<states>
|
|
77
|
+
S_PARSE_ROUTE — 解析参数、路由入口 PERSIST: —
|
|
78
|
+
S_STATUS — 显示 session 进度 PERSIST: —
|
|
79
|
+
S_CONTINUE — 恢复执行 PERSIST: —
|
|
80
|
+
S_RESOLVE_PHASE — 解析 phase + phase_is_new + D-007 milestone PERSIST: session.phase, session.phase_is_new, session.milestone
|
|
81
|
+
S_INFER — 基于已解析 phase 推断 lifecycle_position PERSIST: session.lifecycle_position
|
|
82
|
+
S_RESOLVE_SCOPE — 读 macro analyze conclusions.scope_verdict PERSIST: session.scope_verdict, session.analyze_macro_id
|
|
83
|
+
S_QUALITY_MODE — 决定质量管线模式 PERSIST: session.quality_mode
|
|
84
|
+
S_PLANNING_MODE — 决定统一/独立规划模式 PERSIST: session.planning_mode
|
|
85
|
+
S_DECOMPOSE — 边界澄清、写执行准则+子目标清单 PERSIST: session.boundary_contract, .execution_criteria, .task_decomposition
|
|
86
|
+
S_BUILD_CHAIN — 构建步骤链 PERSIST: session.steps[]
|
|
87
|
+
S_CREATE_SESSION — 写 status.json PERSIST: session (全量)
|
|
88
|
+
S_CONFIRM — 用户确认 PERSIST: —
|
|
89
|
+
S_DISPATCH — 移交 maestro-ralph-execute PERSIST: —
|
|
90
|
+
S_DECISION_EVAL — 委托评估质量门 PERSIST: —
|
|
91
|
+
S_APPLY_VERDICT — 应用裁决 + 插入命令 PERSIST: session.steps[], session.passed_gates[]
|
|
92
|
+
S_FALLBACK — 请求用户输入 PERSIST: —
|
|
93
|
+
</states>
|
|
94
|
+
|
|
95
|
+
<transitions>
|
|
96
|
+
|
|
97
|
+
S_PARSE_ROUTE:
|
|
98
|
+
→ S_STATUS WHEN: intent == "status"
|
|
99
|
+
→ S_CONTINUE WHEN: intent == "continue"
|
|
100
|
+
→ S_DECISION_EVAL WHEN: running session with decision step in "running" status
|
|
101
|
+
→ S_RESOLVE_PHASE WHEN: intent is non-empty ← phase 必须先于 position
|
|
102
|
+
→ S_FALLBACK WHEN: no intent AND no running session
|
|
103
|
+
|
|
104
|
+
S_STATUS:
|
|
105
|
+
→ END DO: A_SHOW_STATUS
|
|
106
|
+
|
|
107
|
+
S_CONTINUE:
|
|
108
|
+
→ S_DISPATCH WHEN: running session found
|
|
109
|
+
→ S_FALLBACK WHEN: no running session DO: display "无运行中的 ralph 会话"
|
|
110
|
+
|
|
111
|
+
S_RESOLVE_PHASE:
|
|
112
|
+
→ S_INFER WHEN: phase resolved or null DO: A_RESOLVE_PHASE
|
|
113
|
+
→ S_FALLBACK WHEN: ambiguous
|
|
114
|
+
GUARD: auto_confirm does NOT skip phase ambiguity
|
|
115
|
+
|
|
116
|
+
S_INFER:
|
|
117
|
+
→ S_RESOLVE_SCOPE WHEN: position resolved DO: A_INFER_POSITION
|
|
118
|
+
→ S_FALLBACK WHEN: cannot infer
|
|
119
|
+
|
|
120
|
+
S_RESOLVE_SCOPE:
|
|
121
|
+
→ S_QUALITY_MODE DO: A_RESOLVE_SCOPE_VERDICT
|
|
122
|
+
GUARD: position ∈ {brainstorm, blueprint, init} → skip (scope_verdict = null)
|
|
123
|
+
|
|
124
|
+
S_QUALITY_MODE:
|
|
125
|
+
→ S_PLANNING_MODE DO: A_DETERMINE_QUALITY_MODE
|
|
126
|
+
|
|
127
|
+
S_PLANNING_MODE:
|
|
128
|
+
→ S_DECOMPOSE DO: A_DETERMINE_PLANNING_MODE
|
|
129
|
+
GUARD: lifecycle_position ∈ {brainstorm, blueprint, init, analyze-macro, roadmap} → skip (force independent)
|
|
130
|
+
|
|
131
|
+
S_DECOMPOSE:
|
|
132
|
+
→ S_BUILD_CHAIN DO: A_DECOMPOSE_TASKS
|
|
133
|
+
GUARD: broad intent → MUST clarify boundary even if auto_confirm
|
|
134
|
+
GUARD: narrow intent → auto-derive, skip questions
|
|
135
|
+
GUARD: position ∈ {brainstorm, blueprint, init} → skip decomposition
|
|
136
|
+
|
|
137
|
+
S_BUILD_CHAIN:
|
|
138
|
+
→ S_CREATE_SESSION DO: A_BUILD_STEPS
|
|
139
|
+
|
|
140
|
+
S_CREATE_SESSION:
|
|
141
|
+
→ S_CONFIRM WHEN: not auto_confirm DO: A_CREATE_SESSION
|
|
142
|
+
→ S_DISPATCH WHEN: auto_confirm DO: A_CREATE_SESSION
|
|
143
|
+
|
|
144
|
+
S_CONFIRM:
|
|
145
|
+
→ S_DISPATCH WHEN: user selects "Proceed"
|
|
146
|
+
→ S_BUILD_CHAIN WHEN: user selects "Edit"
|
|
147
|
+
→ END WHEN: user selects "Cancel"
|
|
148
|
+
|
|
149
|
+
S_DISPATCH:
|
|
150
|
+
→ END DO: Skill({ skill: "maestro-ralph-execute" })
|
|
151
|
+
|
|
152
|
+
S_DECISION_EVAL:
|
|
153
|
+
→ S_APPLY_VERDICT WHEN: quality-gate (post-verify, post-business-test, post-review, post-test)
|
|
154
|
+
DO: A_DELEGATE_EVALUATE
|
|
155
|
+
→ S_APPLY_VERDICT WHEN: goal-gate (post-goal-audit)
|
|
156
|
+
DO: A_GOAL_AUDIT_EVALUATE
|
|
157
|
+
→ S_APPLY_VERDICT WHEN: scope-gate (post-analyze-scope)
|
|
158
|
+
DO: A_SCOPE_EVALUATE
|
|
159
|
+
→ S_APPLY_VERDICT WHEN: structural (post-milestone, post-debug-escalate)
|
|
160
|
+
DO: A_STRUCTURAL_EVALUATE
|
|
161
|
+
|
|
162
|
+
S_APPLY_VERDICT:
|
|
163
|
+
→ S_DISPATCH WHEN: verdict == "proceed" DO: A_APPLY_PROCEED
|
|
164
|
+
→ S_DISPATCH WHEN: post-goal-audit + unmet sub-goals DO: A_APPLY_GOAL_FIX
|
|
165
|
+
→ S_DISPATCH WHEN: post-goal-audit + all sub-goals met DO: A_APPLY_GOAL_DONE
|
|
166
|
+
→ S_DISPATCH WHEN: post-analyze-scope DO: A_APPLY_SCOPE_VERDICT
|
|
167
|
+
→ S_DISPATCH WHEN: verdict == "fix" DO: A_APPLY_FIX
|
|
168
|
+
→ S_DISPATCH WHEN: verdict == "escalate" DO: A_APPLY_ESCALATE
|
|
169
|
+
→ S_DISPATCH WHEN: post-milestone + next milestone DO: A_ADVANCE_MILESTONE
|
|
170
|
+
→ END WHEN: post-milestone + no next milestone DO: mark completed
|
|
171
|
+
→ END WHEN: post-debug-escalate (always STOP) DO: A_PAUSE_ESCALATE
|
|
172
|
+
GUARD: retry_count >= max_retries → force escalate
|
|
173
|
+
GUARD: confidence_score < 60 AND proceed → override to fix
|
|
174
|
+
GUARD: confidence_score > 95 AND fix AND retry > 0 → suggest proceed
|
|
175
|
+
GUARD: auto_confirm → skip user prompt, apply adjusted verdict
|
|
176
|
+
GUARD: not auto_confirm → AskUserQuestion with override options
|
|
177
|
+
|
|
178
|
+
S_FALLBACK:
|
|
179
|
+
→ S_PARSE_ROUTE WHEN: user provides input DO: AskUserQuestion
|
|
180
|
+
→ END WHEN: user cancels
|
|
181
|
+
|
|
182
|
+
</transitions>
|
|
183
|
+
|
|
184
|
+
<actions>
|
|
185
|
+
|
|
186
|
+
### A_SHOW_STATUS
|
|
187
|
+
|
|
188
|
+
1. Find latest ralph session (by created_at)
|
|
189
|
+
2. Display: Session, Status, Position, Progress, Current step
|
|
190
|
+
3. List steps: [✓] completion_confirmed, [▸] current, [ ] pending, [◆] decision;附 `command_scope`(global/project) + `command_path`
|
|
191
|
+
4. If `task_decomposition` present (absent → skip):
|
|
192
|
+
```
|
|
193
|
+
Sub-goals ({done}/{total}) source: {session_dir}/status.json#/task_decomposition
|
|
194
|
+
[x] G1 done_when={done_when} evidence={evidence} confirmed={completion_confirmed}
|
|
195
|
+
[ ] G2 done_when={done_when} evidence={evidence} confirmed=false ◀ unmet
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### A_RESOLVE_PHASE
|
|
199
|
+
|
|
200
|
+
前置于 A_INFER_POSITION。产出 `phase` + `phase_is_new` + `milestone`(D-007 反查)三元组。
|
|
201
|
+
|
|
202
|
+
**Priority:**
|
|
203
|
+
|
|
204
|
+
| Step | 行为 | phase_is_new |
|
|
205
|
+
|------|------|--------------|
|
|
206
|
+
| 1 | intent 匹配 `phase\s*(\d+)` → 取 state.json 对应 phase | false |
|
|
207
|
+
| 2 | intent 派生短语 → 在 `state.json.milestones[*].phase_slugs` / `artifacts[*].path` 查找 | false (匹配) / true (无匹配) |
|
|
208
|
+
| 3 | 未派生 → 取最新 in-progress artifact 的 phase | false |
|
|
209
|
+
| 4 | 仍无 → state.json 首个 incomplete phase | false |
|
|
210
|
+
| 5 | position 将是 brainstorm/blueprint/init/roadmap/analyze-macro → phase = null | n/a |
|
|
211
|
+
| 6 | 仍模糊 → `AskUserQuestion` | 由用户回答确定 |
|
|
212
|
+
|
|
213
|
+
**D-007 Phase→Milestone 反查**(数字 phase 已解析时):
|
|
214
|
+
```
|
|
215
|
+
resolve_milestone(phase_number):
|
|
216
|
+
for ms in state.json.milestones:
|
|
217
|
+
if str(phase_number) in ms.phase_slugs: return ms.id
|
|
218
|
+
return state.json.current_milestone # fallback
|
|
219
|
+
```
|
|
220
|
+
写入 `session.milestone`;禁止直接使用 `current_milestone` 当做 phase 所属 milestone。
|
|
221
|
+
|
|
222
|
+
**写入 session**: `phase`, `phase_is_new`, `milestone`。
|
|
223
|
+
|
|
224
|
+
**新派生 phase 时 milestone 处理**:
|
|
225
|
+
- state.json 当前 milestone 仍 active → 沿用,新增 phase
|
|
226
|
+
- intent 派生新 milestone 名 → 写入 session 仅作标签;`state.json.milestones` 由 `maestro-roadmap` / `maestro-milestone-release` 创建
|
|
227
|
+
|
|
228
|
+
### A_INFER_POSITION
|
|
229
|
+
|
|
230
|
+
**Intent-based overrides** (按顺序匹配,先命中先用):
|
|
231
|
+
|
|
232
|
+
| Pattern | Position |
|
|
233
|
+
|---------|----------|
|
|
234
|
+
| brainstorm / 头脑风暴 / 探索 / ideate / 设计思路 | `brainstorm` |
|
|
235
|
+
| blueprint / 规格 / 正式文档 / spec-generate / 7-phase | `blueprint` |
|
|
236
|
+
| broad/medium intent 无数字 phase (重构/全面/重写/迁移/新功能 X) | `analyze-macro` |
|
|
237
|
+
|
|
238
|
+
**Bootstrap detection:**
|
|
239
|
+
|
|
240
|
+
| Condition | Position |
|
|
241
|
+
|-----------|----------|
|
|
242
|
+
| No `.workflow/` + no source files | `brainstorm` |
|
|
243
|
+
| No `.workflow/` + has source files | `init` |
|
|
244
|
+
| Has `.workflow/` but no state.json | `init` |
|
|
245
|
+
| Has state.json | → phase-aware artifact inference |
|
|
246
|
+
|
|
247
|
+
**Phase-aware artifact inference** (使用 A_RESOLVE_PHASE 已写入的 `session.phase` + `session.phase_is_new`):
|
|
248
|
+
|
|
249
|
+
| Condition | Position |
|
|
250
|
+
|-----------|----------|
|
|
251
|
+
| `phase_is_new == true` (新 phase) | `analyze` |
|
|
252
|
+
| no milestones AND no roadmap.md AND has analyze macro artifact | `roadmap` |
|
|
253
|
+
| no milestones AND no roadmap.md AND no analyze artifact | `analyze-macro` |
|
|
254
|
+
| `phase == null` (brainstorm/blueprint/init/roadmap/analyze-macro override 已定) | n/a |
|
|
255
|
+
| phase 已存在 + 无任何 artifact | `analyze` |
|
|
256
|
+
| phase 已存在 + 最新 artifact = analyze | `plan` |
|
|
257
|
+
| phase 已存在 + 最新 artifact = plan | `execute` |
|
|
258
|
+
| phase 已存在 + 最新 artifact = execute | `verify` |
|
|
259
|
+
| phase 已存在 + 最新 artifact = verify | → refine from result files |
|
|
260
|
+
|
|
261
|
+
**关键不变量**:artifact 过滤按 `session.phase`,不读 `state.json.current_phase`。`phase_is_new` → 直接 `analyze`。
|
|
262
|
+
|
|
263
|
+
### A_RESOLVE_SCOPE_VERDICT
|
|
264
|
+
|
|
265
|
+
仅当 `lifecycle_position ∈ {analyze-macro, roadmap, plan}` 且存在最新 analyze artifact 时执行。
|
|
266
|
+
|
|
267
|
+
1. 定位最新 macro analyze artifact(`type=="analyze"` 且 `scope=="macro"`,按 created_at DESC)→ 记 `session.analyze_macro_id = ANL-xxx`
|
|
268
|
+
2. 读 `{artifact_path}/conclusions.json` 的 `scope_verdict` 字段(`large | medium | small`)
|
|
269
|
+
3. 写入 `session.scope_verdict`;缺失时设 `unknown`
|
|
270
|
+
4. 路由建议(A_BUILD_STEPS 据此决定是否插入 roadmap、plan 是否走 `--from`):
|
|
271
|
+
|
|
272
|
+
| scope_verdict | 链路 |
|
|
273
|
+
|---------------|------|
|
|
274
|
+
| `large` | analyze-macro → roadmap → analyze → plan → execute → ... |
|
|
275
|
+
| `medium` / `small` | analyze-macro → plan --from analyze:{ANL_ID} → execute → ...(跳过 roadmap + analyze-phase) |
|
|
276
|
+
| `unknown` | 默认走 large 路径,post-analyze-scope 决策节点再纠正 |
|
|
277
|
+
|
|
278
|
+
**Refine from verify results:**
|
|
279
|
+
|
|
280
|
+
| Condition | Position |
|
|
281
|
+
|-----------|----------|
|
|
282
|
+
| verification.json: passed==false or gaps[] | `verify-failed` |
|
|
283
|
+
| passed==true, no review.json | `business-test` |
|
|
284
|
+
| review.json: verdict=="BLOCK" | `review-failed` |
|
|
285
|
+
| review.json: verdict!="BLOCK" | `test` |
|
|
286
|
+
| uat.md: all passed | `milestone-audit` |
|
|
287
|
+
| uat.md: has failures | `test-failed` |
|
|
288
|
+
|
|
289
|
+
### A_DETERMINE_QUALITY_MODE
|
|
290
|
+
|
|
291
|
+
决定下游质量管线长度。读 `session.quality_mode_override`(CLI 标志 `--quality`),无则按规则推断:
|
|
292
|
+
|
|
293
|
+
| Condition | Mode | Pipeline (verify 之后) |
|
|
294
|
+
|-----------|------|-------------------------|
|
|
295
|
+
| Has `specs/REQ-*.md` + 当前 phase 业务范围明确 | `full` | business-test → review → test-gen → test |
|
|
296
|
+
| Default | `standard` | review → test-gen (当 coverage<80%) → test |
|
|
297
|
+
| `--quality quick` | `quick` | review --tier quick |
|
|
298
|
+
|
|
299
|
+
写入 `session.quality_mode`。A_BUILD_STEPS 据此过滤 stage(见下)。
|
|
300
|
+
|
|
301
|
+
### A_DETERMINE_PLANNING_MODE
|
|
302
|
+
|
|
303
|
+
决定里程碑的规划粒度:一次性规划整个里程碑(统一)还是逐 phase 走完整生命周期(独立)。
|
|
304
|
+
|
|
305
|
+
**Auto-resolve rules (按优先级):**
|
|
306
|
+
|
|
307
|
+
| Condition | Mode | Reason |
|
|
308
|
+
|-----------|------|--------|
|
|
309
|
+
| lifecycle_position ∈ {brainstorm, init, roadmap} | `independent` | 前期阶段不涉及多 phase 规划 |
|
|
310
|
+
| `phase_is_new == true` | `independent` | 新 phase 尚无里程碑上下文 |
|
|
311
|
+
| intent 显式指定 phase 编号(如 "phase 2"、"P3") | `independent` | 用户明确针对单个 phase |
|
|
312
|
+
| milestone 仅含 1 个 phase(读 state.json) | `independent` | 统一无意义 |
|
|
313
|
+
| milestone 含多个 phase + `auto_confirm` | `unified` | 自动模式倾向高效 |
|
|
314
|
+
| milestone 含多个 phase + 非 `auto_confirm` | → AskUserQuestion | 征询用户选择 |
|
|
315
|
+
|
|
316
|
+
**AskUserQuestion** (仅当 milestone 含 ≥2 phase 且非 auto_confirm):
|
|
317
|
+
|
|
318
|
+
```
|
|
319
|
+
question: "当前里程碑含 {N} 个 phase,选择规划模式?"
|
|
320
|
+
options:
|
|
321
|
+
- label: "统一规划 (Recommended)"
|
|
322
|
+
description: "一次性分析+规划整个里程碑所有 phase,analyze/plan 走里程碑级,适合 phase 间关联紧密"
|
|
323
|
+
- label: "独立规划"
|
|
324
|
+
description: "逐个 phase 走完整生命周期(analyze→plan→execute→verify→...),适合 phase 间独立性高"
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
写入 `session.planning_mode`(`"unified"` 或 `"independent"`)。`A_BUILD_STEPS` 据此决定 skill args 是否携带 `{phase}` 占位符。
|
|
328
|
+
|
|
329
|
+
### A_DECOMPOSE_TASKS
|
|
330
|
+
|
|
331
|
+
Runs once before chain build; additive to status.json.
|
|
332
|
+
|
|
333
|
+
**1. Classify intent breadth:**
|
|
334
|
+
|
|
335
|
+
| Pattern | Breadth | Clarify? |
|
|
336
|
+
|---------|---------|----------|
|
|
337
|
+
| 重构/全面/重写/重做/整体/迁移 · overhaul/migrate/rewrite/revamp | broad | MUST (ignores auto_confirm) |
|
|
338
|
+
| named single file/function/bug, "fix X", "add Y to Z" | narrow | skip — auto-derive |
|
|
339
|
+
| otherwise | medium | clarify unless auto_confirm |
|
|
340
|
+
|
|
341
|
+
**2. Clarify boundary** (broad/medium) — `AskUserQuestion`, ≤3 rounds, options pre-filled from intent + a quick Glob/Grep scan of the target module:
|
|
342
|
+
|
|
343
|
+
| Round | Question | Drives |
|
|
344
|
+
|-------|----------|--------|
|
|
345
|
+
| Scope | 哪些目录/文件/层在范围内?明确排除什么? | boundary_contract.in_scope / out_of_scope |
|
|
346
|
+
| Constraints | 必须向后兼容?公共 API 冻结?行为/性能预算?测试门槛? | boundary_contract.constraints + execution_criteria |
|
|
347
|
+
| Done | 什么可观测结果算"完成"?(如:测试全绿 + 行为零变更 + X 指标) | boundary_contract.definition_of_done |
|
|
348
|
+
|
|
349
|
+
narrow → derive defaults from intent + codebase, skip questions.
|
|
350
|
+
|
|
351
|
+
**3. Derive `execution_criteria`**: backward-compat、scope-freeze、test/coverage bar、fix-don't-hide、incremental commit。
|
|
352
|
+
|
|
353
|
+
**4. Derive `task_decomposition`** (子目标清单 — outcome-oriented, NOT lifecycle stages). Each entry:
|
|
354
|
+
```json
|
|
355
|
+
{ "id": "G1", "goal": "<deliverable>", "boundary": "<in/out note>",
|
|
356
|
+
"done_when": "<objectively checkable condition>",
|
|
357
|
+
"evidence": "verification.json|review.json|uat.md|<test path>",
|
|
358
|
+
"lifecycle": ["analyze","execute","verify"], "status": "pending" }
|
|
359
|
+
```
|
|
360
|
+
`done_when` 必须客观可验证,且引用 ralph 已产出的 artifact;`lifecycle` 字段映射到产出 evidence 的生命周期 stage。
|
|
361
|
+
|
|
362
|
+
**5. Persist** (additive): `boundary_contract`, `execution_criteria`, `task_decomposition`。每个 sub-goal 含 `status: "pending"` + `completion_confirmed: false`。
|
|
363
|
+
|
|
364
|
+
**6. Stage** the Goal Prompt (Appendix) for A_CREATE_SESSION to emit.
|
|
365
|
+
|
|
366
|
+
### A_BUILD_STEPS
|
|
367
|
+
|
|
368
|
+
Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
369
|
+
|
|
370
|
+
| Stage | Skill (independent) | Skill (unified) | Type | Decision after | quality_mode |
|
|
371
|
+
|-------|---------------------|-----------------|------|----------------|--------------|
|
|
372
|
+
| brainstorm | `maestro-brainstorm "{intent}"` | *(same)* | internal | — | all |
|
|
373
|
+
| blueprint | `maestro-blueprint "{intent}"` | *(same)* | internal | — | all |
|
|
374
|
+
| init | `maestro-init` | *(same)* | internal | — | all |
|
|
375
|
+
| analyze-macro | `maestro-analyze "{intent}"` | *(same)* | internal | `post-analyze-scope` | all |
|
|
376
|
+
| roadmap | `maestro-roadmap --from analyze:{analyze_macro_id}` | *(same)* | internal | — | all |
|
|
377
|
+
| analyze | `maestro-analyze {phase}` | `maestro-analyze` | internal | — | all |
|
|
378
|
+
| plan | `maestro-plan {phase}` *(scope=phase)* / `maestro-plan --from analyze:{analyze_macro_id}` *(scope=standalone)* / `maestro-plan --from blueprint:{blueprint_id}` *(scope=standalone)* | `maestro-plan` | internal | — | all |
|
|
379
|
+
| execute | `maestro-execute {phase}` | `maestro-execute` | internal | — | all |
|
|
380
|
+
| verify | `maestro-verify {phase}` | `maestro-verify` | internal | `post-verify` | all |
|
|
381
|
+
| business-test | `quality-auto-test {phase}` | `quality-auto-test` | internal | `post-business-test` | full only |
|
|
382
|
+
| review | `quality-review {phase}` | `quality-review` | internal | `post-review` | all (quick: append `--tier quick`) |
|
|
383
|
+
| test-gen | `quality-auto-test {phase}` | `quality-auto-test` | internal | — | full / standard if coverage<80% |
|
|
384
|
+
| test | `quality-test {phase}` | `quality-test` | internal | `post-test` | full, standard |
|
|
385
|
+
| milestone-audit | `maestro-milestone-audit` | *(same)* | internal | — | all |
|
|
386
|
+
| goal-audit | *(decision-only)* | *(same)* | decision | `post-goal-audit` | all (only if decomposed) |
|
|
387
|
+
| milestone-complete | `maestro-milestone-complete` | *(same)* | internal | `post-milestone` | all |
|
|
388
|
+
|
|
389
|
+
**Build rules (按顺序应用):**
|
|
390
|
+
|
|
391
|
+
0. **planning_mode 选列**:`unified` → Skill (unified) 列;`independent` → Skill (independent) 列
|
|
392
|
+
1. **起点**:从 `session.lifecycle_position` 开始
|
|
393
|
+
2. **跳过已完成**:跳过当前 milestone+phase 下已有 completed artifact 的 stage(按 `session.phase` 过滤);unified 按 milestone 过滤
|
|
394
|
+
3. **quality_mode 过滤**:按 `session.quality_mode` 排除不匹配 stage
|
|
395
|
+
4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ type: "decision", decision: "<gate>", retry_count: 0, max_retries: 2 }`
|
|
396
|
+
5. **goal-audit 插入**:`task_decomposition` 存在时,在最后一个 evidence-producing stage(verify/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
|
|
397
|
+
6. **终点硬约束**:chain 以 `milestone-complete` 结尾
|
|
398
|
+
7. **goal_ref 传播**:`task_decomposition` 存在时,每个 step 按 `step.stage ∈ g.lifecycle` 匹配 `step.goal_ref = g.id`(多匹配取字典序最小);decision 节点不打 goal_ref
|
|
399
|
+
8. **占位符**:independent 保留 `{phase}` `{intent}`;unified 不带 `{phase}`
|
|
400
|
+
9. **command_path 解析**(每个非 decision step):
|
|
401
|
+
- 取 skill 名(args 前的第一个 token)
|
|
402
|
+
- 全局优先:`~/.claude/commands/{name}.md` 存在 → `command_scope = "global"`
|
|
403
|
+
- Fallback:`.claude/commands/{name}.md` 存在 → `command_scope = "project"`
|
|
404
|
+
- 两者都缺 → `command_scope = "missing"`, `command_path = null`,A_CREATE_SESSION 报错 E006
|
|
405
|
+
10. **每个 step 初始化** `completion_confirmed: false`, `completion_status: null`, `completion_evidence: null`
|
|
406
|
+
11. **scope_verdict gating**(仅当 chain 起点 = `analyze-macro`):
|
|
407
|
+
- `scope_verdict ∈ {medium, small}` → 跳过 `roadmap` + `analyze` 两 stage;`plan` 选 standalone 列(`--from analyze:{analyze_macro_id}`),不带 `{phase}`
|
|
408
|
+
- `scope_verdict == large` → 保留 `roadmap` + `analyze`;`plan` 选 phase 列(`{phase}`)
|
|
409
|
+
- `scope_verdict == unknown` → 默认 large 路径;由 `post-analyze-scope` 决策节点在 macro analyze 完成后纠正(A_APPLY_SCOPE_VERDICT)
|
|
410
|
+
12. **--from 自动注入**:
|
|
411
|
+
- `analyze_macro_id` 存在且当前 step 是 `roadmap` → args 改为 `--from analyze:{analyze_macro_id}`
|
|
412
|
+
- `analyze_macro_id` 存在且 `scope_verdict ∈ {medium, small}` 且当前 step 是 `plan` → args 改为 `--from analyze:{analyze_macro_id}`
|
|
413
|
+
- `blueprint_id` 存在 → 当前 step 是 `plan` → args 改为 `--from blueprint:{blueprint_id}`(优先级低于 phase 数字参数)
|
|
414
|
+
- 写入 `step.source_artifact_ref` 以便审计
|
|
415
|
+
13. **D-007 Milestone-ref 标注**:每个含 `{phase}` 占位符的 step → `step.milestone_id = session.milestone`(由 A_RESOLVE_PHASE 反查得出),禁止读 `current_milestone`
|
|
416
|
+
14. **动态插入步骤**(A_APPLY_*)同样应用规则 7-13
|
|
417
|
+
|
|
418
|
+
### A_CREATE_SESSION
|
|
419
|
+
|
|
420
|
+
1. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 + 列出缺失 skill
|
|
421
|
+
2. Write `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json` (Appendix: Session Schema)
|
|
422
|
+
3. Display chain overview:每步显示 `{index}. {skill} [{type}] [{command_scope}]`
|
|
423
|
+
4. If `task_decomposition` present: display the **Goal Prompt block** (Appendix: Goal Prompt Template)
|
|
424
|
+
|
|
425
|
+
### A_DELEGATE_EVALUATE
|
|
426
|
+
|
|
427
|
+
1. Resolve artifact dir: `.workflow/scratch/{artifact.path}/` with fallback glob
|
|
428
|
+
2. Parse decision metadata: `{ decision, retry_count, max_retries }`
|
|
429
|
+
3. Map result files:
|
|
430
|
+
| Decision | Files |
|
|
431
|
+
|----------|-------|
|
|
432
|
+
| post-verify | verification.json |
|
|
433
|
+
| post-business-test | .tests/auto-test/report.json |
|
|
434
|
+
| post-review | review.json |
|
|
435
|
+
| post-test | uat.md, .tests/test-results.json |
|
|
436
|
+
4. Check artifact for confidence section → include as signal
|
|
437
|
+
5. Execute delegate (run_in_background, STOP, wait for callback):
|
|
438
|
+
```
|
|
439
|
+
maestro delegate "PURPOSE: 评估 {decision} 质量门结果
|
|
440
|
+
TASK: 读取结果 | 分析状态 | 评估严重性 | 给出建议
|
|
441
|
+
EXPECTED: ---VERDICT--- STATUS/REASON/GAP_SUMMARY/CONFIDENCE(high|medium|low)/CONFIDENCE_SCORE(0-100)/WEAKEST_DIMENSION ---END---
|
|
442
|
+
CONSTRAINTS: 只评估 | 置信度<60% 倾向 fix | retry {n}/{max} 达上限必须 escalate"
|
|
443
|
+
--role analyze --mode analysis
|
|
444
|
+
```
|
|
445
|
+
6. On callback: parse verdict; if parse fails → fallback STATUS="fix"
|
|
446
|
+
7. Confidence adjustment: <60 + proceed → fix; >95 + fix + retry>0 → suggest proceed
|
|
447
|
+
8. **Decision log**: Append to `{session_dir}/decisions.ndjson`:
|
|
448
|
+
```json
|
|
449
|
+
{ "id": "DEC-{timestamp}", "timestamp": "{ISO}", "source": "ralph",
|
|
450
|
+
"node_id": "{step.decision}", "type": "quality-gate",
|
|
451
|
+
"verdict": "{adjusted_verdict}", "confidence_score": {N},
|
|
452
|
+
"close_call": {N>=50 && N<=70}, "summary": "{REASON}" }
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### A_STRUCTURAL_EVALUATE
|
|
456
|
+
|
|
457
|
+
**post-milestone:** Read state.json → next milestone? → insert lifecycle steps / complete
|
|
458
|
+
**post-debug-escalate:** Always STOP → set paused, display "请人工介入"
|
|
459
|
+
|
|
460
|
+
### A_SCOPE_EVALUATE
|
|
461
|
+
|
|
462
|
+
仅由 `post-analyze-scope` 决策节点触发;macro analyze 完成后读 `conclusions.json.scope_verdict` 决定下游链路。
|
|
463
|
+
|
|
464
|
+
1. 定位刚完成的 macro analyze artifact → `analyze_macro_id`, `conclusions_path = {artifact_path}/conclusions.json`
|
|
465
|
+
2. 读取 `conclusions.scope_verdict`(`large | medium | small`),缺失 → `unknown`
|
|
466
|
+
3. 写入 `session.scope_verdict` + `session.analyze_macro_id`
|
|
467
|
+
4. Append `{session_dir}/decisions.ndjson`:
|
|
468
|
+
```json
|
|
469
|
+
{ "id": "DEC-{timestamp}", "type": "scope-gate",
|
|
470
|
+
"source": "ralph", "node_id": "post-analyze-scope",
|
|
471
|
+
"verdict": "{scope_verdict}", "analyze_macro_id": "{ANL_ID}" }
|
|
472
|
+
```
|
|
473
|
+
5. → A_APPLY_SCOPE_VERDICT
|
|
474
|
+
|
|
475
|
+
### A_GOAL_AUDIT_EVALUATE
|
|
476
|
+
|
|
477
|
+
Runs only when `task_decomposition` present.
|
|
478
|
+
|
|
479
|
+
1. Read `session.task_decomposition` from status.json
|
|
480
|
+
2. For each sub-goal `status != "done"`: resolve `evidence` artifact under current phase scratch dir
|
|
481
|
+
3. Delegate read-only audit (run_in_background, STOP, wait):
|
|
482
|
+
```
|
|
483
|
+
maestro delegate "PURPOSE: 审计未完成子目标,判定 met / unmet
|
|
484
|
+
TASK:
|
|
485
|
+
1. 读取 status.json.task_decomposition 中 status!=done 的子目标
|
|
486
|
+
2. 打开 evidence 产物,对照 done_when 严格判定
|
|
487
|
+
3. 输出 met / unmet,unmet 给出 gap + target_phase
|
|
488
|
+
CONTEXT:
|
|
489
|
+
status.json = {session_dir}/status.json
|
|
490
|
+
evidence = {evidence artifacts}
|
|
491
|
+
execution_criteria = {execution_criteria}
|
|
492
|
+
boundary_contract = {boundary_contract}
|
|
493
|
+
EXPECTED:
|
|
494
|
+
---VERDICT---
|
|
495
|
+
STATUS=all_met|has_unmet
|
|
496
|
+
UNMET=[{id:G2,gap:'...',target_phase:execute}, ...]
|
|
497
|
+
CONFIDENCE_SCORE=0-100
|
|
498
|
+
---END---
|
|
499
|
+
CONSTRAINTS:
|
|
500
|
+
- 只评估,不修改文件
|
|
501
|
+
- 严格按 done_when 判定;evidence 缺失 → unmet
|
|
502
|
+
- 不得建议超出 boundary_contract 的修改
|
|
503
|
+
"
|
|
504
|
+
--role analyze --mode analysis
|
|
505
|
+
```
|
|
506
|
+
4. On callback: 对每个 met 子目标,set `task_decomposition[i].status="done"` + `completion_confirmed=true` + `completed_at=now`
|
|
507
|
+
5. Append `{session_dir}/decisions.ndjson` with `"type": "goal-gate"`, `unmet_count`, `unmet_ids`
|
|
508
|
+
6. Verdict: `all_met` → A_APPLY_GOAL_DONE; `has_unmet` → A_APPLY_GOAL_FIX
|
|
509
|
+
GUARD: retry_count >= max_retries AND still unmet → A_APPLY_ESCALATE
|
|
510
|
+
|
|
511
|
+
### A_APPLY_PROCEED
|
|
512
|
+
|
|
513
|
+
1. Mark decision completed, write status.json
|
|
514
|
+
2. Display: ◆ Decision: {type} → proceed ({reason})
|
|
515
|
+
|
|
516
|
+
### A_APPLY_FIX
|
|
517
|
+
|
|
518
|
+
1. Insert fix-loop commands after current step (see Appendix: Fix-Loop Templates)
|
|
519
|
+
2. Reindex steps, increment retry_count, write status.json
|
|
520
|
+
3. Display: ◆ Decision: {type} → fix, +{N} commands inserted
|
|
521
|
+
|
|
522
|
+
### A_APPLY_ESCALATE
|
|
523
|
+
|
|
524
|
+
1. Insert `[quality-debug "{gap_summary}", decision:post-debug-escalate]`
|
|
525
|
+
2. Increment retry_count, reindex, write status.json
|
|
526
|
+
|
|
527
|
+
### A_APPLY_SCOPE_VERDICT
|
|
528
|
+
|
|
529
|
+
由 `post-analyze-scope` 触发,依据 `session.scope_verdict` 重塑下游链路。
|
|
530
|
+
|
|
531
|
+
1. 读 `session.scope_verdict`
|
|
532
|
+
2. 路径 A(`large`):保持当前链;为后续 `roadmap` step 注入 `--from analyze:{analyze_macro_id}`;为后续 `plan` step 选 phase 列;继续推进
|
|
533
|
+
3. 路径 B(`medium` / `small`):
|
|
534
|
+
- 删除 `goal-audit` 之前所有未完成的 `roadmap` + `analyze` (phase) step
|
|
535
|
+
- 把下一个未完成的 `plan` step 改为 `maestro-plan --from analyze:{analyze_macro_id}`,去掉 `{phase}`,`source_artifact_ref = analyze:{analyze_macro_id}`
|
|
536
|
+
- 后续 `execute` / `verify` 等沿用同一 standalone scope(不带 `{phase}`,由 plan 写出的 task 列表驱动)
|
|
537
|
+
4. 路径 C(`unknown`):
|
|
538
|
+
- 非 auto_confirm → AskUserQuestion 二选一(large / medium-small);auto_confirm → 默认 large
|
|
539
|
+
5. Reindex steps,标 decision completed,write status.json
|
|
540
|
+
6. Display: ◆ Scope verdict: {verdict} → {kept|collapsed to standalone via analyze:{ANL_ID}}
|
|
541
|
+
|
|
542
|
+
### A_APPLY_GOAL_FIX
|
|
543
|
+
|
|
544
|
+
1. 对每个 unmet 子目标 `G{n}`(按 `target_phase` 分组去重):在 `goal-audit` 节点前插入 scoped mini-loop(见 Appendix: Fix-Loop Templates → post-goal-audit),每条插入 step `goal_ref: "G{n}"`,按 A_BUILD_STEPS 规则 9 解析 `command_path`
|
|
545
|
+
2. 重新追加 `decision:post-goal-audit {retry+1}`
|
|
546
|
+
3. Reindex steps, increment retry_count, write status.json
|
|
547
|
+
4. Display: ◆ Goal audit: {k} unmet → +{N} steps inserted (G{ids}), retry {r}/{max}
|
|
548
|
+
|
|
549
|
+
### A_APPLY_GOAL_DONE
|
|
550
|
+
|
|
551
|
+
1. status.json: set 每个 `task_decomposition[*].status="done"`, `completion_confirmed=true`, `completed_at=now`,顶层 `task_decomposition_all_done=true`
|
|
552
|
+
2. Mark goal-audit decision completed;proceed to `milestone-complete`
|
|
553
|
+
3. Display: ◆ Goal audit: all met ✓
|
|
554
|
+
|
|
555
|
+
### A_ADVANCE_MILESTONE
|
|
556
|
+
|
|
557
|
+
1. Update session: milestone, phase, reset passed_gates
|
|
558
|
+
2. Insert full lifecycle steps for next milestone
|
|
559
|
+
3. Reindex, write status.json
|
|
560
|
+
|
|
561
|
+
### A_PAUSE_ESCALATE
|
|
562
|
+
|
|
563
|
+
1. Set session status = "paused", write status.json
|
|
564
|
+
2. Display: ◆ 已达最大重试次数,debug 已执行。请人工介入。
|
|
565
|
+
3. Display: /maestro-ralph continue 恢复
|
|
566
|
+
|
|
567
|
+
</actions>
|
|
568
|
+
|
|
569
|
+
</state_machine>
|
|
570
|
+
|
|
571
|
+
<appendix>
|
|
572
|
+
|
|
573
|
+
### Session Schema
|
|
574
|
+
|
|
575
|
+
```json
|
|
576
|
+
{
|
|
577
|
+
"session_id": "ralph-{YYYYMMDD-HHmmss}",
|
|
578
|
+
"source": "ralph", "status": "running",
|
|
579
|
+
"intent": "", "lifecycle_position": "",
|
|
580
|
+
"phase": null, "phase_is_new": false,
|
|
581
|
+
"milestone": "", // D-007 反查结果,禁止读 current_milestone
|
|
582
|
+
"auto_mode": false,
|
|
583
|
+
"quality_mode": "standard", // "full" | "standard" | "quick"
|
|
584
|
+
"planning_mode": "independent", // "unified" | "independent"
|
|
585
|
+
"scope_verdict": null, // "large" | "medium" | "small" | "unknown" | null
|
|
586
|
+
"analyze_macro_id": null, // "ANL-xxx" 来自最新 macro analyze
|
|
587
|
+
"blueprint_id": null, // "BLP-xxx" 若存在
|
|
588
|
+
"cli_tool": "claude", "passed_gates": [],
|
|
589
|
+
"context": { "issue_id": null, "scratch_dir": null, "plan_dir": null,
|
|
590
|
+
"analysis_dir": null, "brainstorm_dir": null, "blueprint_dir": null },
|
|
591
|
+
"steps": [{
|
|
592
|
+
"index": 0,
|
|
593
|
+
"type": "internal|external|decision",
|
|
594
|
+
"skill": "",
|
|
595
|
+
"args": "",
|
|
596
|
+
"stage": "", // brainstorm|blueprint|init|analyze-macro|roadmap|analyze|plan|execute|verify|...
|
|
597
|
+
"scope": null, // "phase"|"standalone"|"milestone"|null(plan 等需要)
|
|
598
|
+
"command_scope": "global|project|missing|null",
|
|
599
|
+
"command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
|
|
600
|
+
"milestone_id": null, // D-007 反查注入;仅含 {phase} 占位符的 step 有
|
|
601
|
+
"source_artifact_ref": null, // "analyze:ANL-xxx" | "blueprint:BLP-xxx" | null
|
|
602
|
+
"status": "pending|running|completed|skipped|failed",
|
|
603
|
+
"goal_ref": null,
|
|
604
|
+
"completion_confirmed": false,
|
|
605
|
+
"completion_status": null,
|
|
606
|
+
"completion_evidence": null,
|
|
607
|
+
"completed_at": null
|
|
608
|
+
}],
|
|
609
|
+
"waves": [], "current_step": 0,
|
|
610
|
+
|
|
611
|
+
// Optional decomposition block (additive; absent → decomposition off)
|
|
612
|
+
"boundary_contract": {
|
|
613
|
+
"in_scope": [], "out_of_scope": [], "constraints": [], "definition_of_done": ""
|
|
614
|
+
},
|
|
615
|
+
"execution_criteria": [],
|
|
616
|
+
"task_decomposition": [
|
|
617
|
+
{ "id": "G1", "goal": "", "boundary": "", "done_when": "",
|
|
618
|
+
"evidence": "", "lifecycle": [], "status": "pending|done",
|
|
619
|
+
"completion_confirmed": false, "completed_at": null }
|
|
620
|
+
],
|
|
621
|
+
"task_decomposition_all_done": false
|
|
622
|
+
}
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
新增字段可选,缺省=旧行为;既有字段名不删不改。
|
|
626
|
+
|
|
627
|
+
### Fix-Loop Templates
|
|
628
|
+
|
|
629
|
+
所有插入 step 默认 `type: "internal"`,按 A_BUILD_STEPS 规则 9 解析 `command_path` + `command_scope`。
|
|
630
|
+
|
|
631
|
+
**post-verify:**
|
|
632
|
+
```
|
|
633
|
+
quality-debug "{gap_summary}"
|
|
634
|
+
maestro-plan --gaps {phase}
|
|
635
|
+
maestro-execute {phase}
|
|
636
|
+
maestro-verify {phase}
|
|
637
|
+
decision:post-verify {retry+1}
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
**post-business-test:**
|
|
641
|
+
```
|
|
642
|
+
quality-debug --from-business-test "{gap_summary}"
|
|
643
|
+
maestro-plan --gaps {phase}
|
|
644
|
+
maestro-execute {phase}
|
|
645
|
+
maestro-verify {phase}
|
|
646
|
+
decision:post-verify {retry: 0}
|
|
647
|
+
quality-auto-test {phase}
|
|
648
|
+
decision:post-business-test {retry+1}
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
**post-review:**
|
|
652
|
+
```
|
|
653
|
+
quality-debug "{gap_summary}"
|
|
654
|
+
maestro-plan --gaps {phase}
|
|
655
|
+
maestro-execute {phase}
|
|
656
|
+
quality-review {phase}
|
|
657
|
+
decision:post-review {retry+1}
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
**post-test:**
|
|
661
|
+
```
|
|
662
|
+
quality-debug --from-uat "{gap_summary}"
|
|
663
|
+
maestro-plan --gaps {phase}
|
|
664
|
+
maestro-execute {phase}
|
|
665
|
+
maestro-verify {phase}
|
|
666
|
+
decision:post-verify {retry: 0}
|
|
667
|
+
quality-auto-test {phase}
|
|
668
|
+
decision:post-business-test {retry: 0}
|
|
669
|
+
quality-review {phase}
|
|
670
|
+
decision:post-review {retry: 0}
|
|
671
|
+
quality-auto-test {phase}
|
|
672
|
+
quality-test {phase}
|
|
673
|
+
decision:post-test {retry+1}
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
**post-goal-audit:** (per unmet sub-goal group)
|
|
677
|
+
```
|
|
678
|
+
# for each unmet sub-goal G{n}, scoped to target_phase:
|
|
679
|
+
maestro-plan --gaps {target_phase} "G{n}: {gap}" [goal_ref: G{n}]
|
|
680
|
+
maestro-execute {target_phase} [goal_ref: G{n}]
|
|
681
|
+
maestro-verify {target_phase} [goal_ref: G{n}]
|
|
682
|
+
# after all unmet groups inserted:
|
|
683
|
+
decision:post-goal-audit {retry+1}
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
### Goal Prompt Template
|
|
687
|
+
|
|
688
|
+
链路概览后逐字显示(仅当 decomposition 已产出):
|
|
689
|
+
|
|
690
|
+
```
|
|
691
|
+
📋 任务分解完成。复制下面一行设定目标,会话在子目标全部达成前不停:
|
|
692
|
+
|
|
693
|
+
/goal 目标达成条件: {session_dir}/status.json 中 task_decomposition[*].status == "done" 且 task_decomposition[*].completion_confirmed == true 且 steps[*].completion_confirmed == true。未达成时:阅读 {session_dir}/status.json 取得 execution_criteria / boundary_contract / task_decomposition / steps 作为行动手册,调用 /maestro-ralph continue 推进;严禁手动执行 skill 或越界修改 status.json.boundary_contract.out_of_scope。
|
|
694
|
+
|
|
695
|
+
随后运行 /maestro-ralph continue 立即开始执行。
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
`/goal` 由用户输入;ralph 只输出此提示词。判据以 status.json 为权威。
|
|
699
|
+
|
|
700
|
+
### Error Codes
|
|
701
|
+
|
|
702
|
+
| Code | Severity | Description | Recovery |
|
|
703
|
+
|------|----------|-------------|----------|
|
|
704
|
+
| E001 | error | No intent and no running session | Prompt for intent |
|
|
705
|
+
| E002 | error | Cannot infer lifecycle position | Show raw state, ask |
|
|
706
|
+
| E003 | error | Artifact dir not found for decision | Show glob, ask |
|
|
707
|
+
| E004 | error | Delegate verdict parse failed | Fallback: "fix" |
|
|
708
|
+
| E005 | error | Delegate execution failed | Fallback: "fix" |
|
|
709
|
+
| E006 | error | command_scope == "missing" for one or more steps | List missing skills, abort build |
|
|
710
|
+
| W001 | warning | Decision expanded chain | Auto-handled |
|
|
711
|
+
| W002 | warning | Max retries, escalating | Auto-handled |
|
|
712
|
+
| W003 | warning | Multiple running sessions | Use latest, warn |
|
|
713
|
+
| W004 | warning | Low delegate confidence | Show warning |
|
|
714
|
+
|
|
715
|
+
### Success Criteria
|
|
716
|
+
|
|
717
|
+
- [ ] Phase 先于 position 解析;phase_is_new 标记写入 session
|
|
718
|
+
- [ ] D-007 反查:phase 数字 → `session.milestone`,禁止读 current_milestone;写入 step.milestone_id
|
|
719
|
+
- [ ] phase_is_new=true → lifecycle_position 强制 `analyze`
|
|
720
|
+
- [ ] Intent overrides 识别 brainstorm / blueprint / analyze-macro
|
|
721
|
+
- [ ] A_RESOLVE_SCOPE_VERDICT 读 macro analyze conclusions.scope_verdict,写入 session.scope_verdict + analyze_macro_id
|
|
722
|
+
- [ ] 链路起点 = analyze-macro 时:large→roadmap+analyze+plan(phase);medium/small→直跳 plan --from analyze:{ANL_ID}(跳过 roadmap+analyze)
|
|
723
|
+
- [ ] post-analyze-scope decision 节点在 macro analyze 之后插入;A_SCOPE_EVALUATE/A_APPLY_SCOPE_VERDICT 重塑链路
|
|
724
|
+
- [ ] plan step args 支持三路径:`{phase}` / `--from analyze:{ANL_ID}` / `--from blueprint:{BLP_ID}`,写入 step.source_artifact_ref
|
|
725
|
+
- [ ] roadmap step args 自动注入 `--from analyze:{analyze_macro_id}`(若存在)
|
|
726
|
+
- [ ] artifact 过滤按 session.phase;unified 按 milestone
|
|
727
|
+
- [ ] quality_mode 由 A_DETERMINE_QUALITY_MODE 决定,过滤 build steps
|
|
728
|
+
- [ ] Decomposition: broad intent ≤3 question clarify;narrow auto-derive
|
|
729
|
+
- [ ] status.json 唯一真源:boundary_contract + execution_criteria + task_decomposition;无外部清单
|
|
730
|
+
- [ ] 每个 step 默认 `type: "internal"`,含 `command_scope` + `command_path`(全局优先 fallback 项目)
|
|
731
|
+
- [ ] 每个 step 含 `completion_confirmed` + `completion_status` + `completion_evidence`(初始 false/null)
|
|
732
|
+
- [ ] 每个 sub-goal 含 `completion_confirmed`(初始 false)
|
|
733
|
+
- [ ] post-goal-audit decision 仅在 decomposed 时插入,位于 milestone-complete 之前
|
|
734
|
+
- [ ] Unmet sub-goals 动态 grow steps[](goal_ref tagged);max retries → escalate
|
|
735
|
+
- [ ] planning_mode 显式决定;unified=无 `{phase}`, independent=带 `{phase}`
|
|
736
|
+
- [ ] Chain 必须以 `milestone-complete` 结尾
|
|
737
|
+
- [ ] Decision nodes 由 maestro delegate --role analyze 评估
|
|
738
|
+
- [ ] Ralph 不执行 step,只 evaluate;Skill("maestro-ralph-execute") handoff
|
|
739
|
+
|
|
740
|
+
</appendix>
|