skills/incremental-plan/SKILL.md
Break a product or feature spec into a sequence of small, independently testable implementation steps. Use when the user has a spec document and wants to implement it incrementally rather than all at once — building and verifying one piece at a time before moving on. Triggers on requests like "break this spec into steps", "create an incremental plan", "split this into parts I can test", "how should I implement this step by step", "create a build plan", or when a user has a spec and wants a phased implementation approach.
npx skillsauth add ilamanov/skills incremental-planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Break a spec into 2-4 big steps that each deliver a working, end-to-end slice of the product.
A big spec implemented in one pass is hard to debug and course-correct. But splitting it into too many tiny steps (DB schema, page shell, config inputs, etc.) creates busywork — each step is too small to be meaningful on its own and the plan becomes a rigid checklist instead of a useful guide. The sweet spot is 2-4 substantial steps where each one produces something a user can actually try.
Read the spec document the user provides. Identify:
Usually the spec has everything needed. But ask if:
Keep this light — 1-2 questions max. This is not an interview.
Split the spec into 2-4 big steps. Each step should deliver a complete, working vertical slice — schema, server logic, UI, and wiring all included. The user should be able to use the result of each step, not just inspect plumbing.
Splitting principles:
Target 2-4 total steps. This is the hard constraint. If you have more than 4 steps, merge related ones. A step can (and should) be substantial — it's fine for a single step to touch DB schema, server actions, UI components, and wiring if they all serve one cohesive goal.
Each step = a usable vertical slice. Step 1 should be "the basic thing works end-to-end" — schema, page, UI, server logic, the whole path from user action to visible result. Not "set up the schema" followed by "build the shell" followed by "add inputs" followed by "wire it up". All of that is one step: "basic end-to-end flow works."
Never make a step that only sets up plumbing. DB schema alone is not a step. A page shell alone is not a step. Config inputs that don't do anything are not a step. These are implementation details within a step, not steps themselves.
After the core works, expand in big chunks. Step 2+ should each add a substantial set of related capabilities. Group features by user workflow, not by technical layer. For example, "multi-model generation + batch controls + result card actions" is one step, not three.
Defer auth, polish, and edge cases to later steps — but still merge them into bigger chunks rather than giving each its own step.
Each step must be testable by a human. Every step ends with something the engineer can manually use and verify end-to-end.
Typical shape (adapt to the specific spec):
Most specs will need 2-3 steps. Only use 4 if there's a genuinely separate mode or workflow.
Write the plan to plan-<spec-name>.md in the same directory as the spec.
Format for each step:
## Step N: [Short Title]
**Goal:** One sentence — what this step achieves.
**Build:**
- Concrete list of what to implement
- Specific enough that an AI coding agent or engineer could start working from this
**Scope cutoffs:**
- What's intentionally deferred, stubbed, or hardcoded in this step
- Prevents scope creep and makes it clear what "done" means for this step
**Verify:**
- Concrete actions the engineer takes to confirm this step works
- "Start the server, open localhost:3000, you should see X"
- "Run this curl command, expect Y response"
- "Click the button, observe Z"
**Spec coverage:** Which sections/features of the original spec this step addresses (by name or reference).
Plan structure:
# [Product/Feature Name] — Incremental Build Plan
**Source spec:** `<filename>`
**Overview:** 1-2 sentences on the overall approach — why the steps are ordered this way.
**Steps at a glance:**
1. [Step 1 title] — [one-line summary]
2. [Step 2 title] — [one-line summary]
...
---
## Step 1: [Title]
[full step detail]
## Step 2: [Title]
[full step detail]
...
---
> Step boundaries may shift during implementation — the point is a clear path, not a rigid checklist. If a feature fits better in an adjacent step, move it.
>
> After completing each step, write a short handoff doc noting what was built, any manual steps required (e.g. run migrations, set env vars), manual tests to verify, and what the next step expects. This makes it easy to resume in a new session.
tools
Generally-applicable conventions for how code is written and arranged — tooling/package manager, import style, file & component naming, comments, and where files live (colocation vs. global folders). Use whenever creating, naming, moving, or importing a file, running project commands, or deciding where a new module belongs. Consult BEFORE writing the code so the conventions are baked in, not retrofitted. If a convention below matches the work, apply it — don't ask, just follow it (call out the choice in one line so the user can override).
development
Generally-applicable frontend/UI best practices. Use whenever building, modifying, or reviewing UI — adding a form/button/dialog/modal, wiring keyboard shortcuts, creating any interactive surface that submits a form, or any time TSX/JSX is being written or edited. Consult BEFORE writing the code so the patterns are baked in, not retrofitted. If a scenario described in the skill body matches the work, apply the pattern — don't ask, just follow it (call out the choice in one line so the user can override).
tools
Generally-applicable backend/data best practices. Use whenever writing or modifying backend/data code — API routes, server actions, DB writes, background jobs, agent tools, import flows, webhooks, paste handlers, or anywhere data enters the system. Consult BEFORE writing the code so the patterns are baked in, not retrofitted. If a scenario described in the skill body matches the work, apply the pattern — don't ask, just follow it (call out the choice in one line so the user can override).
development
Runs on a schedule to mine recent Codex and Claude Code conversations across configured projects, find moments where things went off plan (the user had to steer, correct, abort, or re-explain), and propose targeted improvements to the specific skills that were in use at the time. Opens one pull request per run against the skills repo, with each proposed edit annotated with the concrete steering moment that motivated it. Also analyzes its own runs (the `skills` repo is one of the configured projects) so it iteratively improves itself. Use this skill when the user asks to "analyze recent conversations", "find what went wrong", "improve skills based on past runs", or sets up a scheduled run of skill-improver. Make sure to use this skill whenever the user mentions recursive skill improvement, post-mortem analysis of agent conversations, or automating skill quality based on real usage.