mcpField
W
write-plan

write-plan

github.com/gusen1453Agent workflows336 installsUpdated 6w ago
Repository

About write-plan

write-plan is an Agent skill that turns an approved design into an executable implementation plan for developers handling multi-file or multi-step work. Tasks specify files, interfaces, and failing-to-passing test steps, with user review before handoff.

Key features

  1. 01Break approved designs into tasks
  2. 02Specify exact file paths per task
  3. 03Plan failing-to-passing test steps
  4. 04Check interfaces, scope, and YAGNI
  5. 05Request user review before execution

Use cases

  1. 01Split a feature design into independently testable tasks
  2. 02Prepare plans for multi-file changes
  3. 03Review scope and test steps before coding

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gusen1453/creed --skill write-plan

After installing, type/write-planin Claude Code to confirm it loaded.

Details

From the project README

Write Plan

Output language: answer and write artifacts in the user's own language (match their messages, not the repo's history).

Overview

Turn an approved design into an implementation plan a forgetful agent can execute without inventing scope.

Core principle: each task is independently testable; steps are 2–5 minutes; TDD is the default micro-cycle.

REQUIRED UPSTREAM: write-spec (or an approved written/verbal design from grill). solid for non-trivial boundaries. Do not plan while product decisions are still open.

Announce: "Using write-plan to …"

When to Use

  • After write-spec (or waived verbal design) is approved, before coding
  • Multi-file or multi-step features
  • User asks for an implementation plan / task breakdown

When NOT to use: product still open → grill / write-spec first; single-line fix with obvious one-test cycle (go straight to tdd); pure exploration.

The Iron Law

NO CODING FROM A VAGUE PLAN.
Every task lists exact files, a failing-test step, a verify-red step, minimal impl, verify-green, and a commit step (or explicit why commit is deferred).

Workflow

  1. Scope check — multiple independent subsystems? Split into separate plans (one shippable slice each).
  2. File map — before locking the paths, take the structure pointer: solid for boundaries (ports / adapters / dependency arrows). If the slice adds no new boundary, say so and move on. The file map records the result.
  3. Task breakdown — bite-sized; fold scaffolding into the task that needs it. Before writing each task's RED step, take the verification pointer: test-design for the case list — every case reads in user/product words (goal / conditions / parameters), so a non-author can see what is proven and why. These cases are the tasks' RED tests.
  4. Write the plan file — default docs/creed/plans/YYYY-MM-DD-<feature>.md (user path overrides).
  5. Self-review — no TBD, tasks have Interfaces + verification commands, YAGNI.
  6. User gate — ask them to skim the plan before execution.
  7. Hand off — execute with tdd + test-design (optionally Superpowers subagent-driven-development / executing-plans).

These two pointers are suggestions to pass through, not mandatory gates: solid may be skipped (no new boundary), test-design is where the cases come from. Naming them here is what keeps them from being silently skipped — or over-applied.

Plan header (required)

# <Feature> Implementation Plan

> **For agents:** Use Creed **tdd** + **test-design** per task. Optional: Superpowers subagent-driven-development / executing-plans.

**Goal:** <one sentence>

**Architecture:** <2–3 sentences — the boundaries settled with **solid**; if no new boundary, say "no new boundary">

**Tech Stack:** <key libs>

**Cases (from test-design):** <the "when …, it should …" list, each with goal / conditions / parameters in reader-facing words>

## Global Constraints

- <verbatim constraints from spec: versions, naming, platforms, …>

---

Task template

### Task N: <Name>

**Files:**
- Create: `path/to/file.ts`
- Modify: `path/to/existing.ts`
- Test: `path/to/file.test.ts`

**Interfaces:**
- Consumes: <signatures from earlier tasks>
- Produces: <names/types later tasks rely on>

- [ ] **Step 1: Write the failing test** (apply **test-design**)
- [ ] **Step 2: Run it — expect FAIL for the right reason**
- [ ] **Step 3: Minimal implementation** (**tdd** GREEN; **solid** boundaries)
- [ ] **Step 4: Run tests — expect PASS**
- [ ] **Step 5: Commit** (or defer with reason; ship later via **commit-and-push**)

Inline the critical test/impl snippets when they clarify the API; don't dump novels.

Granularity

Good taskBad task
One behavior + its test cycle"Implement auth"
Exact paths"Update the server stuff"
Independently reviewableMust finish Task 5 to know if Task 2 worked

Rationalization Table

ExcuseReality
"We'll figure paths while coding"That's how scope creeps. Lock files in the plan.
"One big task is fine"Reviewer can't reject half. Split.
"Skip test steps — we'll TDD later"Later = never. Steps include RED/GREEN.
"Plan is the design doc"Spec (write-spec) = what/why; plan = who touches which file when.
"We'll decide product scope in the plan"Open product calls → back to grill, then write-spec.
"Solid is ceremony, skip it"Then say "no new boundary" and move on — an unstated skip is the problem, not the skip.
"test-design is for later, in tdd"The cases shape the tasks' RED steps. Deciding them in the plan is what makes each task independently testable.

Checklist

  • Spec approved (write-spec) or verbal design + waiver
  • Structure pointer passed (solid) — or "no new boundary" said out loud
  • Verification pointer passed (test-design) — cases in user/product words (goal / conditions / parameters)
  • Plan file written with header + tasks
  • Each task: files, interfaces, RED→GREEN→commit
  • Plan does not re-open product decisions
  • User reviewed plan (or explicitly waived)
  • Ready for tdd execution

Hand-off

Transition gate — before the plan is handed to execution or the next stage, ask the user (one AskUserQuestion; never auto-advance):

A) Recommended: Proceed → tdd (+ test-design)
B) Review first — run **review** on this plan (`references/plan.md`; upstream = the spec it narrows), then return to this gate
C) Adjust — revise the plan, then return to this gate
D) Something else (I will type it)
  • Product still fuzzy → grill / write-spec
  • Execute → tdd + test-design
  • Stuck on structure → solid
  • Done shipping → review then commit-and-push

Comments

Markdown supported