Get the FREE Ultimate OpenClaw Setup Guide →

writing-plans

npx machina-cli add skill brothaakhee/superclaw/writing-plans --openclaw
Files (1)
SKILL.md
10.0 KB

Writing Plans

Core Principle: Design describes WHAT to build. Plans describe HOW to build it.

Having an approved design doesn't mean you skip planning — it means planning becomes easier because you know what you're building.


When to Use This Skill

āœ… Use when:

  • You have an approved design or spec
  • User says "start building" or "go ahead"
  • You're transitioning from brainstorming to implementation
  • Someone handed you requirements and said "make it happen"

āŒ Don't use when:

  • No design exists yet (use brainstorming skill first)
  • Already have a plan (use executing-plans skill)
  • It's a trivial change (< 2 minutes total work)

The Process

Step 1: ASK About Methodology

Before writing the plan, discuss approach with the user:

Questions to ask:

  • "Should we use TDD (test-driven development)? Write tests first, then make them pass?"
  • "How often should I commit? After each task, or batch them?"
  • "Any specific tools, libraries, or patterns you want me to use?"
  • "Should I create feature branches or work on main?"

Why this matters:

  • TDD changes task order (test first vs code first)
  • Commit frequency affects task granularity
  • Tool choices affect dependencies and setup tasks

Don't assume. Even if you have preferences, the user might have different context (CI/CD setup, team conventions, time constraints).


Step 2: Break Work Into Bite-Sized Tasks

Each task should take 2-5 minutes to complete.

Task structure:

### Task N: [Clear, actionable title]

**Files:**
- Create: path/to/new/file.ext
- Edit: path/to/existing/file.ext
- Delete: path/to/old/file.ext

**Steps:**
1. [Specific action with exact commands/code]
2. [Next action]
3. [etc.]

**Verification:**
- [ ] [How to verify task succeeded]
- [ ] [Tests pass / output matches expected]

**Estimated time:** 2-5 minutes

If TDD approach agreed:

### Task 1: Write failing test for add_todo

**Files:**
- Create: tests/test_todo.py

**Steps:**
1. Create test file
2. Import todo module (doesn't exist yet)
3. Write test_add_todo that calls add_todo("Buy milk")
4. Assert todo appears in list

**Verification:**
- [ ] Test fails (module doesn't exist yet - expected!)
- [ ] pytest runs without errors

**Estimated time:** 3 minutes

If code-first approach agreed:

### Task 1: Implement add_todo function

**Files:**
- Create: src/todo.py

**Steps:**
1. Create src/todo.py
2. Define add_todo(text) function
3. Load/save JSON from ~/.todos.json
4. Append new todo with id, text, done=false

**Verification:**
- [ ] Function defined
- [ ] Manual test: add_todo("test") creates file
- [ ] JSON structure is valid

**Estimated time:** 4 minutes

Step 3: Write the Plan Document

Save to: workspace/docs/plans/YYYY-MM-DD-<topic>-plan.md

Plan template:

# [Project Name] - Implementation Plan

**Date:** YYYY-MM-DD
**Estimated total time:** [Sum of task times]
**Approach:** [TDD / Code-first / Hybrid]
**Commit strategy:** [Per task / Per feature / At end]

---

## Task Breakdown

[All tasks from Step 2]

---

## Dependencies

- [Required libraries/tools]
- [Environment setup needed]

---

## Success Criteria

- [ ] [All tests pass]
- [ ] [Feature works as designed]
- [ ] [Documentation updated]
- [ ] [Code committed]

Example filename: workspace/docs/plans/2026-02-25-todo-cli-plan.md


Step 4: Invoke Executing-Plans Skill

Once plan is written:

Plan complete and saved. Invoking executing-plans skill to begin implementation.

Then use the executing-plans skill to work through the tasks in batches.


Common Rationalizations (and Why They're Wrong)

Your brain will try to skip planning. Here's what it will say, and why you shouldn't listen:

ExcuseWhy It's TemptingRealityCounter
"Design is detailed enough"Design has all the detailsDesign describes WHAT to build, not HOW to build it step-by-stepPlans break work into executable tasks with verification
"User trusts me to figure it out"Feels good to have autonomyTrust doesn't mean "skip best practices"Trust means following proven processes that prevent bugs
"Planning is overhead"Feels like wasted time when you could be coding5 min planning prevents hours of debugging and reworkWritten plans catch dependency issues before coding
"I can plan as I go"Keeps you flexibleMental plans disappear if you're interrupted or error outWritten plans persist, can be resumed, and can be reviewed
"Design already approved"Architecture decisions are doneApproval was for WHAT, not implementation stepsPlan translates design into actionable tasks
"It's a simple change"Looks trivial"Simple" changes often have hidden complexity3 minutes writing tasks vs 30 minutes debugging surprises
"I'm in a hurry"Time pressure feels realRushing causes mistakes that take longer to fixSlow down to speed up
"User said 'just start'"Sounds like permissionUser wants results, not chaosStarting with a plan IS starting (smarter starting)

Remember: If the whole project takes < 5 minutes total, skip the plan. If it's > 5 minutes, the plan will save you time.


Red Flags 🚩

If you catch yourself thinking:

  • "I'll just write this one file first, then plan the rest" → NO, plan first
  • "The design is my plan" → NO, design ≠ plan
  • "Planning will take longer than just doing it" → NO, planning is doing it (prep work)
  • "I can hold this in my head" → NO, you might crash/restart/context-switch

If you catch yourself doing:

  • Opening a code file before writing the plan → STOP, write plan
  • Skipping the methodology questions → STOP, ask the questions
  • Writing tasks > 5 minutes each → STOP, break them smaller
  • Saving plan to random location instead of workspace/docs/plans/ → STOP, use the standard path

If the user says:

  • "Just start coding" → "I'll start by writing the plan (2-3 min), then code. Sound good?"
  • "You don't need a plan" → "Plans help me avoid mistakes and track progress. Can I spend 3 min on this?"
  • "I'm in a hurry" → "5 min planning will make the next hour go faster. Trust the process?"

OpenClaw Integration

Memory Context

Before planning, check:

  • MEMORY.md - Long-term preferences (does user prefer TDD? specific tools?)
  • USER.md - User's development style
  • memory/YYYY-MM-DD.md - Recent conversations about this project

This helps you ask better methodology questions.

Path Conventions

  • Plans go in: workspace/docs/plans/YYYY-MM-DD-<topic>-plan.md
  • Reference workspace paths in tasks: workspace/src/, not /data/workspace/src/
  • Keep it relative so plans work across environments

Subagent Workflow

If you're a subagent:

  1. Write the plan
  2. Save it to workspace/docs/plans/
  3. Report back: "Plan complete at workspace/docs/plans/YYYY-MM-DD-<topic>-plan.md. Ready for execution?"

Don't auto-invoke executing-plans as a subagent — let the main agent decide.


Examples

Example 1: TDD Approach

User: "Here's the approved design for a markdown parser. Build it."

You: "Great! A few questions before I write the plan:

  1. Should we use TDD? (Write tests first, then make them pass)
  2. How often should I commit? After each task, or bundle related tasks?
  3. Any preference on parser library (regex, AST, hand-rolled)?"

User: "Yes TDD, commit per task, hand-rolled parser."

You: (Writes plan with tasks like)

  • Task 1: Write failing test for parsing headers
  • Task 2: Implement header parsing to pass test
  • Task 3: Write failing test for bold text
  • Task 4: Implement bold text to pass test
  • (etc.)

Example 2: Code-First Approach

User: "Here's the spec for a CLI todo app. No TDD needed, just build it."

You: "Got it. How often should I commit? After each function, or at the end?"

User: "Just one commit at the end is fine."

You: (Writes plan with tasks like)

  • Task 1: Set up project structure and JSON storage
  • Task 2: Implement add_todo function
  • Task 3: Implement list_todos function
  • Task 4: Implement mark_done function
  • Task 5: Write manual tests
  • Task 6: Add error handling
  • Task 7: Commit everything

FAQ

Q: What if the design changes while I'm planning?
A: Update the plan. Plans aren't contracts, they're living documents. Better to update the plan than work from an outdated mental model.

Q: What if I realize during planning that the design has a flaw?
A: Stop planning. Raise the issue. Go back to brainstorming if needed. Plans should implement good designs, not paper over bad ones.

Q: Can I start with a rough plan and refine as I go?
A: No. Write the complete plan first. You can update it during execution if you discover new info, but start complete.

Q: What if the user refuses to let me write a plan?
A: Explain the value (5 min planning saves debugging time). If they still refuse, document the decision and proceed carefully. But push back gently — this is professional best practice.

Q: Do I really need to ask about TDD every time?
A: YES. Don't assume. Each project has different constraints. That said, you can check MEMORY.md first — if there's a standing preference documented, use that as the default and confirm.


Success Checklist

Before invoking executing-plans, verify:

  • I asked about methodology (TDD? Commit frequency?)
  • All tasks are 2-5 minutes each
  • Each task has clear verification steps
  • Plan saved to workspace/docs/plans/YYYY-MM-DD-<topic>-plan.md
  • Tasks reference exact file paths
  • I resisted the urge to "just start coding"
  • Dependencies and setup tasks are included

If all boxes checked: Proceed to executing-plans skill.
If any missing: Fix before moving forward.


Remember: Plans are not overhead. Plans are infrastructure. They make everything after them faster, safer, and more reliable.

Write the plan. Future you will thank you.

Source

git clone https://github.com/brothaakhee/superclaw/blob/master/writing-plans/SKILL.mdView on GitHub

Overview

Writing Plans converts a design into a concrete implementation roadmap. It keeps planning purposeful even after design approval, helping teams move from brainstorming to implementation with a clear path.

How This Skill Works

First, agree on the methodology (TDD, code first, or hybrid). Then decompose the work into bite sized tasks (2-5 minutes each) with clear files, steps, and verification. Finally, write a formal plan document saved to the plans repository and invoke the executing-plans skill to begin implementation.

When to Use It

  • You have an approved design or spec
  • User says start building or go ahead
  • You're transitioning from brainstorming to implementation
  • Someone handed you requirements and said make it happen
  • You want to convert high level ideas into concrete actionable tasks

Quick Start

  1. Step 1: Ask about methodology and agree on TDD or code first
  2. Step 2: Break work into bite sized tasks that each take 2-5 minutes
  3. Step 3: Write the plan document, save it in workspace/docs/plans, and start executing plans

Best Practices

  • Start with a methodology discussion to align on TDD, commit frequency, and tooling
  • Break work into bite sized tasks that take 2-5 minutes to complete
  • Use a clear task structure with files, steps, and verification
  • Write and save a formal plan document in workspace/docs/plans
  • After planning, invoke Executing-Plans to begin implementation

Example Use Cases

  • Implementing a new user registration API after receiving an approved product spec
  • Adding a dashboard UI feature based on design docs
  • Migrating a module from brainstorming to concrete tasks for a data export feature
  • Defining a TDD vs code-first approach for a payment workflow
  • Documenting a bug fix plan before coding to ensure traceable changes

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers ↗