Plan
Turns an approved spec into a technical plan and task breakdown. Only runs when the user explicitly types /plan.From its SKILL.md
npx -y skills add bingelp/skills --skill planAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Plan
Overview
Turn spec.md into a concrete technical approach and an atomic task list. The plan is where architectural decisions get made and reviewed — before code, not during.
When to Use
Explicit invocation only (/plan). Requires an existing specs/<slug>/spec.md.
Don't bother for: trivial changes where /spec was already skipped — go straight to /build.
Where artifacts live
Every specs/<slug>/… path below resolves under the repo's shared git dir, not the working tree:
SPECS="$(git rev-parse --path-format=absolute --git-common-dir)/specs" # e.g. …/.git/specs
Storing artifacts there keeps them visible across every session and worktree — including the background-isolated steps Claude Code may switch into automatically — while making them impossible to accidentally commit. Outside a git repo, fall back to ./specs.
Process
- Find
specs/<slug>/spec.md. If no slug is obvious from context, ask which feature this is for. Ifspec.mddoesn't exist, stop and tell the user to run/specfirst. ReadCONTEXT.md(orCONTEXT-MAP.md) if it exists so the plan's vocabulary matches the project's. - Read the spec's requirements and acceptance criteria. Explore the codebase for existing utilities, patterns, and files this will touch — reuse over rewriting.
- For any architectural fork (more than one reasonable way to build this), interview the user about it one decision at a time using the
grillingskill rather than silently picking one. If confidence is still low after interview, runprototypeto de-risk the decision before locking the plan. For UI-bearing features this includes visual style — theme, color palette, typography — ifspec.mddidn't already pin it down: don't silently reach for a stock framework theme (e.g. default Material 3) just because it's the path of least resistance, especially when reference screenshots exist that were never actually asked about beyond layout. - Write
specs/<slug>/plan.md:- Approach — the technical strategy, in plain language
- Files/modules touched — with brief reasoning
- Key decisions & trade-offs — anything non-obvious, alternatives you rejected and why
- For each key decision, apply the
domain-modelingskill's ADR test (hard to reverse + surprising without context + real trade-off). If all three hold, record it as an ADR rather than only noting it inplan.md—plan.mdis feature-scoped and disposable, ADRs are permanent project memory. - Write
specs/<slug>/tasks.mdas a checklist of atomic, independently-verifiable tasks (thin vertical slices, not "write all the models" then "write all the views"), each numbered sequentially (1.,2., ...) —/builduses that number to name the task's note file (specs/<slug>/tasks/NN-slug.md, seebuild/SKILL.md). Each task should be small enough to implement and verify in one sitting. A task may carry an optional trailing`[model: X]`inline-code tag to hint which model/build's orchestrator should dispatch that task's subagent with (e.g. a task needing deeper reasoning might warrant`[model: opus]`); a task with no tag defaults to the orchestrator's own model (sonnet). Only add the tag when there's a concrete reason — most tasks should have none. - If you're revising an existing
plan.md(rather than writing it the first time), reconcile downstream per where/RECONCILE.md: a changed approach or key decision means thetasks.mdderived from it, and any build already done against the old approach, may no longer be valid — update tasks and flag already-built work that needs revisiting. Prefer appending new tasks at the end or renumbering only the affected range; if a renumber does shift an already-built task's number, rename its note file underspecs/<slug>/tasks/to match so the pointer intasks.mdstill resolves. And if the reason you're re-planning is that the spec changed, reconcile from there first — don't patch the plan around a spec you haven't caught up to. - Show the user both files (and any new ADRs). If this session is still worktree-isolated, ask the user whether to keep or remove the worktree before finishing, per docs/worktrees.md. Stop. Tell them: "Review this, and run
/buildonce you're happy with it."
Red Flags
- Skipping straight to task-writing without an Approach section — the plan needs a narrative, not just a checklist.
- Tasks that bundle multiple unrelated changes — split them.
- Introducing a new dependency or pattern not justified by the spec — flag it as a decision, don't silently do it.
- Defaulting to a stock theme/style for a UI-bearing feature without confirming it with the user, particularly when reference screenshots or mockups exist and weren't asked about beyond layout.
- Making a hard-to-reverse architectural call without offering an ADR, or writing an ADR for something trivial or easily reversed — see
domain-modeling's three-part test. - Revising
plan.mdwithout reconciling thetasks.mdand already-built work derived from the old approach — seewhere/RECONCILE.md. - Sprinkling
`[model: X]`hints onto tasks without a concrete reason — most tasks should have none.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.