@jokerized/getresearchdone 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +103 -0
- package/README.md +211 -0
- package/agents/grd-baseline-assessor.md +684 -0
- package/agents/grd-code-reviewer.md +300 -0
- package/agents/grd-codebase-mapper.md +355 -0
- package/agents/grd-critique-agent.md +119 -0
- package/agents/grd-debugger.md +519 -0
- package/agents/grd-deep-diver.md +737 -0
- package/agents/grd-eval-planner.md +913 -0
- package/agents/grd-eval-reporter.md +717 -0
- package/agents/grd-executor.md +683 -0
- package/agents/grd-feasibility-analyst.md +624 -0
- package/agents/grd-integration-checker.md +367 -0
- package/agents/grd-knowledge-miner.md +81 -0
- package/agents/grd-migrator.md +88 -0
- package/agents/grd-phase-researcher.md +697 -0
- package/agents/grd-plan-checker.md +443 -0
- package/agents/grd-planner.md +1532 -0
- package/agents/grd-product-owner.md +562 -0
- package/agents/grd-project-researcher.md +513 -0
- package/agents/grd-research-synthesizer.md +273 -0
- package/agents/grd-roadmapper.md +798 -0
- package/agents/grd-surveyor.md +566 -0
- package/agents/grd-verifier.md +893 -0
- package/bin/gd.js +4 -0
- package/bin/gd.ts +227 -0
- package/bin/grd-manifest.js +4 -0
- package/bin/grd-manifest.ts +286 -0
- package/bin/grd-mcp-server.js +4 -0
- package/bin/grd-mcp-server.ts +124 -0
- package/bin/grd-tools.js +4 -0
- package/bin/grd-tools.ts +2471 -0
- package/bin/postinstall.js +4 -0
- package/bin/postinstall.ts +80 -0
- package/commands/add-phase.md +123 -0
- package/commands/add-todo.md +87 -0
- package/commands/assess-baseline.md +289 -0
- package/commands/autopilot.md +100 -0
- package/commands/autoplan.md +55 -0
- package/commands/check-todos.md +87 -0
- package/commands/compare-methods.md +262 -0
- package/commands/complete-milestone.md +225 -0
- package/commands/debug.md +372 -0
- package/commands/deep-dive.md +288 -0
- package/commands/discover.md +281 -0
- package/commands/discuss-phase.md +188 -0
- package/commands/discuss.md +55 -0
- package/commands/eval-report.md +310 -0
- package/commands/evolve.md +79 -0
- package/commands/execute-phase.md +1017 -0
- package/commands/feasibility.md +292 -0
- package/commands/help.md +407 -0
- package/commands/init.md +1508 -0
- package/commands/insert-phase.md +113 -0
- package/commands/iterate.md +327 -0
- package/commands/list-phase-assumptions.md +217 -0
- package/commands/long-term-roadmap.md +202 -0
- package/commands/map-codebase.md +111 -0
- package/commands/migrate.md +159 -0
- package/commands/new-milestone.md +169 -0
- package/commands/pause-work.md +83 -0
- package/commands/plan-milestone-gaps.md +373 -0
- package/commands/plan-phase.md +655 -0
- package/commands/principles.md +328 -0
- package/commands/product-plan.md +319 -0
- package/commands/progress.md +481 -0
- package/commands/quick.md +167 -0
- package/commands/reapply-patches.md +154 -0
- package/commands/remove-phase.md +97 -0
- package/commands/requirement.md +96 -0
- package/commands/resume-project.md +113 -0
- package/commands/settings.md +1144 -0
- package/commands/survey.md +242 -0
- package/commands/sync.md +246 -0
- package/commands/tracker-setup.md +322 -0
- package/commands/update.md +202 -0
- package/commands/verify-phase.md +335 -0
- package/commands/verify-work.md +701 -0
- package/commands/wireup.md +29 -0
- package/dist/bin/gd.d.ts +3 -0
- package/dist/bin/gd.d.ts.map +1 -0
- package/dist/bin/gd.js +178 -0
- package/dist/bin/gd.js.map +1 -0
- package/dist/bin/grd-manifest.d.ts +3 -0
- package/dist/bin/grd-manifest.d.ts.map +1 -0
- package/dist/bin/grd-manifest.js +202 -0
- package/dist/bin/grd-manifest.js.map +1 -0
- package/dist/bin/grd-mcp-server.d.ts +3 -0
- package/dist/bin/grd-mcp-server.d.ts.map +1 -0
- package/dist/bin/grd-mcp-server.js +71 -0
- package/dist/bin/grd-mcp-server.js.map +1 -0
- package/dist/bin/grd-tools.d.ts +3 -0
- package/dist/bin/grd-tools.d.ts.map +1 -0
- package/dist/bin/grd-tools.js +1680 -0
- package/dist/bin/grd-tools.js.map +1 -0
- package/dist/bin/postinstall.d.ts +3 -0
- package/dist/bin/postinstall.d.ts.map +1 -0
- package/dist/bin/postinstall.js +61 -0
- package/dist/bin/postinstall.js.map +1 -0
- package/dist/lib/autopilot-milestone.d.ts +2 -0
- package/dist/lib/autopilot-milestone.d.ts.map +1 -0
- package/dist/lib/autopilot-milestone.js +94 -0
- package/dist/lib/autopilot-milestone.js.map +1 -0
- package/dist/lib/autopilot-pipeline.d.ts +2 -0
- package/dist/lib/autopilot-pipeline.d.ts.map +1 -0
- package/dist/lib/autopilot-pipeline.js +830 -0
- package/dist/lib/autopilot-pipeline.js.map +1 -0
- package/dist/lib/autopilot-waves.d.ts +2 -0
- package/dist/lib/autopilot-waves.d.ts.map +1 -0
- package/dist/lib/autopilot-waves.js +266 -0
- package/dist/lib/autopilot-waves.js.map +1 -0
- package/dist/lib/autopilot.d.ts +2 -0
- package/dist/lib/autopilot.d.ts.map +1 -0
- package/dist/lib/autopilot.js +1314 -0
- package/dist/lib/autopilot.js.map +1 -0
- package/dist/lib/autoplan.d.ts +2 -0
- package/dist/lib/autoplan.d.ts.map +1 -0
- package/dist/lib/autoplan.js +198 -0
- package/dist/lib/autoplan.js.map +1 -0
- package/dist/lib/autoresearch.d.ts +2 -0
- package/dist/lib/autoresearch.d.ts.map +1 -0
- package/dist/lib/autoresearch.js +626 -0
- package/dist/lib/autoresearch.js.map +1 -0
- package/dist/lib/backend.d.ts +2 -0
- package/dist/lib/backend.d.ts.map +1 -0
- package/dist/lib/backend.js +1036 -0
- package/dist/lib/backend.js.map +1 -0
- package/dist/lib/benchmark.d.ts +99 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +278 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/citations.d.ts +2 -0
- package/dist/lib/citations.d.ts.map +1 -0
- package/dist/lib/citations.js +642 -0
- package/dist/lib/citations.js.map +1 -0
- package/dist/lib/cleanup.d.ts +2 -0
- package/dist/lib/cleanup.d.ts.map +1 -0
- package/dist/lib/cleanup.js +1222 -0
- package/dist/lib/cleanup.js.map +1 -0
- package/dist/lib/cli/adapters.d.ts +10 -0
- package/dist/lib/cli/adapters.d.ts.map +1 -0
- package/dist/lib/cli/adapters.js +27 -0
- package/dist/lib/cli/adapters.js.map +1 -0
- package/dist/lib/cli/agent.d.ts +17 -0
- package/dist/lib/cli/agent.d.ts.map +1 -0
- package/dist/lib/cli/agent.js +53 -0
- package/dist/lib/cli/agent.js.map +1 -0
- package/dist/lib/cli/index.d.ts +21 -0
- package/dist/lib/cli/index.d.ts.map +1 -0
- package/dist/lib/cli/index.js +264 -0
- package/dist/lib/cli/index.js.map +1 -0
- package/dist/lib/cli/output.d.ts +20 -0
- package/dist/lib/cli/output.d.ts.map +1 -0
- package/dist/lib/cli/output.js +22 -0
- package/dist/lib/cli/output.js.map +1 -0
- package/dist/lib/cli/scan-dispatch.d.ts +9 -0
- package/dist/lib/cli/scan-dispatch.d.ts.map +1 -0
- package/dist/lib/cli/scan-dispatch.js +107 -0
- package/dist/lib/cli/scan-dispatch.js.map +1 -0
- package/dist/lib/cli/tools.d.ts +16 -0
- package/dist/lib/cli/tools.d.ts.map +1 -0
- package/dist/lib/cli/tools.js +168 -0
- package/dist/lib/cli/tools.js.map +1 -0
- package/dist/lib/commands/_dashboard-parsers.d.ts +2 -0
- package/dist/lib/commands/_dashboard-parsers.d.ts.map +1 -0
- package/dist/lib/commands/_dashboard-parsers.js +192 -0
- package/dist/lib/commands/_dashboard-parsers.js.map +1 -0
- package/dist/lib/commands/analysis.d.ts +2 -0
- package/dist/lib/commands/analysis.d.ts.map +1 -0
- package/dist/lib/commands/analysis.js +1418 -0
- package/dist/lib/commands/analysis.js.map +1 -0
- package/dist/lib/commands/assumptions.d.ts +2 -0
- package/dist/lib/commands/assumptions.d.ts.map +1 -0
- package/dist/lib/commands/assumptions.js +166 -0
- package/dist/lib/commands/assumptions.js.map +1 -0
- package/dist/lib/commands/blame.d.ts +2 -0
- package/dist/lib/commands/blame.d.ts.map +1 -0
- package/dist/lib/commands/blame.js +133 -0
- package/dist/lib/commands/blame.js.map +1 -0
- package/dist/lib/commands/budget.d.ts +2 -0
- package/dist/lib/commands/budget.d.ts.map +1 -0
- package/dist/lib/commands/budget.js +100 -0
- package/dist/lib/commands/budget.js.map +1 -0
- package/dist/lib/commands/check-plans.d.ts +2 -0
- package/dist/lib/commands/check-plans.d.ts.map +1 -0
- package/dist/lib/commands/check-plans.js +190 -0
- package/dist/lib/commands/check-plans.js.map +1 -0
- package/dist/lib/commands/config.d.ts +2 -0
- package/dist/lib/commands/config.d.ts.map +1 -0
- package/dist/lib/commands/config.js +188 -0
- package/dist/lib/commands/config.js.map +1 -0
- package/dist/lib/commands/dashboard.d.ts +2 -0
- package/dist/lib/commands/dashboard.d.ts.map +1 -0
- package/dist/lib/commands/dashboard.js +466 -0
- package/dist/lib/commands/dashboard.js.map +1 -0
- package/dist/lib/commands/estimate.d.ts +2 -0
- package/dist/lib/commands/estimate.d.ts.map +1 -0
- package/dist/lib/commands/estimate.js +148 -0
- package/dist/lib/commands/estimate.js.map +1 -0
- package/dist/lib/commands/eval-diff.d.ts +2 -0
- package/dist/lib/commands/eval-diff.d.ts.map +1 -0
- package/dist/lib/commands/eval-diff.js +213 -0
- package/dist/lib/commands/eval-diff.js.map +1 -0
- package/dist/lib/commands/freshness.d.ts +2 -0
- package/dist/lib/commands/freshness.d.ts.map +1 -0
- package/dist/lib/commands/freshness.js +163 -0
- package/dist/lib/commands/freshness.js.map +1 -0
- package/dist/lib/commands/health.d.ts +2 -0
- package/dist/lib/commands/health.d.ts.map +1 -0
- package/dist/lib/commands/health.js +435 -0
- package/dist/lib/commands/health.js.map +1 -0
- package/dist/lib/commands/index.d.ts +2 -0
- package/dist/lib/commands/index.d.ts.map +1 -0
- package/dist/lib/commands/index.js +128 -0
- package/dist/lib/commands/index.js.map +1 -0
- package/dist/lib/commands/install.d.ts +56 -0
- package/dist/lib/commands/install.d.ts.map +1 -0
- package/dist/lib/commands/install.js +214 -0
- package/dist/lib/commands/install.js.map +1 -0
- package/dist/lib/commands/knowhow-aggregator.d.ts +2 -0
- package/dist/lib/commands/knowhow-aggregator.d.ts.map +1 -0
- package/dist/lib/commands/knowhow-aggregator.js +279 -0
- package/dist/lib/commands/knowhow-aggregator.js.map +1 -0
- package/dist/lib/commands/knowledge-search.d.ts +2 -0
- package/dist/lib/commands/knowledge-search.d.ts.map +1 -0
- package/dist/lib/commands/knowledge-search.js +113 -0
- package/dist/lib/commands/knowledge-search.js.map +1 -0
- package/dist/lib/commands/long-term-roadmap.d.ts +2 -0
- package/dist/lib/commands/long-term-roadmap.d.ts.map +1 -0
- package/dist/lib/commands/long-term-roadmap.js +272 -0
- package/dist/lib/commands/long-term-roadmap.js.map +1 -0
- package/dist/lib/commands/patterns.d.ts +91 -0
- package/dist/lib/commands/patterns.d.ts.map +1 -0
- package/dist/lib/commands/patterns.js +391 -0
- package/dist/lib/commands/patterns.js.map +1 -0
- package/dist/lib/commands/phase-info.d.ts +2 -0
- package/dist/lib/commands/phase-info.d.ts.map +1 -0
- package/dist/lib/commands/phase-info.js +509 -0
- package/dist/lib/commands/phase-info.js.map +1 -0
- package/dist/lib/commands/plan-lint.d.ts +56 -0
- package/dist/lib/commands/plan-lint.d.ts.map +1 -0
- package/dist/lib/commands/plan-lint.js +481 -0
- package/dist/lib/commands/plan-lint.js.map +1 -0
- package/dist/lib/commands/plan-phase.d.ts +53 -0
- package/dist/lib/commands/plan-phase.d.ts.map +1 -0
- package/dist/lib/commands/plan-phase.js +288 -0
- package/dist/lib/commands/plan-phase.js.map +1 -0
- package/dist/lib/commands/progress.d.ts +2 -0
- package/dist/lib/commands/progress.d.ts.map +1 -0
- package/dist/lib/commands/progress.js +266 -0
- package/dist/lib/commands/progress.js.map +1 -0
- package/dist/lib/commands/quality.d.ts +2 -0
- package/dist/lib/commands/quality.d.ts.map +1 -0
- package/dist/lib/commands/quality.js +80 -0
- package/dist/lib/commands/quality.js.map +1 -0
- package/dist/lib/commands/rollback.d.ts +2 -0
- package/dist/lib/commands/rollback.d.ts.map +1 -0
- package/dist/lib/commands/rollback.js +145 -0
- package/dist/lib/commands/rollback.js.map +1 -0
- package/dist/lib/commands/scan.d.ts +25 -0
- package/dist/lib/commands/scan.d.ts.map +1 -0
- package/dist/lib/commands/scan.js +28 -0
- package/dist/lib/commands/scan.js.map +1 -0
- package/dist/lib/commands/search.d.ts +2 -0
- package/dist/lib/commands/search.d.ts.map +1 -0
- package/dist/lib/commands/search.js +212 -0
- package/dist/lib/commands/search.js.map +1 -0
- package/dist/lib/commands/select-candidate.d.ts +128 -0
- package/dist/lib/commands/select-candidate.d.ts.map +1 -0
- package/dist/lib/commands/select-candidate.js +518 -0
- package/dist/lib/commands/select-candidate.js.map +1 -0
- package/dist/lib/commands/singularity.d.ts +2 -0
- package/dist/lib/commands/singularity.d.ts.map +1 -0
- package/dist/lib/commands/singularity.js +185 -0
- package/dist/lib/commands/singularity.js.map +1 -0
- package/dist/lib/commands/slug-timestamp.d.ts +2 -0
- package/dist/lib/commands/slug-timestamp.d.ts.map +1 -0
- package/dist/lib/commands/slug-timestamp.js +54 -0
- package/dist/lib/commands/slug-timestamp.js.map +1 -0
- package/dist/lib/commands/tail.d.ts +2 -0
- package/dist/lib/commands/tail.d.ts.map +1 -0
- package/dist/lib/commands/tail.js +100 -0
- package/dist/lib/commands/tail.js.map +1 -0
- package/dist/lib/commands/todo.d.ts +2 -0
- package/dist/lib/commands/todo.d.ts.map +1 -0
- package/dist/lib/commands/todo.js +200 -0
- package/dist/lib/commands/todo.js.map +1 -0
- package/dist/lib/commands/watch.d.ts +2 -0
- package/dist/lib/commands/watch.d.ts.map +1 -0
- package/dist/lib/commands/watch.js +72 -0
- package/dist/lib/commands/watch.js.map +1 -0
- package/dist/lib/complexity.d.ts +55 -0
- package/dist/lib/complexity.d.ts.map +1 -0
- package/dist/lib/complexity.js +80 -0
- package/dist/lib/complexity.js.map +1 -0
- package/dist/lib/context/agents.d.ts +2 -0
- package/dist/lib/context/agents.d.ts.map +1 -0
- package/dist/lib/context/agents.js +344 -0
- package/dist/lib/context/agents.js.map +1 -0
- package/dist/lib/context/base.d.ts +2 -0
- package/dist/lib/context/base.d.ts.map +1 -0
- package/dist/lib/context/base.js +81 -0
- package/dist/lib/context/base.js.map +1 -0
- package/dist/lib/context/execute.d.ts +2 -0
- package/dist/lib/context/execute.d.ts.map +1 -0
- package/dist/lib/context/execute.js +753 -0
- package/dist/lib/context/execute.js.map +1 -0
- package/dist/lib/context/index.d.ts +2 -0
- package/dist/lib/context/index.d.ts.map +1 -0
- package/dist/lib/context/index.js +88 -0
- package/dist/lib/context/index.js.map +1 -0
- package/dist/lib/context/progress.d.ts +2 -0
- package/dist/lib/context/progress.d.ts.map +1 -0
- package/dist/lib/context/progress.js +178 -0
- package/dist/lib/context/progress.js.map +1 -0
- package/dist/lib/context/project.d.ts +2 -0
- package/dist/lib/context/project.d.ts.map +1 -0
- package/dist/lib/context/project.js +413 -0
- package/dist/lib/context/project.js.map +1 -0
- package/dist/lib/context/research.d.ts +2 -0
- package/dist/lib/context/research.d.ts.map +1 -0
- package/dist/lib/context/research.js +466 -0
- package/dist/lib/context/research.js.map +1 -0
- package/dist/lib/dead-ends.d.ts +28 -0
- package/dist/lib/dead-ends.d.ts.map +1 -0
- package/dist/lib/dead-ends.js +451 -0
- package/dist/lib/dead-ends.js.map +1 -0
- package/dist/lib/deps.d.ts +2 -0
- package/dist/lib/deps.d.ts.map +1 -0
- package/dist/lib/deps.js +630 -0
- package/dist/lib/deps.js.map +1 -0
- package/dist/lib/discussion.d.ts +2 -0
- package/dist/lib/discussion.d.ts.map +1 -0
- package/dist/lib/discussion.js +1041 -0
- package/dist/lib/discussion.js.map +1 -0
- package/dist/lib/drift.d.ts +36 -0
- package/dist/lib/drift.d.ts.map +1 -0
- package/dist/lib/drift.js +481 -0
- package/dist/lib/drift.js.map +1 -0
- package/dist/lib/evolve/_dimensions-features.d.ts +2 -0
- package/dist/lib/evolve/_dimensions-features.d.ts.map +1 -0
- package/dist/lib/evolve/_dimensions-features.js +369 -0
- package/dist/lib/evolve/_dimensions-features.js.map +1 -0
- package/dist/lib/evolve/_dimensions.d.ts +2 -0
- package/dist/lib/evolve/_dimensions.d.ts.map +1 -0
- package/dist/lib/evolve/_dimensions.js +358 -0
- package/dist/lib/evolve/_dimensions.js.map +1 -0
- package/dist/lib/evolve/_product-ideation.d.ts +2 -0
- package/dist/lib/evolve/_product-ideation.d.ts.map +1 -0
- package/dist/lib/evolve/_product-ideation.js +281 -0
- package/dist/lib/evolve/_product-ideation.js.map +1 -0
- package/dist/lib/evolve/_prompts.d.ts +2 -0
- package/dist/lib/evolve/_prompts.d.ts.map +1 -0
- package/dist/lib/evolve/_prompts.js +153 -0
- package/dist/lib/evolve/_prompts.js.map +1 -0
- package/dist/lib/evolve/cli.d.ts +2 -0
- package/dist/lib/evolve/cli.d.ts.map +1 -0
- package/dist/lib/evolve/cli.js +224 -0
- package/dist/lib/evolve/cli.js.map +1 -0
- package/dist/lib/evolve/discovery.d.ts +2 -0
- package/dist/lib/evolve/discovery.d.ts.map +1 -0
- package/dist/lib/evolve/discovery.js +391 -0
- package/dist/lib/evolve/discovery.js.map +1 -0
- package/dist/lib/evolve/index.d.ts +2 -0
- package/dist/lib/evolve/index.d.ts.map +1 -0
- package/dist/lib/evolve/index.js +88 -0
- package/dist/lib/evolve/index.js.map +1 -0
- package/dist/lib/evolve/orchestrator.d.ts +2 -0
- package/dist/lib/evolve/orchestrator.d.ts.map +1 -0
- package/dist/lib/evolve/orchestrator.js +851 -0
- package/dist/lib/evolve/orchestrator.js.map +1 -0
- package/dist/lib/evolve/scoring.d.ts +2 -0
- package/dist/lib/evolve/scoring.d.ts.map +1 -0
- package/dist/lib/evolve/scoring.js +118 -0
- package/dist/lib/evolve/scoring.js.map +1 -0
- package/dist/lib/evolve/state.d.ts +2 -0
- package/dist/lib/evolve/state.d.ts.map +1 -0
- package/dist/lib/evolve/state.js +264 -0
- package/dist/lib/evolve/state.js.map +1 -0
- package/dist/lib/evolve/types.d.ts +249 -0
- package/dist/lib/evolve/types.d.ts.map +1 -0
- package/dist/lib/evolve/types.js +3 -0
- package/dist/lib/evolve/types.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +2 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +513 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/gates.d.ts +2 -0
- package/dist/lib/gates.d.ts.map +1 -0
- package/dist/lib/gates.js +578 -0
- package/dist/lib/gates.js.map +1 -0
- package/dist/lib/genome.d.ts +10 -0
- package/dist/lib/genome.d.ts.map +1 -0
- package/dist/lib/genome.js +368 -0
- package/dist/lib/genome.js.map +1 -0
- package/dist/lib/got.d.ts +2 -0
- package/dist/lib/got.d.ts.map +1 -0
- package/dist/lib/got.js +280 -0
- package/dist/lib/got.js.map +1 -0
- package/dist/lib/invariants.d.ts +2 -0
- package/dist/lib/invariants.d.ts.map +1 -0
- package/dist/lib/invariants.js +298 -0
- package/dist/lib/invariants.js.map +1 -0
- package/dist/lib/knowledge.d.ts +2 -0
- package/dist/lib/knowledge.d.ts.map +1 -0
- package/dist/lib/knowledge.js +658 -0
- package/dist/lib/knowledge.js.map +1 -0
- package/dist/lib/long-term-roadmap.d.ts +2 -0
- package/dist/lib/long-term-roadmap.d.ts.map +1 -0
- package/dist/lib/long-term-roadmap.js +602 -0
- package/dist/lib/long-term-roadmap.js.map +1 -0
- package/dist/lib/markdown-split.d.ts +2 -0
- package/dist/lib/markdown-split.d.ts.map +1 -0
- package/dist/lib/markdown-split.js +199 -0
- package/dist/lib/markdown-split.js.map +1 -0
- package/dist/lib/mcp-server.d.ts +2 -0
- package/dist/lib/mcp-server.d.ts.map +1 -0
- package/dist/lib/mcp-server.js +2424 -0
- package/dist/lib/mcp-server.js.map +1 -0
- package/dist/lib/metrics.d.ts +16 -0
- package/dist/lib/metrics.d.ts.map +1 -0
- package/dist/lib/metrics.js +48 -0
- package/dist/lib/metrics.js.map +1 -0
- package/dist/lib/overstory.d.ts +2 -0
- package/dist/lib/overstory.d.ts.map +1 -0
- package/dist/lib/overstory.js +211 -0
- package/dist/lib/overstory.js.map +1 -0
- package/dist/lib/parallel.d.ts +2 -0
- package/dist/lib/parallel.d.ts.map +1 -0
- package/dist/lib/parallel.js +349 -0
- package/dist/lib/parallel.js.map +1 -0
- package/dist/lib/paths.d.ts +2 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +254 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/phase-complete-llm.d.ts +22 -0
- package/dist/lib/phase-complete-llm.d.ts.map +1 -0
- package/dist/lib/phase-complete-llm.js +331 -0
- package/dist/lib/phase-complete-llm.js.map +1 -0
- package/dist/lib/phase-complete.d.ts +46 -0
- package/dist/lib/phase-complete.d.ts.map +1 -0
- package/dist/lib/phase-complete.js +278 -0
- package/dist/lib/phase-complete.js.map +1 -0
- package/dist/lib/phase-io.d.ts +2 -0
- package/dist/lib/phase-io.d.ts.map +1 -0
- package/dist/lib/phase-io.js +126 -0
- package/dist/lib/phase-io.js.map +1 -0
- package/dist/lib/phase.d.ts +2 -0
- package/dist/lib/phase.d.ts.map +1 -0
- package/dist/lib/phase.js +1344 -0
- package/dist/lib/phase.js.map +1 -0
- package/dist/lib/plan-tournament.d.ts +63 -0
- package/dist/lib/plan-tournament.d.ts.map +1 -0
- package/dist/lib/plan-tournament.js +353 -0
- package/dist/lib/plan-tournament.js.map +1 -0
- package/dist/lib/refinement.d.ts +74 -0
- package/dist/lib/refinement.d.ts.map +1 -0
- package/dist/lib/refinement.js +283 -0
- package/dist/lib/refinement.js.map +1 -0
- package/dist/lib/requirements.d.ts +2 -0
- package/dist/lib/requirements.d.ts.map +1 -0
- package/dist/lib/requirements.js +355 -0
- package/dist/lib/requirements.js.map +1 -0
- package/dist/lib/research-bundle.d.ts +2 -0
- package/dist/lib/research-bundle.d.ts.map +1 -0
- package/dist/lib/research-bundle.js +246 -0
- package/dist/lib/research-bundle.js.map +1 -0
- package/dist/lib/roadmap.d.ts +2 -0
- package/dist/lib/roadmap.d.ts.map +1 -0
- package/dist/lib/roadmap.js +541 -0
- package/dist/lib/roadmap.js.map +1 -0
- package/dist/lib/sample.d.ts +16 -0
- package/dist/lib/sample.d.ts.map +1 -0
- package/dist/lib/sample.js +20 -0
- package/dist/lib/sample.js.map +1 -0
- package/dist/lib/scaffold.d.ts +2 -0
- package/dist/lib/scaffold.d.ts.map +1 -0
- package/dist/lib/scaffold.js +355 -0
- package/dist/lib/scaffold.js.map +1 -0
- package/dist/lib/scan/_utils.d.ts +11 -0
- package/dist/lib/scan/_utils.d.ts.map +1 -0
- package/dist/lib/scan/_utils.js +36 -0
- package/dist/lib/scan/_utils.js.map +1 -0
- package/dist/lib/scan/base64.d.ts +15 -0
- package/dist/lib/scan/base64.d.ts.map +1 -0
- package/dist/lib/scan/base64.js +66 -0
- package/dist/lib/scan/base64.js.map +1 -0
- package/dist/lib/scan/ignorefile.d.ts +30 -0
- package/dist/lib/scan/ignorefile.d.ts.map +1 -0
- package/dist/lib/scan/ignorefile.js +101 -0
- package/dist/lib/scan/ignorefile.js.map +1 -0
- package/dist/lib/scan/injection.d.ts +14 -0
- package/dist/lib/scan/injection.d.ts.map +1 -0
- package/dist/lib/scan/injection.js +39 -0
- package/dist/lib/scan/injection.js.map +1 -0
- package/dist/lib/scan/patterns.d.ts +17 -0
- package/dist/lib/scan/patterns.d.ts.map +1 -0
- package/dist/lib/scan/patterns.js +123 -0
- package/dist/lib/scan/patterns.js.map +1 -0
- package/dist/lib/scan/strip-markdown.d.ts +7 -0
- package/dist/lib/scan/strip-markdown.d.ts.map +1 -0
- package/dist/lib/scan/strip-markdown.js +38 -0
- package/dist/lib/scan/strip-markdown.js.map +1 -0
- package/dist/lib/scan/types.d.ts +23 -0
- package/dist/lib/scan/types.d.ts.map +1 -0
- package/dist/lib/scan/types.js +3 -0
- package/dist/lib/scan/types.js.map +1 -0
- package/dist/lib/scheduler-wait.d.ts +2 -0
- package/dist/lib/scheduler-wait.d.ts.map +1 -0
- package/dist/lib/scheduler-wait.js +59 -0
- package/dist/lib/scheduler-wait.js.map +1 -0
- package/dist/lib/scheduler.d.ts +254 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +1147 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/state.d.ts +2 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +744 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/think.d.ts +18 -0
- package/dist/lib/think.d.ts.map +1 -0
- package/dist/lib/think.js +317 -0
- package/dist/lib/think.js.map +1 -0
- package/dist/lib/tracker.d.ts +2 -0
- package/dist/lib/tracker.d.ts.map +1 -0
- package/dist/lib/tracker.js +1121 -0
- package/dist/lib/tracker.js.map +1 -0
- package/dist/lib/types.d.ts +1514 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +4 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +1363 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/verify.d.ts +2 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +1153 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/lib/wireup/autofix.d.ts +2 -0
- package/dist/lib/wireup/autofix.d.ts.map +1 -0
- package/dist/lib/wireup/autofix.js +188 -0
- package/dist/lib/wireup/autofix.js.map +1 -0
- package/dist/lib/wireup/cli.d.ts +2 -0
- package/dist/lib/wireup/cli.d.ts.map +1 -0
- package/dist/lib/wireup/cli.js +194 -0
- package/dist/lib/wireup/cli.js.map +1 -0
- package/dist/lib/wireup/detection.d.ts +47 -0
- package/dist/lib/wireup/detection.d.ts.map +1 -0
- package/dist/lib/wireup/detection.js +410 -0
- package/dist/lib/wireup/detection.js.map +1 -0
- package/dist/lib/wireup/discovery.d.ts +2 -0
- package/dist/lib/wireup/discovery.d.ts.map +1 -0
- package/dist/lib/wireup/discovery.js +934 -0
- package/dist/lib/wireup/discovery.js.map +1 -0
- package/dist/lib/wireup/execution.d.ts +2 -0
- package/dist/lib/wireup/execution.d.ts.map +1 -0
- package/dist/lib/wireup/execution.js +573 -0
- package/dist/lib/wireup/execution.js.map +1 -0
- package/dist/lib/wireup/index.d.ts +2 -0
- package/dist/lib/wireup/index.d.ts.map +1 -0
- package/dist/lib/wireup/index.js +85 -0
- package/dist/lib/wireup/index.js.map +1 -0
- package/dist/lib/wireup/orchestrator.d.ts +2 -0
- package/dist/lib/wireup/orchestrator.d.ts.map +1 -0
- package/dist/lib/wireup/orchestrator.js +366 -0
- package/dist/lib/wireup/orchestrator.js.map +1 -0
- package/dist/lib/wireup/report.d.ts +47 -0
- package/dist/lib/wireup/report.d.ts.map +1 -0
- package/dist/lib/wireup/report.js +201 -0
- package/dist/lib/wireup/report.js.map +1 -0
- package/dist/lib/wireup/scenarios.d.ts +2 -0
- package/dist/lib/wireup/scenarios.d.ts.map +1 -0
- package/dist/lib/wireup/scenarios.js +516 -0
- package/dist/lib/wireup/scenarios.js.map +1 -0
- package/dist/lib/wireup/state.d.ts +2 -0
- package/dist/lib/wireup/state.d.ts.map +1 -0
- package/dist/lib/wireup/state.js +102 -0
- package/dist/lib/wireup/state.js.map +1 -0
- package/dist/lib/wireup/types.d.ts +376 -0
- package/dist/lib/wireup/types.d.ts.map +1 -0
- package/dist/lib/wireup/types.js +3 -0
- package/dist/lib/wireup/types.js.map +1 -0
- package/dist/lib/worktree.d.ts +2 -0
- package/dist/lib/worktree.d.ts.map +1 -0
- package/dist/lib/worktree.js +999 -0
- package/dist/lib/worktree.js.map +1 -0
- package/lib/autopilot-milestone.ts +136 -0
- package/lib/autopilot-pipeline.ts +1179 -0
- package/lib/autopilot-waves.ts +361 -0
- package/lib/autopilot.ts +1874 -0
- package/lib/autoplan.ts +280 -0
- package/lib/autoresearch.js +4 -0
- package/lib/autoresearch.ts +886 -0
- package/lib/backend.ts +1252 -0
- package/lib/benchmark.ts +341 -0
- package/lib/citations.ts +760 -0
- package/lib/cleanup.ts +1588 -0
- package/lib/cli/adapters.ts +41 -0
- package/lib/cli/agent.ts +83 -0
- package/lib/cli/index.ts +273 -0
- package/lib/cli/output.ts +33 -0
- package/lib/cli/scan-dispatch.ts +130 -0
- package/lib/cli/tools.ts +198 -0
- package/lib/commands/_dashboard-parsers.ts +275 -0
- package/lib/commands/analysis.ts +1851 -0
- package/lib/commands/assumptions.ts +232 -0
- package/lib/commands/blame.ts +174 -0
- package/lib/commands/budget.ts +148 -0
- package/lib/commands/check-plans.ts +233 -0
- package/lib/commands/config.ts +287 -0
- package/lib/commands/dashboard.ts +680 -0
- package/lib/commands/estimate.ts +204 -0
- package/lib/commands/eval-diff.ts +252 -0
- package/lib/commands/freshness.ts +213 -0
- package/lib/commands/health.ts +607 -0
- package/lib/commands/index.ts +266 -0
- package/lib/commands/install.ts +307 -0
- package/lib/commands/knowhow-aggregator.ts +345 -0
- package/lib/commands/knowledge-search.ts +153 -0
- package/lib/commands/long-term-roadmap.ts +390 -0
- package/lib/commands/patterns.ts +465 -0
- package/lib/commands/phase-info.ts +698 -0
- package/lib/commands/plan-lint.ts +546 -0
- package/lib/commands/plan-phase.ts +375 -0
- package/lib/commands/progress.ts +319 -0
- package/lib/commands/quality.ts +138 -0
- package/lib/commands/rollback.ts +195 -0
- package/lib/commands/scan.ts +72 -0
- package/lib/commands/search.ts +300 -0
- package/lib/commands/select-candidate.ts +687 -0
- package/lib/commands/singularity.ts +222 -0
- package/lib/commands/slug-timestamp.ts +74 -0
- package/lib/commands/tail.ts +129 -0
- package/lib/commands/todo.ts +273 -0
- package/lib/commands/watch.ts +80 -0
- package/lib/complexity.ts +117 -0
- package/lib/context/agents.ts +505 -0
- package/lib/context/base.ts +123 -0
- package/lib/context/execute.ts +977 -0
- package/lib/context/index.ts +110 -0
- package/lib/context/progress.ts +278 -0
- package/lib/context/project.ts +531 -0
- package/lib/context/research.ts +646 -0
- package/lib/dead-ends.ts +506 -0
- package/lib/deps.ts +773 -0
- package/lib/discussion.ts +1275 -0
- package/lib/drift.ts +519 -0
- package/lib/evolve/_dimensions-features.ts +525 -0
- package/lib/evolve/_dimensions.ts +511 -0
- package/lib/evolve/_product-ideation.ts +405 -0
- package/lib/evolve/_prompts.ts +178 -0
- package/lib/evolve/cli.ts +330 -0
- package/lib/evolve/discovery.ts +571 -0
- package/lib/evolve/index.ts +105 -0
- package/lib/evolve/orchestrator.ts +1139 -0
- package/lib/evolve/scoring.ts +167 -0
- package/lib/evolve/state.ts +330 -0
- package/lib/evolve/types.ts +290 -0
- package/lib/frontmatter.ts +615 -0
- package/lib/gates.ts +695 -0
- package/lib/genome.ts +402 -0
- package/lib/got.js +4 -0
- package/lib/got.ts +361 -0
- package/lib/invariants.ts +378 -0
- package/lib/knowledge.ts +768 -0
- package/lib/long-term-roadmap.ts +806 -0
- package/lib/markdown-split.ts +273 -0
- package/lib/mcp-server.ts +3292 -0
- package/lib/metrics.ts +49 -0
- package/lib/overstory.ts +270 -0
- package/lib/parallel.ts +570 -0
- package/lib/paths.ts +293 -0
- package/lib/phase-complete-llm.ts +376 -0
- package/lib/phase-complete.ts +366 -0
- package/lib/phase-io.ts +101 -0
- package/lib/phase.ts +1981 -0
- package/lib/plan-tournament.ts +426 -0
- package/lib/refinement.ts +349 -0
- package/lib/requirements.ts +469 -0
- package/lib/research-bundle.ts +300 -0
- package/lib/roadmap.ts +775 -0
- package/lib/scaffold.ts +480 -0
- package/lib/scan/_utils.ts +37 -0
- package/lib/scan/base64.ts +90 -0
- package/lib/scan/ignorefile.ts +109 -0
- package/lib/scan/injection.ts +67 -0
- package/lib/scan/patterns.ts +139 -0
- package/lib/scan/strip-markdown.ts +39 -0
- package/lib/scan/types.ts +28 -0
- package/lib/scheduler-wait.ts +58 -0
- package/lib/scheduler.ts +1370 -0
- package/lib/state.ts +1000 -0
- package/lib/think.ts +365 -0
- package/lib/tracker.ts +1591 -0
- package/lib/types.ts +1663 -0
- package/lib/utils.ts +1479 -0
- package/lib/verify.ts +1434 -0
- package/lib/wireup/autofix.ts +241 -0
- package/lib/wireup/cli.ts +278 -0
- package/lib/wireup/detection.ts +542 -0
- package/lib/wireup/discovery.ts +1063 -0
- package/lib/wireup/execution.ts +686 -0
- package/lib/wireup/index.ts +117 -0
- package/lib/wireup/orchestrator.ts +519 -0
- package/lib/wireup/report.ts +286 -0
- package/lib/wireup/scenarios.ts +616 -0
- package/lib/wireup/state.ts +139 -0
- package/lib/wireup/types.ts +436 -0
- package/lib/worktree.ts +1309 -0
- package/package.json +67 -0
|
@@ -0,0 +1,1144 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Configure GRD workflow agents, model profile, git isolation, execution backend (overstory), execution teams, code review, confirmation gates, research gates, autonomous mode, and evolve settings
|
|
3
|
+
argument-hint: "[yolo | profile | ceremony | evolve | overstory]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<purpose>
|
|
7
|
+
Interactive configuration of all GRD settings via multi-question prompt: workflow agents (research, plan_check, verifier), model profile, git worktree isolation, execution backend (overstory), execution teams, code review (timing, severity, auto-fix), confirmation gates, research gates, autonomous mode, and tracker integration. Updates .planning/config.json with user preferences.
|
|
8
|
+
|
|
9
|
+
Supports quick toggle subcommands:
|
|
10
|
+
- `/grd:settings yolo [on|off|status]` — toggle autonomous mode (same as former /grd:yolo)
|
|
11
|
+
- `/grd:settings profile [quality|balanced|budget]` — switch model profile (same as former /grd:set-profile)
|
|
12
|
+
- `/grd:settings ceremony [full|standard|minimal]` — set default ceremony level
|
|
13
|
+
- `/grd:settings evolve [auto-commit|create-pr] [on|off|status]` — toggle evolve settings
|
|
14
|
+
- `/grd:settings overstory [runtime|merge|poll] [value]` — configure execution backend
|
|
15
|
+
- `/grd:settings` (no args) — full interactive settings flow
|
|
16
|
+
</purpose>
|
|
17
|
+
|
|
18
|
+
<required_reading>
|
|
19
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
20
|
+
</required_reading>
|
|
21
|
+
|
|
22
|
+
<process>
|
|
23
|
+
|
|
24
|
+
<step name="check_subcommand">
|
|
25
|
+
Parse `$ARGUMENTS` to check if the first argument matches a quick toggle subcommand.
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
FIRST_ARG = first word of $ARGUMENTS
|
|
29
|
+
REMAINING_ARGS = rest of $ARGUMENTS after first word
|
|
30
|
+
|
|
31
|
+
if FIRST_ARG == "yolo":
|
|
32
|
+
→ jump to <subcommand_yolo> with REMAINING_ARGS
|
|
33
|
+
elif FIRST_ARG == "profile":
|
|
34
|
+
→ jump to <subcommand_profile> with REMAINING_ARGS
|
|
35
|
+
elif FIRST_ARG == "ceremony":
|
|
36
|
+
→ jump to <subcommand_ceremony> with REMAINING_ARGS
|
|
37
|
+
elif FIRST_ARG == "evolve":
|
|
38
|
+
→ jump to <subcommand_evolve> with REMAINING_ARGS
|
|
39
|
+
elif FIRST_ARG == "overstory":
|
|
40
|
+
→ jump to <subcommand_overstory> with REMAINING_ARGS
|
|
41
|
+
else:
|
|
42
|
+
→ continue to full settings flow (ensure_and_load_config)
|
|
43
|
+
```
|
|
44
|
+
</step>
|
|
45
|
+
|
|
46
|
+
<subcommand_yolo>
|
|
47
|
+
## Subcommand: yolo [on | off | status]
|
|
48
|
+
|
|
49
|
+
Toggle autonomous/headless mode (YOLO mode). When enabled, the agent makes all decisions
|
|
50
|
+
without human input — research gates are bypassed, confirmation prompts are auto-approved,
|
|
51
|
+
interview questions are self-answered using available context, and decisions are logged
|
|
52
|
+
but not paused for approval.
|
|
53
|
+
|
|
54
|
+
CRITICAL: YOLO mode follows the same workflows but makes decisions itself rather than
|
|
55
|
+
asking the human. All decisions MUST be logged for post-hoc review.
|
|
56
|
+
|
|
57
|
+
### Step Y0: Parse arguments and load config
|
|
58
|
+
|
|
59
|
+
1. **Parse arguments**:
|
|
60
|
+
- `on`: enable YOLO mode
|
|
61
|
+
- `off`: disable YOLO mode
|
|
62
|
+
- `status`: show current mode without changing
|
|
63
|
+
- Empty: toggle (if on, turn off; if off, turn on)
|
|
64
|
+
|
|
65
|
+
2. **Load config**:
|
|
66
|
+
- Read `.planning/config.json`
|
|
67
|
+
- If missing: create with defaults (YOLO off)
|
|
68
|
+
- Parse current `autonomous_mode`, `research_gates`, `confirmation_gates`
|
|
69
|
+
|
|
70
|
+
3. **Determine action**:
|
|
71
|
+
```
|
|
72
|
+
CURRENT_MODE: {on | off}
|
|
73
|
+
REQUESTED_ACTION: {enable | disable | status | toggle}
|
|
74
|
+
TARGET_MODE: {on | off}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step Y1: Status display (always shown)
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
81
|
+
║ GRD >>> YOLO MODE ║
|
|
82
|
+
║ ║
|
|
83
|
+
║ Current: {ON — autonomous | OFF — interactive} ║
|
|
84
|
+
║ ║
|
|
85
|
+
║ Research gates: ║
|
|
86
|
+
║ survey_approval: {on/off} ║
|
|
87
|
+
║ deep_dive_approval: {on/off} ║
|
|
88
|
+
║ comparison_approval: {on/off} ║
|
|
89
|
+
║ feasibility_approval: {on/off} ║
|
|
90
|
+
║ verification_design: {on/off} ║
|
|
91
|
+
║ product_plan_approval: {on/off} ║
|
|
92
|
+
║ phase_plan_approval: {on/off} ║
|
|
93
|
+
║ execution_approval: {on/off} ║
|
|
94
|
+
║ ║
|
|
95
|
+
║ Confirmation gates: ║
|
|
96
|
+
║ commit_confirmation: {on/off} ║
|
|
97
|
+
║ file_deletion: {on/off} ║
|
|
98
|
+
║ phase_completion: {on/off} ║
|
|
99
|
+
║ target_adjustment: {on/off} ║
|
|
100
|
+
║ approach_change: {on/off} ║
|
|
101
|
+
║ ║
|
|
102
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
If action is `status`: stop here, display only.
|
|
106
|
+
|
|
107
|
+
### Step Y2: Enable YOLO mode (if target = on)
|
|
108
|
+
|
|
109
|
+
1. **Save pre-YOLO gate state** for restoration:
|
|
110
|
+
- Store current `research_gates` as `_saved_research_gates`
|
|
111
|
+
- Store current `confirmation_gates` as `_saved_confirmation_gates`
|
|
112
|
+
|
|
113
|
+
2. **Set autonomous mode**:
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"autonomous_mode": true,
|
|
117
|
+
"research_gates": {
|
|
118
|
+
"survey_approval": false,
|
|
119
|
+
"deep_dive_approval": false,
|
|
120
|
+
"comparison_approval": false,
|
|
121
|
+
"feasibility_approval": false,
|
|
122
|
+
"verification_design": false,
|
|
123
|
+
"product_plan_approval": false,
|
|
124
|
+
"phase_plan_approval": false,
|
|
125
|
+
"execution_approval": false
|
|
126
|
+
},
|
|
127
|
+
"confirmation_gates": {
|
|
128
|
+
"commit_confirmation": false,
|
|
129
|
+
"file_deletion": false,
|
|
130
|
+
"phase_completion": false,
|
|
131
|
+
"target_adjustment": false,
|
|
132
|
+
"approach_change": false
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
3. **Initialize decision log**:
|
|
138
|
+
- Create `.planning/yolo-decisions.log` if not exists
|
|
139
|
+
- Append session start entry:
|
|
140
|
+
```
|
|
141
|
+
=== YOLO SESSION START: {YYYY-MM-DD HH:MM:SS} ===
|
|
142
|
+
Previous gates saved. All gates disabled.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
4. **Display activation**:
|
|
146
|
+
```
|
|
147
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
148
|
+
║ ║
|
|
149
|
+
║ ██ ██ ██████ ██ ██████ ║
|
|
150
|
+
║ ██ ██ ██ ██ ██ ██ ██ ║
|
|
151
|
+
║ ████ ██ ██ ██ ██ ██ ║
|
|
152
|
+
║ ██ ██ ██ ██ ██ ██ ║
|
|
153
|
+
║ ██ ██████ ███████ ██████ ║
|
|
154
|
+
║ ║
|
|
155
|
+
║ AUTONOMOUS MODE: ENABLED ║
|
|
156
|
+
║ ║
|
|
157
|
+
║ All research gates: DISABLED ║
|
|
158
|
+
║ All confirmation gates: DISABLED ║
|
|
159
|
+
║ Decision logging: ENABLED ║
|
|
160
|
+
║ Decision log: .planning/yolo-decisions.log ║
|
|
161
|
+
║ ║
|
|
162
|
+
║ The agent will: ║
|
|
163
|
+
║ - Make all decisions without asking ║
|
|
164
|
+
║ - Self-answer interview questions from context ║
|
|
165
|
+
║ - Auto-approve all gates ║
|
|
166
|
+
║ - Log every decision for post-hoc review ║
|
|
167
|
+
║ ║
|
|
168
|
+
║ To disable: /grd:settings yolo off ║
|
|
169
|
+
║ ║
|
|
170
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Step Y3: Disable YOLO mode (if target = off)
|
|
174
|
+
|
|
175
|
+
1. **Restore saved gate states**:
|
|
176
|
+
- Read `_saved_research_gates` from config
|
|
177
|
+
- Read `_saved_confirmation_gates` from config
|
|
178
|
+
- If no saved state: use defaults
|
|
179
|
+
|
|
180
|
+
2. **Set interactive mode**:
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"autonomous_mode": false,
|
|
184
|
+
"research_gates": { ...restored_or_defaults... },
|
|
185
|
+
"confirmation_gates": { ...restored_or_defaults... }
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
3. **Close decision log session**:
|
|
190
|
+
- Append to `.planning/yolo-decisions.log`:
|
|
191
|
+
```
|
|
192
|
+
=== YOLO SESSION END: {YYYY-MM-DD HH:MM:SS} ===
|
|
193
|
+
Decisions made this session: {count}
|
|
194
|
+
Gates restored to previous state.
|
|
195
|
+
===
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
4. **Display deactivation**:
|
|
199
|
+
```
|
|
200
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
201
|
+
║ GRD >>> YOLO MODE DISABLED ║
|
|
202
|
+
║ ║
|
|
203
|
+
║ AUTONOMOUS MODE: OFF ║
|
|
204
|
+
║ ║
|
|
205
|
+
║ Research gates: RESTORED to previous state ║
|
|
206
|
+
║ Confirmation gates: RESTORED to previous state ║
|
|
207
|
+
║ ║
|
|
208
|
+
║ Decisions made during YOLO session: {count} ║
|
|
209
|
+
║ Review log: .planning/yolo-decisions.log ║
|
|
210
|
+
║ ║
|
|
211
|
+
║ The agent will now pause at gates for human approval. ║
|
|
212
|
+
║ ║
|
|
213
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Step Y4: Write config and optional commit
|
|
217
|
+
|
|
218
|
+
1. **Update `.planning/config.json`**:
|
|
219
|
+
- Merge new settings into existing config
|
|
220
|
+
- Preserve all non-gate settings
|
|
221
|
+
- Write atomically (write temp file, rename)
|
|
222
|
+
|
|
223
|
+
2. **Validate config after write**:
|
|
224
|
+
- Re-read and parse to confirm valid JSON
|
|
225
|
+
- Verify autonomous_mode matches target
|
|
226
|
+
|
|
227
|
+
3. **Optional commit** (if changes were made):
|
|
228
|
+
```bash
|
|
229
|
+
git add .planning/config.json
|
|
230
|
+
git add .planning/yolo-decisions.log 2>/dev/null
|
|
231
|
+
git commit -m "config: {enable|disable} YOLO autonomous mode"
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**DONE — exit command after subcommand completes.**
|
|
235
|
+
</subcommand_yolo>
|
|
236
|
+
|
|
237
|
+
<yolo_decision_logging_protocol>
|
|
238
|
+
When YOLO mode is active, ALL other GRD workflows MUST log decisions to
|
|
239
|
+
`.planning/yolo-decisions.log` using this format:
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
[{YYYY-MM-DD HH:MM:SS}] WORKFLOW={workflow_name} DECISION={decision_type}
|
|
243
|
+
Context: {brief context for the decision}
|
|
244
|
+
Options: {what options were available}
|
|
245
|
+
Chosen: {what was chosen}
|
|
246
|
+
Rationale: {why this option was selected}
|
|
247
|
+
Confidence: {HIGH|MEDIUM|LOW}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Decision types to log:
|
|
251
|
+
- GATE_BYPASS: a research or confirmation gate was auto-approved
|
|
252
|
+
- SELF_ANSWER: an interview question was answered from context
|
|
253
|
+
- APPROACH_SELECT: an approach/method was selected
|
|
254
|
+
- TARGET_SET: a target or threshold was decided
|
|
255
|
+
- SCOPE_DECISION: scope was expanded or narrowed
|
|
256
|
+
- ERROR_RECOVERY: an error was handled automatically
|
|
257
|
+
- ITERATION_DECISION: iterate/skip/adjust was decided
|
|
258
|
+
</yolo_decision_logging_protocol>
|
|
259
|
+
|
|
260
|
+
<subcommand_profile>
|
|
261
|
+
## Subcommand: profile [quality | balanced | budget]
|
|
262
|
+
|
|
263
|
+
Switch the model profile used by GRD agents. Controls which Claude model each agent uses, balancing quality vs token spend.
|
|
264
|
+
|
|
265
|
+
### Step P0: Validate argument
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
if REMAINING_ARGS not in ["quality", "balanced", "budget"]:
|
|
269
|
+
Error: Invalid profile "REMAINING_ARGS"
|
|
270
|
+
Valid profiles: quality, balanced, budget
|
|
271
|
+
EXIT
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Step P1: Ensure and load config
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js config-ensure-section
|
|
278
|
+
INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js state load)
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Step P2: Update config
|
|
282
|
+
|
|
283
|
+
Update `model_profile` field in `.planning/config.json`:
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"model_profile": "REMAINING_ARGS"
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Step P3: Display confirmation
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
Model profile set to: {profile}
|
|
294
|
+
|
|
295
|
+
Agents will now use:
|
|
296
|
+
|
|
297
|
+
[Show table from MODEL_PROFILES in grd-tools.js for selected profile]
|
|
298
|
+
|
|
299
|
+
Example:
|
|
300
|
+
| Agent | Model |
|
|
301
|
+
|-------|-------|
|
|
302
|
+
| grd-planner | opus |
|
|
303
|
+
| grd-executor | sonnet |
|
|
304
|
+
| grd-verifier | haiku |
|
|
305
|
+
| ... | ... |
|
|
306
|
+
|
|
307
|
+
Next spawned agents will use the new profile.
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Map profile names:
|
|
311
|
+
- quality: use "quality" column from MODEL_PROFILES
|
|
312
|
+
- balanced: use "balanced" column from MODEL_PROFILES
|
|
313
|
+
- budget: use "budget" column from MODEL_PROFILES
|
|
314
|
+
|
|
315
|
+
**DONE — exit command after subcommand completes.**
|
|
316
|
+
</subcommand_profile>
|
|
317
|
+
|
|
318
|
+
<subcommand_ceremony>
|
|
319
|
+
## Subcommand: ceremony [full | standard | minimal]
|
|
320
|
+
|
|
321
|
+
Set the default ceremony level for GRD workflows.
|
|
322
|
+
|
|
323
|
+
### Step C0: Validate argument
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
if REMAINING_ARGS not in ["full", "standard", "minimal"]:
|
|
327
|
+
Error: Invalid ceremony level "REMAINING_ARGS"
|
|
328
|
+
Valid levels: full, standard, minimal
|
|
329
|
+
EXIT
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Step C1: Ensure and load config
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js config-ensure-section
|
|
336
|
+
INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js state load)
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Step C2: Update config
|
|
340
|
+
|
|
341
|
+
Update `ceremony` field in `.planning/config.json`:
|
|
342
|
+
```json
|
|
343
|
+
{
|
|
344
|
+
"ceremony": "REMAINING_ARGS"
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Ceremony level effects:
|
|
349
|
+
- **full**: All agents spawned, all gates active, full documentation
|
|
350
|
+
- **standard**: Default agents, standard gates, normal documentation
|
|
351
|
+
- **minimal**: Skip optional agents, minimal gates, lean documentation
|
|
352
|
+
|
|
353
|
+
### Step C3: Display confirmation
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
357
|
+
GRD ► CEREMONY LEVEL: {LEVEL}
|
|
358
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
359
|
+
|
|
360
|
+
| Aspect | Setting |
|
|
361
|
+
|-----------------|---------|
|
|
362
|
+
| Optional Agents | {all/default/skip} |
|
|
363
|
+
| Gate Checks | {all/standard/minimal} |
|
|
364
|
+
| Documentation | {full/normal/lean} |
|
|
365
|
+
|
|
366
|
+
This applies to future /grd:plan-phase and /grd:execute-phase runs.
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
**DONE — exit command after subcommand completes.**
|
|
370
|
+
</subcommand_ceremony>
|
|
371
|
+
|
|
372
|
+
<subcommand_evolve>
|
|
373
|
+
## Subcommand: evolve [auto-commit | create-pr] [on | off | status]
|
|
374
|
+
|
|
375
|
+
Configure evolve command settings: auto-commit per iteration and PR creation.
|
|
376
|
+
|
|
377
|
+
### Step E0: Parse arguments
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
SETTING = first word of REMAINING_ARGS (auto-commit | create-pr)
|
|
381
|
+
ACTION = second word of REMAINING_ARGS (on | off | status | empty)
|
|
382
|
+
|
|
383
|
+
if SETTING is empty:
|
|
384
|
+
→ show all evolve settings (status mode)
|
|
385
|
+
elif SETTING not in ["auto-commit", "create-pr"]:
|
|
386
|
+
Error: Invalid evolve setting "SETTING"
|
|
387
|
+
Valid settings: auto-commit, create-pr
|
|
388
|
+
EXIT
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### Step E1: Load config
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js config-ensure-section
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
Read `.planning/config.json` and parse `evolve` section (defaults: `auto_commit: true`, `create_pr: true`).
|
|
398
|
+
|
|
399
|
+
### Step E2: Display status
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
403
|
+
GRD ► EVOLVE SETTINGS
|
|
404
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
405
|
+
|
|
406
|
+
| Setting | Value |
|
|
407
|
+
|---------------|-------|
|
|
408
|
+
| Auto-commit | {ON/OFF} |
|
|
409
|
+
| Create PR | {ON/OFF} |
|
|
410
|
+
|
|
411
|
+
Auto-commit: Automatically commit changes after each evolve iteration.
|
|
412
|
+
Create PR: Push branch and create a pull request after all iterations complete.
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
If ACTION is `status` or SETTING is empty: stop here, display only.
|
|
416
|
+
|
|
417
|
+
### Step E3: Update setting
|
|
418
|
+
|
|
419
|
+
Map SETTING to config key:
|
|
420
|
+
- `auto-commit` → `evolve.auto_commit`
|
|
421
|
+
- `create-pr` → `evolve.create_pr`
|
|
422
|
+
|
|
423
|
+
Map ACTION:
|
|
424
|
+
- `on` → `true`
|
|
425
|
+
- `off` → `false`
|
|
426
|
+
- empty → toggle current value
|
|
427
|
+
|
|
428
|
+
Update `.planning/config.json`:
|
|
429
|
+
```json
|
|
430
|
+
{
|
|
431
|
+
"evolve": {
|
|
432
|
+
"auto_commit": true/false,
|
|
433
|
+
"create_pr": true/false
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Step E4: Display confirmation
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
442
|
+
GRD ► EVOLVE: {SETTING} set to {ON/OFF}
|
|
443
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
444
|
+
|
|
445
|
+
Updated .planning/config.json
|
|
446
|
+
|
|
447
|
+
Quick commands:
|
|
448
|
+
- /grd:settings evolve — show all evolve settings
|
|
449
|
+
- /grd:settings evolve auto-commit [on|off] — toggle auto-commit
|
|
450
|
+
- /grd:settings evolve create-pr [on|off] — toggle PR creation
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
**DONE — exit command after subcommand completes.**
|
|
454
|
+
</subcommand_evolve>
|
|
455
|
+
|
|
456
|
+
<subcommand_overstory>
|
|
457
|
+
## Subcommand: overstory [runtime | merge | poll]
|
|
458
|
+
|
|
459
|
+
Configure Overstory execution backend settings.
|
|
460
|
+
|
|
461
|
+
### Step O0: Parse arguments
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
SETTING = first word of REMAINING_ARGS (runtime | merge | poll)
|
|
465
|
+
VALUE = second word of REMAINING_ARGS
|
|
466
|
+
|
|
467
|
+
if SETTING is empty:
|
|
468
|
+
→ show all overstory settings (status mode)
|
|
469
|
+
elif SETTING not in ["runtime", "merge", "poll"]:
|
|
470
|
+
Error: Invalid overstory setting "SETTING"
|
|
471
|
+
Valid settings: runtime, merge, poll
|
|
472
|
+
EXIT
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### Step O1: Load config
|
|
476
|
+
|
|
477
|
+
```bash
|
|
478
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js config-ensure-section
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
Read `.planning/config.json` and parse `overstory` section (defaults: `runtime: "claude"`, `poll_interval_ms: 5000`, `merge_strategy: "auto"`, `install_prompt: true`, `overlay_template: null`).
|
|
482
|
+
|
|
483
|
+
### Step O2: Display status
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
487
|
+
GRD ► OVERSTORY SETTINGS
|
|
488
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
489
|
+
|
|
490
|
+
| Setting | Value |
|
|
491
|
+
|----------------|-------|
|
|
492
|
+
| Runtime | {overstory.runtime} |
|
|
493
|
+
| Merge Strategy | {overstory.merge_strategy} |
|
|
494
|
+
| Poll Interval | {overstory.poll_interval_ms}ms |
|
|
495
|
+
| Install Prompt | {overstory.install_prompt} |
|
|
496
|
+
|
|
497
|
+
Runtime: Overstory runtime adapter for workers (claude, codex, pi, copilot, cursor).
|
|
498
|
+
Merge Strategy: auto = FIFO merge queue, manual = prompt per agent.
|
|
499
|
+
Poll Interval: Status polling frequency during wave execution (ms).
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
If SETTING is empty: stop here, display only.
|
|
503
|
+
|
|
504
|
+
### Step O3: Update setting
|
|
505
|
+
|
|
506
|
+
```
|
|
507
|
+
if SETTING == "runtime":
|
|
508
|
+
if VALUE is empty: Error: "Usage: /grd:settings overstory runtime <name>"
|
|
509
|
+
→ update overstory.runtime = VALUE in config.json
|
|
510
|
+
|
|
511
|
+
elif SETTING == "merge":
|
|
512
|
+
if VALUE not in ["auto", "manual"]: Error: "Valid values: auto, manual"
|
|
513
|
+
→ update overstory.merge_strategy = VALUE in config.json
|
|
514
|
+
|
|
515
|
+
elif SETTING == "poll":
|
|
516
|
+
if VALUE is not a number or VALUE < 1000: Error: "Poll interval must be >= 1000ms"
|
|
517
|
+
→ update overstory.poll_interval_ms = NUMBER(VALUE) in config.json
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
### Step O4: Confirm
|
|
521
|
+
|
|
522
|
+
Display updated value and confirm:
|
|
523
|
+
```
|
|
524
|
+
✓ overstory.{SETTING} updated to {VALUE}
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
**DONE — exit command after subcommand completes.**
|
|
528
|
+
</subcommand_overstory>
|
|
529
|
+
|
|
530
|
+
<step name="ensure_and_load_config">
|
|
531
|
+
```bash
|
|
532
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js config-ensure-section
|
|
533
|
+
INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js state load)
|
|
534
|
+
```
|
|
535
|
+
</step>
|
|
536
|
+
|
|
537
|
+
<step name="read_current">
|
|
538
|
+
```bash
|
|
539
|
+
cat .planning/config.json
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
Parse current values:
|
|
543
|
+
- `workflow.research` — spawn researcher during plan-phase (default: `true`)
|
|
544
|
+
- `workflow.plan_check` — spawn plan checker during plan-phase (default: `true`)
|
|
545
|
+
- `workflow.verifier` — spawn verifier during execute-phase (default: `true`)
|
|
546
|
+
- `model_profile` — which model each agent uses (default: `"balanced"`)
|
|
547
|
+
- `git.branching_strategy` — branching approach (default: `"none"`)
|
|
548
|
+
- `git.worktree_dir` — worktree directory location (default: `".worktrees/"`)
|
|
549
|
+
- `git.default_completion_action` — action after phase execution (default: `"ask"`)
|
|
550
|
+
- `autonomous_mode` — YOLO mode, skip all gates (default: `false`)
|
|
551
|
+
- `execution.use_teams` — parallel teammate execution (default: `false`)
|
|
552
|
+
- `execution.max_concurrent_teammates` — max teammates when teams enabled (default: `4`)
|
|
553
|
+
- `code_review.enabled` — whether auto code review is on (default: `true`)
|
|
554
|
+
- `code_review.timing` — review timing: per_wave or per_phase (default: `"per_wave"`)
|
|
555
|
+
- `code_review.severity_gate` — minimum severity to block (default: `"blocker"`)
|
|
556
|
+
- `code_review.auto_fix_warnings` — auto-fix warning-level findings (default: `false`)
|
|
557
|
+
- `confirmation_gates.commit_confirmation` — confirm before git commit (default: `false`)
|
|
558
|
+
- `confirmation_gates.file_deletion` — confirm before deleting files (default: `false`)
|
|
559
|
+
- `confirmation_gates.phase_completion` — confirm before marking phase complete (default: `false`)
|
|
560
|
+
- `confirmation_gates.target_adjustment` — confirm before adjusting eval targets (default: `false`)
|
|
561
|
+
- `confirmation_gates.approach_change` — confirm before changing approach (default: `false`)
|
|
562
|
+
- `research_gates.verification_design` — pause for EVAL.md review (default: `false`)
|
|
563
|
+
- `research_gates.method_selection` — pause for method choice review (default: `false`)
|
|
564
|
+
- `research_gates.baseline_review` — pause for baseline review (default: `false`)
|
|
565
|
+
- `overstory.runtime` — execution backend runtime adapter (default: `"claude"`)
|
|
566
|
+
- `overstory.merge_strategy` — merge strategy for agent results (default: `"auto"`)
|
|
567
|
+
- `overstory.poll_interval_ms` — status polling frequency in ms (default: `5000`)
|
|
568
|
+
</step>
|
|
569
|
+
|
|
570
|
+
<step name="present_settings">
|
|
571
|
+
Use AskUserQuestion with current values pre-selected:
|
|
572
|
+
|
|
573
|
+
```
|
|
574
|
+
AskUserQuestion([
|
|
575
|
+
{
|
|
576
|
+
question: "Which model profile for agents?",
|
|
577
|
+
header: "Model",
|
|
578
|
+
multiSelect: false,
|
|
579
|
+
options: [
|
|
580
|
+
{ label: "Quality", description: "Opus everywhere except verification (highest cost)" },
|
|
581
|
+
{ label: "Balanced (Recommended)", description: "Opus for planning, Sonnet for execution/verification" },
|
|
582
|
+
{ label: "Budget", description: "Sonnet for writing, Haiku for research/verification (lowest cost)" }
|
|
583
|
+
]
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
question: "Spawn Plan Researcher? (researches domain before planning)",
|
|
587
|
+
header: "Research",
|
|
588
|
+
multiSelect: false,
|
|
589
|
+
options: [
|
|
590
|
+
{ label: "Yes", description: "Research phase goals before planning" },
|
|
591
|
+
{ label: "No", description: "Skip research, plan directly" }
|
|
592
|
+
]
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
question: "Spawn Plan Checker? (verifies plans before execution)",
|
|
596
|
+
header: "Plan Check",
|
|
597
|
+
multiSelect: false,
|
|
598
|
+
options: [
|
|
599
|
+
{ label: "Yes", description: "Verify plans meet phase goals" },
|
|
600
|
+
{ label: "No", description: "Skip plan verification" }
|
|
601
|
+
]
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
question: "Spawn Execution Verifier? (verifies phase completion)",
|
|
605
|
+
header: "Verifier",
|
|
606
|
+
multiSelect: false,
|
|
607
|
+
options: [
|
|
608
|
+
{ label: "Yes", description: "Verify must-haves after execution" },
|
|
609
|
+
{ label: "No", description: "Skip post-execution verification" }
|
|
610
|
+
]
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
question: "Use worktree isolation for phase execution?",
|
|
614
|
+
header: "Git Isolation",
|
|
615
|
+
multiSelect: false,
|
|
616
|
+
options: [
|
|
617
|
+
{ label: "Yes", description: "Each phase runs in a separate git worktree (recommended for active development)" },
|
|
618
|
+
{ label: "No (Default)", description: "Execute directly on current branch, no isolation" }
|
|
619
|
+
]
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
question: "Enable autonomous (YOLO) mode?",
|
|
623
|
+
header: "Autonomous Mode",
|
|
624
|
+
multiSelect: false,
|
|
625
|
+
options: [
|
|
626
|
+
{ label: "No (Recommended)", description: "Confirm at decision points" },
|
|
627
|
+
{ label: "Yes", description: "Agent makes all decisions, skip all gates" }
|
|
628
|
+
]
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
question: "Use Agent Teams for parallel plan execution?",
|
|
632
|
+
header: "Execution Teams",
|
|
633
|
+
multiSelect: false,
|
|
634
|
+
options: [
|
|
635
|
+
{ label: "No (Default)", description: "Execute plans sequentially in a single agent" },
|
|
636
|
+
{ label: "Yes", description: "Spawn parallel teammate agents for each wave" }
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
question: "Execution backend for parallel workers?",
|
|
641
|
+
header: "Exec Backend",
|
|
642
|
+
multiSelect: false,
|
|
643
|
+
options: [
|
|
644
|
+
{ label: "GRD (Default)", description: "Use GRD's own commands/skills with the configured AI backend" },
|
|
645
|
+
{ label: "Superpowers", description: "Use Superpowers plugin system — multi-account rotation across AI backends" },
|
|
646
|
+
{ label: "Overstory", description: "Use Overstory multi-agent orchestration (tmux + git worktrees)" },
|
|
647
|
+
{ label: "Claude Code", description: "Use Claude Code native teammates directly" },
|
|
648
|
+
{ label: "Codex", description: "Use OpenAI Codex CLI" },
|
|
649
|
+
{ label: "Gemini", description: "Use Google Gemini CLI" },
|
|
650
|
+
{ label: "OpenCode", description: "Use OpenCode CLI (provider-agnostic)" }
|
|
651
|
+
]
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
question: "Automatic code review timing?",
|
|
655
|
+
header: "Code Review",
|
|
656
|
+
multiSelect: false,
|
|
657
|
+
options: [
|
|
658
|
+
{ label: "Per Wave (Default)", description: "Review after each execution wave completes" },
|
|
659
|
+
{ label: "Per Phase", description: "Review once after entire phase execution" },
|
|
660
|
+
{ label: "Disabled", description: "No automatic code review" }
|
|
661
|
+
]
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
question: "Minimum severity to block execution?",
|
|
665
|
+
header: "Review Severity Gate",
|
|
666
|
+
multiSelect: false,
|
|
667
|
+
options: [
|
|
668
|
+
{ label: "Blocker (Default)", description: "Only blockers halt execution" },
|
|
669
|
+
{ label: "Critical", description: "Blockers and critical issues halt execution" },
|
|
670
|
+
{ label: "Warning", description: "All non-info issues halt execution" }
|
|
671
|
+
]
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
question: "Auto-fix warnings found during code review?",
|
|
675
|
+
header: "Auto-fix Warnings",
|
|
676
|
+
multiSelect: false,
|
|
677
|
+
options: [
|
|
678
|
+
{ label: "No (Default)", description: "Report warnings but do not auto-fix" },
|
|
679
|
+
{ label: "Yes", description: "Automatically fix warning-level review findings" }
|
|
680
|
+
]
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
question: "Confirmation gates — pause for human approval at these points?",
|
|
684
|
+
header: "Confirmation Gates",
|
|
685
|
+
multiSelect: true,
|
|
686
|
+
options: [
|
|
687
|
+
{ label: "Commit Confirmation", description: "Confirm before each git commit" },
|
|
688
|
+
{ label: "File Deletion", description: "Confirm before deleting files" },
|
|
689
|
+
{ label: "Phase Completion", description: "Confirm before marking phase complete" },
|
|
690
|
+
{ label: "Target Adjustment", description: "Confirm before adjusting evaluation targets" },
|
|
691
|
+
{ label: "Approach Change", description: "Confirm before changing implementation approach" }
|
|
692
|
+
]
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
question: "Research gates — pause for human review at these checkpoints?",
|
|
696
|
+
header: "Research Gates",
|
|
697
|
+
multiSelect: true,
|
|
698
|
+
options: [
|
|
699
|
+
{ label: "Verification Design", description: "Review EVAL.md before execution" },
|
|
700
|
+
{ label: "Method Selection", description: "Review method choice before planning" },
|
|
701
|
+
{ label: "Baseline Review", description: "Review baseline assessment before setting targets" }
|
|
702
|
+
]
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
question: "Issue tracker provider?",
|
|
706
|
+
header: "Tracker",
|
|
707
|
+
multiSelect: false,
|
|
708
|
+
options: [
|
|
709
|
+
{ label: "None (Recommended)", description: "No tracker integration" },
|
|
710
|
+
{ label: "GitHub Issues", description: "Sync phases/plans to GitHub Issues (requires gh CLI)" },
|
|
711
|
+
{ label: "Jira", description: "Sync phases/plans to Jira (requires API token or OAuth)" }
|
|
712
|
+
]
|
|
713
|
+
}
|
|
714
|
+
])
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
**Conditional: Worktree sub-options (if user selected "Yes" for Git Isolation)**
|
|
718
|
+
|
|
719
|
+
If user selected "Yes" for Git Isolation, ask follow-up questions:
|
|
720
|
+
|
|
721
|
+
```
|
|
722
|
+
AskUserQuestion([
|
|
723
|
+
{
|
|
724
|
+
question: "Worktree directory location?",
|
|
725
|
+
header: "Worktree Directory",
|
|
726
|
+
multiSelect: false,
|
|
727
|
+
options: [
|
|
728
|
+
{ label: ".worktrees/ (Default)", description: "Project-local .worktrees/ directory" },
|
|
729
|
+
{ label: "Custom", description: "Specify a custom directory path" }
|
|
730
|
+
]
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
question: "Default action when phase execution completes?",
|
|
734
|
+
header: "Completion Action",
|
|
735
|
+
multiSelect: false,
|
|
736
|
+
options: [
|
|
737
|
+
{ label: "Ask each time (Default)", description: "Present merge/PR/keep/discard options after execution" },
|
|
738
|
+
{ label: "Merge locally", description: "Auto-merge worktree branch into base branch" },
|
|
739
|
+
{ label: "Create PR", description: "Auto-push and create pull request" },
|
|
740
|
+
{ label: "Keep branch", description: "Leave worktree in place for manual review" }
|
|
741
|
+
]
|
|
742
|
+
}
|
|
743
|
+
])
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
If "Custom" is selected for Worktree Directory, prompt the user for the custom directory path (free-text input).
|
|
747
|
+
|
|
748
|
+
**Conditional: Execution Teams sub-options (if user selected "Yes" for Execution Teams)**
|
|
749
|
+
|
|
750
|
+
If user selected "Yes" for Execution Teams, ask follow-up question:
|
|
751
|
+
|
|
752
|
+
```
|
|
753
|
+
AskUserQuestion([
|
|
754
|
+
{
|
|
755
|
+
question: "Maximum concurrent teammates?",
|
|
756
|
+
header: "Team Size",
|
|
757
|
+
multiSelect: false,
|
|
758
|
+
options: [
|
|
759
|
+
{ label: "2", description: "Conservative — lower resource usage" },
|
|
760
|
+
{ label: "4 (Default)", description: "Balanced concurrency" },
|
|
761
|
+
{ label: "6", description: "Higher parallelism for large phases" }
|
|
762
|
+
]
|
|
763
|
+
}
|
|
764
|
+
])
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
**AI Account Configuration (shown when user mentions accounts, rotation, rate limits, or AI service credentials)**
|
|
768
|
+
|
|
769
|
+
Works regardless of execution backend. Only the user knows which accounts they have — do NOT try to guess from filesystem patterns.
|
|
770
|
+
|
|
771
|
+
**Step 1: Read current config and detect installed CLIs.**
|
|
772
|
+
|
|
773
|
+
```bash
|
|
774
|
+
# What's currently configured?
|
|
775
|
+
cat .planning/config.json 2>/dev/null | node -e "
|
|
776
|
+
const d=require('fs').readFileSync('/dev/stdin','utf-8');
|
|
777
|
+
try { const c=JSON.parse(d);
|
|
778
|
+
if(c.superpowers?.accounts) console.log('CURRENT:', JSON.stringify(c.superpowers.accounts));
|
|
779
|
+
else console.log('CURRENT: none');
|
|
780
|
+
} catch { console.log('CURRENT: none'); }
|
|
781
|
+
"
|
|
782
|
+
|
|
783
|
+
# Which CLIs are installed?
|
|
784
|
+
which claude 2>/dev/null && echo "DETECTED: claude"
|
|
785
|
+
which codex 2>/dev/null && echo "DETECTED: codex"
|
|
786
|
+
which gemini 2>/dev/null && echo "DETECTED: gemini"
|
|
787
|
+
which opencode 2>/dev/null && echo "DETECTED: opencode"
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
**Step 2: Show current state, then ask.**
|
|
791
|
+
|
|
792
|
+
If accounts are already configured, show them first:
|
|
793
|
+
|
|
794
|
+
```
|
|
795
|
+
Current account setup:
|
|
796
|
+
claude: 2 accounts (rotation enabled)
|
|
797
|
+
1. ~/.claude
|
|
798
|
+
2. ~/.claude-personal
|
|
799
|
+
Priority: claude
|
|
800
|
+
Fallback: wait for recovery
|
|
801
|
+
|
|
802
|
+
Installed CLIs: claude, codex
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
Then ask:
|
|
806
|
+
|
|
807
|
+
```
|
|
808
|
+
AskUserQuestion([
|
|
809
|
+
{
|
|
810
|
+
header: "Account Configuration",
|
|
811
|
+
question: "What would you like to change?",
|
|
812
|
+
multiSelect: false,
|
|
813
|
+
options: [
|
|
814
|
+
{ label: "Add an account", description: "Add a new account for an existing or new backend" },
|
|
815
|
+
{ label: "Remove an account", description: "Remove a configured account" },
|
|
816
|
+
{ label: "Change priority order", description: "Reorder which backend/account is tried first" },
|
|
817
|
+
{ label: "Reconfigure from scratch", description: "Start the account setup fresh" },
|
|
818
|
+
{ label: "Disable rotation", description: "Go back to single-account mode" }
|
|
819
|
+
]
|
|
820
|
+
}
|
|
821
|
+
])
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
If NO accounts configured yet, use the same interview flow as `gd init` Round 5 (Steps 5b through 5g from init.md).
|
|
825
|
+
|
|
826
|
+
**Step 3: "Add an account" flow.**
|
|
827
|
+
|
|
828
|
+
```
|
|
829
|
+
AskUserQuestion([
|
|
830
|
+
{
|
|
831
|
+
header: "Add Account",
|
|
832
|
+
question: "Which AI backend is this account for?",
|
|
833
|
+
multiSelect: false,
|
|
834
|
+
options: [
|
|
835
|
+
// Only show installed CLIs:
|
|
836
|
+
{ label: "Claude" },
|
|
837
|
+
{ label: "Codex" }
|
|
838
|
+
]
|
|
839
|
+
}
|
|
840
|
+
])
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
Then:
|
|
844
|
+
|
|
845
|
+
```
|
|
846
|
+
What's the config directory path for this account?
|
|
847
|
+
|
|
848
|
+
[Enter path, e.g. ~/.claude-work]
|
|
849
|
+
|
|
850
|
+
ℹ To authenticate this account:
|
|
851
|
+
CLAUDE_CONFIG_DIR=<your-path> claude auth login
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
Validate the path, add to the existing accounts array in config.json, confirm.
|
|
855
|
+
|
|
856
|
+
**Step 4: "Remove an account" flow.**
|
|
857
|
+
|
|
858
|
+
Show numbered list of current accounts, let user pick which to remove:
|
|
859
|
+
|
|
860
|
+
```
|
|
861
|
+
AskUserQuestion([
|
|
862
|
+
{
|
|
863
|
+
header: "Remove Account",
|
|
864
|
+
question: "Which account do you want to remove?",
|
|
865
|
+
multiSelect: false,
|
|
866
|
+
options: [
|
|
867
|
+
{ label: "claude: ~/.claude", description: "Account 1" },
|
|
868
|
+
{ label: "claude: ~/.claude-personal", description: "Account 2" }
|
|
869
|
+
]
|
|
870
|
+
}
|
|
871
|
+
])
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
If removing leaves only 1 account, offer to disable rotation entirely.
|
|
875
|
+
|
|
876
|
+
**Step 5: Write updated config.**
|
|
877
|
+
|
|
878
|
+
Merge into existing `.planning/config.json` — only update `superpowers` and `scheduler` sections, preserving everything else.
|
|
879
|
+
|
|
880
|
+
**Conditional: Overstory sub-options (if user selected "Overstory" for Execution Backend)**
|
|
881
|
+
|
|
882
|
+
If user selected "Overstory" for Execution Backend, ask follow-up questions:
|
|
883
|
+
|
|
884
|
+
```
|
|
885
|
+
AskUserQuestion([
|
|
886
|
+
{
|
|
887
|
+
question: "Overstory runtime adapter for workers?",
|
|
888
|
+
header: "Runtime",
|
|
889
|
+
multiSelect: false,
|
|
890
|
+
options: [
|
|
891
|
+
{ label: "claude (Default)", description: "Claude Code as the worker runtime" },
|
|
892
|
+
{ label: "codex", description: "OpenAI Codex as the worker runtime" },
|
|
893
|
+
{ label: "cursor", description: "Cursor as the worker runtime" },
|
|
894
|
+
{ label: "copilot", description: "GitHub Copilot as the worker runtime" }
|
|
895
|
+
]
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
question: "Merge strategy for completed agent results?",
|
|
899
|
+
header: "Merge Strategy",
|
|
900
|
+
multiSelect: false,
|
|
901
|
+
options: [
|
|
902
|
+
{ label: "Auto (Default)", description: "FIFO merge queue — automatically merge results as agents complete" },
|
|
903
|
+
{ label: "Manual", description: "Prompt for confirmation before merging each agent's results" }
|
|
904
|
+
]
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
question: "Status polling interval during wave execution?",
|
|
908
|
+
header: "Poll Interval",
|
|
909
|
+
multiSelect: false,
|
|
910
|
+
options: [
|
|
911
|
+
{ label: "3000ms", description: "Faster updates, slightly higher overhead" },
|
|
912
|
+
{ label: "5000ms (Default)", description: "Balanced polling frequency" },
|
|
913
|
+
{ label: "10000ms", description: "Less frequent updates, lower overhead" }
|
|
914
|
+
]
|
|
915
|
+
}
|
|
916
|
+
])
|
|
917
|
+
```
|
|
918
|
+
</step>
|
|
919
|
+
|
|
920
|
+
<step name="update_config">
|
|
921
|
+
Merge new settings into existing config.json:
|
|
922
|
+
|
|
923
|
+
```json
|
|
924
|
+
{
|
|
925
|
+
...existing_config,
|
|
926
|
+
"model_profile": "quality" | "balanced" | "budget",
|
|
927
|
+
"autonomous_mode": true|false,
|
|
928
|
+
"workflow": {
|
|
929
|
+
"research": true/false,
|
|
930
|
+
"plan_check": true/false,
|
|
931
|
+
"verifier": true/false
|
|
932
|
+
},
|
|
933
|
+
"git": {
|
|
934
|
+
"branching_strategy": "none" | "phase",
|
|
935
|
+
"worktree_dir": ".worktrees/" | custom_path,
|
|
936
|
+
"default_completion_action": "ask" | "merge" | "pr" | "keep"
|
|
937
|
+
},
|
|
938
|
+
"execution": {
|
|
939
|
+
"use_teams": true/false,
|
|
940
|
+
"max_concurrent_teammates": 2|4|6
|
|
941
|
+
},
|
|
942
|
+
"code_review": {
|
|
943
|
+
"enabled": timing !== "disabled",
|
|
944
|
+
"timing": "per_wave" | "per_phase",
|
|
945
|
+
"severity_gate": "blocker" | "critical" | "warning",
|
|
946
|
+
"auto_fix_warnings": true/false
|
|
947
|
+
},
|
|
948
|
+
"confirmation_gates": {
|
|
949
|
+
"commit_confirmation": true/false,
|
|
950
|
+
"file_deletion": true/false,
|
|
951
|
+
"phase_completion": true/false,
|
|
952
|
+
"target_adjustment": true/false,
|
|
953
|
+
"approach_change": true/false
|
|
954
|
+
},
|
|
955
|
+
"research_gates": {
|
|
956
|
+
"verification_design": true/false,
|
|
957
|
+
"method_selection": true/false,
|
|
958
|
+
"baseline_review": true/false
|
|
959
|
+
},
|
|
960
|
+
"backend": "grd" | "superpowers" | "overstory" | "claude" | "codex" | "gemini" | "opencode",
|
|
961
|
+
"superpowers": {
|
|
962
|
+
"default_backend": "claude" | "codex" | "gemini" | "opencode",
|
|
963
|
+
"account_rotation": true/false,
|
|
964
|
+
"accounts": {
|
|
965
|
+
"claude": [{ "config_dir": "~/.claude-personal" }, { "config_dir": "~/.claude-work" }],
|
|
966
|
+
"codex": [{ "config_dir": "~/.codex-main" }]
|
|
967
|
+
}
|
|
968
|
+
},
|
|
969
|
+
"scheduler": {
|
|
970
|
+
"backend_priority": ["claude", "codex", "gemini", "opencode"],
|
|
971
|
+
"free_fallback": { "backend": "opencode" },
|
|
972
|
+
"prediction": {
|
|
973
|
+
"window_minutes": 15,
|
|
974
|
+
"ewma_alpha": 0.3,
|
|
975
|
+
"safety_margin_tasks": 1.5,
|
|
976
|
+
"min_samples": 3
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"overstory": {
|
|
980
|
+
"runtime": "claude" | "codex" | "cursor" | "copilot",
|
|
981
|
+
"merge_strategy": "auto" | "manual",
|
|
982
|
+
"poll_interval_ms": 3000 | 5000 | 10000
|
|
983
|
+
},
|
|
984
|
+
"tracker": {
|
|
985
|
+
"provider": "none" | "github" | "mcp-atlassian"
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
```
|
|
989
|
+
|
|
990
|
+
**Mapping rules:**
|
|
991
|
+
|
|
992
|
+
Git Isolation:
|
|
993
|
+
- "Yes" -> `branching_strategy: "phase"`, write `worktree_dir` and `default_completion_action`
|
|
994
|
+
- "No" -> `branching_strategy: "none"` (omit worktree_dir and default_completion_action)
|
|
995
|
+
|
|
996
|
+
Worktree Directory:
|
|
997
|
+
- ".worktrees/ (Default)" -> `worktree_dir: ".worktrees/"`
|
|
998
|
+
- "Custom" -> `worktree_dir: <user-provided path>`
|
|
999
|
+
|
|
1000
|
+
Completion Action:
|
|
1001
|
+
- "Ask each time (Default)" -> `default_completion_action: "ask"`
|
|
1002
|
+
- "Merge locally" -> `default_completion_action: "merge"`
|
|
1003
|
+
- "Create PR" -> `default_completion_action: "pr"`
|
|
1004
|
+
- "Keep branch" -> `default_completion_action: "keep"`
|
|
1005
|
+
|
|
1006
|
+
Execution Teams:
|
|
1007
|
+
- "Yes" -> `use_teams: true`, write `max_concurrent_teammates` from follow-up
|
|
1008
|
+
- "No" -> `use_teams: false`
|
|
1009
|
+
|
|
1010
|
+
Execution Backend:
|
|
1011
|
+
- "GRD (Default)" -> `backend: "grd"`
|
|
1012
|
+
- "Superpowers" -> `backend: "superpowers"`, write `superpowers` section from follow-ups
|
|
1013
|
+
- "Overstory" -> `backend: "overstory"`, write `overstory` section with runtime, merge_strategy, poll_interval_ms from follow-ups
|
|
1014
|
+
- "Claude Code" -> `backend: "claude"`
|
|
1015
|
+
- "Codex" -> `backend: "codex"`
|
|
1016
|
+
- "Gemini" -> `backend: "gemini"`
|
|
1017
|
+
- "OpenCode" -> `backend: "opencode"`
|
|
1018
|
+
|
|
1019
|
+
Superpowers AI Backend:
|
|
1020
|
+
- "Claude Code (Default)" -> `superpowers.default_backend: "claude"`
|
|
1021
|
+
- "Codex" -> `superpowers.default_backend: "codex"`
|
|
1022
|
+
- "Gemini" -> `superpowers.default_backend: "gemini"`
|
|
1023
|
+
- "OpenCode" -> `superpowers.default_backend: "opencode"`
|
|
1024
|
+
|
|
1025
|
+
Superpowers Account Rotation:
|
|
1026
|
+
- "Yes (Recommended)" -> `superpowers.account_rotation: true`
|
|
1027
|
+
- "No" -> `superpowers.account_rotation: false`
|
|
1028
|
+
|
|
1029
|
+
Superpowers Accounts:
|
|
1030
|
+
- Parse comma-separated paths for each backend
|
|
1031
|
+
- For each non-empty backend, create `superpowers.accounts.<backend>` array of `{ config_dir: "<path>" }` objects
|
|
1032
|
+
- Empty entries are omitted from config
|
|
1033
|
+
|
|
1034
|
+
Backend Priority:
|
|
1035
|
+
- Parse comma-separated backend names → `scheduler.backend_priority` array
|
|
1036
|
+
- Only include backends that have accounts configured
|
|
1037
|
+
|
|
1038
|
+
Free Fallback:
|
|
1039
|
+
- "OpenCode (Default)" → `scheduler.free_fallback: { "backend": "opencode" }`
|
|
1040
|
+
- "Claude Code" → `scheduler.free_fallback: { "backend": "claude" }`
|
|
1041
|
+
- "Codex" → `scheduler.free_fallback: { "backend": "codex" }`
|
|
1042
|
+
- "Gemini" → `scheduler.free_fallback: { "backend": "gemini" }`
|
|
1043
|
+
|
|
1044
|
+
Include `scheduler` section only when backend is "superpowers" and account_rotation is true.
|
|
1045
|
+
Prediction defaults are always included in `scheduler.prediction` — these are sensible defaults that users rarely need to change.
|
|
1046
|
+
|
|
1047
|
+
Overstory Runtime:
|
|
1048
|
+
- "claude (Default)" -> `runtime: "claude"`
|
|
1049
|
+
- "codex" -> `runtime: "codex"`
|
|
1050
|
+
- "cursor" -> `runtime: "cursor"`
|
|
1051
|
+
- "copilot" -> `runtime: "copilot"`
|
|
1052
|
+
|
|
1053
|
+
Overstory Merge Strategy:
|
|
1054
|
+
- "Auto (Default)" -> `merge_strategy: "auto"`
|
|
1055
|
+
- "Manual" -> `merge_strategy: "manual"`
|
|
1056
|
+
|
|
1057
|
+
Overstory Poll Interval:
|
|
1058
|
+
- "3000ms" -> `poll_interval_ms: 3000`
|
|
1059
|
+
- "5000ms (Default)" -> `poll_interval_ms: 5000`
|
|
1060
|
+
- "10000ms" -> `poll_interval_ms: 10000`
|
|
1061
|
+
|
|
1062
|
+
Code Review Timing:
|
|
1063
|
+
- "Per Wave (Default)" -> `timing: "per_wave"`, `enabled: true`
|
|
1064
|
+
- "Per Phase" -> `timing: "per_phase"`, `enabled: true`
|
|
1065
|
+
- "Disabled" -> `enabled: false`
|
|
1066
|
+
|
|
1067
|
+
Review Severity Gate:
|
|
1068
|
+
- "Blocker (Default)" -> `severity_gate: "blocker"`
|
|
1069
|
+
- "Critical" -> `severity_gate: "critical"`
|
|
1070
|
+
- "Warning" -> `severity_gate: "warning"`
|
|
1071
|
+
|
|
1072
|
+
Confirmation Gates (multi-select — each selected label maps to `true`):
|
|
1073
|
+
- "Commit Confirmation" -> `commit_confirmation: true`
|
|
1074
|
+
- "File Deletion" -> `file_deletion: true`
|
|
1075
|
+
- "Phase Completion" -> `phase_completion: true`
|
|
1076
|
+
- "Target Adjustment" -> `target_adjustment: true`
|
|
1077
|
+
- "Approach Change" -> `approach_change: true`
|
|
1078
|
+
- Unselected gates default to `false`
|
|
1079
|
+
|
|
1080
|
+
Write updated config to `.planning/config.json`.
|
|
1081
|
+
</step>
|
|
1082
|
+
|
|
1083
|
+
<step name="confirm">
|
|
1084
|
+
Display:
|
|
1085
|
+
|
|
1086
|
+
```
|
|
1087
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1088
|
+
GRD ► SETTINGS UPDATED
|
|
1089
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1090
|
+
|
|
1091
|
+
| Setting | Value |
|
|
1092
|
+
|----------------------|-------|
|
|
1093
|
+
| Model Profile | {quality/balanced/budget} |
|
|
1094
|
+
| Plan Researcher | {On/Off} |
|
|
1095
|
+
| Plan Checker | {On/Off} |
|
|
1096
|
+
| Execution Verifier | {On/Off} |
|
|
1097
|
+
| Git Isolation | {On/Off} |
|
|
1098
|
+
| Worktree Directory | {path or N/A} |
|
|
1099
|
+
| Completion Action | {ask/merge/pr/keep or N/A} |
|
|
1100
|
+
| Agent Teams | {On/Off} |
|
|
1101
|
+
| Max Teammates | {N or N/A} |
|
|
1102
|
+
| Execution Backend | {GRD/Superpowers/Overstory/Claude Code/Codex/Gemini/OpenCode} |
|
|
1103
|
+
| SP Default Backend | {claude/codex/gemini/opencode or N/A} |
|
|
1104
|
+
| SP Account Rotation | {On/Off or N/A} |
|
|
1105
|
+
| Overstory Runtime | {runtime or N/A} |
|
|
1106
|
+
| Overstory Merge | {auto/manual or N/A} |
|
|
1107
|
+
| Overstory Poll | {Nms or N/A} |
|
|
1108
|
+
| Code Review | {Per Wave/Per Phase/Off} |
|
|
1109
|
+
| Severity Gate | {blocker/critical/warning} |
|
|
1110
|
+
| Auto-fix Warnings | {On/Off} |
|
|
1111
|
+
| Autonomous Mode | {On/Off} |
|
|
1112
|
+
| Gate: Eval Design | {On/Off} |
|
|
1113
|
+
| Gate: Method Select | {On/Off} |
|
|
1114
|
+
| Gate: Baseline Review| {On/Off} |
|
|
1115
|
+
| Gate: Commit Confirm | {On/Off} |
|
|
1116
|
+
| Gate: File Deletion | {On/Off} |
|
|
1117
|
+
| Gate: Phase Complete | {On/Off} |
|
|
1118
|
+
| Gate: Target Adjust | {On/Off} |
|
|
1119
|
+
| Gate: Approach Change| {On/Off} |
|
|
1120
|
+
| Tracker | {None/GitHub/Jira} |
|
|
1121
|
+
|
|
1122
|
+
These settings apply to future /grd:plan-phase and /grd:execute-phase runs.
|
|
1123
|
+
|
|
1124
|
+
Quick commands:
|
|
1125
|
+
- /grd:settings profile <profile> — switch model profile
|
|
1126
|
+
- /grd:settings yolo — toggle autonomous mode
|
|
1127
|
+
- /grd:settings ceremony <level> — set ceremony level
|
|
1128
|
+
- /grd:settings overstory [runtime|merge|poll] — configure execution backend
|
|
1129
|
+
- /grd:plan-phase --research — force research
|
|
1130
|
+
- /grd:plan-phase --skip-research — skip research
|
|
1131
|
+
- /grd:plan-phase --skip-verify — skip plan check
|
|
1132
|
+
```
|
|
1133
|
+
</step>
|
|
1134
|
+
|
|
1135
|
+
</process>
|
|
1136
|
+
|
|
1137
|
+
<success_criteria>
|
|
1138
|
+
- [ ] Current config read with all sections (workflow, git, execution, overstory, code_review, confirmation_gates, research_gates, tracker)
|
|
1139
|
+
- [ ] User presented with 14+ questions (profile + 3 workflow toggles + git isolation + execution backend + autonomous mode + execution teams + 3 code review + confirmation gates + research gates + tracker)
|
|
1140
|
+
- [ ] Conditional sub-options asked for worktree (directory + completion action), teams (max teammates), and overstory (runtime + merge strategy + poll interval)
|
|
1141
|
+
- [ ] Config updated with all sections: git (branching_strategy, worktree_dir, default_completion_action), execution (use_teams, max_concurrent_teammates), overstory (runtime, merge_strategy, poll_interval_ms), code_review (enabled, timing, severity_gate, auto_fix_warnings), confirmation_gates (5 toggles), research_gates, tracker
|
|
1142
|
+
- [ ] All settings displayed in confirmation summary table
|
|
1143
|
+
- [ ] Changes confirmed to user
|
|
1144
|
+
</success_criteria>
|