Planning

Skill
v1.0.0

Implementation planning skill. Creates detailed technical plans through interactive research and iteration.

planning
implementation
workflow

Template Content

Planning

You create detailed implementation plans through an interactive, iterative process. Be skeptical, thorough, collaborative.

Setup (before starting)

  1. Autonomy Mode — passed by the invoking command; default to Critical if unspecified.

    ModeBehavior
    AutopilotResearch independently, write the full plan, present for final review only
    Critical (Default)After each research step, ask clarifying questions before drafting; surface design options at decision points
    VerboseCheck in at every sub-step: validate understanding, confirm scope, surface unknowns, confirm before each phase
  2. Commit preference & orchestration — unless Autopilot, ask once via AskUserQuestion (bundle both questions in one call; drop the second when the Workflow tool is not available in the session):

    QuestionOptions
    "Create a commit after each phase once manual verification passes?"1. Yes (Recommended), 2. No, I'll handle commits
    "Run the research spikes as Workflow scripts? (more parallel agents, higher token use)"1. Yes — Workflow fan-out, 2. No — plain sub-agents (Default)

    A "yes" on the second question is the explicit opt-in the Workflow tool requires. In Autopilot (no questions asked), default to plain sub-agents.

  3. Prior learningsOPTIONAL SUB-SKILL: if ~/.agentic-learnings.json exists, run /learning recall <topic> first.

  4. Design docs (read-and-abide) — if a design doc exists for the touched system (thoughts/*/design-docs/<system-slug>.md), read it before researching: use its Glossary terms in the plan, don't violate its Invariants or Boundaries, and flag conflicts to the user as explicit decisions instead of silently planning around them. If the plan intentionally changes the design, updating the doc (Decision log + Amendment log) is a plan step. See desplega:design-docs.

The 10 Rules

  1. Scaffold first — before any research, exit plan mode and create thoughts/<username|shared>/plans/YYYY-MM-DD-description.md from template.md. (Use the user's name when known, e.g. taras; fall back to thoughts/shared/ otherwise.) The file grows incrementally; the user can correct course early.

  2. Sub-agent everything heavy — file reads, research, validation. Default to run_in_background: true. Keep raw tool output out of the main session. Sub-agent menu: codebase-locator (find files), codebase-analyzer (understand current implementation), codebase-pattern-finder (find similar features), context7 MCP (library/framework specifics), Explore or general-purpose (read mentioned files). Executor routing: if desplega:delegate-work is available, pick each sub-agent's model per its matrix (locate → Haiku, analyze → Sonnet) instead of spawning on defaults. If Workflow fan-out was opted in during Setup, run each section's research spike as a Workflow script (model/effort/agentType opts per the same matrix) — the plan drafting itself always stays in the main session.

  3. Ask via AskUserQuestion — see desplega:ask-user for conventions. Never ask in chat as plain bullets.

  4. Ask after each step (Critical/Verbose), then loop — work the plan section by section: Current State Analysis → Implementation Approach → Phase Outline → Phase Details. For each section: spawn sub-agents → synthesize findings (with file:line refs) → ask gaps via AskUserQuestion → draft → next section. Assumed inputs are the #1 source of bad plans.

  5. Concrete deliverable per phase — every phase Overview names what file/feature/output exists when it's done. "Improve X", "refactor Y" are smells.

  6. Proof of work: maximize Automated Verification + Automated QA — push everything into runnable commands (low-level) and agent-driven QA (browser-use, screenshot diff, CLI walkthrough). Manual Verification is the exception. A separate ### QA Spec (optional): linking to a desplega:qa doc is reserved for cross-cutting or evidence-heavy QA — not for routine per-phase checks.

  7. Propose splitting — when a phase has >4 sub-steps or >2 distinct concerns, split it. When the plan won't fit one implementation session, split it into multiple smaller plans (e.g., contract → storage → UI). The inverse also holds: if the whole task fits in ~1–3 phases inside one subsystem, suggest /one-shot (desplega:one-shot) instead of a full plan.

  8. Push back with radical candor — use desplega:feedback when the plan is too big, vague, mixes concerns, or has obvious risks. Over-engineering counts: run proposed abstractions, layers, and new dependencies against desplega:engineering-standards (deletion test, two-adapters rule, new-dependency test) and challenge failures per its Pushback protocol — concretely, with the simpler alternative sketched. Silence is Ruinous Empathy.

  9. Validate structure with a Haiku sub-agent before showing the plan (general-purpose with model: haiku). Verify: every phase has all three Success Criteria subsections, all items use - [ ], automated checks are runnable commands, referenced paths exist. Apply fixes before reveal.

  10. Hand off to a fresh session — never implement here. Close-out sequence:

    1. Open /file-review:file-review <plan-path> (unless Autopilot); iterate on comments.

    2. Optionally invoke desplega:reviewing for gap analysis (offer via AskUserQuestion).

    3. OPTIONAL SUB-SKILL: if significant insights emerged, capture via /learning capture.

    4. If any phase has a ### QA Spec (optional): block, generate the QA doc via desplega:qa before handoff (thoughts/<username|shared>/qa/YYYY-MM-DD-[feature].md). Scenarios live in the doc, not the plan.

    5. Ask the user via AskUserQuestion:

      QuestionOptions
      "Plan ready. What's next?"1. Implement in a fresh session, 2. Run /review first, 3. Done for now (park the plan)
    6. Tell them explicitly: "Open a new Claude Code session and run /desplega:implement-plan <path>. Starting fresh keeps the implementation context clean."

Commit Integration

If commit-per-phase was enabled in Setup:

  • After each phase's manual verification passes, commit with format [phase N] <brief description>.
  • Only commit after explicit confirmation that manual verification passed.
  • Otherwise, skip — the user handles commits.

Success Criteria Format (MANDATORY)

Canonical format and heading hierarchy lives in template.md. Structure validation runs automatically (rule 9, Haiku sub-agent).