name: writing-plans description: Create detailed implementation plans with granular tasks. Use before implementing features or complex changes.
Writing Implementation Plans
Create detailed plans for engineers with minimal codebase familiarity. Break work into granular, testable tasks following TDD principles.
When to Use
- Before implementing new features
- Before complex refactoring
- When work spans multiple files/components
- When coordinating multi-agent work
Plan Location
Save all plans to: docs/plans/YYYY-MM-DD-<feature-name>.md
Plan Structure
Header (Required)
# Plan: [Feature Name]
**Goal:** [One sentence describing what this achieves]
**Architecture:** [2-3 sentences on approach]
**Tech Stack:** [Relevant technologies]
**Files Affected:**
- `path/to/file1.ts` - [what changes]
- `path/to/file2.ts` - [what changes]
Task Format
Each task = single 2-5 minute action:
## Task 1: [Descriptive Name]
**Action:** Create | Modify | Test
**Files:**
- Create: `src/components/Button.tsx`
- Test: `src/components/Button.test.tsx`
**Steps:**
1. Write failing test for [behavior]
2. Verify test fails with expected error
3. Implement minimal code to pass
4. Verify test passes
5. Commit: `test(button): add click handler test`
**Verification:**
- [ ] Test fails initially
- [ ] Test passes after implementation
- [ ] No other tests broken
Task Granularity
Each step should be:
- Single action (one file, one change)
- Independently verifiable
- Following TDD (test first)
- Committable
Too big: "Implement authentication system" Right size: "Write failing test for login validation"
Design Principles
- DRY - Don't Repeat Yourself
- YAGNI - You Aren't Gonna Need It (no speculative features)
- TDD - Test first, always
After Writing Plan
Offer execution options:
- Subagent-Driven: Execute in current session with fresh subagent per task
- Parallel Session: User opens new session with executing-plans skill
Example Plan
# Plan: Add User Avatar Component
**Goal:** Display user avatar with fallback initials
**Architecture:** React component with image loading state, fallback to initials derived from user name
**Tech Stack:** React, TypeScript, Tailwind CSS
**Files Affected:**
- `src/components/Avatar.tsx` - new component
- `src/components/Avatar.test.tsx` - tests
- `src/components/index.ts` - export
## Task 1: Create Avatar Test File
**Action:** Create
**Files:** `src/components/Avatar.test.tsx`
**Steps:**
1. Create test file with describe block
2. Write failing test: renders initials when no image
3. Verify test fails (component doesn't exist)
**Verification:**
- [ ] Test file created
- [ ] Test fails with "Cannot find module"
## Task 2: Create Basic Avatar Component
**Action:** Create
**Files:** `src/components/Avatar.tsx`
**Steps:**
1. Create component that renders initials
2. Accept `name` prop, extract initials
3. Verify test from Task 1 passes
**Verification:**
- [ ] Component renders
- [ ] Test passes
- [ ] Initials display correctly
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
123
GitHub Forks
6
Created
Jan 2026
Last Updated
5 months ago
tools
tools productivity tools
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!