writing-plans
Creates executable implementation plans that break down designs into detailed tasks. This skill should be used when the user has completed a brainstorming design and asks to "write an implementation plan" or "create step-by-step tasks" for execution.
Best use case
writing-plans is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Creates executable implementation plans that break down designs into detailed tasks. This skill should be used when the user has completed a brainstorming design and asks to "write an implementation plan" or "create step-by-step tasks" for execution.
Teams using writing-plans should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/writing-plans/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How writing-plans Compares
| Feature / Agent | writing-plans | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Creates executable implementation plans that break down designs into detailed tasks. This skill should be used when the user has completed a brainstorming design and asks to "write an implementation plan" or "create step-by-step tasks" for execution.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Writing Plans
Create executable implementation plans that reduce ambiguity for whoever executes them using Superpower Loop for continuous iteration.
## CRITICAL: First Action - Start Superpower Loop NOW
**Resolve the design path and start the loop immediately — do NOT read design files, explore the codebase, or do anything else first.**
1. Resolve the design path:
- If `$ARGUMENTS` provides a path (e.g., `docs/plans/YYYY-MM-DD-topic-design/`), use it
- Otherwise, search `docs/plans/` for the most recent `*-design/` folder matching `YYYY-MM-DD-*-design/`
- If found without explicit argument, confirm with user: "Use this design: [path]?"
- If not found or user declines, ask the user for the design folder path
2. Immediately run:
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/setup-superpower-loop.sh" "Write an implementation plan for: <resolved-design-path>. Continue progressing through the superpowers:writing-plans skill phases: Phase 1 (Plan Structure) → Phase 2 (Task Decomposition) → Phase 3 (Validation) → Phase 4 (Plan Reflection) → Phase 5 (Git Commit) → Phase 6 (Transition)." --completion-promise "PLAN_COMPLETE" --max-iterations 50
```
3. Only after the loop is running, proceed with Initialization below
**The loop enables self-referential iteration throughout the planning process.**
## Superpower Loop Integration
This skill uses Superpower Loop to enable self-referential iteration throughout the planning process.
**CRITICAL**: Throughout the process, you MUST output `<promise>PLAN_COMPLETE</promise>` only when:
- Phase 1-4 (Plan Structure, Task Decomposition, Validation, Plan Reflection) are all complete
- Plan folder created with all task files
- User approval received in Phase 3
- Git commit completed
Do NOT output the promise until ALL conditions are genuinely TRUE.
**ABSOLUTE LAST OUTPUT RULE**: The promise tag MUST be the very last text you output. Output any transition messages or instructions to the user BEFORE the promise tag. Nothing may follow `<promise>PLAN_COMPLETE</promise>`.
## Initialization
(The Superpower Loop and design path were resolved in the first action above — do NOT start the loop again)
1. **Design Check**: Verify the folder contains `_index.md` and `bdd-specs.md`.
2. **Context**: Read `bdd-specs.md` completely. This is the source of truth for your tasks.
The loop will continue through all phases until `<promise>PLAN_COMPLETE</promise>` is output.
## Background Knowledge
**Core Concept**: Explicit over implicit, granular tasks, verification-driven, context independence. **PROHIBITED**: Do not generate implementation bodies — no function logic, no algorithm code. **ALLOWED**: Interface signatures and type definitions that define the contract.
- **MANDATORY**: Tasks must be driven by BDD scenarios (Given/When/Then).
- **MANDATORY**: Test-First (Red-Green) workflow. Verification tasks must precede implementation tasks.
- **MANDATORY**: When plans include unit tests, require external dependency isolation with test doubles (DB/network/third-party APIs).
- **PROHIBITED**: Do not generate implementation bodies — no function logic, no algorithm code.
- **ALLOWED**: Interface signatures, type definitions, and function signatures that define the contract (e.g., `async function improve(params: ImproveParams): Promise<Result>`).
- **MANDATORY**: One task per file. Each task gets its own `.md` file.
- **MANDATORY**: _index.md contains overview and references to all task files.
## Phase 1: Plan Structure
Define goal, architecture, constraints, and context.
1. **Read Specs**: Read `bdd-specs.md` from the design folder (generated by `superpowers:brainstorming`).
2. **Draft Structure**: Use `./references/plan-structure-template.md` to outline the plan.
3. **Write Context Section**: Populate the `## Context` section in `_index.md`:
- State why this work is needed (motivation, constraints, prior incidents).
- If modifying existing code, add a current-state vs target-state comparison table covering key dimensions (module structure, API shape, behavior, etc.). Omit the table for greenfield work.
## Phase 2: Task Decomposition
Break into small tasks mapped to specific BDD scenarios.
1. **Reference Scenarios**: **CRITICAL**: Every task must explicitly include the full BDD Scenario content in the task file using Gherkin syntax. For example:
```gherkin
## BDD Scenario
Scenario: [concise scenario title]
Given [context or precondition]
When [action or event occurs]
Then [expected outcome]
And [additional conditions or outcomes]
```
The scenario content should be self-contained in the task file, not just a reference to `bdd-specs.md`. This allows the executor to see the complete scenario without switching files.
2. **Define Verification**: **CRITICAL**: Verification steps must run the BDD specs (e.g., `npm test tests/login.spec.ts`).
3. **Enforce Ordering**: For each feature NNN, the test task (`task-NNN-<feature>-test`) must precede its paired impl task (`task-NNN-<feature>-impl`) via `depends-on`.
4. **Declare Dependencies**: **MANDATORY**: Each task file must include a `**depends-on**` field listing only **true technical prerequisites** — tasks whose output is required before this task can start. Rules:
- A test task (Red) for feature X has no dependency on test tasks for other features
- An implementation task (Green) depends only on its paired test task (Red), not on other features' implementations
- Tasks that touch different files and test different scenarios are independent by default
- **PROHIBITED**: Do not chain tasks sequentially just to impose execution order — use `depends-on` only when there is a real technical reason (e.g., "implement auth middleware" must precede "implement protected route test")
5. **Create Task Files**: **MANDATORY**: Create one `.md` file per task. Filename pattern: `task-<NNN>-<feature>-<type>.md`.
- Example: `task-001-setup.md`, `task-002-feature-test.md`, `task-002-feature-impl.md`
- `<NNN>`: Sequential number (001, 002, ...)
- `<feature>`: Feature identifier (e.g., auth-handler, user-profile)
- `<type>`: Type (test, impl, config, refactor)
- **Test and implementation tasks for the same feature share the same NN prefix**, e.g., `002-feature-test` and `002-feature-impl`
6. **Describe What, Not How**: **PROHIBITED**: Do not generate implementation bodies. Describe what to implement (e.g., "Create a function that validates user credentials"). **ALLOWED**: Include interface signatures to define contracts (e.g., `def validate_credentials(username: str, password: str) -> bool: ...`), but never the body logic.
## Phase 3: Validation & Documentation
Verify completeness, confirm with user, and save.
1. **Verify**: Check for valid commit boundaries and no vague tasks.
2. **Confirm**: Use AskUserQuestion to get user approval on the plan. AskUserQuestion pauses within the turn, ensuring the user can respond before the loop re-injects.
3. **Save**: Write to `docs/plans/YYYY-MM-DD-<topic>-plan/` folder.
- **CRITICAL**: `_index.md` MUST include "Execution Plan" section with **inline YAML metadata** (see template in `./references/plan-structure-template.md`)
- **CRITICAL**: `_index.md` MUST include "Task File References" section with links to full task files for detailed BDD scenarios
- **CRITICAL**: `_index.md` MUST include "BDD Coverage" section confirming all scenarios are covered
- **CRITICAL**: `_index.md` MUST include "Dependency Chain" section with visual dependency graph (will be populated in Phase 4)
- Example YAML metadata:
```yaml
tasks:
- id: "001"
subject: "Setup project structure"
slug: "setup-project-structure"
type: "setup"
depends-on: []
- id: "002"
subject: "Whale Discovery Test"
slug: "whale-discovery-test"
type: "test"
depends-on: ["001"]
- id: "003"
subject: "Whale Discovery Impl"
slug: "whale-discovery-impl"
type: "impl"
depends-on: ["002"]
```
- Example file reference:
`- [Task 002: Whale Discovery Test](./task-002-whale-discovery-test.md)`
## Phase 4: Plan Reflection
Before committing, verify plan quality. Scale reflection based on plan size.
**Small plans (up to 6 tasks)**: Main agent performs a single review pass — check BDD coverage, dependency graph, and task completeness sequentially. No sub-agents needed.
**Medium plans (7-15 tasks, 2 sub-agents)**:
**Sub-agent 1: BDD Coverage & Completeness Review**
- Focus: Verify BDD scenario coverage AND task structure completeness
- Output: Coverage matrix, incomplete tasks, missing sections
**Sub-agent 2: Dependency Graph Review**
- Focus: Verify depends-on fields, check for cycles, identify missing dependencies
- Output: Dependency graph, cycle detection, incorrect dependencies
**Large plans (16+ tasks, 3+ sub-agents)**:
**Sub-agent 1: BDD Coverage Review**
- Focus: Verify every BDD scenario from design has corresponding tasks
- Output: Coverage matrix, orphaned scenarios, extra tasks without scenarios
**Sub-agent 2: Dependency Graph Review**
- Focus: Verify depends-on fields are correct, check for cycles, identify missing dependencies
- Output: Dependency graph, cycle detection, incorrect dependencies
**Sub-agent 3: Task Completeness Review**
- Focus: Verify each task has required structure (BDD scenario, files, steps, verification)
- Output: Incomplete tasks list, missing sections by task
**Additional sub-agents (launch as needed)**: Red-Green Pairing Review, File Conflict Review.
**Integrate and Update**:
1. Collect all sub-agent findings
2. Prioritize issues by impact
3. Update plan files to fix issues
4. **MANDATORY**: Add dependency graph from Sub-agent 2 to `_index.md` in "Dependency Chain" section
5. Re-verify updated sections
6. **Confirm with user**: Use AskUserQuestion to present the reflection summary and get approval before committing
**Output**: Updated plan with issues resolved, dependency graph included in `_index.md`, and user approval received.
See `./references/plan-reflection.md` for sub-agent prompts and integration workflow.
## Phase 5: Git Commit
Commit the plan folder using git-agent (with git fallback).
**Actions**:
1. Stage the entire folder: `git add docs/plans/YYYY-MM-DD-<topic>-plan/`
2. Run: `git-agent commit --no-stage --intent "add implementation plan for <topic>" --co-author "Claude <Model> <Version> <noreply@anthropic.com>"`
3. On auth error, retry with `--free` flag
4. **Fallback**: If git-agent is unavailable or fails, use `git commit -m "docs: add implementation plan for <topic> ..."` with conventional format
See `../../skills/references/git-commit.md` for detailed patterns.
## Phase 6: Transition to Execution
Prompt the user to use `superpowers:executing-plans`, then output the promise as the absolute last line.
Output in this exact order:
1. Transition message: "Plan complete. To execute this plan, use `/superpowers:executing-plans`."
2. `<promise>PLAN_COMPLETE</promise>` — nothing after this
**PROHIBITED**: Do NOT offer to start implementation directly. Do NOT output any text after the promise tag.
## Exit Criteria
Plan created with clear goal/constraints, decomposed tasks with file lists and verification, BDD steps, commit boundaries, no vague tasks, reflection completed, user approval.
## References
- `./references/plan-structure-template.md` - Template for plan structure
- `./references/task-granularity-and-verification.md` - Guide for task breakdown and verification
- `./references/plan-reflection.md` - Sub-agent prompts for plan reflection
- `../../skills/references/git-commit.md` - Git commit patterns and requirements
- `../../skills/references/loop-patterns.md` - Completion promise design, prompt patterns, and safety netsRelated Skills
executing-plans
Executes written implementation plans efficiently using agent teams or subagents. This skill should be used when the user has a completed plan.md, asks to "execute the plan", or is ready to run batches of independent tasks in parallel following BDD principles.
update-readme
Updates README.md and README.zh-CN.md to reflect the project's current state. Use this skill whenever the user asks to "update the README", "sync the docs", "update documentation", "reflect latest changes in README", or wants both the English and Chinese READMEs to match the current project. Always triggers when the user mentions updating or regenerating README files, especially for bilingual (EN/ZH) projects.
swiftui-review
Reviews SwiftUI code for best practices on modern APIs, maintainability, and performance. This skill should be used when the user asks to review SwiftUI code, check for deprecated iOS/macOS APIs, validate data flow patterns, or audit accessibility compliance in Swift projects.
systematic-debugging
Provides a systematic debugging methodology with a 4-phase root cause analysis process. This skill should be used when the user reports a bug, error, test failure, or unexpected behavior, ensuring thorough investigation precedes any code changes.
need-vet
This skill should be used when the user invokes /need-vet to enable work verification for the current task. Claude must verify completion and append the verified tag before the session can end.
build-like-iphone-team
Applies Apple's Project Purple design philosophy for radical innovation. This skill should be used when the user wants to challenge industry conventions, approach open-ended problems requiring disruptive thinking, or when standard brainstorming needs a breakthrough approach.
brainstorming
Structures collaborative dialogue to turn rough ideas into implementation-ready designs. This skill should be used when the user has a new idea, feature request, ambiguous requirement, or asks to "brainstorm a solution" before implementation begins.
behavior-driven-development
Applies behavior-driven development principles including Gherkin scenarios and test-driven development. This skill should be used when the user asks to implement features, fix bugs, or when writing executable specifications and tests before writing production code.
agent-team-driven-development
Provides guidance on coordinating multiple specialized teammates working in parallel. This skill should be used when the user needs to execute complex implementation plans, resolve cross-cutting concerns, or coordinate independent work streams requiring communication.
shadcn
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".
refactor
Executes automated refactoring for specific files, directories, or semantic queries. This skill should be used when the user asks to refactor specific files or directories, simplify recently changed code, clean up dead code in a limited scope, or invokes "/refactor".
refactor-project
Executes automated project-wide refactoring with a focus on cross-file optimization. This skill should be used when the user asks for project-wide refactoring, cross-file simplification, consistency standardization across the codebase, duplication reduction, or invokes "/refactor-project".