claude/skills/draft-plan/SKILL.md
Produce an implementation plan at .turbo/plans/<slug>.md. Use when the user asks to "draft a plan", "draft the plan", "write an implementation plan", "plan this change", "create an implementation plan", or needs a first-draft plan file before refinement.
npx skillsauth add tobihagemann/turbo draft-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.
Produce an implementation plan at .turbo/plans/<slug>.md. Capture the task, survey patterns, escalate decisions, discuss, and draft.
Use TaskCreate to create a task for each step:
/survey-patterns skillAbsorb the user's request without interrupting. Restate the goal in one or two sentences and confirm.
Generate a slug for the plan file from the task title:
Example: "Add a caching layer to the image pipeline" → add-a-caching-layer-to-the-image-pipeline.
If .turbo/plans/<slug>.md already exists, append -2, -3, etc. until the path is free. Do not overwrite.
The user may pass an explicit slug or path in their request (e.g., "draft plan as auth-rewrite"). If so, honor it. If .turbo/plans/<slug>.md exists in that case, use AskUserQuestion to ask whether to overwrite, append a numeric suffix, or pick a different slug.
State the chosen slug and the resulting plan path before continuing.
If the task references an existing spec at .turbo/specs/<slug>.md (when a spec path is passed as input), treat the spec as the source of truth for product decisions and discussion areas. Read the spec, then:
.turbo/plans/<spec-slug>.md already exists, do not auto-suffix (that would break the shared-slug invariant). Use AskUserQuestion to ask whether to overwrite or pick a different slug, mirroring Step 1's explicit-slug collision handling.A question is resolved by the spec only when the spec makes a definitive statement that answers it. Mentions without a chosen direction, open questions in the spec, and deferred decisions do not count as resolved; escalate those normally.
Step 2 (pattern survey) and Step 3 (consult skills and docs) still run in full. The spec describes what; /draft-plan still surveys how.
/survey-patterns SkillRun the /survey-patterns skill with the confirmed task description. Keep the returned findings in conversation context for use in Steps 5 and 6.
Ground library and framework choices in current reality before escalating decisions.
Keep findings at the decision level: what a library can do, which approach is idiomatic, which version to target. Do not embed specific API signatures or code snippets into the plan. Those belong at execution time, where the same skills are re-loaded.
Identify product or design decisions the user's request did not resolve. Escalate these via AskUserQuestion before drafting steps.
Escalate when:
Do not escalate technical decisions the agent can make autonomously: which data structure, which existing pattern to follow, internal implementation approach. The boundary is product intent.
Present each decision as a concise trade-off with options. Mark the strongest option "(Recommended)" and place it first. Draft plan steps that depend on these decisions only after the user responds.
Interview the user relentlessly about every aspect of the implementation shape until you reach shared understanding. Use AskUserQuestion, one question at a time. Use the pattern survey findings to frame choices. Cover whichever of these matter for the task. Do not present a rigid checklist:
| Area | What to explore | |---|---| | Reuse vs new | Which survey findings should the new work build on? Which should it deliberately not follow, and why? | | File placement | Where do new files live? Which existing files are modified? | | Data flow | How does data move through the change? Any new boundaries or contracts? | | Edge cases | Partial failure, empty states, backward compatibility, concurrency | | Tests | Which existing test patterns apply? Where do new tests live? | | Scope cut | Anything to explicitly defer? |
Synthesize the task description, pattern survey findings, consulted skill and doc context, resolved product decisions, and deep-dive discussion outcomes into a complete plan document.
Create .turbo/plans/ if it does not exist. Write the plan to .turbo/plans/<slug>.md using the slug picked in Step 1 (or the override path from Step 1) using this structure:
---
status: draft
---
# Plan: <Task Title>
## Context
<Why this change is being made — the problem or need it addresses, what prompted it, the intended outcome. One or two paragraphs.>
## Pattern Survey
<Insert the structured findings from `/survey-patterns`: Analogous Features, Reusable Utilities, Convention Anchors, Proposed Alignment. Use the same format the survey returned.>
## Implementation Steps
1. **<Step 1 title>**
- <Concrete action with `file_path` references and named functions or symbols>
- <Another action>
2. **<Step 2 title>**
- ...
3. ...
## Verification
How to verify the change works end-to-end after implementation:
- <Specific test command, manual smoke check, or MCP tool invocation>
- <Expected observable result for each verification step>
- <Edge cases to spot-check>
## Context Files
Files to read in full before starting implementation:
- `<path/to/file1>` — <why it matters>
- `<path/to/file2>` — <why it matters>
- ...
file_path references and named functions or symbols. Reference existing functions and utilities from the Pattern Survey instead of reinventing them. Each step describes a discrete unit of work that can be tracked independently during execution./finalize invocation, test commands, or commit instructions in the plan content — those are execution-wrapper concerns.Present a brief summary of the drafted plan: the essence of what it builds and the key decisions behind it, short enough to read at a glance so the user does not have to read the full plan file. When the plan delivers user-facing value, also present a short list of user stories capturing what someone gains from it. Skip the stories for changes with no user-facing gain, such as internal refactors or infrastructure work. Fit both to the plan rather than a fixed template.
Then use AskUserQuestion to offer two paths:
Then use the TaskList tool and proceed to any remaining task.
/review-plan or any review skills here.tools
Teach the user to deeply understand a change through interactive tutoring: restating understanding, drilling into why/what/how, and quizzing until mastery. The active counterpart to a one-shot explanation. Use when the user asks to "understand this change", "teach me this change", "help me understand what changed", "walk me through this change", "make sure I understand this", "quiz me on this", or "teach me what we did".
tools
Teach the user to deeply understand a change through interactive tutoring: restating understanding, drilling into why/what/how, and quizzing until mastery. The active counterpart to a one-shot explanation. Use when the user asks to "understand this change", "teach me this change", "help me understand what changed", "walk me through this change", "make sure I understand this", "quiz me on this", or "teach me what we did".
tools
Update an existing GitHub pull request's title and description to reflect the current state of the branch. Use when the user asks to "update the PR", "update PR description", "update PR title", "refresh PR description", or "sync PR with changes".
tools
Execute an approved split plan by creating separate branches, commits, and PRs for each change group. Use when the user asks to "split and ship", "ship the split plan", "create separate PRs", or "split changes into branches".