pbl/skills/plan/SKILL.md
Use when the user asks to "plan", "create a plan", "design a solution", "how should I implement", "design an approach for", "what's the best way to build", "architect a solution", or wants an implementation plan for a feature, refactor, or change. Also use when the user describes a feature or change that would benefit from structured planning before coding.
npx skillsauth add tim-hub/powerball planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You MUST NOT call EnterPlanMode or ExitPlanMode at any point during this skill. This skill operates in normal mode and hands off to subagent-driven-development at the end. Calling EnterPlanMode traps the session in plan mode where Write/Edit are restricted. Calling ExitPlanMode breaks the workflow and skips execution. If you feel the urge to call either, STOP — follow this skill's instructions instead.
Create an implementation plan informed by a prior exploration, and save it alongside the exploration document.
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
Assume they are a skilled developer, but know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
Same naming convention as the explore skill:
.powerball/specs/ for a directory whose name ends with -{{name}} (ignoring the date prefix). If multiple matches, list them and ask.exploration.md is found, read it — this is the context for planning./explore with the same argument, then read the resulting exploration.Design an implementation plan informed by the exploration:
Present the plan to the user before saving:
You MUST save the plan to disk before proceeding to any other step. Do NOT skip this.
.powerball/specs/YYYY-MM-DD-{{name}}/ exists (create it if not).templates/plan.md.{{NAME}} with the derived name (title case, spaces){{DATE}} with today's date (YYYY-MM-DD).powerball/specs/YYYY-MM-DD-{{name}}/plan.md.Use both skills concurrently as parallel agents:
writing-tasks — breaks the plan into ordered, phased tasks with dependencies. Saves tasks.md.writing-checklist — defines verification checkpoints. Saves checklist.md.Both skills read from the same inputs (exploration.md and plan.md) but must NOT read each other's output. This is intentional: tasks describe what to do (implementation steps), while the checklist describes what to verify (observable outcomes). Running them in parallel prevents the checklist from mirroring tasks 1:1 and instead forces outcome-oriented thinking.
For example, if the tasks are "change button text to X" and "add onClick handler to button", the checklist should NOT be "button text is X" + "onClick handler exists." It should be "clicking the button triggers action Y and log Z is visible" — verifying the combined outcome.
After both artifacts are written, do a quick cross-validation:
tasks.md — if a checklist item has no supporting tasks, add the missing task(s).Tell the user:
plan.md — goal, architecture, riskstasks.md — step-by-step implementation taskschecklist.md — verification checkpoints/build if the plan work is complete, the build skill reads from the same specs directorytesting
Picks the right Kubernetes Deployment update strategy (RollingUpdate / Recreate / Blue-Green / Canary) for the situation. Use when configuring a new Deployment, changing rollout config, or deciding how to ship a risky change.
tools
Translates a markdown file to a target language, preserving structure. Use when the user needs a markdown file translated.
development
Translates text between any two languages while preserving source format. Use when the user needs to translate plain text, code, or markdown content.
testing
Generates written content — blog posts, social posts, emails, and marketing copy — matched to the project's existing voice. Use when the user needs written material.