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
|
@@ -18,8 +18,25 @@ Session at `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`.
|
|
|
18
18
|
Codex specifics:
|
|
19
19
|
- **No agent spawning** — skills run directly in coordinator context, sequentially, one step at a time.
|
|
20
20
|
- **Goal created via built-in tool** — `create_goal` binds the decomposed sub-goal checklist as a
|
|
21
|
-
hard objective; `update_plan` mirrors steps; `update_goal` releases on convergence.
|
|
22
|
-
|
|
21
|
+
hard objective; `update_plan` mirrors steps; `update_goal` releases on convergence.
|
|
22
|
+
|
|
23
|
+
### 执行方式 / Execution Flow
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
$maestro-ralph "intent" ─▶ coordinator infer → decompose → build chain
|
|
27
|
+
│ writes status.json (truth)
|
|
28
|
+
│ renders goal-checklist.md (projection, Resume 区块指向 $maestro-ralph execute)
|
|
29
|
+
│ create_goal({success_criteria: sub-goals})
|
|
30
|
+
▼
|
|
31
|
+
step loop (in-context, sequential)
|
|
32
|
+
│ skill → run directly, read artifacts
|
|
33
|
+
│ decision → delegate analyze OR structural evaluate
|
|
34
|
+
│ unmet sub-goals → insert scoped mini-loops (steps[] grows)
|
|
35
|
+
└─ persist status.json + update_plan after every step
|
|
36
|
+
all_met → update_goal(complete) → milestone-complete
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`status.json` 为唯一真源;checklist 为渲染视图;`steps[]` 按需生长(`post-goal-audit`、`post-verify/review/test` 决策节点)。Resume 入口统一走 `$maestro-ralph execute`(或 `continue`)。
|
|
23
40
|
</purpose>
|
|
24
41
|
|
|
25
42
|
<context>
|
|
@@ -65,8 +82,8 @@ $ARGUMENTS -- intent text, flags, or keywords.
|
|
|
65
82
|
<states>
|
|
66
83
|
S_PARSE_ROUTE -- 解析参数、路由入口点 PERSIST: --
|
|
67
84
|
S_STATUS -- 显示 session 进度后结束 PERSIST: --
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
S_RESOLVE_PHASE -- 解析目标 phase + 标记 phase_is_new PERSIST: session.phase, session.phase_is_new
|
|
86
|
+
S_INFER -- 基于已解析 phase 推断 lifecycle_position PERSIST: session.lifecycle_position
|
|
70
87
|
S_QUALITY_MODE -- 确定质量模式 full/standard/quick PERSIST: session.quality_mode
|
|
71
88
|
S_DECOMPOSE -- 边界澄清、写执行准则+子目标、建 goal PERSIST: session.boundary_contract, .execution_criteria, .task_decomposition
|
|
72
89
|
S_BUILD_CHAIN -- 构建步骤链 PERSIST: session.steps[]
|
|
@@ -88,18 +105,18 @@ S_PARSE_ROUTE:
|
|
|
88
105
|
-> S_STATUS WHEN: intent == "status"
|
|
89
106
|
-> S_LOAD_NEXT WHEN: intent == "execute" | "continue"
|
|
90
107
|
-> S_DECISION_EVAL WHEN: running session with decision step in "running"
|
|
91
|
-
->
|
|
108
|
+
-> S_RESOLVE_PHASE WHEN: intent non-empty -- phase 必须先于 position
|
|
92
109
|
-> S_FALLBACK WHEN: no intent AND no running session
|
|
93
110
|
|
|
94
111
|
S_STATUS -> END DO: A_SHOW_STATUS
|
|
95
112
|
|
|
113
|
+
S_RESOLVE_PHASE:
|
|
114
|
+
-> S_INFER DO: A_RESOLVE_PHASE
|
|
115
|
+
|
|
96
116
|
S_INFER:
|
|
97
|
-
->
|
|
117
|
+
-> S_QUALITY_MODE WHEN: position resolved DO: A_INFER_POSITION
|
|
98
118
|
-> S_FALLBACK WHEN: cannot infer
|
|
99
119
|
|
|
100
|
-
S_RESOLVE_PHASE:
|
|
101
|
-
-> S_QUALITY_MODE DO: A_RESOLVE_PHASE
|
|
102
|
-
|
|
103
120
|
S_QUALITY_MODE:
|
|
104
121
|
-> S_DECOMPOSE DO: A_DETERMINE_QUALITY_MODE
|
|
105
122
|
|
|
@@ -162,6 +179,8 @@ S_FALLBACK -> S_PARSE_ROUTE WHEN: user input | -> END WHEN: cancel
|
|
|
162
179
|
|
|
163
180
|
### A_INFER_POSITION
|
|
164
181
|
|
|
182
|
+
**前置依赖**:A_RESOLVE_PHASE 已写入 `session.phase` 与 `session.phase_is_new`。
|
|
183
|
+
|
|
165
184
|
**Intent-based override**: brainstorm pattern -> position = brainstorm.
|
|
166
185
|
|
|
167
186
|
**Bootstrap detection**:
|
|
@@ -171,18 +190,22 @@ S_FALLBACK -> S_PARSE_ROUTE WHEN: user input | -> END WHEN: cancel
|
|
|
171
190
|
| No .workflow/ + no source | brainstorm |
|
|
172
191
|
| No .workflow/ + has source | init |
|
|
173
192
|
| Has .workflow/ but no state.json | init |
|
|
174
|
-
| Has state.json |
|
|
193
|
+
| Has state.json | phase-aware artifact inference |
|
|
175
194
|
|
|
176
|
-
**
|
|
195
|
+
**Phase-aware artifact inference** (使用 `session.phase` + `session.phase_is_new`):
|
|
177
196
|
|
|
178
197
|
| Condition | Position |
|
|
179
198
|
|-----------|----------|
|
|
199
|
+
| `phase_is_new == true` (intent 派生的新 phase, state.json 中无) | **`analyze`** (强制从头起) |
|
|
180
200
|
| no milestones defined or no roadmap.md | `roadmap` |
|
|
181
|
-
|
|
|
182
|
-
|
|
|
183
|
-
| latest artifact =
|
|
184
|
-
| latest artifact =
|
|
185
|
-
| latest artifact =
|
|
201
|
+
| `phase == null` (brainstorm/init/roadmap 已由 override 决定) | n/a |
|
|
202
|
+
| phase 已存在 + no artifacts for that phase | `analyze` |
|
|
203
|
+
| phase 已存在 + latest artifact = analyze | `plan` |
|
|
204
|
+
| phase 已存在 + latest artifact = plan | `execute` |
|
|
205
|
+
| phase 已存在 + latest artifact = execute | `verify` |
|
|
206
|
+
| phase 已存在 + latest artifact = verify | → refine from result files |
|
|
207
|
+
|
|
208
|
+
**关键不变量**:artifact 过滤必须用 `session.phase`(A_RESOLVE_PHASE 已写入),而不是 state.json.current_phase。当 `phase_is_new` 时跳过过滤直接走 `analyze`,避免错用其他 phase 的 artifact 推断位置。
|
|
186
209
|
|
|
187
210
|
**Refine from verify results:**
|
|
188
211
|
|
|
@@ -198,7 +221,24 @@ S_FALLBACK -> S_PARSE_ROUTE WHEN: user input | -> END WHEN: cancel
|
|
|
198
221
|
|
|
199
222
|
### A_RESOLVE_PHASE
|
|
200
223
|
|
|
201
|
-
|
|
224
|
+
**前置于 A_INFER_POSITION**——position 推断需要先知道 target phase 是否在 state.json 中已存在。
|
|
225
|
+
|
|
226
|
+
**Priority (产出 `phase` + `phase_is_new` 二元组):**
|
|
227
|
+
|
|
228
|
+
| Step | 行为 | phase_is_new |
|
|
229
|
+
|------|------|--------------|
|
|
230
|
+
| 1 | intent 匹配 `phase\s*(\d+)` 正则 → 取 state.json 中对应 phase | false |
|
|
231
|
+
| 2 | intent 派生短语(如 "docs-site-redesign", "auth-refactor")→ 在 state.json.milestones[*].phases / artifacts[*].path 中查找 | false (匹配) / **true (无匹配)** |
|
|
232
|
+
| 3 | 未派生 → 取最新 in-progress artifact 的 phase | false |
|
|
233
|
+
| 4 | 仍无 → state.json 首个 incomplete phase | false |
|
|
234
|
+
| 5 | position 将是 brainstorm/init/roadmap → phase = null | n/a |
|
|
235
|
+
| 6 | 仍模糊 → `request_user_input`(新 phase / 已存在 phase 二选一) | 由用户回答 |
|
|
236
|
+
|
|
237
|
+
**写入 session**: `phase` (string 或 null) + `phase_is_new` (bool)。`phase_is_new=true` 表示当前 milestone 下需要为该 phase 创建全套生命周期。
|
|
238
|
+
|
|
239
|
+
**新派生 phase 时 milestone 处理**:
|
|
240
|
+
- state.json 当前 milestone 仍 active → 沿用,仅新增 phase
|
|
241
|
+
- intent 派生新 milestone 名 → 仅写入 session 作标签;state.json.milestones 由后续 `maestro-roadmap` / `maestro-milestone-release` 真实创建。禁止 session 层面虚构 milestone 直接改 state.json
|
|
202
242
|
|
|
203
243
|
### A_DETERMINE_QUALITY_MODE
|
|
204
244
|
|
|
@@ -274,17 +314,23 @@ Goal stays bound until A_APPLY_GOAL_DONE / A_FINALIZE calls `update_goal`. Skipp
|
|
|
274
314
|
| goal-audit | *(decision-only, no skill)* | — | all (only if decomposed) | post-goal-audit |
|
|
275
315
|
| milestone-complete | maestro-milestone-complete | no | all | post-milestone |
|
|
276
316
|
|
|
277
|
-
**Build rules:**
|
|
278
|
-
1.
|
|
279
|
-
2.
|
|
280
|
-
3.
|
|
281
|
-
4. Quick mode
|
|
282
|
-
5.
|
|
283
|
-
6. **
|
|
284
|
-
7.
|
|
285
|
-
8.
|
|
286
|
-
|
|
287
|
-
|
|
317
|
+
**Build rules (按顺序应用):**
|
|
318
|
+
1. **起点**:从 `session.lifecycle_position` 开始;不读 `state.json.current_phase`
|
|
319
|
+
2. **跳过已完成**:跳过 (session.phase + current_milestone) 下已完成的 artifact 对应 stage;artifact 过滤按 `session.phase`,不按 state.json 当前 phase
|
|
320
|
+
3. **quality_mode 过滤**:按 `session.quality_mode` 排除上表 Quality Mode 列不包含该模式的 stage
|
|
321
|
+
4. Quick mode 特例:`review` 追加 `--tier quick`;跳过 `business-test`, `test-gen`, `test`
|
|
322
|
+
5. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ type: "decision", decision: "<gate>", retry_count: 0, max_retries: 2 }`
|
|
323
|
+
6. **goal-audit 插入**:当且仅当 `task_decomposition` 存在 → 在最后一个 evidence-producing stage(verify/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
|
|
324
|
+
7. **终点硬约束**:chain 必须以 `milestone-complete` 步骤结尾(除非 `lifecycle_position` 已是 `milestone-complete` 之后的状态)。生成器在收尾时不论 quality_mode 都必须 append 该 step
|
|
325
|
+
8. **初始 goal_ref 传播**:若 `task_decomposition` 存在,遍历每个新建 step:
|
|
326
|
+
- 计算 `step.stage`(execute/verify/review 等)
|
|
327
|
+
- 对每个 `g ∈ task_decomposition`:若 `step.stage ∈ g.lifecycle` → `step.goal_ref = g.id`
|
|
328
|
+
- 多 G 匹配 → 取 id 字典序最小者;保证 verify/review 等共用 lifecycle 的 step 也有可追溯标签
|
|
329
|
+
- decision 节点不打 goal_ref(goal-audit 自身除外)
|
|
330
|
+
9. Step type for runnable stages = `"skill"`(直接 in-context 执行,无 spawn);`barrier` 字段保留为可选 metadata,执行始终顺序
|
|
331
|
+
10. Args 用 `{phase}`, `{intent}`, `{dirs}` 占位符 — 执行时解析
|
|
332
|
+
11. `auto_mode=true` 时给所有 skill args 追加 `-y`(见 -y propagation table)
|
|
333
|
+
12. 动态插入的 step(A_APPLY_GOAL_FIX / A_INSERT_FIX_LOOP)同样按规则 8 打 `goal_ref` —— A_APPLY_GOAL_FIX 用触发它的 G{n}
|
|
288
334
|
|
|
289
335
|
### A_CREATE_SESSION
|
|
290
336
|
|
|
@@ -314,22 +360,39 @@ Direct in-context skill invocation — **replaces the old spawn/wave/CSV mechani
|
|
|
314
360
|
|
|
315
361
|
### A_GOAL_AUDIT_EVALUATE
|
|
316
362
|
|
|
317
|
-
Re-checks
|
|
363
|
+
Re-checks sub-goals against `status.json` (source of truth). Runs only when `task_decomposition` present.
|
|
318
364
|
|
|
319
|
-
1. Read `session.task_decomposition`
|
|
320
|
-
2. For each sub-goal `status != "done"`: resolve
|
|
365
|
+
1. Read `session.task_decomposition` from status.json (NOT from checklist — checklist is just a view)
|
|
366
|
+
2. For each sub-goal `status != "done"`: resolve `evidence` artifact under current phase scratch dir
|
|
321
367
|
3. Delegate read-only audit:
|
|
322
368
|
```
|
|
323
|
-
maestro delegate "PURPOSE:
|
|
324
|
-
TASK:
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
369
|
+
maestro delegate "PURPOSE: 审计未完成子目标,判定哪些已达成、哪些仍需补步骤
|
|
370
|
+
TASK:
|
|
371
|
+
1. 读取 status.json.task_decomposition 中每个 status!=done 的子目标
|
|
372
|
+
2. 打开其 evidence 产物,对照 done_when 严格判定
|
|
373
|
+
3. 输出 met / unmet,unmet 给出差距与应回补 target_phase
|
|
374
|
+
CONTEXT:
|
|
375
|
+
status.json = {session_dir}/status.json
|
|
376
|
+
checklist = {goal_checklist_path} (人类视图,仅供参考)
|
|
377
|
+
evidence = {evidence artifacts}
|
|
378
|
+
执行准则 = {execution_criteria}
|
|
379
|
+
边界契约 = {boundary_contract}
|
|
380
|
+
EXPECTED (单行 verdict 块):
|
|
381
|
+
---VERDICT---
|
|
382
|
+
STATUS=all_met|has_unmet
|
|
383
|
+
UNMET=[{id:G2,gap:'...',target_phase:execute}, ...]
|
|
384
|
+
CONFIDENCE_SCORE=0-100
|
|
385
|
+
---END---
|
|
386
|
+
CONSTRAINTS:
|
|
387
|
+
- 只评估,不修改任何文件
|
|
388
|
+
- 严格按 done_when;evidence 缺失 → unmet
|
|
389
|
+
- 不得超出 boundary_contract
|
|
390
|
+
"
|
|
328
391
|
--role analyze --mode analysis
|
|
329
392
|
```
|
|
330
|
-
4. On result: parse UNMET.
|
|
331
|
-
5. Verdict: `all_met` → A_APPLY_GOAL_DONE
|
|
332
|
-
GUARD: retry_count >= max_retries AND still unmet → escalate
|
|
393
|
+
4. On result: parse UNMET。**status.json 为写入目标** —— 对每个已达成子目标置 `task_decomposition[i].status="done"` + `completed_at=now`,然后从 status.json 重渲染 checklist(见 Sync Rule)
|
|
394
|
+
5. Verdict: `all_met` → A_APPLY_GOAL_DONE;`has_unmet` → A_APPLY_GOAL_FIX
|
|
395
|
+
GUARD: retry_count >= max_retries AND still unmet → escalate(插入 quality-debug,S_PAUSED 等人)
|
|
333
396
|
|
|
334
397
|
### A_STRUCTURAL_EVALUATE
|
|
335
398
|
|
|
@@ -355,11 +418,11 @@ Insert fix template by decision type after current position, reindex:
|
|
|
355
418
|
|
|
356
419
|
### A_APPLY_GOAL_DONE
|
|
357
420
|
|
|
358
|
-
1.
|
|
359
|
-
2.
|
|
360
|
-
3. `update_goal({ status: "complete" })`
|
|
361
|
-
4.
|
|
362
|
-
5. Display: ◆ Goal audit: 全部子目标达成 ✓ — goal
|
|
421
|
+
1. status.json(真源):全部 `task_decomposition[*].status="done"` + `completed_at=now` + 顶层 `task_decomposition_all_done=true`
|
|
422
|
+
2. 从 status.json 重渲染 `goal-checklist.md`(见 Sync Rule)—— 复选框全 `[x]`,文件末追加 `ALL_GOALS_DONE` 哨兵
|
|
423
|
+
3. `update_goal({ status: "complete" })` —— 释放分解 goal 约束
|
|
424
|
+
4. 标记 goal-audit decision 完成;继续到 `milestone-complete`
|
|
425
|
+
5. Display: ◆ Goal audit: 全部子目标达成 ✓ — status.json + checklist + goal 已同步
|
|
363
426
|
|
|
364
427
|
### A_ADVANCE_MILESTONE
|
|
365
428
|
|
|
@@ -383,7 +446,14 @@ Update session: milestone, phase, reset passed_gates. Re-infer quality_mode. Bui
|
|
|
383
446
|
1. Find latest ralph session
|
|
384
447
|
2. Display: Session, Status, Position, Quality mode, Progress, Current step
|
|
385
448
|
3. List steps: [✓] done, [▸] running, [ ] pending, [◆] decision (with goal_ref if set)
|
|
386
|
-
4. If `task_decomposition` present
|
|
449
|
+
4. If `task_decomposition` present (else 跳过 — 向后兼容):
|
|
450
|
+
```
|
|
451
|
+
Sub-goals ({done}/{total}) source: {session_dir}/status.json#/task_decomposition
|
|
452
|
+
[x] G1 done_when={done_when} evidence={evidence}
|
|
453
|
+
[ ] G2 done_when={done_when} evidence={evidence} ◀ unmet
|
|
454
|
+
Checklist view: {goal_checklist_path} (从 status.json 重渲染)
|
|
455
|
+
```
|
|
456
|
+
状态直读 `status.json.task_decomposition[*].status`;checklist 是视图,冲突以 JSON 为准。
|
|
387
457
|
|
|
388
458
|
</actions>
|
|
389
459
|
|
|
@@ -397,8 +467,10 @@ Update session: milestone, phase, reset passed_gates. Re-infer quality_mode. Bui
|
|
|
397
467
|
{
|
|
398
468
|
"session_id": "ralph-{YYYYMMDD-HHmmss}",
|
|
399
469
|
"source": "ralph", "intent": "", "status": "running|paused|completed",
|
|
400
|
-
"lifecycle_position": "", "phase": null, "milestone": null,
|
|
401
|
-
"auto_mode": false,
|
|
470
|
+
"lifecycle_position": "", "phase": null, "phase_is_new": false, "milestone": null,
|
|
471
|
+
"auto_mode": false,
|
|
472
|
+
"quality_mode": "standard", // "full" | "standard" | "quick" — 由 A_DETERMINE_QUALITY_MODE 写入
|
|
473
|
+
"passed_gates": [],
|
|
402
474
|
"context": { "issue_id": null, "scratch_dir": null, "plan_dir": null, "analysis_dir": null, "brainstorm_dir": null },
|
|
403
475
|
"steps": [{ "index": 0, "type": "skill|decision", "skill": "", "args": "", "barrier": false, "status": "pending", "goal_ref": null }],
|
|
404
476
|
"waves": [], "current_step": 0,
|
|
@@ -407,41 +479,73 @@ Update session: milestone, phase, reset passed_gates. Re-infer quality_mode. Bui
|
|
|
407
479
|
"boundary_contract": { "in_scope": [], "out_of_scope": [], "constraints": [], "definition_of_done": "" },
|
|
408
480
|
"execution_criteria": [],
|
|
409
481
|
"task_decomposition": [
|
|
410
|
-
{ "id": "G1", "goal": "", "boundary": "", "done_when": "", "evidence": "", "lifecycle": [], "status": "pending|done" }
|
|
482
|
+
{ "id": "G1", "goal": "", "boundary": "", "done_when": "", "evidence": "", "lifecycle": [], "status": "pending|done", "completed_at": null }
|
|
411
483
|
],
|
|
412
|
-
"
|
|
484
|
+
"task_decomposition_all_done": false,
|
|
485
|
+
"goal_checklist_path": "",
|
|
486
|
+
"goal_checklist_synced_at": null
|
|
413
487
|
}
|
|
414
488
|
```
|
|
415
489
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
490
|
+
**扩展约定**:
|
|
491
|
+
- Schema 加字段 = 可选(缺省 = 旧行为);不删/不改既有字段名。
|
|
492
|
+
- `steps[]` 是活数组:`post-goal-audit` 与 `post-verify/review/test` 等决策节点按需追加+重排,子目标收敛即停。`goal_ref`(可选)回溯每条动态插入步骤所属子目标。`waves` 保留为空数组(spawning 已移除)。
|
|
419
493
|
|
|
420
|
-
### Goal Checklist Template
|
|
494
|
+
### Goal Checklist Template (status.json projection)
|
|
421
495
|
|
|
422
|
-
|
|
496
|
+
`{session_dir}/goal-checklist.md` 是 `status.json` 的只读投影:不要手改,永远从 JSON 重渲染。文件名在 session 内稳定(`create_goal` 注册的 success_criteria 始终可追溯)。
|
|
423
497
|
|
|
424
498
|
```markdown
|
|
425
499
|
# Ralph Goal Checklist — {session_id}
|
|
426
|
-
|
|
500
|
+
<!-- AUTO-GENERATED from status.json. Source: ../status.json#/task_decomposition -->
|
|
501
|
+
|
|
502
|
+
> Intent : {intent}
|
|
503
|
+
> Source : `{session_dir}/status.json` (authoritative)
|
|
504
|
+
> Last sync : {ISO} Phase: {phase} Milestone: {milestone}
|
|
505
|
+
|
|
506
|
+
## Resume / 恢复入口
|
|
507
|
+
**不要直接执行 skill,调用入口:**
|
|
508
|
+
```
|
|
509
|
+
$maestro-ralph execute # 或 $maestro-ralph continue
|
|
510
|
+
```
|
|
511
|
+
coordinator 评估下一步门控,按顺序在 in-context 中调用各 skill。
|
|
427
512
|
|
|
428
513
|
## 执行准则 / Execution Criteria
|
|
514
|
+
<!-- status.json#/execution_criteria -->
|
|
429
515
|
- {criterion 1}
|
|
430
516
|
- {criterion 2}
|
|
431
517
|
|
|
432
518
|
## 边界契约 / Boundary Contract
|
|
433
|
-
|
|
434
|
-
-
|
|
435
|
-
-
|
|
436
|
-
-
|
|
519
|
+
<!-- status.json#/boundary_contract -->
|
|
520
|
+
- In scope : {in_scope}
|
|
521
|
+
- Out of scope : {out_of_scope}
|
|
522
|
+
- Constraints : {constraints}
|
|
523
|
+
- Definition of Done : {definition_of_done}
|
|
524
|
+
|
|
525
|
+
## 子目标 / Sub-goals ({done}/{total})
|
|
526
|
+
<!-- status.json#/task_decomposition -->
|
|
527
|
+
- [ ] G1 — {goal}
|
|
528
|
+
done_when : {done_when}
|
|
529
|
+
evidence : {evidence}
|
|
530
|
+
lifecycle : {lifecycle}
|
|
531
|
+
<!-- ref: status.json#/task_decomposition/0 status=pending -->
|
|
532
|
+
- [x] G2 — {goal}
|
|
533
|
+
done_when : {done_when}
|
|
534
|
+
evidence : {evidence}
|
|
535
|
+
<!-- ref: status.json#/task_decomposition/1 status=done completed_at={ISO} -->
|
|
536
|
+
|
|
537
|
+
<!-- A_APPLY_GOAL_DONE 在全部 status=done 时在文件末追加 ALL_GOALS_DONE -->
|
|
538
|
+
```
|
|
437
539
|
|
|
438
|
-
|
|
439
|
-
- [ ] G1: {goal} — done when: {done_when} (evidence: {evidence})
|
|
440
|
-
- [ ] G2: {goal} — done when: {done_when} (evidence: {evidence})
|
|
540
|
+
### Sync Rule (status.json ↔ goal-checklist.md)
|
|
441
541
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
542
|
+
单向投影;status.json 为真源;冲突时直接重渲染,不合并。
|
|
543
|
+
|
|
544
|
+
1. 只有 ralph coordinator 写 `task_decomposition[*].status`;markdown 不可写入状态。
|
|
545
|
+
2. `task_decomposition` / `execution_criteria` / `boundary_contract` 任一变化 → 立即重渲染 checklist。
|
|
546
|
+
3. 全部 `status="done"` → 文件末追加 `ALL_GOALS_DONE`。
|
|
547
|
+
4. checklist 缺失或漂移 → 直接重渲染覆盖;视 markdown 为可丢弃产物。
|
|
548
|
+
5. coordinator 在 lifecycle 覆盖某子目标的 step 完成后,校验 evidence;满足则置 `status="done"` + 重渲染 + `update_goal` 进度。
|
|
445
549
|
|
|
446
550
|
### Fix-Loop Templates
|
|
447
551
|
|
|
@@ -473,16 +577,22 @@ Written to `{session_dir}/goal-checklist.md`. Stable within the session; never r
|
|
|
473
577
|
|
|
474
578
|
### Success Criteria
|
|
475
579
|
|
|
580
|
+
- [ ] Phase 先于 position 解析(S_RESOLVE_PHASE → S_INFER → S_QUALITY_MODE);phase_is_new 标记写入 session
|
|
581
|
+
- [ ] phase_is_new=true 时 lifecycle_position 强制为 `analyze`(禁用其他 phase 的 artifact 推断)
|
|
582
|
+
- [ ] artifact 过滤始终按 session.phase(不读 state.json.current_phase)
|
|
476
583
|
- [ ] Lifecycle position inferred from bootstrap + artifact chain + result files
|
|
477
584
|
- [ ] Quality mode governs step generation
|
|
478
585
|
- [ ] Decomposition runs as initial step; broad intent boundary-clarified via ≤3 questions (ignores auto_mode); narrow auto-derives
|
|
479
|
-
- [ ] Goal registered via built-in `create_goal` with sub-goal success criteria
|
|
586
|
+
- [ ] Goal registered via built-in `create_goal` with sub-goal success criteria
|
|
480
587
|
- [ ] status.json enriched additively with boundary_contract + execution_criteria + task_decomposition; absent = old behavior preserved
|
|
481
|
-
- [ ] goal-checklist.md
|
|
588
|
+
- [ ] status.json 为唯一真源;goal-checklist.md 是从 JSON 重渲染的投影视图(Resume 区块指向 `$maestro-ralph execute`)
|
|
589
|
+
- [ ] task_decomposition 变更触发 checklist 重渲染;ALL_GOALS_DONE 仅在 all done 时追加;JSON pointer 注释回溯每个条目
|
|
482
590
|
- [ ] post-goal-audit decision inserted before milestone-complete (only when decomposed)
|
|
483
591
|
- [ ] Unmet sub-goals DYNAMICALLY grow steps[] via scoped per-goal mini-loops (goal_ref tagged), loop until all_met or max retries → escalate
|
|
484
592
|
- [ ] Skills invoked DIRECTLY in-context — NO spawn_agents_on_csv, NO wave/CSV/worker
|
|
485
593
|
- [ ] Sequential execution; status.json + update_plan persisted after every step and decision
|
|
594
|
+
- [ ] Chain 末端硬约束:必须以 `milestone-complete` 结尾(goal-audit decision 紧前)
|
|
595
|
+
- [ ] 初始构建按 task_decomposition[*].lifecycle 给每个 step 打 goal_ref(verify/review 等共用 lifecycle 的 step 也有标签)
|
|
486
596
|
- [ ] Quality-gate / goal-gate decisions delegate-evaluated via maestro delegate --role analyze
|
|
487
597
|
- [ ] Confidence-based verdict adjustment applied
|
|
488
598
|
- [ ] -y: auto-follow verdict, no STOP (except post-debug-escalate)
|
|
@@ -51,4 +51,16 @@ export declare function createTargetBackup(components: ScannedComponent[], optio
|
|
|
51
51
|
*/
|
|
52
52
|
export declare function countExistingTargetFiles(components: ScannedComponent[]): number;
|
|
53
53
|
export declare const MCP_TOOLS: readonly ["write_file", "edit_file", "read_file", "read_many_files", "team_msg", "store_knowhow"];
|
|
54
|
+
export type ExtraMcpTargetId = 'cursor' | 'qoder' | 'trae' | 'kiro' | 'roo' | 'vscode-copilot' | 'gemini-cli';
|
|
55
|
+
type McpFormat = 'json-mcpServers' | 'json-vscode-servers' | 'json-gemini-merge';
|
|
56
|
+
interface ExtraMcpTargetSpec {
|
|
57
|
+
id: ExtraMcpTargetId;
|
|
58
|
+
label: string;
|
|
59
|
+
format: McpFormat;
|
|
60
|
+
/** Returns the config file path, or null when scope is unsupported. */
|
|
61
|
+
configPath: (scope: 'global' | 'project', projectPath: string) => string | null;
|
|
62
|
+
}
|
|
63
|
+
export declare const EXTRA_MCP_TARGETS: ExtraMcpTargetSpec[];
|
|
64
|
+
export declare function addExtraMcpServer(targetId: ExtraMcpTargetId, scope: 'global' | 'project', projectPath: string, enabledTools: string[], projectRoot?: string): boolean;
|
|
65
|
+
export declare function removeExtraMcpServer(targetId: ExtraMcpTargetId, scope: 'global' | 'project', projectPath: string): boolean;
|
|
54
66
|
//# sourceMappingURL=install-backend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-backend.d.ts","sourceRoot":"","sources":["../../../src/commands/install-backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-backend.d.ts","sourceRoot":"","sources":["../../../src/commands/install-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -415,4 +415,148 @@ export const MCP_TOOLS = [
|
|
|
415
415
|
'team_msg',
|
|
416
416
|
'store_knowhow',
|
|
417
417
|
];
|
|
418
|
+
export const EXTRA_MCP_TARGETS = [
|
|
419
|
+
{
|
|
420
|
+
id: 'cursor',
|
|
421
|
+
label: 'Cursor (.cursor/mcp.json)',
|
|
422
|
+
format: 'json-mcpServers',
|
|
423
|
+
configPath: (scope, p) => scope === 'project'
|
|
424
|
+
? join(p, '.cursor', 'mcp.json')
|
|
425
|
+
: join(homedir(), '.cursor', 'mcp.json'),
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
id: 'qoder',
|
|
429
|
+
label: 'Qoder (<proj>/mcp.json — Settings → MCP)',
|
|
430
|
+
format: 'json-mcpServers',
|
|
431
|
+
configPath: (scope, p) => scope === 'project'
|
|
432
|
+
// Qoder uses root-level mcp.json (no leading dot) per their docs
|
|
433
|
+
? join(p, 'mcp.json')
|
|
434
|
+
// Global config lives under SharedClientCache; we write the canonical path,
|
|
435
|
+
// even though Qoder UI commonly bootstraps this on first launch.
|
|
436
|
+
: join(homedir(), '.qoder', 'SharedClientCache', 'mcp.json'),
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
id: 'trae',
|
|
440
|
+
label: 'Trae (.mcp.json)',
|
|
441
|
+
format: 'json-mcpServers',
|
|
442
|
+
configPath: (scope, p) => scope === 'project'
|
|
443
|
+
? join(p, '.mcp.json')
|
|
444
|
+
: join(homedir(), '.trae', 'mcp.json'),
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
id: 'kiro',
|
|
448
|
+
label: 'Kiro (.kiro/settings/mcp.json)',
|
|
449
|
+
format: 'json-mcpServers',
|
|
450
|
+
configPath: (scope, p) => scope === 'project'
|
|
451
|
+
? join(p, '.kiro', 'settings', 'mcp.json')
|
|
452
|
+
: join(homedir(), '.kiro', 'settings', 'mcp.json'),
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
id: 'roo',
|
|
456
|
+
label: 'Roo Code (.roo/mcp.json)',
|
|
457
|
+
format: 'json-mcpServers',
|
|
458
|
+
// Roo Code global config lives inside VS Code globalStorage — skip global
|
|
459
|
+
// (users almost always want project-level). Project = .roo/mcp.json.
|
|
460
|
+
configPath: (scope, p) => scope === 'project' ? join(p, '.roo', 'mcp.json') : null,
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
id: 'vscode-copilot',
|
|
464
|
+
label: 'VS Code Copilot (.vscode/mcp.json)',
|
|
465
|
+
format: 'json-vscode-servers',
|
|
466
|
+
configPath: (scope, p) => scope === 'project'
|
|
467
|
+
? join(p, '.vscode', 'mcp.json')
|
|
468
|
+
// User-profile mcp.json — location varies by OS, command-driven in VS Code.
|
|
469
|
+
// We target the canonical app-data folder.
|
|
470
|
+
: process.platform === 'win32'
|
|
471
|
+
? join(homedir(), 'AppData', 'Roaming', 'Code', 'User', 'mcp.json')
|
|
472
|
+
: process.platform === 'darwin'
|
|
473
|
+
? join(homedir(), 'Library', 'Application Support', 'Code', 'User', 'mcp.json')
|
|
474
|
+
: join(homedir(), '.config', 'Code', 'User', 'mcp.json'),
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
id: 'gemini-cli',
|
|
478
|
+
label: 'Gemini CLI (.gemini/settings.json)',
|
|
479
|
+
format: 'json-gemini-merge',
|
|
480
|
+
configPath: (scope, p) => scope === 'project'
|
|
481
|
+
? join(p, '.gemini', 'settings.json')
|
|
482
|
+
: join(homedir(), '.gemini', 'settings.json'),
|
|
483
|
+
},
|
|
484
|
+
];
|
|
485
|
+
function buildServerConfig(enabledTools, projectRoot, format) {
|
|
486
|
+
const isWin = process.platform === 'win32';
|
|
487
|
+
const env = {
|
|
488
|
+
MAESTRO_ENABLED_TOOLS: enabledTools.join(','),
|
|
489
|
+
};
|
|
490
|
+
if (projectRoot)
|
|
491
|
+
env.MAESTRO_PROJECT_ROOT = projectRoot;
|
|
492
|
+
const base = {
|
|
493
|
+
command: isWin ? 'cmd' : 'maestro-mcp',
|
|
494
|
+
args: isWin ? ['/c', 'maestro-mcp'] : [],
|
|
495
|
+
env,
|
|
496
|
+
};
|
|
497
|
+
if (format === 'json-vscode-servers') {
|
|
498
|
+
return { type: 'stdio', ...base };
|
|
499
|
+
}
|
|
500
|
+
return base;
|
|
501
|
+
}
|
|
502
|
+
export function addExtraMcpServer(targetId, scope, projectPath, enabledTools, projectRoot) {
|
|
503
|
+
const spec = EXTRA_MCP_TARGETS.find((t) => t.id === targetId);
|
|
504
|
+
if (!spec)
|
|
505
|
+
return false;
|
|
506
|
+
const fp = spec.configPath(scope, projectPath);
|
|
507
|
+
if (!fp)
|
|
508
|
+
return false;
|
|
509
|
+
try {
|
|
510
|
+
const dir = dirname(fp);
|
|
511
|
+
if (!existsSync(dir))
|
|
512
|
+
mkdirSync(dir, { recursive: true });
|
|
513
|
+
const serverConfig = buildServerConfig(enabledTools, projectRoot, spec.format);
|
|
514
|
+
const containerKey = spec.format === 'json-vscode-servers' ? 'servers' : 'mcpServers';
|
|
515
|
+
let data = {};
|
|
516
|
+
if (existsSync(fp)) {
|
|
517
|
+
try {
|
|
518
|
+
data = JSON.parse(readFileSync(fp, 'utf-8'));
|
|
519
|
+
}
|
|
520
|
+
catch {
|
|
521
|
+
// Corrupt JSON — back up before overwriting
|
|
522
|
+
try {
|
|
523
|
+
const backupPath = `${fp}.bak.${Date.now()}`;
|
|
524
|
+
writeFileSync(backupPath, readFileSync(fp, 'utf-8'));
|
|
525
|
+
}
|
|
526
|
+
catch { /* best-effort */ }
|
|
527
|
+
data = {};
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
if (!data[containerKey] || typeof data[containerKey] !== 'object') {
|
|
531
|
+
data[containerKey] = {};
|
|
532
|
+
}
|
|
533
|
+
data[containerKey]['maestro-tools'] = serverConfig;
|
|
534
|
+
writeFileSync(fp, JSON.stringify(data, null, 2), 'utf-8');
|
|
535
|
+
return true;
|
|
536
|
+
}
|
|
537
|
+
catch {
|
|
538
|
+
return false;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
export function removeExtraMcpServer(targetId, scope, projectPath) {
|
|
542
|
+
const spec = EXTRA_MCP_TARGETS.find((t) => t.id === targetId);
|
|
543
|
+
if (!spec)
|
|
544
|
+
return false;
|
|
545
|
+
const fp = spec.configPath(scope, projectPath);
|
|
546
|
+
if (!fp || !existsSync(fp))
|
|
547
|
+
return false;
|
|
548
|
+
try {
|
|
549
|
+
const data = JSON.parse(readFileSync(fp, 'utf-8'));
|
|
550
|
+
const containerKey = spec.format === 'json-vscode-servers' ? 'servers' : 'mcpServers';
|
|
551
|
+
const servers = data[containerKey];
|
|
552
|
+
if (!servers || !('maestro-tools' in servers))
|
|
553
|
+
return false;
|
|
554
|
+
delete servers['maestro-tools'];
|
|
555
|
+
writeFileSync(fp, JSON.stringify(data, null, 2), 'utf-8');
|
|
556
|
+
return true;
|
|
557
|
+
}
|
|
558
|
+
catch {
|
|
559
|
+
return false;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
418
562
|
//# sourceMappingURL=install-backend.js.map
|