From bdk
Create comprehensive implementation plan with exploration and trade-off analysis
npx claudepluginhub broneq/bdk --plugin bdkThis skill is limited to using the following tools:
> Relies on BDK foundation (STARTUP_INSTRUCTIONS.md) for project context and MCP tool preference.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Relies on BDK foundation (STARTUP_INSTRUCTIONS.md) for project context and MCP tool preference.
Transform requirements into detailed, TDD-driven implementation plans via structured exploration and analysis.
Core Principle: Explore → Analyze → Design → Plan → Document
Announce at start: "Using create-plan to build an implementation plan."
Validate input:
$ARGUMENTS empty/blank: ask user to describe feature, stop/bdk:brainstorming, stopExtract topic slug: 3-5 descriptive words, kebab-case, lowercase
Set plan path: .bdk/plans/YYYY-MM-DD-HHMM-<slug>.md
Create directory: ensure .bdk/plans/ exists
Check existing plan: if file exists, AskUserQuestion: Overwrite / Create v2 / Stop
Check design docs: scan .bdk/brainstorming/ for slug keywords; if found, print [create-plan] Found related design doc: {filename} and read it
Print: [create-plan] Setup complete. Plan: .bdk/plans/YYYY-MM-DD-HHMM-{slug}.md
GATE: valid input + plan path required before Phase 2.
Before launching agents, run a graph-first architecture snapshot:
!python3 ${CLAUDE_PLUGIN_ROOT}/scripts/inject.py --chain ${CLAUDE_PLUGIN_ROOT}/fragments/tool-tiers/explore.chain.json
Using the exploration tools above:
Pass these findings to each explorer agent as architectural context.
Launch explorer agents IN PARALLEL.
Scope:
Print: [create-plan] Launching {N} exploration agents...
Agent 1: Utilities & Existing Implementations (ALWAYS launch)
Use subagent_type explorer with prompt from references/explorer-prompts.md Agent 1.
Agent 2: Architecture & Dependencies (Medium or Complex)
Use subagent_type explorer with prompt from references/explorer-prompts.md Agent 2.
Agent 3: Similar Features (Complex only)
Use subagent_type explorer with prompt from references/explorer-prompts.md Agent 3.
Wait for all agents, then print:
[create-plan] Exploration complete:
- Utilities: {N found}
- Affected files: {N found}
- Similar features: {N found}
GATE: exploration results required before Phase 3.
Generate 2-3 implementation approaches.
Per approach:
Resolve open decisions via AskUserQuestion:
Print: [create-plan] Design complete: {selected approach name}
GATE: selected approach required before Phase 4.
Inject project tools context before writing:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/get_settings.py test-toolspython3 ${CLAUDE_PLUGIN_ROOT}/scripts/get_settings.py lint-toolspython3 ${CLAUDE_PLUGIN_ROOT}/scripts/inject-rules.py code-qualityResolve the <!-- INJECT: code-quality --> placeholder in references/plan-template.md by substituting the resolved content above into the final plan output. If inject-rules.py exits non-zero, surface the error and stop — quality rules must be present in every plan.
Use these values when filling the Verification section of references/plan-template.md. If a command fails (no .bdk/settings.json), fall back to generic phrasing ("run the project's test suite").
Write to .bdk/plans/YYYY-MM-DD-HHMM-{slug}.md. Use template in references/plan-template.md.
Critical requirements:
> Follow /bdk:test-driven-development skill for the red-green-clean cycle.Print: [create-plan] Plan written: .bdk/plans/YYYY-MM-DD-HHMM-{slug}.md — {N} tasks, {N} files to modify, {N} files to create
GATE: plan file must exist and be readable.
[create-plan] Done.
Plan: .bdk/plans/YYYY-MM-DD-HHMM-{slug}.md
Approach: {selected approach name}
Complexity: {LOW|MEDIUM|HIGH}
Tasks: {N} implementation tasks
Files: {N} to modify, {N} to create
Next steps:
1. Review the plan
2. Edit if needed
3. Execute with /bdk:execute-plan or manually
Do NOT start implementing. Plan is the deliverable.
pytest, uv run, bin/cleanup.sh, or any project-specific commands