maestro-flow 0.4.9 → 0.4.11
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 +189 -0
- package/.agents/agents/conceptual-planning-agent.md +247 -0
- package/.agents/agents/impeccable-agent.md +101 -0
- package/.agents/agents/team-supervisor.md +145 -0
- package/.agents/agents/team-worker.md +239 -0
- package/.agents/agents/ui-design-agent.md +289 -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 +224 -0
- package/.agents/skills/maestro-amend/SKILL.md +165 -0
- package/.agents/skills/maestro-analyze/SKILL.md +135 -0
- package/.agents/skills/maestro-brainstorm/SKILL.md +118 -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 +266 -0
- package/.agents/skills/maestro-help/index/catalog.json +184 -0
- package/.agents/skills/maestro-help/phases/01-parse-intent.md +122 -0
- package/.agents/skills/maestro-help/phases/02-search-present.md +181 -0
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +186 -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 +70 -0
- package/.agents/skills/maestro-milestone-complete/SKILL.md +77 -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 +172 -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 +685 -0
- package/.agents/skills/maestro-ralph-execute/SKILL.md +259 -0
- package/.agents/skills/maestro-roadmap/SKILL.md +170 -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 +186 -0
- package/.agy/agents/conceptual-planning-agent.md +244 -0
- package/.agy/agents/impeccable-agent.md +97 -0
- package/.agy/agents/team-supervisor.md +142 -0
- package/.agy/agents/team-worker.md +236 -0
- package/.agy/agents/ui-design-agent.md +286 -0
- package/.agy/agents/workflow-analyzer.md +114 -0
- package/.agy/agents/workflow-codebase-mapper.md +76 -0
- package/.agy/agents/workflow-collab-planner.md +142 -0
- package/.agy/agents/workflow-debugger.md +102 -0
- package/.agy/agents/workflow-executor.md +131 -0
- package/.agy/agents/workflow-external-researcher.md +86 -0
- package/.agy/agents/workflow-integration-checker.md +82 -0
- package/.agy/agents/workflow-nyquist-auditor.md +84 -0
- package/.agy/agents/workflow-phase-researcher.md +84 -0
- package/.agy/agents/workflow-plan-checker.md +89 -0
- package/.agy/agents/workflow-planner.md +194 -0
- package/.agy/agents/workflow-project-researcher.md +73 -0
- package/.agy/agents/workflow-research-synthesizer.md +70 -0
- package/.agy/agents/workflow-reviewer.md +81 -0
- package/.agy/agents/workflow-roadmapper.md +81 -0
- package/.agy/agents/workflow-verifier.md +119 -0
- package/.agy/skills/codify-to-knowhow/SKILL.md +172 -0
- package/.agy/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
- package/.agy/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
- package/.agy/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
- package/.agy/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
- package/.agy/skills/learn-decompose/SKILL.md +118 -0
- package/.agy/skills/learn-follow/SKILL.md +129 -0
- package/.agy/skills/learn-investigate/SKILL.md +154 -0
- package/.agy/skills/learn-retro/SKILL.md +159 -0
- package/.agy/skills/learn-second-opinion/SKILL.md +124 -0
- package/.agy/skills/maestro/SKILL.md +223 -0
- package/.agy/skills/maestro-amend/SKILL.md +162 -0
- package/.agy/skills/maestro-analyze/SKILL.md +135 -0
- package/.agy/skills/maestro-brainstorm/SKILL.md +118 -0
- package/.agy/skills/maestro-collab/SKILL.md +174 -0
- package/.agy/skills/maestro-composer/SKILL.md +180 -0
- package/.agy/skills/maestro-execute/SKILL.md +133 -0
- package/.agy/skills/maestro-fork/SKILL.md +88 -0
- package/.agy/skills/maestro-guard/SKILL.md +101 -0
- package/.agy/skills/maestro-help/SKILL.md +267 -0
- package/.agy/skills/maestro-help/index/catalog.json +184 -0
- package/.agy/skills/maestro-help/phases/01-parse-intent.md +122 -0
- package/.agy/skills/maestro-help/phases/02-search-present.md +181 -0
- package/.agy/skills/maestro-help/phases/03-workflow-guide.md +186 -0
- package/.agy/skills/maestro-impeccable/SKILL.md +250 -0
- package/.agy/skills/maestro-init/SKILL.md +80 -0
- package/.agy/skills/maestro-learn/SKILL.md +142 -0
- package/.agy/skills/maestro-merge/SKILL.md +66 -0
- package/.agy/skills/maestro-milestone-audit/SKILL.md +70 -0
- package/.agy/skills/maestro-milestone-complete/SKILL.md +77 -0
- package/.agy/skills/maestro-milestone-release/SKILL.md +98 -0
- package/.agy/skills/maestro-overlay/SKILL.md +177 -0
- package/.agy/skills/maestro-plan/SKILL.md +172 -0
- package/.agy/skills/maestro-player/SKILL.md +176 -0
- package/.agy/skills/maestro-quick/SKILL.md +67 -0
- package/.agy/skills/maestro-ralph/SKILL.md +681 -0
- package/.agy/skills/maestro-ralph-execute/SKILL.md +255 -0
- package/.agy/skills/maestro-roadmap/SKILL.md +170 -0
- package/.agy/skills/maestro-tools-execute/SKILL.md +119 -0
- package/.agy/skills/maestro-tools-register/SKILL.md +159 -0
- package/.agy/skills/maestro-ui-codify/SKILL.md +81 -0
- package/.agy/skills/maestro-update/SKILL.md +175 -0
- package/.agy/skills/maestro-verify/SKILL.md +111 -0
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +77 -0
- package/.agy/skills/manage-codebase-refresh/SKILL.md +59 -0
- package/.agy/skills/manage-harvest/SKILL.md +96 -0
- package/.agy/skills/manage-issue/SKILL.md +72 -0
- package/.agy/skills/manage-issue-discover/SKILL.md +83 -0
- package/.agy/skills/manage-knowhow/SKILL.md +76 -0
- package/.agy/skills/manage-knowhow-capture/SKILL.md +78 -0
- package/.agy/skills/manage-learn/SKILL.md +64 -0
- package/.agy/skills/manage-status/SKILL.md +51 -0
- package/.agy/skills/manage-wiki/SKILL.md +61 -0
- package/.agy/skills/quality-auto-test/SKILL.md +135 -0
- package/.agy/skills/quality-debug/SKILL.md +122 -0
- package/.agy/skills/quality-refactor/SKILL.md +69 -0
- package/.agy/skills/quality-retrospective/SKILL.md +79 -0
- package/.agy/skills/quality-review/SKILL.md +130 -0
- package/.agy/skills/quality-sync/SKILL.md +53 -0
- package/.agy/skills/quality-test/SKILL.md +119 -0
- package/.agy/skills/security-audit/SKILL.md +157 -0
- package/.agy/skills/skill-iter-tune/SKILL.md +381 -0
- package/.agy/skills/skill-iter-tune/phases/01-setup.md +144 -0
- package/.agy/skills/skill-iter-tune/phases/02-execute.md +292 -0
- package/.agy/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
- package/.agy/skills/skill-iter-tune/phases/04-improve.md +198 -0
- package/.agy/skills/skill-iter-tune/phases/05-report.md +166 -0
- package/.agy/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
- package/.agy/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
- package/.agy/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
- package/.agy/skills/spec-add/SKILL.md +67 -0
- package/.agy/skills/spec-load/SKILL.md +70 -0
- package/.agy/skills/spec-remove/SKILL.md +50 -0
- package/.agy/skills/spec-setup/SKILL.md +47 -0
- package/.agy/skills/team-coordinate/SKILL.md +267 -0
- package/.agy/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
- package/.agy/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
- package/.agy/skills/team-coordinate/roles/coordinator/commands/monitor.md +348 -0
- package/.agy/skills/team-coordinate/roles/coordinator/role.md +362 -0
- package/.agy/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
- package/.agy/skills/team-coordinate/specs/pipelines.md +97 -0
- package/.agy/skills/team-coordinate/specs/quality-gates.md +112 -0
- package/.agy/skills/team-coordinate/specs/role-spec-template.md +198 -0
- package/.agy/skills/team-executor/SKILL.md +180 -0
- package/.agy/skills/team-executor/roles/executor/commands/monitor.md +235 -0
- package/.agy/skills/team-executor/roles/executor/role.md +171 -0
- package/.agy/skills/team-executor/specs/session-schema.md +264 -0
- package/.agy/skills/team-lifecycle-v4/SKILL.md +189 -0
- package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +92 -0
- package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
- package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
- package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
- package/.agy/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
- package/.agy/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
- package/.agy/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
- package/.agy/skills/team-lifecycle-v4/roles/executor/role.md +64 -0
- package/.agy/skills/team-lifecycle-v4/roles/planner/role.md +82 -0
- package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
- package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
- package/.agy/skills/team-lifecycle-v4/roles/reviewer/role.md +65 -0
- package/.agy/skills/team-lifecycle-v4/roles/supervisor/role.md +188 -0
- package/.agy/skills/team-lifecycle-v4/roles/tester/role.md +84 -0
- package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +92 -0
- package/.agy/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
- package/.agy/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
- package/.agy/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
- package/.agy/skills/team-lifecycle-v4/templates/architecture.md +254 -0
- package/.agy/skills/team-lifecycle-v4/templates/epics.md +196 -0
- package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
- package/.agy/skills/team-lifecycle-v4/templates/requirements.md +224 -0
- package/.agy/skills/team-quality-assurance/SKILL.md +148 -0
- package/.agy/skills/team-quality-assurance/roles/analyst/role.md +85 -0
- package/.agy/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
- package/.agy/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
- package/.agy/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +235 -0
- package/.agy/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
- package/.agy/skills/team-quality-assurance/roles/executor/role.md +62 -0
- package/.agy/skills/team-quality-assurance/roles/generator/role.md +65 -0
- package/.agy/skills/team-quality-assurance/roles/scout/role.md +72 -0
- package/.agy/skills/team-quality-assurance/roles/strategist/role.md +69 -0
- package/.agy/skills/team-quality-assurance/specs/pipelines.md +115 -0
- package/.agy/skills/team-quality-assurance/specs/team-config.json +131 -0
- package/.agy/skills/team-review/SKILL.md +149 -0
- package/.agy/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
- package/.agy/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
- package/.agy/skills/team-review/roles/coordinator/commands/monitor.md +209 -0
- package/.agy/skills/team-review/roles/coordinator/role.md +132 -0
- package/.agy/skills/team-review/roles/fixer/role.md +74 -0
- package/.agy/skills/team-review/roles/reviewer/role.md +66 -0
- package/.agy/skills/team-review/roles/scanner/role.md +77 -0
- package/.agy/skills/team-review/specs/dimensions.md +82 -0
- package/.agy/skills/team-review/specs/finding-schema.json +82 -0
- package/.agy/skills/team-review/specs/pipelines.md +102 -0
- package/.agy/skills/team-review/specs/team-config.json +27 -0
- package/.agy/skills/team-tech-debt/SKILL.md +133 -0
- package/.agy/skills/team-tech-debt/roles/assessor/role.md +76 -0
- package/.agy/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
- package/.agy/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
- package/.agy/skills/team-tech-debt/roles/coordinator/commands/monitor.md +198 -0
- package/.agy/skills/team-tech-debt/roles/coordinator/role.md +123 -0
- package/.agy/skills/team-tech-debt/roles/executor/role.md +76 -0
- package/.agy/skills/team-tech-debt/roles/planner/role.md +68 -0
- package/.agy/skills/team-tech-debt/roles/scanner/role.md +90 -0
- package/.agy/skills/team-tech-debt/roles/validator/role.md +78 -0
- package/.agy/skills/team-tech-debt/specs/pipelines.md +47 -0
- package/.agy/skills/team-tech-debt/specs/team-config.json +129 -0
- package/.agy/skills/team-testing/SKILL.md +144 -0
- package/.agy/skills/team-testing/roles/analyst/role.md +101 -0
- package/.agy/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
- package/.agy/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
- package/.agy/skills/team-testing/roles/coordinator/commands/monitor.md +242 -0
- package/.agy/skills/team-testing/roles/coordinator/role.md +134 -0
- package/.agy/skills/team-testing/roles/executor/role.md +95 -0
- package/.agy/skills/team-testing/roles/generator/role.md +95 -0
- package/.agy/skills/team-testing/roles/strategist/role.md +81 -0
- package/.agy/skills/team-testing/specs/pipelines.md +101 -0
- package/.agy/skills/team-testing/specs/team-config.json +93 -0
- package/.agy/skills/wiki-connect/SKILL.md +64 -0
- package/.agy/skills/wiki-digest/SKILL.md +70 -0
- package/.agy/skills/workflow-skill-designer/SKILL.md +506 -0
- package/.agy/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
- package/.agy/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
- package/.agy/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
- package/.agy/skills/workflow-skill-designer/phases/04-validation.md +471 -0
- package/.claude/commands/maestro-ralph.md +222 -87
- package/.claude/commands/maestro.md +13 -11
- package/.codex/skills/maestro/SKILL.md +23 -17
- package/.codex/skills/maestro-ralph/SKILL.md +177 -67
- 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/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/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 +19 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,685 @@
|
|
|
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:
|
|
6
|
+
- read_file
|
|
7
|
+
- write_file
|
|
8
|
+
- edit_file
|
|
9
|
+
- shell
|
|
10
|
+
- find_files
|
|
11
|
+
- search
|
|
12
|
+
- invoke_skill
|
|
13
|
+
- ask_user
|
|
14
|
+
---
|
|
15
|
+
<!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
|
|
16
|
+
|
|
17
|
+
<purpose>
|
|
18
|
+
Closed-loop decision engine for the maestro workflow lifecycle.
|
|
19
|
+
Reads project state → infers position → builds adaptive chain → delegates execution.
|
|
20
|
+
|
|
21
|
+
Entry points:
|
|
22
|
+
- **`/maestro-ralph "intent"`** — New session: infer → decompose → build → execute
|
|
23
|
+
- **`/maestro-ralph continue`** — Resume via maestro-ralph-execute
|
|
24
|
+
- **`/maestro-ralph status`** — Display session progress
|
|
25
|
+
|
|
26
|
+
Initial decomposition (S_DECOMPOSE): broad intents (重构/全面/迁移/重写) are boundary-clarified via ≤3 questions, producing 执行准则 + 子目标清单 written into status.json, plus a `goal-checklist.md` (a rendered view of status.json) and a copy-paste `/goal` prompt for the user to bind.
|
|
27
|
+
|
|
28
|
+
Three node types:
|
|
29
|
+
- **internal**: `invoke_skill()` call (synchronous, lightweight)
|
|
30
|
+
- **external**: `maestro delegate --to claude` (context-isolated, heavy computation)
|
|
31
|
+
- **decision**: Hand back to ralph for re-evaluation (adaptive branching)
|
|
32
|
+
|
|
33
|
+
Key difference from maestro coordinator:
|
|
34
|
+
- maestro: static chain → one-time selection → runs all steps
|
|
35
|
+
- ralph: living chain → decision nodes re-evaluate → chain grows/shrinks dynamically
|
|
36
|
+
|
|
37
|
+
Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`
|
|
38
|
+
Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work loop.
|
|
39
|
+
|
|
40
|
+
### 执行方式 / Execution Flow
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
/maestro-ralph "intent" ─▶ ralph infer → decompose → build chain
|
|
44
|
+
│ writes status.json (truth)
|
|
45
|
+
│ renders goal-checklist.md (view)
|
|
46
|
+
│ emits /goal prompt
|
|
47
|
+
▼
|
|
48
|
+
ralph-execute ◀─┐ runs next step:
|
|
49
|
+
│ │ internal → invoke_skill()
|
|
50
|
+
│ │ external → delegate (STOP→callback)
|
|
51
|
+
│ │ decision → invoke_skill("maestro-ralph")
|
|
52
|
+
└─────────┘ updates status.json + re-renders checklist
|
|
53
|
+
loop until done | paused
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`status.json` 是唯一真源;checklist 是渲染视图。决策节点是链路生长点(`post-goal-audit` 插入按子目标的 mini-loop;`post-verify/review/test` 插入修复 loop)。评估只走 ralph,执行只走 ralph-execute,两者不互相替代。
|
|
57
|
+
</purpose>
|
|
58
|
+
|
|
59
|
+
<context>
|
|
60
|
+
$ARGUMENTS — intent text, flags, or keywords.
|
|
61
|
+
|
|
62
|
+
**Parse:**
|
|
63
|
+
```
|
|
64
|
+
-y flag → auto_confirm = true
|
|
65
|
+
.md/.txt path → input_doc (supplementary context only, NEVER substitutes lifecycle stages)
|
|
66
|
+
Remaining → intent
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**State files:**
|
|
70
|
+
- `.workflow/state.json` — artifact registry, milestones, phases
|
|
71
|
+
- `.workflow/roadmap.md` — milestone/phase structure
|
|
72
|
+
- `.workflow/.maestro/ralph-*/status.json` — ralph session state
|
|
73
|
+
</context>
|
|
74
|
+
|
|
75
|
+
<invariants>
|
|
76
|
+
1. **Ralph never executes steps** — only creates sessions and evaluates decisions
|
|
77
|
+
2. **Handoff via invoke_skill("maestro-ralph-execute")** — at session creation and after decision evaluation
|
|
78
|
+
3. **Decision delegates read-only** — `maestro delegate --role analyze --mode analysis`
|
|
79
|
+
4. **External ≠ CLI call** — external spawns full Claude Code session executing the skill command
|
|
80
|
+
5. **Delegate sessions non-interactive** — all external skills MUST append `-y` to args inside the prompt
|
|
81
|
+
6. **Decomposition is outcome-oriented** — sub-goals are deliverables/done-criteria, NEVER lifecycle-stage duplicates (analyze/plan/...). `/goal` binding is user-driven; ralph only emits the prompt
|
|
82
|
+
7. **task_decomposition drives DYNAMIC step growth, not a frozen plan** — sub-goals are the convergence spec; `status.json.steps[]` remains the living chain. The `post-goal-audit` decision node re-checks the checklist and **dynamically inserts scoped execution steps** for every unmet sub-goal (same insert+reindex+retry mechanism as fix-loops). Decomposition never replaces ralph's adaptive branching — it feeds it. New fields are also additive/optional (absent → decomposition off, old behavior); never remove/rename existing fields
|
|
83
|
+
</invariants>
|
|
84
|
+
|
|
85
|
+
<state_machine>
|
|
86
|
+
|
|
87
|
+
<states>
|
|
88
|
+
S_PARSE_ROUTE — 解析参数、路由入口 PERSIST: —
|
|
89
|
+
S_STATUS — 显示 session 进度 PERSIST: —
|
|
90
|
+
S_CONTINUE — 恢复执行 PERSIST: —
|
|
91
|
+
S_RESOLVE_PHASE — 解析目标 phase + 标记 phase_is_new PERSIST: session.phase, session.phase_is_new
|
|
92
|
+
S_INFER — 基于已解析 phase 推断 lifecycle_position PERSIST: session.lifecycle_position
|
|
93
|
+
S_QUALITY_MODE — 决定质量管线模式 PERSIST: session.quality_mode
|
|
94
|
+
S_DECOMPOSE — 边界澄清、写执行准则+子目标清单 PERSIST: session.boundary_contract, .execution_criteria, .task_decomposition
|
|
95
|
+
S_BUILD_CHAIN — 构建步骤链 PERSIST: session.steps[]
|
|
96
|
+
S_CREATE_SESSION — 写 status.json PERSIST: session (全量)
|
|
97
|
+
S_CONFIRM — 用户确认 PERSIST: —
|
|
98
|
+
S_DISPATCH — 移交 maestro-ralph-execute PERSIST: —
|
|
99
|
+
S_DECISION_EVAL — 委托评估质量门 PERSIST: —
|
|
100
|
+
S_APPLY_VERDICT — 应用裁决 + 插入命令 PERSIST: session.steps[], session.passed_gates[]
|
|
101
|
+
S_FALLBACK — 请求用户输入 PERSIST: —
|
|
102
|
+
</states>
|
|
103
|
+
|
|
104
|
+
<transitions>
|
|
105
|
+
|
|
106
|
+
S_PARSE_ROUTE:
|
|
107
|
+
→ S_STATUS WHEN: intent == "status"
|
|
108
|
+
→ S_CONTINUE WHEN: intent == "continue"
|
|
109
|
+
→ S_DECISION_EVAL WHEN: running session with decision step in "running" status
|
|
110
|
+
→ S_RESOLVE_PHASE WHEN: intent is non-empty ← phase 必须先于 position
|
|
111
|
+
→ S_FALLBACK WHEN: no intent AND no running session
|
|
112
|
+
|
|
113
|
+
S_STATUS:
|
|
114
|
+
→ END DO: A_SHOW_STATUS
|
|
115
|
+
|
|
116
|
+
S_CONTINUE:
|
|
117
|
+
→ S_DISPATCH WHEN: running session found
|
|
118
|
+
→ S_FALLBACK WHEN: no running session DO: display "无运行中的 ralph 会话"
|
|
119
|
+
|
|
120
|
+
S_RESOLVE_PHASE:
|
|
121
|
+
→ S_INFER WHEN: phase resolved or null DO: A_RESOLVE_PHASE
|
|
122
|
+
→ S_FALLBACK WHEN: ambiguous
|
|
123
|
+
GUARD: auto_confirm does NOT skip phase ambiguity
|
|
124
|
+
|
|
125
|
+
S_INFER:
|
|
126
|
+
→ S_QUALITY_MODE WHEN: position resolved DO: A_INFER_POSITION
|
|
127
|
+
→ S_FALLBACK WHEN: cannot infer
|
|
128
|
+
|
|
129
|
+
S_QUALITY_MODE:
|
|
130
|
+
→ S_DECOMPOSE DO: A_DETERMINE_QUALITY_MODE
|
|
131
|
+
|
|
132
|
+
S_DECOMPOSE:
|
|
133
|
+
→ S_BUILD_CHAIN DO: A_DECOMPOSE_TASKS
|
|
134
|
+
GUARD: broad intent (重构/全面/重写/迁移/overhaul/migrate/rewrite) → MUST clarify boundary even if auto_confirm
|
|
135
|
+
GUARD: narrow intent (single file/function/bug) → auto-derive, skip questions
|
|
136
|
+
GUARD: position ∈ {brainstorm, init} → skip decomposition (no concrete target yet)
|
|
137
|
+
|
|
138
|
+
S_BUILD_CHAIN:
|
|
139
|
+
→ S_CREATE_SESSION DO: A_BUILD_STEPS
|
|
140
|
+
|
|
141
|
+
S_CREATE_SESSION:
|
|
142
|
+
→ S_CONFIRM WHEN: not auto_confirm DO: A_CREATE_SESSION
|
|
143
|
+
→ S_DISPATCH WHEN: auto_confirm DO: A_CREATE_SESSION
|
|
144
|
+
|
|
145
|
+
S_CONFIRM:
|
|
146
|
+
→ S_DISPATCH WHEN: user selects "Proceed"
|
|
147
|
+
→ S_BUILD_CHAIN WHEN: user selects "Edit"
|
|
148
|
+
→ END WHEN: user selects "Cancel"
|
|
149
|
+
|
|
150
|
+
S_DISPATCH:
|
|
151
|
+
→ END DO: invoke_skill({ skill: "maestro-ralph-execute" })
|
|
152
|
+
|
|
153
|
+
S_DECISION_EVAL:
|
|
154
|
+
→ S_APPLY_VERDICT WHEN: quality-gate (post-verify, post-business-test, post-review, post-test)
|
|
155
|
+
DO: A_DELEGATE_EVALUATE
|
|
156
|
+
→ S_APPLY_VERDICT WHEN: goal-gate (post-goal-audit)
|
|
157
|
+
DO: A_GOAL_AUDIT_EVALUATE
|
|
158
|
+
→ S_APPLY_VERDICT WHEN: structural (post-milestone, post-debug-escalate)
|
|
159
|
+
DO: A_STRUCTURAL_EVALUATE
|
|
160
|
+
|
|
161
|
+
S_APPLY_VERDICT:
|
|
162
|
+
→ S_DISPATCH WHEN: verdict == "proceed" DO: A_APPLY_PROCEED
|
|
163
|
+
→ S_DISPATCH WHEN: post-goal-audit + unmet sub-goals DO: A_APPLY_GOAL_FIX
|
|
164
|
+
→ S_DISPATCH WHEN: post-goal-audit + all sub-goals met DO: A_APPLY_GOAL_DONE
|
|
165
|
+
→ S_DISPATCH WHEN: verdict == "fix" DO: A_APPLY_FIX
|
|
166
|
+
→ S_DISPATCH WHEN: verdict == "escalate" DO: A_APPLY_ESCALATE
|
|
167
|
+
→ S_DISPATCH WHEN: post-milestone + next milestone DO: A_ADVANCE_MILESTONE
|
|
168
|
+
→ END WHEN: post-milestone + no next milestone DO: mark completed
|
|
169
|
+
→ END WHEN: post-debug-escalate (always STOP) DO: A_PAUSE_ESCALATE
|
|
170
|
+
GUARD: retry_count >= max_retries → force escalate
|
|
171
|
+
GUARD: confidence_score < 60 AND proceed → override to fix
|
|
172
|
+
GUARD: confidence_score > 95 AND fix AND retry > 0 → suggest proceed
|
|
173
|
+
GUARD: auto_confirm → skip user prompt, apply adjusted verdict
|
|
174
|
+
GUARD: not auto_confirm → ask_user with override options
|
|
175
|
+
|
|
176
|
+
S_FALLBACK:
|
|
177
|
+
→ S_PARSE_ROUTE WHEN: user provides input DO: ask_user
|
|
178
|
+
→ END WHEN: user cancels
|
|
179
|
+
|
|
180
|
+
</transitions>
|
|
181
|
+
|
|
182
|
+
<actions>
|
|
183
|
+
|
|
184
|
+
### A_SHOW_STATUS
|
|
185
|
+
|
|
186
|
+
1. Find latest ralph session (by created_at)
|
|
187
|
+
2. Display: Session, Status, Position, Progress, Current step
|
|
188
|
+
3. List steps: [✓] completed, [▸] current, [ ] pending, [◆] decision
|
|
189
|
+
4. If `task_decomposition` present (graceful skip if absent — backward compat):
|
|
190
|
+
```
|
|
191
|
+
Sub-goals ({done}/{total}) source: {session_dir}/status.json#/task_decomposition
|
|
192
|
+
[x] G1 done_when={done_when} evidence={evidence}
|
|
193
|
+
[ ] G2 done_when={done_when} evidence={evidence} ◀ unmet
|
|
194
|
+
...
|
|
195
|
+
Checklist view: {session_dir}/goal-checklist.md (regenerated from status.json)
|
|
196
|
+
```
|
|
197
|
+
Reads state directly from `status.json.task_decomposition[*].status` — checklist is just a view, status.json wins on conflict.
|
|
198
|
+
|
|
199
|
+
### A_RESOLVE_PHASE
|
|
200
|
+
|
|
201
|
+
**前置于 A_INFER_POSITION**——position 推断需要先知道 target phase 是否在 state.json 中已存在。
|
|
202
|
+
|
|
203
|
+
**Priority (产出 `phase` + `phase_is_new` 二元组):**
|
|
204
|
+
|
|
205
|
+
| Step | 行为 | phase_is_new |
|
|
206
|
+
|------|------|--------------|
|
|
207
|
+
| 1 | intent 匹配 `phase\s*(\d+)` 正则 → 取 state.json 中对应 phase | false |
|
|
208
|
+
| 2 | intent 派生短语(如 "docs-site-redesign", "auth-refactor")→ 在 state.json.milestones[*].phases / artifacts[*].path 中查找 | false (匹配) / true (无匹配) |
|
|
209
|
+
| 3 | 未派生 → 取最新 in-progress artifact 的 phase | false |
|
|
210
|
+
| 4 | 仍无 → state.json 首个 incomplete phase | false |
|
|
211
|
+
| 5 | position 将是 brainstorm/init/roadmap → phase = null | n/a |
|
|
212
|
+
| 6 | 仍模糊 → `ask_user`(新 phase / 已存在 phase 二选一) | 由用户回答确定 |
|
|
213
|
+
|
|
214
|
+
**写入 session**: `phase`(字符串或 null)+ `phase_is_new`(bool)。`phase_is_new=true` 表示当前 milestone 下需要为这个 phase 创建全套生命周期(A_INFER_POSITION 据此强制起始位置)。
|
|
215
|
+
|
|
216
|
+
**新派生 phase 时 milestone 处理**:
|
|
217
|
+
- 若 state.json 当前 milestone 仍 active → 沿用当前 milestone,仅新增 phase
|
|
218
|
+
- 若 intent 同时派生了新 milestone 名(如 "M1-visual-replication")→ 写入 session 但**仅作标签**;state.json.milestones 由后续 `maestro-roadmap` / `maestro-milestone-release` 真实创建。session 层面禁止虚构 milestone 直接改 state.json
|
|
219
|
+
|
|
220
|
+
### A_INFER_POSITION
|
|
221
|
+
|
|
222
|
+
**Intent-based override:** brainstorm/头脑风暴/探索/ideate/设计思路 → position = `brainstorm`
|
|
223
|
+
|
|
224
|
+
**Bootstrap detection:**
|
|
225
|
+
|
|
226
|
+
| Condition | Position |
|
|
227
|
+
|-----------|----------|
|
|
228
|
+
| No `.workflow/` + no source files | `brainstorm` |
|
|
229
|
+
| No `.workflow/` + has source files | `init` |
|
|
230
|
+
| Has `.workflow/` but no state.json | `init` |
|
|
231
|
+
| Has state.json | → phase-aware artifact inference |
|
|
232
|
+
|
|
233
|
+
**Phase-aware artifact inference** (使用 A_RESOLVE_PHASE 已写入的 `session.phase` + `session.phase_is_new`):
|
|
234
|
+
|
|
235
|
+
| Condition | Position |
|
|
236
|
+
|-----------|----------|
|
|
237
|
+
| `phase_is_new == true` (intent 派生的新 phase, state.json 中无) | **`analyze`** (强制从头起) |
|
|
238
|
+
| no milestones or no roadmap.md | `roadmap` |
|
|
239
|
+
| `phase == null` (brainstorm/init/roadmap 已由 override 决定) | n/a |
|
|
240
|
+
| phase 已存在 + 无任何 artifact | `analyze` |
|
|
241
|
+
| phase 已存在 + 最新 artifact = analyze | `plan` |
|
|
242
|
+
| phase 已存在 + 最新 artifact = plan | `execute` |
|
|
243
|
+
| phase 已存在 + 最新 artifact = execute | `verify` |
|
|
244
|
+
| phase 已存在 + 最新 artifact = verify | → refine from result files |
|
|
245
|
+
|
|
246
|
+
**关键不变量**:artifact 过滤必须用 `session.phase`(A_RESOLVE_PHASE 已写入),而不是 state.json.current_phase。当 `phase_is_new` 时跳过过滤直接走 `analyze`,避免错用其他 phase 的 artifact 推断。
|
|
247
|
+
|
|
248
|
+
**Refine from verify results:**
|
|
249
|
+
|
|
250
|
+
| Condition | Position |
|
|
251
|
+
|-----------|----------|
|
|
252
|
+
| verification.json: passed==false or gaps[] | `verify-failed` |
|
|
253
|
+
| passed==true, no review.json | `business-test` |
|
|
254
|
+
| review.json: verdict=="BLOCK" | `review-failed` |
|
|
255
|
+
| review.json: verdict!="BLOCK" | `test` |
|
|
256
|
+
| uat.md: all passed | `milestone-audit` |
|
|
257
|
+
| uat.md: has failures | `test-failed` |
|
|
258
|
+
|
|
259
|
+
### A_DETERMINE_QUALITY_MODE
|
|
260
|
+
|
|
261
|
+
决定下游质量管线长度。读 `session.quality_mode_override`(CLI 标志 `--quality`),无则按规则推断:
|
|
262
|
+
|
|
263
|
+
| Condition | Mode | Pipeline (verify 之后) |
|
|
264
|
+
|-----------|------|-------------------------|
|
|
265
|
+
| Has `specs/REQ-*.md` + 当前 phase 业务范围明确 | `full` | business-test → review → test-gen → test |
|
|
266
|
+
| Default | `standard` | review → test-gen (当 coverage<80%) → test |
|
|
267
|
+
| `--quality quick` | `quick` | review --tier quick |
|
|
268
|
+
|
|
269
|
+
写入 `session.quality_mode`。A_BUILD_STEPS 据此过滤 stage(见下)。
|
|
270
|
+
|
|
271
|
+
### A_DECOMPOSE_TASKS
|
|
272
|
+
|
|
273
|
+
Build the boundary contract + outcome sub-goal checklist that `/goal` will track. Runs once at session creation, before chain build. All output is **additive** to status.json.
|
|
274
|
+
|
|
275
|
+
**1. Classify intent breadth:**
|
|
276
|
+
|
|
277
|
+
| Pattern | Breadth | Clarify? |
|
|
278
|
+
|---------|---------|----------|
|
|
279
|
+
| 重构/全面/重写/重做/整体/迁移 · overhaul/migrate/rewrite/revamp | broad | MUST (ignores auto_confirm) |
|
|
280
|
+
| named single file/function/bug, "fix X", "add Y to Z" | narrow | skip — auto-derive |
|
|
281
|
+
| otherwise | medium | clarify unless auto_confirm |
|
|
282
|
+
|
|
283
|
+
**2. Clarify boundary** (broad/medium) — `ask_user`, ≤3 rounds, options pre-filled from intent + a quick Glob/Grep scan of the target module:
|
|
284
|
+
|
|
285
|
+
| Round | Question | Drives |
|
|
286
|
+
|-------|----------|--------|
|
|
287
|
+
| Scope | 哪些目录/文件/层在范围内?明确排除什么? | boundary_contract.in_scope / out_of_scope |
|
|
288
|
+
| Constraints | 必须向后兼容?公共 API 冻结?行为/性能预算?测试门槛? | boundary_contract.constraints + execution_criteria |
|
|
289
|
+
| Done | 什么可观测结果算"完成"?(如:测试全绿 + 行为零变更 + X 指标) | boundary_contract.definition_of_done |
|
|
290
|
+
|
|
291
|
+
narrow → derive defaults from intent + codebase, skip questions.
|
|
292
|
+
|
|
293
|
+
**3. Derive `execution_criteria`** (执行准则 — 3-6 short imperative rules every step obeys): backward-compat stance, scope-freeze ("只改请求范围"), test/coverage bar, fix-don't-hide, incremental commit. Each verify/review/test gate later checks against these.
|
|
294
|
+
|
|
295
|
+
**4. Derive `task_decomposition`** (子目标清单 — outcome-oriented, NOT lifecycle stages). Each entry:
|
|
296
|
+
```json
|
|
297
|
+
{ "id": "G1", "goal": "<deliverable>", "boundary": "<in/out note>",
|
|
298
|
+
"done_when": "<objectively checkable condition>",
|
|
299
|
+
"evidence": "verification.json|review.json|uat.md|<test path>",
|
|
300
|
+
"lifecycle": ["analyze","execute","verify"], "status": "pending" }
|
|
301
|
+
```
|
|
302
|
+
**Cleverness rule**: `done_when` MUST be objectively verifiable and SHOULD reference an artifact ralph already produces, so the `/goal` Stop hook can re-verify after context compaction. Map each sub-goal to the lifecycle phase(s) that will produce its evidence — this is how the checklist "adapts to ralph": the existing pipeline becomes the machinery that satisfies the goals.
|
|
303
|
+
|
|
304
|
+
**5. Persist** (additive) into session for A_CREATE_SESSION to write: `boundary_contract`, `execution_criteria`, `task_decomposition`. Absent feature (skipped) → write none; downstream treats as "decomposition off".
|
|
305
|
+
|
|
306
|
+
**6. Stage** the Goal Checklist + Goal Prompt (Appendix) for A_CREATE_SESSION to emit.
|
|
307
|
+
|
|
308
|
+
### A_BUILD_STEPS
|
|
309
|
+
|
|
310
|
+
Generate steps from `session.lifecycle_position` to `milestone-complete`(终点硬约束)。
|
|
311
|
+
|
|
312
|
+
| Stage | Skill | Type | Decision after | quality_mode |
|
|
313
|
+
|-------|-------|------|----------------|--------------|
|
|
314
|
+
| brainstorm | `maestro-brainstorm "{intent}"` | external | — | all |
|
|
315
|
+
| init | `maestro-init` | internal | — | all |
|
|
316
|
+
| roadmap | `maestro-roadmap "{intent}"` | internal | — | all |
|
|
317
|
+
| analyze | `maestro-analyze {phase}` | external | — | all |
|
|
318
|
+
| plan | `maestro-plan {phase}` | internal | — | all |
|
|
319
|
+
| execute | `maestro-execute {phase}` | external | — | all |
|
|
320
|
+
| verify | `maestro-verify {phase}` | internal | `post-verify` | all |
|
|
321
|
+
| business-test | `quality-auto-test {phase}` | internal | `post-business-test` | **full only** |
|
|
322
|
+
| review | `quality-review {phase}` | internal | `post-review` | all (quick: append `--tier quick`) |
|
|
323
|
+
| test-gen | `quality-auto-test {phase}` | internal | — | full / standard if coverage<80% |
|
|
324
|
+
| test | `quality-test {phase}` | internal | `post-test` | full, standard |
|
|
325
|
+
| milestone-audit | `maestro-milestone-audit` | internal | — | all |
|
|
326
|
+
| goal-audit | *(decision-only, no skill)* | decision | `post-goal-audit` | all (only if decomposed) |
|
|
327
|
+
| milestone-complete | `maestro-milestone-complete` | internal | `post-milestone` | all (chain 终点) |
|
|
328
|
+
|
|
329
|
+
Type rationale: `internal` = invoke_skill(), lightweight/interactive; `external` = delegate --to claude, context-isolated heavy computation
|
|
330
|
+
|
|
331
|
+
**Build rules (按顺序应用):**
|
|
332
|
+
|
|
333
|
+
1. **起点**:从 `session.lifecycle_position` 开始;不读 `state.json.current_phase`
|
|
334
|
+
2. **跳过已完成**:跳过当前 milestone+phase 下已有 completed artifact 的 stage(artifact 过滤同样按 `session.phase`,不按 state.json 当前 phase)
|
|
335
|
+
3. **quality_mode 过滤**:按 `session.quality_mode` 排除上表 `quality_mode` 列不包含该模式的 stage(如 standard 不跑 business-test、quick 不跑 test-gen/test)
|
|
336
|
+
4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ type: "decision", decision: "<gate>", retry_count: 0, max_retries: 2 }`
|
|
337
|
+
5. **goal-audit 插入**:当且仅当 `task_decomposition` 存在 → 在最后一个 evidence-producing stage(verify/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
|
|
338
|
+
6. **终点硬约束**:chain 必须以 `milestone-complete` 步骤结尾(除非 `lifecycle_position` 已是 `milestone-complete` 之后的状态)。生成器在收尾时不论 quality_mode 都必须 append 该 step
|
|
339
|
+
7. **初始 goal_ref 传播**:若 `task_decomposition` 存在,遍历每个新建 step:
|
|
340
|
+
- 计算 `step.stage`(如 execute/verify/review)
|
|
341
|
+
- 对每个 `g ∈ task_decomposition`:若 `step.stage ∈ g.lifecycle` → `step.goal_ref = g.id`
|
|
342
|
+
- 多 G 匹配 → 取 id 字典序最小者;保证 verify/review 等共用 lifecycle 的 step 也有可追溯标签
|
|
343
|
+
- decision 节点不打 goal_ref(goal-audit 自身除外,它的 verdict 直接修改 task_decomposition)
|
|
344
|
+
8. **占位符**:args 用 `{phase}` `{intent}` 等,由 ralph-execute 在执行时解析
|
|
345
|
+
9. **动态插入**:`post-goal-audit` 触发 A_APPLY_GOAL_FIX 时插入的步骤同样按规则 7 打 `goal_ref`(追溯到触发它的子目标 G{n})
|
|
346
|
+
|
|
347
|
+
### A_CREATE_SESSION
|
|
348
|
+
|
|
349
|
+
1. Write `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json` (Appendix: Session Schema) — decomposition fields included only if produced (additive)
|
|
350
|
+
2. If `task_decomposition` present:
|
|
351
|
+
- Set `session.goal_checklist_path = "{session_dir}/goal-checklist.md"` in status.json
|
|
352
|
+
- **Render** checklist from status.json (Appendix: Goal Checklist Template + Sync Rule). This is a one-way projection — status.json drives content; the file is never hand-edited
|
|
353
|
+
- Stable filename within session (so `/goal` condition string survives context compaction)
|
|
354
|
+
3. Display chain overview with step list
|
|
355
|
+
4. If `task_decomposition` present: display the **Goal Prompt block** (Appendix: Goal Prompt Template) — the copy-paste `/goal …` line binds status.json + checklist as a Stop-hook target
|
|
356
|
+
|
|
357
|
+
### A_DELEGATE_EVALUATE
|
|
358
|
+
|
|
359
|
+
1. Resolve artifact dir: `.workflow/scratch/{artifact.path}/` with fallback glob
|
|
360
|
+
2. Parse decision metadata: `{ decision, retry_count, max_retries }`
|
|
361
|
+
3. Map result files:
|
|
362
|
+
| Decision | Files |
|
|
363
|
+
|----------|-------|
|
|
364
|
+
| post-verify | verification.json |
|
|
365
|
+
| post-business-test | .tests/auto-test/report.json |
|
|
366
|
+
| post-review | review.json |
|
|
367
|
+
| post-test | uat.md, .tests/test-results.json |
|
|
368
|
+
4. Check artifact for confidence section → include as signal
|
|
369
|
+
5. Execute delegate (run_in_background, STOP, wait for callback):
|
|
370
|
+
```
|
|
371
|
+
maestro delegate "PURPOSE: 评估 {decision} 质量门结果
|
|
372
|
+
TASK: 读取结果 | 分析状态 | 评估严重性 | 给出建议
|
|
373
|
+
EXPECTED: ---VERDICT--- STATUS/REASON/GAP_SUMMARY/CONFIDENCE(high|medium|low)/CONFIDENCE_SCORE(0-100)/WEAKEST_DIMENSION ---END---
|
|
374
|
+
CONSTRAINTS: 只评估 | 置信度<60% 倾向 fix | retry {n}/{max} 达上限必须 escalate"
|
|
375
|
+
--role analyze --mode analysis
|
|
376
|
+
```
|
|
377
|
+
6. On callback: parse verdict; if parse fails → fallback STATUS="fix"
|
|
378
|
+
7. Confidence adjustment: <60 + proceed → fix; >95 + fix + retry>0 → suggest proceed
|
|
379
|
+
8. **Decision log**: Append to `{session_dir}/decisions.ndjson`:
|
|
380
|
+
```json
|
|
381
|
+
{ "id": "DEC-{timestamp}", "timestamp": "{ISO}", "source": "ralph",
|
|
382
|
+
"node_id": "{step.decision}", "type": "quality-gate",
|
|
383
|
+
"verdict": "{adjusted_verdict}", "confidence_score": {N},
|
|
384
|
+
"close_call": {N>=50 && N<=70}, "summary": "{REASON}" }
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### A_STRUCTURAL_EVALUATE
|
|
388
|
+
|
|
389
|
+
**post-milestone:** Read state.json → next milestone? → insert lifecycle steps / complete
|
|
390
|
+
**post-debug-escalate:** Always STOP → set paused, display "请人工介入"
|
|
391
|
+
|
|
392
|
+
### A_GOAL_AUDIT_EVALUATE
|
|
393
|
+
|
|
394
|
+
Re-checks sub-goals against `status.json` (source of truth) and decides whether `steps[]` must dynamically grow. Only runs when `task_decomposition` present.
|
|
395
|
+
|
|
396
|
+
1. Read `session.task_decomposition` from status.json (NOT from checklist — checklist is just a view)
|
|
397
|
+
2. For each sub-goal `status != "done"`: resolve its `evidence` artifact (verification.json / review.json / uat.md / test path) under the current phase scratch dir
|
|
398
|
+
3. Delegate read-only audit (run_in_background, STOP, wait):
|
|
399
|
+
```
|
|
400
|
+
maestro delegate "PURPOSE: 审计未完成子目标,判定哪些已达成、哪些仍需补步骤
|
|
401
|
+
TASK:
|
|
402
|
+
1. 读取 status.json.task_decomposition 中每个 status!=done 的子目标
|
|
403
|
+
2. 打开其 evidence 产物,对照 done_when 严格判定
|
|
404
|
+
3. 输出 met / unmet 分类,unmet 给出差距 + 应回补的 target_phase
|
|
405
|
+
CONTEXT:
|
|
406
|
+
status.json = {session_dir}/status.json
|
|
407
|
+
checklist = {goal_checklist_path} (人类可读视图,仅供参考)
|
|
408
|
+
evidence = {evidence artifacts}
|
|
409
|
+
执行准则 = {execution_criteria}
|
|
410
|
+
边界契约 = {boundary_contract}
|
|
411
|
+
EXPECTED (单行 verdict 块,严格遵循):
|
|
412
|
+
---VERDICT---
|
|
413
|
+
STATUS=all_met|has_unmet
|
|
414
|
+
UNMET=[{id:G2,gap:'...',target_phase:execute}, ...] # 空数组当 STATUS=all_met
|
|
415
|
+
CONFIDENCE_SCORE=0-100
|
|
416
|
+
---END---
|
|
417
|
+
CONSTRAINTS:
|
|
418
|
+
- 只评估,不修改任何文件
|
|
419
|
+
- 严格按 done_when 判定;evidence 缺失 → 视为 unmet
|
|
420
|
+
- 不得建议超出 boundary_contract 的修改
|
|
421
|
+
"
|
|
422
|
+
--role analyze --mode analysis
|
|
423
|
+
```
|
|
424
|
+
4. On callback: parse UNMET list. **status.json is the write target** — for each met sub-goal: `task_decomposition[i].status="done"` + `task_decomposition[i].completed_at=now`. Then regenerate checklist view from status.json (see Sync Rule in Appendix).
|
|
425
|
+
5. **Decision log**: append to `{session_dir}/decisions.ndjson` with `"type": "goal-gate"`, `unmet_count`, `unmet_ids`
|
|
426
|
+
6. Verdict: `all_met` → A_APPLY_GOAL_DONE; `has_unmet` → A_APPLY_GOAL_FIX
|
|
427
|
+
GUARD: retry_count >= max_retries AND still unmet → A_APPLY_ESCALATE (insert quality-debug, hand to human)
|
|
428
|
+
|
|
429
|
+
### A_APPLY_PROCEED
|
|
430
|
+
|
|
431
|
+
1. Mark decision completed, write status.json
|
|
432
|
+
2. Display: ◆ Decision: {type} → proceed ({reason})
|
|
433
|
+
|
|
434
|
+
### A_APPLY_FIX
|
|
435
|
+
|
|
436
|
+
1. Insert fix-loop commands after current step (see Appendix: Fix-Loop Templates)
|
|
437
|
+
2. Reindex steps, increment retry_count, write status.json
|
|
438
|
+
3. Display: ◆ Decision: {type} → fix, +{N} commands inserted
|
|
439
|
+
|
|
440
|
+
### A_APPLY_ESCALATE
|
|
441
|
+
|
|
442
|
+
1. Insert `[quality-debug "{gap_summary}", decision:post-debug-escalate]`
|
|
443
|
+
2. Increment retry_count, reindex, write status.json
|
|
444
|
+
|
|
445
|
+
### A_APPLY_GOAL_FIX
|
|
446
|
+
|
|
447
|
+
**This is the dynamic step-growth core.** For every unmet sub-goal, inject scoped execution steps so `steps[]` grows toward convergence:
|
|
448
|
+
|
|
449
|
+
1. For each `unmet` sub-goal `G{n}` (grouped by `target_phase` to avoid duplicate runs):
|
|
450
|
+
insert before the `goal-audit` node a scoped mini-loop (see Appendix: Fix-Loop Templates → post-goal-audit), each inserted step tagged `goal_ref: "G{n}"`
|
|
451
|
+
2. Re-append a fresh `decision:post-goal-audit {retry+1}` after the inserted steps (re-loops until all met or max retries)
|
|
452
|
+
3. Reindex steps, increment retry_count, write status.json (steps[] now larger — the JSON "grew")
|
|
453
|
+
4. Display: ◆ Goal audit: {k} sub-goals unmet → +{N} steps inserted (G{ids}), retry {r}/{max}
|
|
454
|
+
|
|
455
|
+
### A_APPLY_GOAL_DONE
|
|
456
|
+
|
|
457
|
+
1. Write status.json (source of truth): set every `task_decomposition[*].status="done"`, `completed_at=now`, plus top-level `task_decomposition_all_done=true`
|
|
458
|
+
2. Regenerate `goal-checklist.md` from status.json (Sync Rule in Appendix) — all boxes flip to `[x]`, sentinel `ALL_GOALS_DONE` appended at file end
|
|
459
|
+
3. Mark goal-audit decision completed; proceed to `milestone-complete`
|
|
460
|
+
4. Display: ◆ Goal audit: 全部子目标达成 ✓ — status.json + checklist 已同步 ALL_GOALS_DONE
|
|
461
|
+
|
|
462
|
+
### A_ADVANCE_MILESTONE
|
|
463
|
+
|
|
464
|
+
1. Update session: milestone, phase, reset passed_gates
|
|
465
|
+
2. Insert full lifecycle steps for next milestone
|
|
466
|
+
3. Reindex, write status.json
|
|
467
|
+
|
|
468
|
+
### A_PAUSE_ESCALATE
|
|
469
|
+
|
|
470
|
+
1. Set session status = "paused", write status.json
|
|
471
|
+
2. Display: ◆ 已达最大重试次数,debug 已执行。请人工介入。
|
|
472
|
+
3. Display: /maestro-ralph continue 恢复
|
|
473
|
+
|
|
474
|
+
</actions>
|
|
475
|
+
|
|
476
|
+
</state_machine>
|
|
477
|
+
|
|
478
|
+
<appendix>
|
|
479
|
+
|
|
480
|
+
### Session Schema
|
|
481
|
+
|
|
482
|
+
```json
|
|
483
|
+
{
|
|
484
|
+
"session_id": "ralph-{YYYYMMDD-HHmmss}",
|
|
485
|
+
"source": "ralph", "status": "running",
|
|
486
|
+
"intent": "", "lifecycle_position": "",
|
|
487
|
+
"phase": null, "phase_is_new": false, "milestone": "",
|
|
488
|
+
"auto_mode": false,
|
|
489
|
+
"quality_mode": "standard", // "full" | "standard" | "quick" — 由 A_DETERMINE_QUALITY_MODE 写入
|
|
490
|
+
"cli_tool": "claude", "passed_gates": [],
|
|
491
|
+
"context": { "issue_id": null, "scratch_dir": null, "plan_dir": null,
|
|
492
|
+
"analysis_dir": null, "brainstorm_dir": null },
|
|
493
|
+
"steps": [{ "index": 0, "type": "internal|external|decision",
|
|
494
|
+
"skill": "", "args": "", "status": "pending",
|
|
495
|
+
"goal_ref": null }],
|
|
496
|
+
"waves": [], "current_step": 0,
|
|
497
|
+
|
|
498
|
+
"_comment": "↓ OPTIONAL additive decomposition block (v0.4.8+). Absent → no decomposition; readers MUST tolerate missing keys. Never remove/rename above fields.",
|
|
499
|
+
"boundary_contract": {
|
|
500
|
+
"in_scope": [], "out_of_scope": [], "constraints": [], "definition_of_done": ""
|
|
501
|
+
},
|
|
502
|
+
"execution_criteria": [],
|
|
503
|
+
"task_decomposition": [
|
|
504
|
+
{ "id": "G1", "goal": "", "boundary": "", "done_when": "",
|
|
505
|
+
"evidence": "", "lifecycle": [], "status": "pending|done",
|
|
506
|
+
"completed_at": null }
|
|
507
|
+
],
|
|
508
|
+
"task_decomposition_all_done": false,
|
|
509
|
+
"goal_checklist_path": "",
|
|
510
|
+
"goal_checklist_synced_at": null
|
|
511
|
+
}
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
**扩展约定**:
|
|
515
|
+
- Schema 加字段 = 可选(缺省 = 旧行为);不删/不改既有字段名。
|
|
516
|
+
- `steps[]` 是活数组:`post-goal-audit` 与 `post-verify/review/test` 等决策节点按需追加+重排,子目标收敛即停。`goal_ref`(可选)回溯每条动态插入步骤所属子目标。
|
|
517
|
+
|
|
518
|
+
### Fix-Loop Templates
|
|
519
|
+
|
|
520
|
+
**post-verify:**
|
|
521
|
+
```
|
|
522
|
+
quality-debug "{gap_summary}"
|
|
523
|
+
maestro-plan --gaps {phase}
|
|
524
|
+
maestro-execute {phase} [external]
|
|
525
|
+
maestro-verify {phase}
|
|
526
|
+
decision:post-verify {retry+1}
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
**post-business-test:**
|
|
530
|
+
```
|
|
531
|
+
quality-debug --from-business-test "{gap_summary}"
|
|
532
|
+
maestro-plan --gaps {phase}
|
|
533
|
+
maestro-execute {phase} [external]
|
|
534
|
+
maestro-verify {phase}
|
|
535
|
+
decision:post-verify {retry: 0}
|
|
536
|
+
quality-auto-test {phase}
|
|
537
|
+
decision:post-business-test {retry+1}
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**post-review:**
|
|
541
|
+
```
|
|
542
|
+
quality-debug "{gap_summary}"
|
|
543
|
+
maestro-plan --gaps {phase}
|
|
544
|
+
maestro-execute {phase} [external]
|
|
545
|
+
quality-review {phase}
|
|
546
|
+
decision:post-review {retry+1}
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
**post-test:**
|
|
550
|
+
```
|
|
551
|
+
quality-debug --from-uat "{gap_summary}"
|
|
552
|
+
maestro-plan --gaps {phase}
|
|
553
|
+
maestro-execute {phase} [external]
|
|
554
|
+
maestro-verify {phase}
|
|
555
|
+
decision:post-verify {retry: 0}
|
|
556
|
+
quality-auto-test {phase}
|
|
557
|
+
decision:post-business-test {retry: 0}
|
|
558
|
+
quality-review {phase}
|
|
559
|
+
decision:post-review {retry: 0}
|
|
560
|
+
quality-auto-test {phase}
|
|
561
|
+
quality-test {phase}
|
|
562
|
+
decision:post-test {retry+1}
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
**post-goal-audit:** (per unmet sub-goal group — this is what dynamically grows `steps[]`)
|
|
566
|
+
```
|
|
567
|
+
# for each unmet sub-goal G{n}, scoped to its target_phase:
|
|
568
|
+
maestro-plan --gaps {target_phase} "G{n}: {gap}" [goal_ref: G{n}]
|
|
569
|
+
maestro-execute {target_phase} [external] [goal_ref: G{n}]
|
|
570
|
+
maestro-verify {target_phase} [goal_ref: G{n}]
|
|
571
|
+
# after all unmet groups inserted, re-loop the audit:
|
|
572
|
+
decision:post-goal-audit {retry+1}
|
|
573
|
+
```
|
|
574
|
+
Notes: only unmet sub-goals' phases are re-run (no full-pipeline replay); inserted steps carry `goal_ref` for traceability; loop exits when audit returns `all_met` (→ A_APPLY_GOAL_DONE) or retry hits max (→ escalate to human). This keeps growth bounded.
|
|
575
|
+
|
|
576
|
+
### Goal Checklist Template (status.json projection)
|
|
577
|
+
|
|
578
|
+
`{session_dir}/goal-checklist.md` 是 `status.json` 的只读投影:不要手改,永远从 JSON 重渲染。文件名在 session 内稳定,`/goal` 条件字符串跨上下文压缩仍可用。
|
|
579
|
+
|
|
580
|
+
```markdown
|
|
581
|
+
# Ralph Goal Checklist — {session_id}
|
|
582
|
+
<!-- AUTO-GENERATED from status.json. Source: ../status.json#/task_decomposition -->
|
|
583
|
+
|
|
584
|
+
> Intent : {intent}
|
|
585
|
+
> Source : `{session_dir}/status.json` (authoritative)
|
|
586
|
+
> Last sync : {ISO} Phase: {phase} Milestone: {milestone}
|
|
587
|
+
|
|
588
|
+
## Resume / 恢复入口
|
|
589
|
+
**不要直接执行 skill,调用入口:**
|
|
590
|
+
```
|
|
591
|
+
/maestro-ralph continue
|
|
592
|
+
```
|
|
593
|
+
ralph 评估下一步门控,ralph-execute 跑实际步骤。Stop hook 触发时也走这条路径。
|
|
594
|
+
|
|
595
|
+
## 执行准则 / Execution Criteria
|
|
596
|
+
<!-- status.json#/execution_criteria -->
|
|
597
|
+
- {criterion 1}
|
|
598
|
+
- {criterion 2}
|
|
599
|
+
|
|
600
|
+
## 边界契约 / Boundary Contract
|
|
601
|
+
<!-- status.json#/boundary_contract -->
|
|
602
|
+
- In scope : {in_scope}
|
|
603
|
+
- Out of scope : {out_of_scope}
|
|
604
|
+
- Constraints : {constraints}
|
|
605
|
+
- Definition of Done : {definition_of_done}
|
|
606
|
+
|
|
607
|
+
## 子目标 / Sub-goals ({done}/{total})
|
|
608
|
+
<!-- status.json#/task_decomposition -->
|
|
609
|
+
- [ ] G1 — {goal}
|
|
610
|
+
done_when : {done_when}
|
|
611
|
+
evidence : {evidence}
|
|
612
|
+
lifecycle : {lifecycle}
|
|
613
|
+
<!-- ref: status.json#/task_decomposition/0 status=pending -->
|
|
614
|
+
- [x] G2 — {goal}
|
|
615
|
+
done_when : {done_when}
|
|
616
|
+
evidence : {evidence}
|
|
617
|
+
<!-- ref: status.json#/task_decomposition/1 status=done completed_at={ISO} -->
|
|
618
|
+
- [ ] G3 — ...
|
|
619
|
+
|
|
620
|
+
<!-- A_APPLY_GOAL_DONE 在全部 status=done 时在文件末尾追加 ALL_GOALS_DONE -->
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
### Sync Rule (status.json ↔ goal-checklist.md)
|
|
624
|
+
|
|
625
|
+
单向投影;status.json 为真源;冲突时直接重渲染,不合并。
|
|
626
|
+
|
|
627
|
+
1. 只有 ralph / ralph-execute 写 `task_decomposition[*].status`;markdown 不可写入状态。
|
|
628
|
+
2. `task_decomposition` / `execution_criteria` / `boundary_contract` 任一变化 → 立即重渲染 checklist。
|
|
629
|
+
3. 全部 `status="done"` → 在文件末追加 `ALL_GOALS_DONE` 哨兵行。
|
|
630
|
+
4. 检测到 checklist 缺失或与 JSON 漂移 → 直接重渲染覆盖;视 markdown 为可丢弃产物。
|
|
631
|
+
5. ralph-execute(可选、向后兼容):完成 `lifecycle` 覆盖某子目标的 step 后,校验 evidence;满足则置 `status="done"` + 重渲染。无 `task_decomposition` 字段 → 不动作。
|
|
632
|
+
|
|
633
|
+
### Goal Prompt Template
|
|
634
|
+
|
|
635
|
+
链路概览后逐字显示(仅当 decomposition 已产出):
|
|
636
|
+
|
|
637
|
+
```
|
|
638
|
+
📋 任务分解完成。复制下面一行设定目标,会话在子目标全部达成前不停:
|
|
639
|
+
|
|
640
|
+
/goal 目标达成条件: {session_dir}/status.json 中 task_decomposition[*].status 全部为 "done"(等价: {session_dir}/goal-checklist.md 末尾含 ALL_GOALS_DONE)。未达成时: 阅读 {session_dir}/goal-checklist.md 取得"执行准则/边界契约/子目标"作为行动手册, 然后调用 /maestro-ralph continue 推进下一步; 严禁手动执行 skill 或越界修改 status.json.boundary_contract.out_of_scope。
|
|
641
|
+
|
|
642
|
+
随后运行 /maestro-ralph continue 立即开始执行。
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
`/goal` 是 harness 命令,仅用户能输入;ralph 只能输出此提示词。判据以 status.json 为权威,哨兵为等价信号,避免视图漂移误判。
|
|
646
|
+
|
|
647
|
+
### Error Codes
|
|
648
|
+
|
|
649
|
+
| Code | Severity | Description | Recovery |
|
|
650
|
+
|------|----------|-------------|----------|
|
|
651
|
+
| E001 | error | No intent and no running session | Prompt for intent |
|
|
652
|
+
| E002 | error | Cannot infer lifecycle position | Show raw state, ask |
|
|
653
|
+
| E003 | error | Artifact dir not found for decision | Show glob, ask |
|
|
654
|
+
| E004 | error | Delegate verdict parse failed | Fallback: "fix" |
|
|
655
|
+
| E005 | error | Delegate execution failed | Fallback: "fix" |
|
|
656
|
+
| W001 | warning | Decision expanded chain | Auto-handled |
|
|
657
|
+
| W002 | warning | Max retries, escalating | Auto-handled |
|
|
658
|
+
| W003 | warning | Multiple running sessions | Use latest, warn |
|
|
659
|
+
| W004 | warning | Low delegate confidence | Show warning |
|
|
660
|
+
|
|
661
|
+
### Success Criteria
|
|
662
|
+
|
|
663
|
+
- [ ] Phase 先于 position 解析(S_RESOLVE_PHASE → S_INFER → S_QUALITY_MODE);phase_is_new 标记写入 session
|
|
664
|
+
- [ ] phase_is_new=true 时 lifecycle_position 强制为 `analyze`(禁止用其他 phase 的 artifact 推断)
|
|
665
|
+
- [ ] artifact 过滤始终按 session.phase(不读 state.json.current_phase)
|
|
666
|
+
- [ ] quality_mode 显式由 A_DETERMINE_QUALITY_MODE 决定(full/standard/quick),过滤 build steps
|
|
667
|
+
- [ ] State parsed, position inferred from bootstrap + artifacts + result files
|
|
668
|
+
- [ ] Decomposition runs as initial step; broad intent boundary-clarified via ≤3 questions (ignores auto_confirm); narrow auto-derives
|
|
669
|
+
- [ ] status.json enriched additively with boundary_contract + execution_criteria + task_decomposition; absent fields = old behavior preserved
|
|
670
|
+
- [ ] status.json is single source of truth; goal-checklist.md is a regenerated projection (Sync Rule), never hand-edited
|
|
671
|
+
- [ ] goal-checklist.md carries explicit `status.json#/task_decomposition[i]` JSON-pointer refs per entry + last-sync timestamp
|
|
672
|
+
- [ ] Mutations to task_decomposition trigger checklist re-render; ALL_GOALS_DONE sentinel appended only when all entries status=done
|
|
673
|
+
- [ ] Goal Prompt names status.json as the authoritative judgement source, with ALL_GOALS_DONE sentinel as equivalent signal
|
|
674
|
+
- [ ] post-goal-audit decision node inserted before milestone-complete (only when decomposed)
|
|
675
|
+
- [ ] Unmet sub-goals DYNAMICALLY grow steps[] via scoped per-goal mini-loops (goal_ref tagged), looping until all_met or max retries → escalate
|
|
676
|
+
- [ ] Quality pipeline 按 quality_mode 生成(full=全管线 / standard=skip business-test / quick=仅 review --tier quick)
|
|
677
|
+
- [ ] Chain 末端硬约束:必须以 `milestone-complete` 结尾(goal-audit decision 紧前)
|
|
678
|
+
- [ ] 初始构建按 task_decomposition[*].lifecycle 给每个 step 打 goal_ref(verify/review 等共用 lifecycle 的 step 也有标签)
|
|
679
|
+
- [ ] Decision nodes delegate-evaluated via maestro delegate --role analyze
|
|
680
|
+
- [ ] Verdict parsed with confidence adjustment
|
|
681
|
+
- [ ] Fix-loop templates applied with retry tracking
|
|
682
|
+
- [ ] Ralph never executes steps — only creates sessions and evaluates decisions
|
|
683
|
+
- [ ] Handoff to maestro-ralph-execute via invoke_skill() at creation and after decisions
|
|
684
|
+
|
|
685
|
+
</appendix>
|