writing-plans

averycrespi's avatarfrom averycrespi

Use when you have a spec or requirements for a multi-step task, before touching code

⭐1stars🔀0forks📁View on GitHub🕐Updated Jan 8, 2026⬇️1downloads

When & Why to Use This Skill

The writing-plans skill is a specialized tool for software engineering that bridges the gap between high-level requirements and actual code implementation. It generates structured, bite-sized technical roadmaps that emphasize industry best practices such as Test-Driven Development (TDD), DRY principles, and frequent commits. By documenting the architecture, tech stack, and specific file modifications before execution, it minimizes errors and ensures a systematic approach to complex multi-step coding tasks.

Use Cases

  • Complex Feature Breakdown: Transforming a vague product specification into a granular, step-by-step implementation plan with specific file paths and logic.
  • Test-Driven Development (TDD) Workflow: Establishing a rigorous cycle of writing failing tests, minimal code implementation, and verification for every task.
  • Technical Architecture Documentation: Defining the structural approach and technology stack for a new module to ensure consistency across the codebase.
  • AI Agent Orchestration: Creating a machine-readable plan that can be handed off to execution sub-agents for automated, high-precision coding.
namewriting-plans
descriptionUse when you have a spec or requirements for a multi-step task, before touching code

Writing Plans

Overview

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.

Announce at start: "I'm using the writing-plans skill to create the implementation plan."

Save plans to: .claude/plans/YYYY-MM-DD-<feature-name>.md in the project root (NOT in the home directory)

Bite-Sized Task Granularity

Each step is one action (2-5 minutes):

  • "Write the failing test" - step
  • "Run it to make sure it fails" - step
  • "Implement the minimal code to make the test pass" - step
  • "Run the tests and make sure they pass" - step
  • "Commit" - step

Plan Document Header

Every plan MUST start with this header:

# [Feature Name] Implementation Plan

For Claude: REQUIRED SUB-SKILL: Use Skill(executing-plans) to implement this plan task-by-task.

Goal: [One sentence describing what this builds]

Architecture: [2-3 sentences about approach]

Tech Stack: [Key technologies/libraries]


Task Structure

Each task must following this structure:

### Task N: [Component Name]

Files:

  • Create: exact/path/to/file.py
  • Modify: exact/path/to/existing.py:123-145
  • Test: tests/exact/path/to/test.py

Step 1: Write the failing test

def test_specific_behavior():
    result = function(input)
    assert result == expected

Step 2: Run test to verify it fails

Run: pytest tests/path/test.py::test_name -v Expected: FAIL with "function not defined"

Step 3: Write minimal implementation

def function(input):
    return expected

Step 4: Run test to verify it passes

Run: pytest tests/path/test.py::test_name -v Expected: PASS

Step 5: Commit

git add tests/path/test.py src/path/file.py
git commit -m "feat: add specific feature"

Remember

  • Exact file paths always
  • Complete code in plan (not "add validation")
  • Exact commands with expected output
  • Reference relevant skills with @ syntax
  • DRY, YAGNI, TDD, frequent commits

Execution Handoff

After saving the plan, ask the user if they want to execute:

"Plan complete and saved to .claude/plans/<filename>.md. Ready to execute?"

If yes:

  • REQUIRED SUB-SKILL: Use Skill(executing-plans)
  • Implements tasks inline with subagent review gates
  • Spec compliance review after each task
  • Code quality review after each task

If no:

  • Plan is saved for later execution
  • User can run Skill(executing-plans) in any session