plan
Skill1 starsChanged 24 days agoMITView on GitHub
Turn a development task into an approved plan sized to the task, asking the developer only the decisions that change what gets built. Use before implementing a feature, fix or change, or when the developer asks to plan or design one.
184 other projects use a version of this.
Adopted by
Most recently taken up by
- phuthuycoding/kanban-flowtheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- domengabrovsek/agent-configtheir own version, first seen Nov 8, 2026
- domengabrovsek/claudetheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
- joeldevz/skynex-pitheir own version, first seen Nov 8, 2026
Used with
Projects with it also use heartmula, webhook-subscriptions and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
math-incSkillheartmula
Set up and run HeartMuLa, the open-source music generation model family (Suno-like). Generates full songs from lyrics + tags with multilingual support.
Also in 9 projects that use this
Tommy-ywSkillwebhook-subscriptions
Create and manage webhook subscriptions for event-driven agent activation, or for direct push notifications (zero LLM cost). Use when the user wants external services to trigger agent runs OR push notifications to chats.
Also in 5 projects that use this
math-incSkillminecraft-modpack-server
Set up a modded Minecraft server from a CurseForge/Modrinth server pack zip. Covers NeoForge/Forge install, Java version, JVM tuning, firewall, LAN config, backups, and launch scripts.
Also in 5 projects that use this
john-data-chenSkilltouchdesigner-mcp
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.
Also in 6 projects that use this
gaebalaiSkillcodex-system
PROACTIVELY consult Codex CLI, your highly capable supporter with exceptional reasoning and task completion abilities. Codex is a trusted expert you should ALWAYS consult BEFORE making decisions on: design choices, implementation approaches, debugging strategies, refactoring plans, or any non-trivial problem. When uncertain, consult Codex. Don't hesitate - Codex provides better analysis. Explicit triggers: "think deeper", "analyze", "second opinion", "consult codex".
Also in 3 projects that use this
ibahgatSkillcontext-optimize
Improve context efficiency and cache stability for long or complex sessions.
Also in 3 projects that use this
- +3 more from math-inc
Other versions184 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 184
- Yeachan-Heo/oh-my-codex★ 34ksame name
- crbnos/carbon★ 2.8ksame name
- graphistry/pygraphistry★ 2.6ksame name
- zereight/gitlab-mcp★ 2.1ksame name
- math-inc/OpenGauss★ 1.3ksame name
- kdlbs/kandev★ 1.1ksame name
- suboss87/FDEOps★ 940same name
- codewithmukesh/dotnet-claude-kit★ 808same name
- witnesstodark/mr-mak-workspace★ 718same name
- loongclaw-ai/loongclaw★ 640same name
174 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 167 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Read the project's own guidance: CLAUDE.md / AGENTS.md (root and the areas the task touches), REVIEW.md, README, and docs/ files related to …
- Very specific: line 45
Guess where a wrong guess is cheap: put it in the plan as [my call] or ASSUMPTION instead of asking.
- Very specific: line 47
After each round, recompute the frontier and re-check the tier (escalation rules in tiers.md).
- Very specific: line 61
Every guess is tagged [my call] or ASSUMPTION.
- Distinctive: line 79
The developer's: only they can answer it, and the answer changes what gets built.
- Distinctive: line 81
Update the plan with the answers.
- Distinctive: line 92
When the plan puts every part on Opus, the two Implement options are the same: offer one, Implement (recommended).
“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Plan
A good plan is what makes implementation smooth and the review quiet. Find out what the developer actually wants, settle every decision that changes what gets built, and write it down so an implementer who never saw this conversation builds the right thing. Size the effort to the task: a clear small task gets a short plan and no questions.
Task: $ARGUMENTS
References, read when the step names them:
${CLAUDE_PLUGIN_ROOT}/skills/plan/references/tiers.md: tiers, risk paths, escalation.${CLAUDE_PLUGIN_ROOT}/skills/plan/references/plan-format.md: the plan's format and source tags.
1. Ground
Learn what the request and the project already settle before asking anything.
First, so the live view shows the task from its start: pick <slug>, a short kebab-case name for the task, create .flow/<slug>/ with the layout ${CLAUDE_PLUGIN_ROOT}/skills/run/references/state.md describes, make sure .flow/ is listed in .git/info/exclude (add it when missing), and write agents/state.json with title, phase: plan and step: ground.
When the task points to an analysis from devflow:analyze (.flow/<slug>/analysis.md), use its slug and read it first: its For developers findings are where grounding starts (re-check the ones the plan rests on), its Decisions needed go into step 3 unless already answered, and its recommended option is the approach unless the developer chose another.
- Read the project's own guidance:
CLAUDE.md/AGENTS.md(root and the areas the task touches),REVIEW.md, README, anddocs/files related to the task. - Find the facts the plan rests on: where the affected code lives, how similar features are built, which contracts, schemas, specs and tests are involved. Facts are your job, never the developer's. For anything beyond a few direct lookups, dispatch
devflow:explorerwith concrete questions, several in parallel for separate areas, and keep their summaries. - Find what depends on the code the task will change: callers, consumers, jobs, other repositories (Grep or explorers). This is the blast radius; every entry needs evidence.
- New project: when there is no code yet, or the task is to start one, the foundation belongs to this plan: language and runtime, framework, project structure, architecture and layers, data storage, testing, tooling (lint, format, build), and how it runs locally. Take what the developer already stated; for the rest, propose a choice with a one-line reason each. These are decisions for step 3, confirmed by the developer before anything is built, unless the task already settles them.
Done when you can name the files or areas the task touches, the existing code it should follow, what depends on it, and every decision that is still open.
2. Size
Pick the tier and review depth with tiers.md and announce them in one line. A --tier argument sets the tier; the review depth still follows risk.
trivial: delete the.flow/<slug>/folder you created in step 1, and.flow/when it is left empty; a trivial task leaves no files. Say in one line what you will change and stop planning. When therunskill called you, hand back to it; otherwise tell the developer the task needs no plan.lightandfull: add the tier and review depth tostate.jsonand keep it current at the pointsstate.mdlists. Continue.
3. Decide
Set step: decide in state.json, also when there is nothing to ask. Map the open decisions as a tree: each decision unlocks the ones that hang off it. Settle them in rounds.
- Ask only what changes what gets built and what the project cannot answer: where the feature belongs, what the developer actually wants, scope boundaries, trade-offs only they can weigh. When the request and the project settle everything, ask nothing.
- Guess where a wrong guess is cheap: put it in the plan as
[my call]orASSUMPTIONinstead of asking. Ask where a wrong guess would mean rebuilding. - A round is the frontier: every decision whose prerequisites are settled. Number the questions and give each your recommended answer, so "yes" accepts it. Use AskUserQuestion for questions with a few clear options (recommended option first, labelled "(Recommended)", up to four questions per call); ask open questions in text.
- After each round, recompute the frontier and re-check the tier (escalation rules in
tiers.md).
light gets at most one round. full continues until the frontier is empty.
Done when every decision that changes what gets built is either answered by the developer or written down as [my call] / ASSUMPTION.
4. Approach (full)
Set step: write in state.json: from here until the builder check, the live view shows the plan being written. Before writing, consider more than one way to build it and drop the weak ones, including any that fight what the developer said they want. Put the alternatives in the plan only when the choice between them matters to the developer.
5. Write
light: set step: write in state.json first. Write the plan with plan-format.md to .flow/<slug>/plan.md. Size the parts by the work, give each its task checklist and the model its implementer runs on, as the format's Parts, Tasks and Models sections describe. Copy its assumptions and blast radius into state.json.
Every guess is tagged [my call] or ASSUMPTION; every fact about the project carries its evidence.
6. Builder check (full)
Set step: builder-check in state.json. Dispatch devflow:plan-checker with the plan's path. It reads the plan as the implementer would and returns what it would need to ask.
A plan with four or more parts gets two or three checkers in parallel instead of one, so the check takes about as long as for a small plan. Give each a share of the parts, about three each, keeping a part with the parts whose contract it uses where you can; the first checker also gets the plan-wide sections. Prompt each with:
Plan: .flow/<slug>/plan.md
Your parts: <numbers>
Plan-wide sections: yes | noMerge their answers into one list, dropping questions two checkers both asked. Sort the questions:
- Already answered by the conversation or the project: put the answer in the plan.
- Minor: a sensible implementer could settle it without changing what gets built. Settle it yourself and tag it
[my call]. - The developer's: only they can answer it, and the answer changes what gets built. Ask these in one message, most important first.
Update the plan with the answers. The builder check runs once.
7. Approve
Set step: approve in state.json. Show the brief from plan-format.md in the conversation, not the whole plan, and ask what happens next, at every tier above trivial, with these options:
- Implement with Sonnet + Opus (recommended): the plan is approved and gets built now, each part on the model the plan assigns it. Its description names the parts that go to Sonnet.
- Implement with Opus: the plan is approved and gets built now, every part on Opus, for when the developer wants the most careful build over speed and cost.
- Discuss it first: the developer wants to read the plan or talk it through. Answer their questions, apply the changes they ask for, and ask again.
- Keep it for later: the plan is approved and stays in
.flow/<slug>/for/devflow:implement <slug>; nothing is built now.
When the plan puts every part on Opus, the two Implement options are the same: offer one, Implement (recommended). Without one of these answers, nothing is built.
full: nothing gets built before approval. Building includes writing product code, scaffolding, installing dependencies and running generators. Reading and exploring are fine.
Done when the developer chose an Implement option or Keep it for later. Add Status: approved under the plan's title, and under it the build choice: Build: sonnet + opus or Build: opus (none for Keep it for later; implement asks then). Clear waitingFor in state.json as state.md describes, adding the wait to waited.
8. Hand off
- The
runskill called you: hand back to it with the plan's path and the developer's choice; it builds the plan, or stops for Keep it for later. - The developer chose an Implement option: invoke the
runskill with--resume <slug>now, in this turn. It builds, reviews, summarises and tidies up, so the whole flow finishes. Choosing to implement means building starts; never stop at "the plan is approved". - The developer chose Keep it for later: tell them where the plan is and that
/devflow:implement <slug>builds it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

