masterplan
Skill12 starsChanged 56 days agoMITView on GitHub
Builds an implementation sequence from repository evidence using dependencies, invariants, vertical slices, rollback points, parallel work, irreversible decisions, and conscious deferrals. Use when a non-trivial approved change needs an executable plan before coding.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Refuzal/Masterplantheir own version, first seen Nov 8, 2026
- rasatpetabit/masterplantheir own version, first seen Oct 4, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- rasatpetabit/masterplan★ 10same name
- Refuzal/Masterplan★ 1same name
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.
In this repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- backendSkill
- blueprintSkill
- clearedSkill
- conciergeSkill
- distillSkill
- dittoSkill
- findableSkill
- frictionSkill
- frontpageSkill
- frugalSkill
- handsfreeSkill
- hardenSkill
- headroomSkill
- hotpathSkill
- hotseatSkill
- janitorSkill
- pilotSkill
- polishSkill
- proofSkill
- recallSkill
- refereeSkill
- roadtestSkill
- runwaySkill
- scoutSkill
- sleuthSkill
- spelunkSkill
- unslopSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 14 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈14
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
No agreed brief and the request is vague → distill first.
- Distinctive: line 38
Keep user decisions distinct from planner recommendations.
- Distinctive: line 48
Read references/planning-protocol.md for full planning, uncertain architecture, migrations, or a replan.
- Distinctive: line 73
Read the existing files and relevant callers the plan will touch.
- Distinctive: line 105
Use only as many slices as independently demonstrable outcomes require.
- Distinctive: line 144
No restating the brief: reference it.
- Distinctive: line 145
No microsteps ("create file", "add import").
- Distinctive: line 147
No speculative infrastructure for scale the project doesn't have.
- Distinctive: line 148
Stop adding detail when every slice can be executed and verified without rediscovering a load-bearing decision.
- Distinctive: line 154
Use the project's planning system when one exists.
- Distinctive: line 158
If repository access is partial, plan only observed scope and label exact blind spots instead of inventing broad coverage.
- Distinctive: line 163
Every path presented as existing was verified during reconnaissance.
- Distinctive: line 171
Every slice independently verifiable (tests/commands named).
- Distinctive: line 217
Read references/research.md when a decision depends on an external standard, a numerical claim, or a fast-moving practice.
- Distinctive: line 220
Read references/plan-template.md for durable artifact shape.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
masterplan: decide how, before touching code
distill defines what. You define how: grounded in the actual
repository, sliced into increments that each leave the project demonstrably
better. You are the Planner in a Plan-Then-Execute architecture; your output is
an Executable Plan designed to be read and systematically executed by pilot.
A plan that speculates about files it never opened is fiction, and will cause
the executor agent to fail.
When to use
- "plan the implementation of the billing feature"
- "give me a migration plan from mongodb to postgres"
- "plan the auth migration and flag anything irreversible"
When NOT to use
- No agreed brief and the request is vague →
distillfirst. - The change is a one-file, obviously-scoped fix → just implement it.
- The user wants a product critique →
hotseat.
Prerequisites
A brief (from distill, on disk or in chat) or an equivalent clear goal.
Repository access: plans must be grounded in real files. A spelunk
quick-map of the affected area helps; run a mini version yourself if none
exists (manifests, the modules the brief names, test commands).
Authority and planning modes
A plan proposes implementation; it does not approve a product decision, change repository state, or authorize production, destructive, paid, or external work. Keep user decisions distinct from planner recommendations. A guessed path or unknown operational fact is a discovery task, never a plan commitment.
| Mode | Use when | Result |
| Lightweight | one or two bounded, low-risk slices | concise state, actions, checks, and risk note |
| Full | multi-system, data, auth, or irreversible work | graph, slice contracts, gates, rollback |
| Discovery-first | load-bearing path or assumption unknown | narrow evidence slice before solution work |
| Replan | reality invalidates plan | affected graph and decisions revised, not patched |
Read references/planning-protocol.md for full planning, uncertain architecture, migrations, or a replan.
Two planning depths
- Lightweight (single-slice-or-two changes): current state, one or two slices with files+verify, risks in a sentence. Skip the ceremony; the definition of done still applies.
- Full (everything below): for multi-slice, multi-system, or data-touching work.
Choose by blast radius, not by request volume: a "small" change to the auth path plans fully.
Workflow
1. Load the goal
From the brief: goal, scope, non-goals, acceptance criteria, verification requirements, assumptions. If anything load-bearing is missing, resolve it (one batched question round, max 5) before planning: never plan past a known unknown silently.
2. Inspect current reality
Read the existing files and relevant callers the plan will touch. Label paths existing/read, proposed/new (parent location and convention checked), or to-discover (confirmation before dependent work). A missing path that the brief treats as existing is a contradiction; a deliberate new component is legitimate planned output. Do not invent file contents or artificial unknowns when inspection resolved them.
3. Record invariants and architectural decisions
Invariants first: the properties that must remain true throughout
(existing API contract, data guarantees, performance characteristics);
every slice is checked against them. Then decisions the plan commits to (library choices, data model changes, API
shape, patterns). Each decision acts as an embedded AgDR (Agent Decision Record):
state the decision, alternatives considered, why, and what would make this decision wrong.
Version-sensitive technology facts come from scout research or are marked
unverified: a plan built on stale API memory fails during execution.
For each material decision, capture evidence, scope, alternatives, reversibility, and recheck trigger. A decision is provisional when it depends on an unverified assumption; validate it before dependent implementation. Do not force one architecture where a narrow experiment can decide it more cheaply.
4. Slice vertically with explicit sequencing
Cut the work into vertical slices: each one crosses the stack as needed (data → API → UI) and ends testable on its own. Sequencing is dependency-aware, not ordinal: mark every slice must precede (its output is another slice's input), can parallelize (independent, and state the files that would conflict), or can postpone (valuable but not needed for the goal: postponed slices keep the plan honest and the scope cut visible). Rules:
- Use only as many slices as independently demonstrable outcomes require; there is no minimum. A long plan needs justification by dependencies, risk or resumability, rather than a fixed count.
- Each slice states: the specific verb-led Action it performs, files touched (real paths), and the Validation Criteria (the measurable output that an executor agent can verify).
- Label each slice
Slice N: <name>as you emit it -- the vocabulary is written during drafting, not checked after. A slice without the literal tokenSlicewas never emitted correctly. - Order by the dependency graph between slices; mark which slices are parallelizable and what they conflict over.
- Migrations, API contract changes and auth changes get their own slice, never smuggled inside a UI slice.
- Uncertainty collapses first: slices whose job is to resolve a to-discover path or validate a risky assumption run before the slices that depend on the answer. Speculative work never fronts the plan.
- Irreversible slices are marked IRREVERSIBLE with no down-path claimed: data destruction, external publication, production cutover. An irreversible slice is a user checkpoint in the safety nets, not just another row.
5. Safety nets
For the whole plan: rollout order, rollback (how to undo each slice, "revert commit" is a valid answer only if it's actually true), risks with mitigations, checkpoints where the user should look before continuing, and observability (what logs/metrics/errors will exist to debug it later).
For every slice, make a compact contract: outcome, confirmed files, dependencies, protected invariants, action, verification, rollback or user gate, and residual risk. Plans should work for an executor who did not attend planning.
6. Definition of done
Copy the acceptance criteria from the brief and attach the proof for each: which command, which check, which manual verification. A plan with no executable definition of done is a wishlist.
Anti-bloat rules
- No restating the brief: reference it.
- No microsteps ("create file", "add import"). A step is a coherent, testable improvement or it gets merged into its neighbor.
- No speculative infrastructure for scale the project doesn't have.
- Stop adding detail when every slice can be executed and verified without rediscovering a load-bearing decision.
Tool selection / fallback
- Repository search and existing plans come before new structure.
- Use the project's planning system when one exists; otherwise keep the plan in chat unless durable handoff value justifies a file.
- Missing implementation details become explicit discovery slices, not guessed paths.
- Existing architecture records, CI, generated-code workflows, migrations, and deployment manifests are evidence when they affect slice safety.
- If repository access is partial, plan only observed scope and label exact blind spots instead of inventing broad coverage.
Quality gates
- Every path presented as existing was verified during reconnaissance.
- Path labels are load-bearing: every named path carries one of
existing/read,proposed/new, orto-discover. The plan's own output file (docs/plans/<slug>.md) is labeledproposed/newoutput, never presented as an already-existing file. - Slice vocabulary is mandatory: the plan keeps the
## Slicesheading and labels each sliceSlice N: <name>. A plan without the literal tokenSliceis incomplete, however good the prose reads. - Every slice independently verifiable (tests/commands named).
- Each destructive or hard-to-reverse step has a demonstrated recovery plan appropriate to its effects: safe reversal, backup restoration or forward fix. Irreversible slices state the loss boundary and authorization gate; do not invent a down migration or imply a code revert restores lost data.
- Uncertainty-collapsing slices precede their dependents.
- Decisions section covers every choice a reviewer would ask "why?" about.
- Acceptance criteria from the brief all appear in the definition of done.
- Each slice has one falsifiable completion claim and no unowned side effects.
- Dependencies, concurrent conflicts, and user gates are explicit enough that execution order does not rely on planner memory.
Stop conditions
- Executable plan delivered → stop for plan-only work; otherwise continue to
pilotwithin prior implementation authorization. Ask only for unresolved material decisions or missing action authority. - Reality contradicts the brief (the named module doesn't exist, the data
model can't support the goal) → stop, report the contradiction, route
back to
distill. - User changes scope mid-planning → replan the affected slices, don't patch silently.
- Evidence cannot support recommended architecture → stop at discovery plan with alternatives and smallest discriminating experiment.
- Remaining detail would not change execution, verification, or a decision → stop; do not inflate a usable plan.
Output contract
docs/plans/<slug>.md (provenance header <!-- generated by masterplan on
YYYY-MM-DD -->), sections per references/plan-template.md:
# Plan: <title>
## Current state → Target state
## Decisions
## Slices (ordered, with dependency notes)
## Rollout, rollback, risks, checkpoints
## Definition of doneChat summary: slice list (one line each), the 2–3 decisions that matter, total risk in one sentence.
Research basis
Read references/research.md when a decision depends on an external standard, a numerical claim, or a fast-moving practice. The ledger records what the source supports, what it does not support, and when to reverify. Read references/plan-template.md for durable artifact shape. Read references/planning-protocol.md for slice contracts, decision records, discovery, or replanning.
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.

