@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,328 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or edit project PRINCIPLES.md — the constitution that shapes all agent behavior
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<purpose>
|
|
6
|
+
Create or update `.planning/PRINCIPLES.md` — the project constitution that governs how all GRD agents behave. Principles define coding philosophy, testing requirements, architecture constraints, documentation standards, and communication style. Once established, every agent (planner, executor, reviewer, verifier) reads PRINCIPLES.md to align its work with the team's standards.
|
|
7
|
+
|
|
8
|
+
This is the most leveraged configuration in GRD: a few clear principles prevent hundreds of review comments and rework cycles.
|
|
9
|
+
</purpose>
|
|
10
|
+
|
|
11
|
+
<required_reading>
|
|
12
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
13
|
+
</required_reading>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
|
|
17
|
+
## Step 1: Check for existing PRINCIPLES.md
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js state load)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Parse JSON for: `planning_exists`, `commit_docs`.
|
|
24
|
+
|
|
25
|
+
Check if `.planning/PRINCIPLES.md` already exists:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
ls .planning/PRINCIPLES.md 2>/dev/null
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**If file exists:** Go to Step 2 (Edit flow).
|
|
32
|
+
**If file does not exist:** Go to Step 3 (Create flow).
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Step 2: Edit existing PRINCIPLES.md
|
|
37
|
+
|
|
38
|
+
Read and display the current file:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
cat .planning/PRINCIPLES.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Present the current principles to the user:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
48
|
+
GRD > CURRENT PRINCIPLES
|
|
49
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
50
|
+
|
|
51
|
+
[rendered contents of PRINCIPLES.md]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Use AskUserQuestion:
|
|
55
|
+
- header: "Principles"
|
|
56
|
+
- question: "What would you like to change?"
|
|
57
|
+
- options:
|
|
58
|
+
- "Edit a section" -- Modify one of the five sections
|
|
59
|
+
- "Add a principle" -- Add a new rule to a section
|
|
60
|
+
- "Remove a principle" -- Delete a rule from a section
|
|
61
|
+
- "Rewrite from scratch" -- Start over with the guided flow
|
|
62
|
+
- "Looks good" -- No changes needed
|
|
63
|
+
|
|
64
|
+
**If "Edit a section":**
|
|
65
|
+
|
|
66
|
+
Use AskUserQuestion:
|
|
67
|
+
- header: "Section"
|
|
68
|
+
- question: "Which section?"
|
|
69
|
+
- options:
|
|
70
|
+
- "Coding Philosophy"
|
|
71
|
+
- "Testing Requirements"
|
|
72
|
+
- "Architecture Constraints"
|
|
73
|
+
- "Documentation Standards"
|
|
74
|
+
- "Communication Style"
|
|
75
|
+
|
|
76
|
+
Ask inline (freeform): "What should the updated rules be for [section]?"
|
|
77
|
+
|
|
78
|
+
Apply the changes to PRINCIPLES.md. Go to Step 5 (Commit).
|
|
79
|
+
|
|
80
|
+
**If "Add a principle":**
|
|
81
|
+
|
|
82
|
+
Use AskUserQuestion to select the section, then ask inline for the new principle. Append it. Go to Step 5 (Commit).
|
|
83
|
+
|
|
84
|
+
**If "Remove a principle":**
|
|
85
|
+
|
|
86
|
+
Use AskUserQuestion to select the section, then list the principles in that section as options. Remove the selected one. Go to Step 5 (Commit).
|
|
87
|
+
|
|
88
|
+
**If "Rewrite from scratch":**
|
|
89
|
+
|
|
90
|
+
Go to Step 3 (Create flow).
|
|
91
|
+
|
|
92
|
+
**If "Looks good":**
|
|
93
|
+
|
|
94
|
+
Display: "No changes made. Principles remain as-is."
|
|
95
|
+
|
|
96
|
+
Exit.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Step 3: Create new PRINCIPLES.md
|
|
101
|
+
|
|
102
|
+
Display stage banner:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
106
|
+
GRD > DEFINING PRINCIPLES
|
|
107
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
108
|
+
|
|
109
|
+
Your project principles shape how every agent works.
|
|
110
|
+
Let's define them across 5 categories.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Detect existing context:**
|
|
114
|
+
|
|
115
|
+
Check for codebase signals that can inform defaults:
|
|
116
|
+
- `package.json` or similar manifest -> language, framework
|
|
117
|
+
- `.eslintrc*`, `eslint.config.*` -> linting conventions
|
|
118
|
+
- `tsconfig.json` -> TypeScript preferences
|
|
119
|
+
- `jest.config.*`, `vitest.config.*`, `pytest.ini` -> test framework
|
|
120
|
+
- `.prettierrc*` -> formatting conventions
|
|
121
|
+
- `README.md` -> project description
|
|
122
|
+
|
|
123
|
+
Use detected context to offer smart defaults in each category.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Category 1: Coding Philosophy
|
|
128
|
+
|
|
129
|
+
Use AskUserQuestion:
|
|
130
|
+
- header: "Coding Philosophy"
|
|
131
|
+
- question: "What principles guide how code should be written?"
|
|
132
|
+
- multiSelect: true
|
|
133
|
+
- options (adapt based on detected language/framework):
|
|
134
|
+
- "Prefer simplicity over cleverness"
|
|
135
|
+
- "Functions should do one thing well"
|
|
136
|
+
- "Explicit over implicit"
|
|
137
|
+
- "Minimize dependencies"
|
|
138
|
+
- "Fail fast with clear errors"
|
|
139
|
+
- "No premature optimization"
|
|
140
|
+
- "DRY but not at the expense of clarity"
|
|
141
|
+
- "Immutable by default"
|
|
142
|
+
- "Composition over inheritance"
|
|
143
|
+
- "Custom" -- I want to write my own
|
|
144
|
+
|
|
145
|
+
If "Custom" is selected, ask inline: "What coding principles should agents follow?"
|
|
146
|
+
|
|
147
|
+
Store selections as `$CODING_PHILOSOPHY`.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### Category 2: Testing Requirements
|
|
152
|
+
|
|
153
|
+
Use AskUserQuestion:
|
|
154
|
+
- header: "Testing Requirements"
|
|
155
|
+
- question: "What are your testing standards?"
|
|
156
|
+
- multiSelect: true
|
|
157
|
+
- options (adapt based on detected test framework):
|
|
158
|
+
- "Every new function needs a test"
|
|
159
|
+
- "Tests must be independent and isolated"
|
|
160
|
+
- "No mocking of implementation details"
|
|
161
|
+
- "Integration tests for critical paths"
|
|
162
|
+
- "Maintain existing coverage thresholds"
|
|
163
|
+
- "Test names describe behavior, not implementation"
|
|
164
|
+
- "No test should take more than 5 seconds"
|
|
165
|
+
- "Golden/snapshot tests for CLI output"
|
|
166
|
+
- "Custom" -- I want to write my own
|
|
167
|
+
|
|
168
|
+
If "Custom" is selected, ask inline: "What testing standards should agents follow?"
|
|
169
|
+
|
|
170
|
+
Store selections as `$TESTING_REQUIREMENTS`.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### Category 3: Architecture Constraints
|
|
175
|
+
|
|
176
|
+
Use AskUserQuestion:
|
|
177
|
+
- header: "Architecture Constraints"
|
|
178
|
+
- question: "What architecture rules must agents respect?"
|
|
179
|
+
- multiSelect: true
|
|
180
|
+
- options (adapt based on detected project structure):
|
|
181
|
+
- "Keep modules loosely coupled"
|
|
182
|
+
- "No circular dependencies"
|
|
183
|
+
- "Pure functions in lib/, side effects only at boundaries"
|
|
184
|
+
- "One responsibility per file"
|
|
185
|
+
- "Public API surface must be intentional"
|
|
186
|
+
- "No global mutable state"
|
|
187
|
+
- "Database access only through repository layer"
|
|
188
|
+
- "Error handling at boundaries, not everywhere"
|
|
189
|
+
- "Custom" -- I want to write my own
|
|
190
|
+
|
|
191
|
+
If "Custom" is selected, ask inline: "What architecture constraints should agents follow?"
|
|
192
|
+
|
|
193
|
+
Store selections as `$ARCHITECTURE_CONSTRAINTS`.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
### Category 4: Documentation Standards
|
|
198
|
+
|
|
199
|
+
Use AskUserQuestion:
|
|
200
|
+
- header: "Documentation Standards"
|
|
201
|
+
- question: "What documentation rules apply?"
|
|
202
|
+
- multiSelect: true
|
|
203
|
+
- options:
|
|
204
|
+
- "Comments explain WHY, not WHAT"
|
|
205
|
+
- "Every public function needs a JSDoc/docstring"
|
|
206
|
+
- "README stays current with changes"
|
|
207
|
+
- "CHANGELOG updated for user-facing changes"
|
|
208
|
+
- "No orphaned documentation"
|
|
209
|
+
- "Examples in docs must be runnable"
|
|
210
|
+
- "API changes require migration notes"
|
|
211
|
+
- "Custom" -- I want to write my own
|
|
212
|
+
|
|
213
|
+
If "Custom" is selected, ask inline: "What documentation standards should agents follow?"
|
|
214
|
+
|
|
215
|
+
Store selections as `$DOCUMENTATION_STANDARDS`.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
### Category 5: Communication Style
|
|
220
|
+
|
|
221
|
+
Use AskUserQuestion:
|
|
222
|
+
- header: "Communication Style"
|
|
223
|
+
- question: "How should agents communicate in plans, summaries, and commit messages?"
|
|
224
|
+
- multiSelect: true
|
|
225
|
+
- options:
|
|
226
|
+
- "Be concise -- no filler words"
|
|
227
|
+
- "Use active voice"
|
|
228
|
+
- "Commit messages: imperative mood, under 72 chars"
|
|
229
|
+
- "Plans: bullet points over paragraphs"
|
|
230
|
+
- "Summaries: lead with outcomes, not process"
|
|
231
|
+
- "No jargon without definition"
|
|
232
|
+
- "Technical precision over approachability"
|
|
233
|
+
- "Custom" -- I want to write my own
|
|
234
|
+
|
|
235
|
+
If "Custom" is selected, ask inline: "What communication style should agents use?"
|
|
236
|
+
|
|
237
|
+
Store selections as `$COMMUNICATION_STYLE`.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Step 4: Write PRINCIPLES.md
|
|
242
|
+
|
|
243
|
+
Create `.planning/PRINCIPLES.md`:
|
|
244
|
+
|
|
245
|
+
```markdown
|
|
246
|
+
# Project Principles
|
|
247
|
+
|
|
248
|
+
> These principles govern how all GRD agents behave in this project.
|
|
249
|
+
> Every planner, executor, reviewer, and verifier reads this file.
|
|
250
|
+
|
|
251
|
+
## Coding Philosophy
|
|
252
|
+
|
|
253
|
+
${CODING_PHILOSOPHY — one bullet per principle}
|
|
254
|
+
|
|
255
|
+
## Testing Requirements
|
|
256
|
+
|
|
257
|
+
${TESTING_REQUIREMENTS — one bullet per principle}
|
|
258
|
+
|
|
259
|
+
## Architecture Constraints
|
|
260
|
+
|
|
261
|
+
${ARCHITECTURE_CONSTRAINTS — one bullet per principle}
|
|
262
|
+
|
|
263
|
+
## Documentation Standards
|
|
264
|
+
|
|
265
|
+
${DOCUMENTATION_STANDARDS — one bullet per principle}
|
|
266
|
+
|
|
267
|
+
## Communication Style
|
|
268
|
+
|
|
269
|
+
${COMMUNICATION_STYLE — one bullet per principle}
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
*Established: ${date}*
|
|
273
|
+
*Last updated: ${date}*
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Ensure `.planning/` directory exists:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
mkdir -p .planning
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Step 5: Commit
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js commit "docs: ${VERB} project principles" --files .planning/PRINCIPLES.md
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Where `${VERB}` is:
|
|
291
|
+
- `establish` for new files
|
|
292
|
+
- `update` for edits
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## Step 6: Confirmation
|
|
297
|
+
|
|
298
|
+
Display:
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
302
|
+
GRD > PRINCIPLES ${ESTABLISHED|UPDATED}
|
|
303
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
304
|
+
|
|
305
|
+
Coding Philosophy: ${count} rules
|
|
306
|
+
Testing Requirements: ${count} rules
|
|
307
|
+
Architecture: ${count} rules
|
|
308
|
+
Documentation: ${count} rules
|
|
309
|
+
Communication: ${count} rules
|
|
310
|
+
|
|
311
|
+
File: .planning/PRINCIPLES.md
|
|
312
|
+
|
|
313
|
+
These principles now shape all agent behavior.
|
|
314
|
+
Edit anytime: /grd:principles
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
</process>
|
|
318
|
+
|
|
319
|
+
<success_criteria>
|
|
320
|
+
- [ ] Existing PRINCIPLES.md detected and presented if it exists
|
|
321
|
+
- [ ] All 5 categories covered (Coding Philosophy, Testing Requirements, Architecture Constraints, Documentation Standards, Communication Style)
|
|
322
|
+
- [ ] Codebase signals detected and used for smart defaults
|
|
323
|
+
- [ ] User selections captured for all categories
|
|
324
|
+
- [ ] PRINCIPLES.md written with all sections populated
|
|
325
|
+
- [ ] File committed to git
|
|
326
|
+
- [ ] Confirmation displayed with rule counts
|
|
327
|
+
</success_criteria>
|
|
328
|
+
</output>
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Product-level planning — high-level roadmap, goal setting, and work distribution across research phases
|
|
3
|
+
argument-hint: [product goal description or path to goals document]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<purpose>
|
|
7
|
+
Product-level planning that bridges research findings and engineering execution. Reads
|
|
8
|
+
BASELINE.md and product goals, assesses gaps between current state and desired state,
|
|
9
|
+
and creates a high-level roadmap distributed across research-informed phases. This is
|
|
10
|
+
the strategic layer above individual phase planning.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<context>
|
|
14
|
+
CLAUDE.md rules: @CLAUDE.md
|
|
15
|
+
|
|
16
|
+
**Project structure** (paths resolved via init):
|
|
17
|
+
- `.planning/PROJECT.md` — project definition and goals
|
|
18
|
+
- `.planning/ROADMAP.md` — phase-level roadmap (output of this workflow)
|
|
19
|
+
- `.planning/BASELINE.md` — current system baseline
|
|
20
|
+
- `.planning/KNOWHOW.md` — production engineering knowledge
|
|
21
|
+
- `${research_dir}/LANDSCAPE.md` — research landscape
|
|
22
|
+
- `${research_dir}/COMPARISON-*.md` — method comparisons
|
|
23
|
+
- `${research_dir}/deep-dives/` — paper analyses
|
|
24
|
+
- `.planning/config.json` — GRD configuration
|
|
25
|
+
|
|
26
|
+
**Agent available:**
|
|
27
|
+
- `grd-product-owner` — specialized product strategy and roadmap planning agent
|
|
28
|
+
</context>
|
|
29
|
+
|
|
30
|
+
<process>
|
|
31
|
+
|
|
32
|
+
## Step 0: INITIALIZE — Gather All Context
|
|
33
|
+
|
|
34
|
+
0. **Run initialization**:
|
|
35
|
+
```bash
|
|
36
|
+
INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js init product-plan)
|
|
37
|
+
```
|
|
38
|
+
Parse JSON for: `research_dir`, `phases_dir`, `landscape_exists`, `papers_exists`, `knowhow_exists`, `baseline_exists`, `autonomous_mode`, `research_gates`.
|
|
39
|
+
|
|
40
|
+
1. **Parse arguments**: Extract product goals from `$ARGUMENTS`
|
|
41
|
+
- If file path: read goals document
|
|
42
|
+
- If text description: use as product goal input
|
|
43
|
+
- If empty: check PROJECT.md for existing goals, ASK user if not found
|
|
44
|
+
|
|
45
|
+
2. **Load all available context** (read in parallel):
|
|
46
|
+
- `.planning/PROJECT.md` — existing project definition
|
|
47
|
+
- `.planning/BASELINE.md` — current state metrics
|
|
48
|
+
- `.planning/KNOWHOW.md` — production knowledge learned
|
|
49
|
+
- `${research_dir}/LANDSCAPE.md` — research landscape
|
|
50
|
+
- `${research_dir}/COMPARISON-*.md` — method comparison results
|
|
51
|
+
- Available deep-dives — paper verdicts and feasibility results
|
|
52
|
+
- `.planning/ROADMAP.md` — existing roadmap (if updating)
|
|
53
|
+
|
|
54
|
+
3. **Assess context completeness**:
|
|
55
|
+
| Input | Status | Impact |
|
|
56
|
+
|-------|--------|--------|
|
|
57
|
+
| BASELINE.md | {present/missing} | {critical for gap analysis} |
|
|
58
|
+
| LANDSCAPE.md | {present/missing} | {critical for method selection} |
|
|
59
|
+
| KNOWHOW.md | {present/missing} | {helpful for effort estimation} |
|
|
60
|
+
| Comparisons | {present/missing} | {helpful for approach selection} |
|
|
61
|
+
| Deep-dives | {N available} | {helpful for risk assessment} |
|
|
62
|
+
|
|
63
|
+
4. **Read config**: Check `research_gates.product_plan_approval`
|
|
64
|
+
|
|
65
|
+
**STEP_0_CHECKPOINT:**
|
|
66
|
+
- [ ] Product goals extracted (from args, PROJECT.md, or user)
|
|
67
|
+
- [ ] Available context loaded and inventoried
|
|
68
|
+
- [ ] Context gaps identified
|
|
69
|
+
- [ ] Config loaded
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step 1: DISPLAY BANNER
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
77
|
+
║ GRD >>> PRODUCT PLAN ║
|
|
78
|
+
║ ║
|
|
79
|
+
║ Goal: {product_goal_summary} ║
|
|
80
|
+
║ Baseline: {available | not assessed} ║
|
|
81
|
+
║ Research: {N methods surveyed, M deep-dived} ║
|
|
82
|
+
║ Knowhow: {N production insights} ║
|
|
83
|
+
║ Existing roadmap: {yes — updating | no — creating} ║
|
|
84
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Step 2: SPAWN PRODUCT OWNER AGENT
|
|
90
|
+
|
|
91
|
+
**Launch `grd-product-owner` agent via Task tool:**
|
|
92
|
+
|
|
93
|
+
Use Task tool with `subagent_type="grd:grd-product-owner"`:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Create product-level plan for: {product_goal}
|
|
97
|
+
|
|
98
|
+
PATHS:
|
|
99
|
+
research_dir: ${research_dir}
|
|
100
|
+
codebase_dir: ${codebase_dir}
|
|
101
|
+
phases_dir: ${phases_dir}
|
|
102
|
+
|
|
103
|
+
CURRENT STATE (BASELINE):
|
|
104
|
+
{BASELINE.md content, or "Not assessed — will need /grd:assess-baseline"}
|
|
105
|
+
|
|
106
|
+
RESEARCH CONTEXT:
|
|
107
|
+
Landscape: {LANDSCAPE.md summary — methods, benchmarks, recommendations}
|
|
108
|
+
Comparisons: {COMPARISON files summary — winners, trade-offs}
|
|
109
|
+
Deep-dives: {Paper verdicts and key findings}
|
|
110
|
+
Feasibility: {Feasibility verdicts from KNOWHOW.md}
|
|
111
|
+
|
|
112
|
+
PRODUCTION KNOWLEDGE:
|
|
113
|
+
{KNOWHOW.md content, or "No prior production knowledge"}
|
|
114
|
+
|
|
115
|
+
EXISTING ROADMAP:
|
|
116
|
+
{ROADMAP.md content if updating, or "Creating new roadmap"}
|
|
117
|
+
|
|
118
|
+
CREATE A PRODUCT PLAN WITH THESE SECTIONS:
|
|
119
|
+
|
|
120
|
+
## 1. VISION AND GOALS
|
|
121
|
+
- Product vision statement (1-2 sentences)
|
|
122
|
+
- Primary goal with measurable success criteria
|
|
123
|
+
- Secondary goals
|
|
124
|
+
- Non-goals (explicit exclusions)
|
|
125
|
+
- Timeline expectations
|
|
126
|
+
|
|
127
|
+
## 2. GAP ANALYSIS
|
|
128
|
+
Current state → Desired state for each dimension:
|
|
129
|
+
| Dimension | Current (from baseline) | Target | Gap | Approach |
|
|
130
|
+
|-----------|------------------------|--------|-----|----------|
|
|
131
|
+
| {quality metric} | {baseline_value} | {target} | {delta} | {method} |
|
|
132
|
+
| {performance metric} | {baseline_value} | {target} | {delta} | {method} |
|
|
133
|
+
| {capability} | {present/absent} | {required} | {gap} | {method} |
|
|
134
|
+
|
|
135
|
+
## 3. APPROACH SELECTION
|
|
136
|
+
Based on research context:
|
|
137
|
+
- Primary approach: {method} — why selected (reference comparison/feasibility)
|
|
138
|
+
- Backup approach: {method} — when to pivot
|
|
139
|
+
- Discarded approaches: {methods} — why rejected
|
|
140
|
+
|
|
141
|
+
## 4. QUALITY TARGETS
|
|
142
|
+
Define quantitative targets for the product:
|
|
143
|
+
| Metric | Baseline | Phase_1_Target | Phase_2_Target | Final_Target | SOTA |
|
|
144
|
+
|--------|----------|----------------|----------------|--------------|------|
|
|
145
|
+
| {metric} | {value} | {value} | {value} | {value} | {value} |
|
|
146
|
+
|
|
147
|
+
## 5. PHASE BREAKDOWN
|
|
148
|
+
Distribute work across phases:
|
|
149
|
+
|
|
150
|
+
### Phase 1: {name} — {goal}
|
|
151
|
+
- Scope: {what gets built}
|
|
152
|
+
- Research dependency: {method/paper if applicable}
|
|
153
|
+
- Success criteria: {measurable}
|
|
154
|
+
- Effort estimate: {weeks}
|
|
155
|
+
- Risk: {level and key risk}
|
|
156
|
+
|
|
157
|
+
### Phase 2: {name} — {goal}
|
|
158
|
+
...
|
|
159
|
+
|
|
160
|
+
### Phase N: Integration and Verification
|
|
161
|
+
- Always include a final integration/verification phase
|
|
162
|
+
|
|
163
|
+
## 6. RISK REGISTER
|
|
164
|
+
| Risk | Probability | Impact | Mitigation | Owner |
|
|
165
|
+
|------|-------------|--------|------------|-------|
|
|
166
|
+
| {risk} | {H/M/L} | {H/M/L} | {strategy} | {who} |
|
|
167
|
+
|
|
168
|
+
## 7. DECISION LOG
|
|
169
|
+
Key architectural/approach decisions made during planning:
|
|
170
|
+
| Decision | Options Considered | Chosen | Rationale |
|
|
171
|
+
|----------|-------------------|--------|-----------|
|
|
172
|
+
| {decision} | {A, B, C} | {chosen} | {why} |
|
|
173
|
+
|
|
174
|
+
## 8. ITERATION STRATEGY
|
|
175
|
+
- When to iterate vs accept results
|
|
176
|
+
- Metric thresholds that trigger iteration
|
|
177
|
+
- Maximum iterations per phase
|
|
178
|
+
- Escalation path if iterations exhaust
|
|
179
|
+
|
|
180
|
+
OUTPUT FORMAT:
|
|
181
|
+
Return complete product plan as structured markdown ready for ROADMAP.md
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**STEP_2_CHECKPOINT:**
|
|
185
|
+
- [ ] Product owner agent launched with full context
|
|
186
|
+
- [ ] Agent returned structured product plan
|
|
187
|
+
- [ ] All 8 sections present
|
|
188
|
+
- [ ] Phases have measurable success criteria
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Step 3: VALIDATE PRODUCT PLAN
|
|
193
|
+
|
|
194
|
+
1. **Check completeness**:
|
|
195
|
+
- Vision and goals are specific and measurable
|
|
196
|
+
- Gap analysis references actual baseline values (not generic)
|
|
197
|
+
- Phase breakdown has at least 2 phases
|
|
198
|
+
- Final phase includes integration/verification
|
|
199
|
+
- Quality targets progress from baseline toward SOTA
|
|
200
|
+
|
|
201
|
+
2. **Check consistency**:
|
|
202
|
+
- Approach selection matches research context (not contradicting comparisons)
|
|
203
|
+
- Phase dependencies are logical (no circular dependencies)
|
|
204
|
+
- Effort estimates sum to reasonable total
|
|
205
|
+
- Risk mitigations are specific (not generic platitudes)
|
|
206
|
+
|
|
207
|
+
3. **Check research alignment**:
|
|
208
|
+
- Selected approach was recommended by comparison or has ADOPT/TRIAL verdict
|
|
209
|
+
- Feasibility concerns are addressed in risk register
|
|
210
|
+
- KNOWHOW.md insights are reflected in estimates
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Step 4: DISPLAY PRODUCT PLAN SUMMARY
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
218
|
+
║ PRODUCT PLAN ║
|
|
219
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
220
|
+
║ ║
|
|
221
|
+
║ Vision: {vision_short} ║
|
|
222
|
+
║ Approach: {primary_method} ║
|
|
223
|
+
║ Phases: {N} ║
|
|
224
|
+
║ Total effort: {weeks} weeks ║
|
|
225
|
+
║ ║
|
|
226
|
+
║ Phase roadmap: ║
|
|
227
|
+
║ 1. {phase_1}: {goal} ({effort}wk) ║
|
|
228
|
+
║ 2. {phase_2}: {goal} ({effort}wk) ║
|
|
229
|
+
║ ... ║
|
|
230
|
+
║ N. Integration & Verification ({effort}wk) ║
|
|
231
|
+
║ ║
|
|
232
|
+
║ Key quality targets: ║
|
|
233
|
+
║ {metric_1}: {baseline} -> {target} ║
|
|
234
|
+
║ {metric_2}: {baseline} -> {target} ║
|
|
235
|
+
║ ║
|
|
236
|
+
║ Top risks: ║
|
|
237
|
+
║ 1. {risk_1} ║
|
|
238
|
+
║ 2. {risk_2} ║
|
|
239
|
+
║ ║
|
|
240
|
+
║ Context gaps (may affect plan quality): ║
|
|
241
|
+
║ {missing_context_items} ║
|
|
242
|
+
║ ║
|
|
243
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Step 5: WRITE ROADMAP AND PROJECT FILES
|
|
249
|
+
|
|
250
|
+
1. **Write or update ROADMAP.md**:
|
|
251
|
+
- Path: `.planning/ROADMAP.md`
|
|
252
|
+
- Include phase table: `| # | Name | Goal | Effort | Status | Dependencies |`
|
|
253
|
+
- Include quality targets section
|
|
254
|
+
- Include approach and decision log
|
|
255
|
+
- Include iteration strategy
|
|
256
|
+
|
|
257
|
+
2. **Update PROJECT.md** (if exists):
|
|
258
|
+
- Add or update vision, goals, and non-goals
|
|
259
|
+
- Reference ROADMAP.md
|
|
260
|
+
|
|
261
|
+
3. **Create phase directories**:
|
|
262
|
+
```bash
|
|
263
|
+
for each phase:
|
|
264
|
+
mkdir -p ${phases_dir}/{N}-{phase-name}/
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Step 6: COMMIT
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
git add .planning/ROADMAP.md
|
|
273
|
+
git add .planning/PROJECT.md 2>/dev/null
|
|
274
|
+
git add ${phases_dir}/
|
|
275
|
+
git commit -m "product: plan {N} phases — {primary_approach}, {total_effort}wk"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Step 7: ROUTE NEXT ACTION
|
|
281
|
+
|
|
282
|
+
| Condition | Suggestion |
|
|
283
|
+
|-----------|------------|
|
|
284
|
+
| Baseline not assessed | `/grd:assess-baseline` — establish baseline for accurate gap analysis |
|
|
285
|
+
| No research context | `/grd:survey {topic}` — survey before planning |
|
|
286
|
+
| Plan ready, start phase 1 | `/grd:plan-phase 1` — create detailed phase plan |
|
|
287
|
+
| Need more research on approach | `/grd:deep-dive {paper}` or `/grd:feasibility {method}` |
|
|
288
|
+
| Plan needs discussion | `/grd:discuss-phase 1` — gather context for first phase |
|
|
289
|
+
|
|
290
|
+
</process>
|
|
291
|
+
|
|
292
|
+
<output>
|
|
293
|
+
**FILES_WRITTEN:**
|
|
294
|
+
- `.planning/ROADMAP.md` — product roadmap with phased plan
|
|
295
|
+
- `.planning/PROJECT.md` — updated with vision and goals (if exists)
|
|
296
|
+
- `${phases_dir}/{N}-{name}/` — phase directories created
|
|
297
|
+
|
|
298
|
+
**DISPLAY**: Product plan summary with phases, targets, risks, and context gaps
|
|
299
|
+
|
|
300
|
+
**GIT**: Committed: `product: plan {N} phases — {approach}, {effort}wk`
|
|
301
|
+
</output>
|
|
302
|
+
|
|
303
|
+
<error_handling>
|
|
304
|
+
- **No baseline available**: Proceed but mark all gap analysis as estimates, strongly suggest assess-baseline
|
|
305
|
+
- **No research context**: Proceed but flag that approach selection is uninformed, suggest survey
|
|
306
|
+
- **Existing roadmap conflict**: Present diff, ask user whether to replace or merge
|
|
307
|
+
- **Goals too vague**: ASK user for specific measurable criteria before proceeding
|
|
308
|
+
- **Phase count too high (>10)**: Suggest consolidation, warn about planning overhead
|
|
309
|
+
</error_handling>
|
|
310
|
+
|
|
311
|
+
<success_criteria>
|
|
312
|
+
- Product vision is specific and measurable
|
|
313
|
+
- Gap analysis uses actual baseline values (not placeholders)
|
|
314
|
+
- Approach selection is justified by research (or noted as uninformed)
|
|
315
|
+
- Phase breakdown is logical with dependencies
|
|
316
|
+
- Quality targets progress from baseline toward goal
|
|
317
|
+
- Iteration strategy is defined for each phase
|
|
318
|
+
- Plan is actionable — next step is always clear
|
|
319
|
+
</success_criteria>
|