Agent skill
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.
Install this agent skill to your Project
npx add-skill https://github.com/FradSer/dotclaude/tree/main/superpowers/skills/writing-plans
SKILL.md
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.
- Resolve the design path:
- If
$ARGUMENTSprovides a path (e.g.,docs/plans/YYYY-MM-DD-topic-design/), use it - Otherwise, search
docs/plans/for the most recent*-design/folder matchingYYYY-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
- If
- Immediately run:
"${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
- 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)
- Design Check: Verify the folder contains
_index.mdandbdd-specs.md. - Context: Read
bdd-specs.mdcompletely. 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
.mdfile. - MANDATORY: _index.md contains overview and references to all task files.
Phase 1: Plan Structure
Define goal, architecture, constraints, and context.
- Read Specs: Read
bdd-specs.mdfrom the design folder (generated bysuperpowers:brainstorming). - Draft Structure: Use
./references/plan-structure-template.mdto outline the plan. - Write Context Section: Populate the
## Contextsection 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.
-
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. -
Define Verification: CRITICAL: Verification steps must run the BDD specs (e.g.,
npm test tests/login.spec.ts). -
Enforce Ordering: For each feature NNN, the test task (
task-NNN-<feature>-test) must precede its paired impl task (task-NNN-<feature>-impl) viadepends-on. -
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-ononly when there is a real technical reason (e.g., "implement auth middleware" must precede "implement protected route test")
-
Create Task Files: MANDATORY: Create one
.mdfile 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-testand002-feature-impl
- Example:
-
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.
- Verify: Check for valid commit boundaries and no vague tasks.
- 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.
- Save: Write to
docs/plans/YYYY-MM-DD-<topic>-plan/folder.- CRITICAL:
_index.mdMUST include "Execution Plan" section with inline YAML metadata (see template in./references/plan-structure-template.md) - CRITICAL:
_index.mdMUST include "Task File References" section with links to full task files for detailed BDD scenarios - CRITICAL:
_index.mdMUST include "BDD Coverage" section confirming all scenarios are covered - CRITICAL:
_index.mdMUST 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)
- CRITICAL:
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:
- Collect all sub-agent findings
- Prioritize issues by impact
- Update plan files to fix issues
- MANDATORY: Add dependency graph from Sub-agent 2 to
_index.mdin "Dependency Chain" section - Re-verify updated sections
- 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:
- Stage the entire folder:
git add docs/plans/YYYY-MM-DD-<topic>-plan/ - Run:
git-agent commit --no-stage --intent "add implementation plan for <topic>" --co-author "Claude <Model> <Version> <noreply@anthropic.com>" - On auth error, retry with
--freeflag - 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:
- Transition message: "Plan complete. To execute this plan, use
/superpowers:executing-plans." <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 nets
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
optimize-plugin
This skill should be used when the user asks to "validate a plugin", "optimize plugin", "check plugin quality", "review plugin structure", or "run plugin optimizer".
plugin-best-practices
This skill should be used when the user asks to "validate plugin structure", "review manifest files", "check frontmatter compliance", "verify tool invocation patterns", "explain plugin component types", or needs Claude Code plugin architectural guidance.
init-config
Generates a CLAUDE.md file with AI-driven environment detection and advanced configuration options. This skill should be used when the user asks to "initialize config", "setup claude config", "create CLAUDE.md", or needs help configuring project instructions.
start-feature
Starts working on a new feature branch using git-flow. This skill should be used when the user asks to "start a feature", "create feature branch", "begin new feature", "git flow feature start", or wants to start a new feature.
finish-feature
Finalizes and merges a feature branch into develop using git-flow. This skill should be used when the user asks to "finish a feature", "merge feature branch", "complete feature", "git flow feature finish", or wants to finalize a feature branch.
finish-hotfix
Finalizes a hotfix and merges it into main and develop using git-flow. This skill should be used when the user asks to "finish a hotfix", "merge hotfix branch", "complete hotfix", "git flow hotfix finish", or wants to finalize a hotfix.
Didn't find tool you were looking for?