From claude-skills
Generates structured, bite-sized implementation plans from specs or requirements before coding. Useful when given a feature description or when asked to plan multi-step tasks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-skills:writing-plansThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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."
Context: This should be run in a dedicated worktree (created by brainstorming skill).
Save plans to: docs/plans/YYYY-MM-DD-<feature-name>.md
Each step is one action (2-5 minutes):
Every plan MUST start with this header:
# [Feature Name] Implementation Plan
> **For Claude:** REQUIRED SUB-SKILL: Use the executing-plans skill 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 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**
```python
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**
```python
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**
```bash
git add tests/path/test.py src/path/file.py
git commit -m "feat: add specific feature"
```
Symptom: Plan reads smoothly but lacks actionable details. Steps like "Add validation" or "Update the API handler" leave the engineer guessing which file, which function, or what commands to run.
Why it fails:
How to fix:
src/handlers/user.ts not update the handlerpytest tests/handlers/test_user.py -v not run testsModify: src/handlers/user.ts:45-62Example (bad vs good):
❌ BAD: "Update the validation logic to handle email addresses"
✅ GOOD: "Modify: src/validators/email.py:12-18. Replace the regex pattern with: re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')"
Symptom: Steps are either vague epics ("Build the authentication system") or so granular they create friction ("Import the module", "Define the function signature", "Write the function body").
Why it fails:
How to fix:
Example (bad vs good):
❌ BAD:
Step 1: Import json
Step 2: Define function
Step 3: Write body
Step 4: Run test
✅ GOOD:
Step 1: Write failing test for json parsing
Step 2: Implement minimal function that passes test
Step 3: Run test and verify PASS
Step 4: Commit
Symptom: Plan describes what to do but never says how to verify it's done correctly. Engineer finishes a step and isn't sure if it actually worked.
Why it fails:
How to fix:
Expected: PASS. For commands: Expected output: [actual output]pytest tests/... -v. Expected: Should fail with 'ValidationError'"Example (bad vs good):
❌ BAD:
Step 3: Implement the validation function
✅ GOOD:
Step 3: Implement the validation function
```python
def validate_email(email):
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return bool(re.match(pattern, email))
```
Step 4: Run test to verify it passes
Run: `pytest tests/validators/test_email.py::test_valid_email -v`
Expected: `PASSED test_valid_email`
Symptom: Plan repeats the same instruction in multiple tasks ("Run the full test suite", "Import X module", "Follow the naming convention"). Same boilerplate appears in steps across different tasks.
Why it fails:
How to fix:
pytest ..."Example (bad vs good):
❌ BAD:
Task 1: Write test, run `pytest tests/handlers/test_a.py -v`, commit
Task 2: Write test, run `pytest tests/handlers/test_b.py -v`, commit
Task 3: Write test, run `pytest tests/handlers/test_c.py -v`, commit
✅ GOOD:
# Testing Pattern
After each implementation, verify with: `pytest tests/handlers/test_<name>.py -v`
Expected: All tests PASS
Task 1: [test_a implementation]
Task 2: [test_b implementation]
Task 3: [test_c implementation]
Symptom: Plan references "the standard pattern", "as we do it", or "use the company convention" without explaining what that actually means. Assumes engineer knows framework shortcuts, naming conventions, or project structure.
Why it fails:
How to fix:
class MyModel(models.Model)"Example (bad vs good):
❌ BAD:
Step 1: Create a handler using the standard pattern
Step 2: Follow our naming convention for tests
✅ GOOD:
Context: This project uses Flask. All handlers live in src/handlers/ and follow the pattern:
```python
@app.route('/endpoint', methods=['POST'])
def handle_endpoint():
# Handler logic
return jsonify({...})
```
Step 1: Create handler in src/handlers/my_handler.py following the pattern above
Step 2: Create test in tests/handlers/test_my_handler.py. Naming: test_<function_name>_<scenario>
After saving the plan, offer execution choice:
"Plan complete and saved to docs/plans/<filename>.md. Two execution options:
1. Subagent-Driven (this session) - I dispatch fresh subagent per task, review between tasks, fast iteration
2. Parallel Session (separate) - Open new session with executing-plans, batch execution with checkpoints
Which approach?"
If Subagent-Driven chosen:
If Parallel Session chosen:
npx claudepluginhub ckorhonen/claude-skillsCreates detailed implementation plans with bite-sized tasks, exact file paths, and TDD steps. Use when you have a spec before coding.
Generates detailed implementation plans from specs with bite-sized tasks, exact file paths, TDD steps, and commands. Best used before coding a multi-step feature.
Creates detailed implementation plans from specs for multi-step tasks before coding, with file structure mapping, bite-sized TDD steps, architecture overview, and tech stack.