@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,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Discover and extract coding standards from existing codebase patterns
|
|
3
|
+
argument-hint: [API | Database | Frontend | Testing | Configuration | custom path]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<purpose>
|
|
7
|
+
Analyze existing codebase files to discover recurring patterns and conventions. Present each discovered pattern interactively so the user can confirm which ones should become enforced standards. Confirmed patterns are written to `.planning/standards/{area}/{pattern-slug}.md` with structured frontmatter and indexed in `.planning/standards/index.yml`.
|
|
8
|
+
</purpose>
|
|
9
|
+
|
|
10
|
+
<process>
|
|
11
|
+
|
|
12
|
+
<step name="get_focus_area" priority="first">
|
|
13
|
+
**Get focus area from argument or prompt user.**
|
|
14
|
+
|
|
15
|
+
If `$ARGUMENTS` contains a focus area, use it. Otherwise, prompt:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
AskUserQuestion(
|
|
19
|
+
header: "Standards Discovery",
|
|
20
|
+
question: "Which area of the codebase should I analyze for patterns?",
|
|
21
|
+
options: [
|
|
22
|
+
{ label: "API", description: "Routes, controllers, middleware, request/response patterns" },
|
|
23
|
+
{ label: "Database", description: "Models, queries, migrations, connection patterns" },
|
|
24
|
+
{ label: "Frontend", description: "Components, state management, styling patterns" },
|
|
25
|
+
{ label: "Testing", description: "Test structure, fixtures, assertions, mocking patterns" },
|
|
26
|
+
{ label: "Configuration", description: "Config loading, environment handling, defaults" },
|
|
27
|
+
{ label: "Custom path", description: "Specify a directory or glob pattern to analyze" }
|
|
28
|
+
]
|
|
29
|
+
)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Store response as `$AREA`.
|
|
33
|
+
|
|
34
|
+
If "Custom path" selected, follow up:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
AskUserQuestion(
|
|
38
|
+
header: "Custom Path",
|
|
39
|
+
question: "Enter the directory path or glob pattern to analyze (e.g., src/services/ or lib/**/*.js):",
|
|
40
|
+
followUp: null
|
|
41
|
+
)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Store response as `$CUSTOM_PATH`.
|
|
45
|
+
|
|
46
|
+
Map area to search patterns:
|
|
47
|
+
- **API**: `src/**/routes/**`, `src/**/controllers/**`, `src/**/api/**`, `lib/**/routes/**`, `app/**/controllers/**`
|
|
48
|
+
- **Database**: `src/**/models/**`, `src/**/migrations/**`, `src/**/db/**`, `lib/**/models/**`, `prisma/**`, `drizzle/**`
|
|
49
|
+
- **Frontend**: `src/**/components/**`, `src/**/pages/**`, `src/**/views/**`, `app/**/components/**`
|
|
50
|
+
- **Testing**: `tests/**`, `test/**`, `__tests__/**`, `*.test.*`, `*.spec.*`
|
|
51
|
+
- **Configuration**: `config/**`, `*.config.*`, `.env*`, `src/**/config/**`
|
|
52
|
+
- **Custom path**: Use `$CUSTOM_PATH` directly
|
|
53
|
+
</step>
|
|
54
|
+
|
|
55
|
+
<step name="find_representative_files">
|
|
56
|
+
**Find 5-10 representative files using Glob.**
|
|
57
|
+
|
|
58
|
+
Use the search patterns from the previous step to find candidate files. Select 5-10 files that are:
|
|
59
|
+
- Non-trivial (>20 lines)
|
|
60
|
+
- Representative of the area (not generated or vendored)
|
|
61
|
+
- Diverse (different subdirectories or concerns within the area)
|
|
62
|
+
|
|
63
|
+
If fewer than 5 files found, widen the search. If the mapped globs find nothing, fall back to a broad search of the project and filter by relevance to the area.
|
|
64
|
+
|
|
65
|
+
Report to user:
|
|
66
|
+
```
|
|
67
|
+
Analyzing {N} files in {area}:
|
|
68
|
+
{list of file paths}
|
|
69
|
+
```
|
|
70
|
+
</step>
|
|
71
|
+
|
|
72
|
+
<step name="analyze_patterns">
|
|
73
|
+
**Read each file and extract patterns.**
|
|
74
|
+
|
|
75
|
+
For each file, analyze and note:
|
|
76
|
+
|
|
77
|
+
1. **Naming conventions** — file names, function names, variable names, class names, export names
|
|
78
|
+
2. **Import/require patterns** — ordering, grouping, aliasing, path conventions
|
|
79
|
+
3. **Error handling** — try/catch structure, error classes, error response format, logging
|
|
80
|
+
4. **Response/return structures** — consistent shapes, status codes, envelope patterns
|
|
81
|
+
5. **Documentation patterns** — JSDoc style, inline comments, header comments, README conventions
|
|
82
|
+
6. **Testing patterns** — describe/it structure, setup/teardown, assertion style, mock patterns
|
|
83
|
+
7. **Code organization** — module structure, export style, separation of concerns
|
|
84
|
+
8. **Configuration patterns** — how defaults are set, env var access, validation
|
|
85
|
+
|
|
86
|
+
For each pattern category, look for consistency across files. A pattern is significant if it appears in 3+ files or is clearly intentional (e.g., a shared utility enforcing it).
|
|
87
|
+
|
|
88
|
+
Collect discovered patterns as a list, each with:
|
|
89
|
+
- `name`: Short descriptive name (e.g., "Error response envelope")
|
|
90
|
+
- `category`: One of the categories above
|
|
91
|
+
- `description`: What the pattern is and why it exists
|
|
92
|
+
- `examples`: 2-3 code snippets showing the pattern in use
|
|
93
|
+
- `files`: Which files exhibit this pattern
|
|
94
|
+
- `confidence`: high (5+ files), medium (3-4 files), low (1-2 files but intentional)
|
|
95
|
+
</step>
|
|
96
|
+
|
|
97
|
+
<step name="present_patterns_interactively">
|
|
98
|
+
**Present each pattern to the user for confirmation.**
|
|
99
|
+
|
|
100
|
+
For each discovered pattern (sorted by confidence, highest first):
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Pattern: {name}
|
|
106
|
+
Category: {category} | Confidence: {confidence} | Found in {N} files
|
|
107
|
+
|
|
108
|
+
{description}
|
|
109
|
+
|
|
110
|
+
### Examples
|
|
111
|
+
|
|
112
|
+
{2-3 code snippets with file attribution}
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Then ask:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
AskUserQuestion(
|
|
121
|
+
header: "Pattern: {name}",
|
|
122
|
+
question: "Should this pattern be enforced as a standard?",
|
|
123
|
+
options: [
|
|
124
|
+
{ label: "Yes — enforce as standard", description: "Add to project standards" },
|
|
125
|
+
{ label: "Yes — with modifications", description: "I want to adjust the description before saving" },
|
|
126
|
+
{ label: "Skip", description: "Not a standard, just coincidence" }
|
|
127
|
+
]
|
|
128
|
+
)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
If "Yes -- with modifications": ask user for their revised description/rules, then save with their version.
|
|
132
|
+
|
|
133
|
+
Collect all confirmed patterns as `$CONFIRMED_PATTERNS`.
|
|
134
|
+
</step>
|
|
135
|
+
|
|
136
|
+
<step name="write_standard_files">
|
|
137
|
+
**Write confirmed standards to `.planning/standards/{area}/`.**
|
|
138
|
+
|
|
139
|
+
Compute the area slug:
|
|
140
|
+
```bash
|
|
141
|
+
AREA_SLUG=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js generate-slug "$AREA" --raw)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Create the directory:
|
|
145
|
+
```bash
|
|
146
|
+
mkdir -p ${standards_dir}/${AREA_SLUG}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
For each confirmed pattern, generate a slug and write a markdown file:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
PATTERN_SLUG=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js generate-slug "${pattern_name}" --raw)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Write to `.planning/standards/${AREA_SLUG}/${PATTERN_SLUG}.md`:
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
---
|
|
159
|
+
name: {pattern_name}
|
|
160
|
+
category: {category}
|
|
161
|
+
area: {area}
|
|
162
|
+
confidence: {confidence}
|
|
163
|
+
source_files:
|
|
164
|
+
- {file1}
|
|
165
|
+
- {file2}
|
|
166
|
+
discovered: {YYYY-MM-DD}
|
|
167
|
+
status: active
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
# {pattern_name}
|
|
171
|
+
|
|
172
|
+
{description}
|
|
173
|
+
|
|
174
|
+
## Rule
|
|
175
|
+
|
|
176
|
+
{Concise statement of what the standard requires}
|
|
177
|
+
|
|
178
|
+
## Examples
|
|
179
|
+
|
|
180
|
+
### Correct
|
|
181
|
+
|
|
182
|
+
{code example showing the pattern done right}
|
|
183
|
+
|
|
184
|
+
### Incorrect
|
|
185
|
+
|
|
186
|
+
{code example showing what to avoid — inferred from the pattern}
|
|
187
|
+
|
|
188
|
+
## Rationale
|
|
189
|
+
|
|
190
|
+
{Why this pattern exists — inferred from codebase context}
|
|
191
|
+
```
|
|
192
|
+
</step>
|
|
193
|
+
|
|
194
|
+
<step name="update_index">
|
|
195
|
+
**Create or update `.planning/standards/index.yml`.**
|
|
196
|
+
|
|
197
|
+
If `.planning/standards/index.yml` exists, read it and merge new entries. Otherwise create it.
|
|
198
|
+
|
|
199
|
+
Format:
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
# Standards Index — auto-generated by /grd:discover
|
|
203
|
+
# Last updated: {YYYY-MM-DD}
|
|
204
|
+
|
|
205
|
+
areas:
|
|
206
|
+
{area_slug}:
|
|
207
|
+
name: {Area}
|
|
208
|
+
standards:
|
|
209
|
+
- slug: {pattern_slug}
|
|
210
|
+
name: {pattern_name}
|
|
211
|
+
category: {category}
|
|
212
|
+
status: active
|
|
213
|
+
file: {area_slug}/{pattern_slug}.md
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Merge new standards into existing areas. Do not remove existing entries.
|
|
217
|
+
</step>
|
|
218
|
+
|
|
219
|
+
<step name="commit">
|
|
220
|
+
**Commit all standards files.**
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
git add .planning/standards/
|
|
224
|
+
git commit -m "docs(standards): discover {area} patterns — {N} standards extracted"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
If nothing to commit (no patterns confirmed), inform user and skip.
|
|
228
|
+
</step>
|
|
229
|
+
|
|
230
|
+
<step name="completion">
|
|
231
|
+
**Display summary and next steps.**
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
GRD > STANDARDS DISCOVERY COMPLETE
|
|
237
|
+
|
|
238
|
+
Area: {area}
|
|
239
|
+
Files analyzed: {N}
|
|
240
|
+
Patterns found: {total}
|
|
241
|
+
Standards confirmed: {confirmed_count}
|
|
242
|
+
Standards skipped: {skipped_count}
|
|
243
|
+
|
|
244
|
+
Written to: .planning/standards/{area_slug}/
|
|
245
|
+
|
|
246
|
+
Standards:
|
|
247
|
+
{for each confirmed pattern:}
|
|
248
|
+
- {pattern_name} ({category})
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
Next steps:
|
|
253
|
+
- /grd:discover {other_area} — discover patterns in another area
|
|
254
|
+
- Review standards in .planning/standards/{area_slug}/
|
|
255
|
+
- Standards are automatically loaded during /grd:plan-phase and /grd:execute-phase
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
```
|
|
259
|
+
</step>
|
|
260
|
+
|
|
261
|
+
</process>
|
|
262
|
+
|
|
263
|
+
<error_handling>
|
|
264
|
+
- **No files found for area**: Suggest broader search or ask user for specific paths
|
|
265
|
+
- **No patterns detected**: Report findings, suggest trying a different area or providing more files
|
|
266
|
+
- **generate-slug not available**: Fall back to lowercase-hyphenated manual slug generation
|
|
267
|
+
- **Git commit fails**: Report files written but uncommitted, suggest manual commit
|
|
268
|
+
- **index.yml parse error**: Back up corrupted file, create fresh index
|
|
269
|
+
</error_handling>
|
|
270
|
+
|
|
271
|
+
<success_criteria>
|
|
272
|
+
- [ ] User selects or provides a focus area
|
|
273
|
+
- [ ] 5-10 representative files found and analyzed
|
|
274
|
+
- [ ] Patterns extracted across multiple categories (naming, imports, errors, etc.)
|
|
275
|
+
- [ ] Each pattern presented interactively with examples
|
|
276
|
+
- [ ] User confirms/skips each pattern
|
|
277
|
+
- [ ] Confirmed patterns written to `.planning/standards/{area}/{slug}.md` with frontmatter
|
|
278
|
+
- [ ] `.planning/standards/index.yml` created or updated
|
|
279
|
+
- [ ] All standards files committed to git
|
|
280
|
+
- [ ] Summary displayed with counts and next steps
|
|
281
|
+
</success_criteria>
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extract implementation decisions before phase planning
|
|
3
|
+
argument-hint: <phase number>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<purpose>
|
|
7
|
+
Extract implementation decisions that downstream agents need. Analyze the phase to identify gray areas, let the user choose what to discuss, then deep-dive each selected area until satisfied.
|
|
8
|
+
|
|
9
|
+
You are a thinking partner, not an interviewer. The user is the visionary — you are the builder. Your job is to capture decisions that will guide research and planning, not to figure out implementation yourself.
|
|
10
|
+
</purpose>
|
|
11
|
+
|
|
12
|
+
<downstream_awareness>
|
|
13
|
+
**CONTEXT.md feeds into:**
|
|
14
|
+
|
|
15
|
+
1. **grd-phase-researcher** — Reads CONTEXT.md to know WHAT to research
|
|
16
|
+
2. **grd-planner** — Reads CONTEXT.md to know WHAT decisions are locked
|
|
17
|
+
|
|
18
|
+
**Your job:** Capture decisions clearly enough that downstream agents can act on them without asking the user again.
|
|
19
|
+
</downstream_awareness>
|
|
20
|
+
|
|
21
|
+
<process>
|
|
22
|
+
|
|
23
|
+
<step name="initialize" priority="first">
|
|
24
|
+
Phase number from argument (required).
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js init phase-op "${PHASE}")
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`, `plan_count`, `roadmap_exists`, `planning_exists`.
|
|
31
|
+
|
|
32
|
+
**If `phase_found` is false:**
|
|
33
|
+
```
|
|
34
|
+
Phase [X] not found in roadmap.
|
|
35
|
+
|
|
36
|
+
Use /grd:progress to see available phases.
|
|
37
|
+
```
|
|
38
|
+
Exit workflow.
|
|
39
|
+
</step>
|
|
40
|
+
|
|
41
|
+
<step name="check_existing">
|
|
42
|
+
Check if CONTEXT.md already exists using `has_context` from init.
|
|
43
|
+
|
|
44
|
+
**If exists:**
|
|
45
|
+
Use AskUserQuestion:
|
|
46
|
+
- header: "Existing context"
|
|
47
|
+
- question: "Phase [X] already has context. What do you want to do?"
|
|
48
|
+
- options:
|
|
49
|
+
- "Update it" — Review and revise existing context
|
|
50
|
+
- "View it" — Show me what's there
|
|
51
|
+
- "Skip" — Use existing context as-is
|
|
52
|
+
</step>
|
|
53
|
+
|
|
54
|
+
<step name="analyze_phase">
|
|
55
|
+
Analyze the phase to identify gray areas worth discussing. Read the phase description from ROADMAP.md and determine:
|
|
56
|
+
|
|
57
|
+
1. **Domain boundary** — What capability is this phase delivering?
|
|
58
|
+
2. **Gray areas by category** — For each relevant category, identify 1-2 specific ambiguities
|
|
59
|
+
3. **Skip assessment** — If no meaningful gray areas exist, the phase may not need discussion
|
|
60
|
+
</step>
|
|
61
|
+
|
|
62
|
+
<step name="present_gray_areas">
|
|
63
|
+
Present the domain boundary and gray areas to user.
|
|
64
|
+
|
|
65
|
+
**First, state the boundary:**
|
|
66
|
+
```
|
|
67
|
+
Phase [X]: [Name]
|
|
68
|
+
Domain: [What this phase delivers]
|
|
69
|
+
|
|
70
|
+
We'll clarify HOW to implement this.
|
|
71
|
+
(New capabilities belong in other phases.)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Then use AskUserQuestion (multiSelect: true):**
|
|
75
|
+
- header: "Discuss"
|
|
76
|
+
- question: "Which areas do you want to discuss for [phase name]?"
|
|
77
|
+
- options: Generate 3-4 phase-specific gray areas
|
|
78
|
+
</step>
|
|
79
|
+
|
|
80
|
+
<step name="discuss_areas">
|
|
81
|
+
For each selected area, conduct a focused discussion loop.
|
|
82
|
+
|
|
83
|
+
**CRITICAL: No solutions before understanding.** You are gathering context, not solving problems. Do not propose approaches until you fully understand the problem space. Premature solutions anchor thinking and close off better options.
|
|
84
|
+
|
|
85
|
+
**Protocol:**
|
|
86
|
+
|
|
87
|
+
1. Ask questions **ONE AT A TIME**. Each answer informs the next question. Never batch multiple questions — it overwhelms and produces shallow answers.
|
|
88
|
+
|
|
89
|
+
2. After 4 questions per area, offer a check:
|
|
90
|
+
- Use AskUserQuestion:
|
|
91
|
+
- header: "Direction"
|
|
92
|
+
- question: "We've explored [area]. What next?"
|
|
93
|
+
- options:
|
|
94
|
+
- "Go deeper" — More questions on this area
|
|
95
|
+
- "Propose approaches" — I've shared enough, show me options
|
|
96
|
+
- "Skip" — Move to next area
|
|
97
|
+
|
|
98
|
+
3. **If "Go deeper"**: Ask 4 more questions, then check again.
|
|
99
|
+
|
|
100
|
+
4. **If "Propose approaches"**: Enter approach proposal mode (see `propose_approaches` sub-step below).
|
|
101
|
+
|
|
102
|
+
5. **If "Skip"**: Move to next selected area.
|
|
103
|
+
|
|
104
|
+
**Anti-patterns to avoid:**
|
|
105
|
+
- Solution anchoring ("Should we use a transformer here?")
|
|
106
|
+
- Leading questions ("Don't you think X would work?")
|
|
107
|
+
- Premature trade-off analysis
|
|
108
|
+
- Skipping the "why" to jump to "how"
|
|
109
|
+
- Question batching
|
|
110
|
+
- Assumption embedding ("How should we implement the cache?" assumes caching is needed)
|
|
111
|
+
</step>
|
|
112
|
+
|
|
113
|
+
<step name="propose_approaches">
|
|
114
|
+
When user selects "Propose approaches" during discussion:
|
|
115
|
+
|
|
116
|
+
Present 2-3 **distinct** approaches (not minor variations). For each:
|
|
117
|
+
- **What it is** (1-2 sentences)
|
|
118
|
+
- **Research backing** (paper references from LANDSCAPE.md/PAPERS.md if applicable)
|
|
119
|
+
- **Complexity** (low / medium / high)
|
|
120
|
+
- **Risk** (what could go wrong)
|
|
121
|
+
- **Trade-offs** vs alternatives
|
|
122
|
+
|
|
123
|
+
Use AskUserQuestion for selection:
|
|
124
|
+
- header: "Approach"
|
|
125
|
+
- question: "Which approach for [area]?"
|
|
126
|
+
- options: the approaches + "Combine elements" + "None — explore more"
|
|
127
|
+
|
|
128
|
+
**If "Combine elements"**: Ask which elements from which approaches, then synthesize.
|
|
129
|
+
**If "None — explore more"**: Return to questioning loop.
|
|
130
|
+
**Otherwise**: Record selection with rationale.
|
|
131
|
+
</step>
|
|
132
|
+
|
|
133
|
+
<step name="write_context">
|
|
134
|
+
Create CONTEXT.md capturing decisions made.
|
|
135
|
+
|
|
136
|
+
**File location:** `${phase_dir}/${padded_phase}-CONTEXT.md`
|
|
137
|
+
|
|
138
|
+
Structure with: Phase Boundary, Implementation Decisions, Approach Selections (if any approaches were proposed and selected), Claude's Discretion, Specific Ideas, Deferred Ideas.
|
|
139
|
+
</step>
|
|
140
|
+
|
|
141
|
+
<step name="confirm_creation">
|
|
142
|
+
Present summary and next steps:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
Created: ${phase_dir}/${PADDED_PHASE}-CONTEXT.md
|
|
146
|
+
|
|
147
|
+
## Decisions Captured
|
|
148
|
+
|
|
149
|
+
### [Category]
|
|
150
|
+
- [Key decision]
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Next Up
|
|
155
|
+
|
|
156
|
+
**Phase ${PHASE}: [Name]** — [Goal from ROADMAP.md]
|
|
157
|
+
|
|
158
|
+
`/grd:plan-phase ${PHASE}`
|
|
159
|
+
|
|
160
|
+
<sub>`/clear` first -> fresh context window</sub>
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
**Also available:**
|
|
165
|
+
- `/grd:plan-phase ${PHASE} --skip-research` — plan without research
|
|
166
|
+
- Review/edit CONTEXT.md before continuing
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
```
|
|
170
|
+
</step>
|
|
171
|
+
|
|
172
|
+
<step name="git_commit">
|
|
173
|
+
```bash
|
|
174
|
+
node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
175
|
+
```
|
|
176
|
+
</step>
|
|
177
|
+
|
|
178
|
+
</process>
|
|
179
|
+
|
|
180
|
+
<success_criteria>
|
|
181
|
+
- Phase validated against roadmap
|
|
182
|
+
- Gray areas identified through intelligent analysis
|
|
183
|
+
- User selected which areas to discuss
|
|
184
|
+
- Each selected area explored until user satisfied
|
|
185
|
+
- Scope creep redirected to deferred ideas
|
|
186
|
+
- CONTEXT.md captures actual decisions
|
|
187
|
+
- User knows next steps
|
|
188
|
+
</success_criteria>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run an ad-hoc multi-backend discussion on a topic
|
|
3
|
+
argument-hint: <topic>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<purpose>
|
|
7
|
+
Run a multi-backend discussion using configured participants. Each backend contributes a perspective, a synthesizer backend summarizes the round, and the result is written to the discussion history. Useful for getting diverse AI perspectives on architecture decisions, design questions, or open-ended research topics.
|
|
8
|
+
</purpose>
|
|
9
|
+
|
|
10
|
+
<process>
|
|
11
|
+
|
|
12
|
+
<step name="resolve_topic">
|
|
13
|
+
If an argument was provided, use it as the discussion topic.
|
|
14
|
+
|
|
15
|
+
If no argument was provided, read `.planning/ROADMAP.md` to identify the current phase goal and use it as the topic:
|
|
16
|
+
```
|
|
17
|
+
"What is the best approach for the current phase goal: [goal from ROADMAP.md]?"
|
|
18
|
+
```
|
|
19
|
+
</step>
|
|
20
|
+
|
|
21
|
+
<step name="run_discussion">
|
|
22
|
+
Call the `grd_discussion_run` MCP tool with the topic:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
grd_discussion_run(
|
|
26
|
+
topic: <resolved topic>,
|
|
27
|
+
// participants: omit to use all available backends from config
|
|
28
|
+
// rounds: omit to use default (2)
|
|
29
|
+
// synthesizer: omit to use default (claude)
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The tool dispatches to all configured participants sequentially (from `backend_roles` in config, or all available backends), runs the configured number of rounds, and synthesizes a final answer.
|
|
34
|
+
</step>
|
|
35
|
+
|
|
36
|
+
<step name="present_results">
|
|
37
|
+
Present the discussion results clearly:
|
|
38
|
+
|
|
39
|
+
1. **Participants** — List which backends participated vs were skipped (unavailable)
|
|
40
|
+
2. **Round responses** — For each round, show each backend's name and a brief excerpt (first 200 chars) of their response
|
|
41
|
+
3. **Synthesis** — Show the synthesizer's full response prominently under a `## Synthesis` header
|
|
42
|
+
4. **History file** — Report the path to the saved discussion markdown file (`discussion_file` field in result)
|
|
43
|
+
|
|
44
|
+
If a backend was skipped (not available on PATH), note it as "skipped — not available".
|
|
45
|
+
</step>
|
|
46
|
+
|
|
47
|
+
</process>
|
|
48
|
+
|
|
49
|
+
<success_criteria>
|
|
50
|
+
- [ ] Topic resolved (from argument or current phase goal)
|
|
51
|
+
- [ ] grd_discussion_run tool called with topic
|
|
52
|
+
- [ ] Round responses presented with backend names
|
|
53
|
+
- [ ] Synthesis displayed prominently
|
|
54
|
+
- [ ] History file path reported
|
|
55
|
+
</success_criteria>
|