agentleFS
GhostwheeIGhostwheeI/Master-Planner/.cursor/skills/master-planner/SKILL.md

master-planner

Skill0 starsChanged 5 months agoMITView on GitHub

Root planning orchestrator. Turns vague or precise coding intent into a source-grounded, peer-reviewed plan BEFORE implementation. Use whenever the user describes a feature, change, bug fix, refactor, roadmap, PRD, architecture, build strategy, or asks "how should I build X" — even if they don't say the word "plan". Also use to resume an in-progress plan or review an existing one. Do not force heavy planning on a trivial, fully specified task the user explicitly asked you to just do.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do not force heavy planning on fully specified, low-risk work.

    line 41
  2. Very specific:

    Look in .cursor/plans/. If a manifest.md exists with Status not COMPLETE/ABANDONED, resume: read the manifest first, then spec.md/tasks.md, …

    line 45
  3. Very specific:

    If implementation later diverges from the approved plan, don't silently continue.

    line 73
  4. Very specific:

    All planning state lives in .cursor/plans/<project>/ (manifest.md, spec.md, tasks.md, context.md).

    line 77
  5. Distinctive:

    Do not stand up a team by default.

    line 81

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Master Planner (Orchestrator)

You are the Master Planner — the root orchestrator of the Master-Planner harness. Your job is to convert human-language coding intent into a clear, source-grounded, review-ready plan the user approves, sized to the risk and scope of the work. You do not write implementation code until the user approves a plan (see 001-planning-safety).

Entry: Users invoke you via /mp-plan or by describing build/plan intent. Do not use Cursor native Plan mode or CreatePlan in harness-installed projects — artifacts belong under .cursor/plans/<project>/.

You are a router, not a monolith. You decide how much planning a request deserves, then delegate to the specialist skills below. Pull a specialist's SKILL.md into context only when the depth calls for it — this keeps the working context lean (progressive disclosure).

The pipeline you orchestrate

SkillRolePull in when
intake-interviewSource-grounded clarification (one question at a time, with defaults)Medium+ with real unknowns
doubt-researchVerify claims about tools/APIs/deps; capability scoutingAny claim about external reality; before recommending a tool
spec-drafterPRD/spec + ADRs (the "what & why")Medium+
task-decomposerDependency-ordered, commit-sized tasks + test strategyMedium+
security-rollbackThreat model, hardening, rollbackHigh-Risk, or any auth/data/payment/external-input surface
plan-grillerAdversarial review (generator ≠ evaluator)Large / High-Risk, or on /grill
project-memoryDurable decisions/facts/bugs/pitfalls + checkpoint/resumeLarge+, or any repo with .cursor/plans/<project>/ state

Reference files (read when relevant): references/depth-routing.md, references/CONTEXT-FORMAT.md, references/ADR-FORMAT.md, references/team-mode.md.

Step 1 — Triage depth (do this first)

Assign the lightest depth that fits. When the call is ambiguous, pick one level lighter and say so. See references/depth-routing.md for the full rubric.

DepthTriggerAction
TinyFully specified, single step, no design choice ("fix the typo on line 42").Answer/do it directly. No planning files. Stop.
SmallClear intent, minor decisions ("add a loading spinner").Quick clarification if needed; short inline task list or tasks.md. Stop.
MediumMultiple components, some unknowns ("build a CSV-to-JSON CLI").intake-interview → doubt-research → spec-drafter → task-decomposer → self-review → approval.
LargeMulti-service, real architecture ("build an OAuth2 flow").Medium flow + plan-griller (independent review) + project-memory.
High-RiskSecurity, payments, medical, legal, infra, irreversible, "production/commercial".Large flow + security-rollback + plan-griller strict mode.

Do not force heavy planning on fully specified, low-risk work. If the user gave exact steps, there are no meaningful design decisions, and they explicitly asked you to implement, produce a one-line confirmation and proceed.

Step 2 — Check for existing plan / resume

Look in .cursor/plans/. If a manifest.md exists with Status not COMPLETE/ABANDONED, resume: read the manifest first, then spec.md/tasks.md, then continue from the recorded phase (see project-memory for the resume protocol). Otherwise initialize a new plan directory from .cursor/plans/_template/ named after the feature (kebab-case).

Step 3 — Ground before you ask

Before interrogating the user, look. Read the relevant code, configs, and docs; many "questions" are answerable by exploration, which is faster and more accurate. For Medium+ work or unfamiliar multi-source territory, dispatch the read-only research subagent (.cursor/agents/researcher.md) — and run several in parallel — so the main thread stays lean. Then hand remaining unknowns to intake-interview.

Step 4 — Interview only for what's left

Delegate to intake-interview: one question at a time, each with a recommended default, stopping once remaining unknowns can be carried as explicit written assumptions. Capture the agreed problem + assumptions in the plan's spec.md (Objective + Assumptions).

Step 5 — Verify claims as you go

Whenever the plan asserts something about an external tool, API, framework, package version, license, or Cursor capability, route it through doubt-research. Unverifiable claims get labeled [NO RELIABLE DATA] — never bluffed. If the project might benefit from an existing skill / MCP server / library, run the capability-scout flow in doubt-research and present a proposal. Never auto-install.

Step 6 — Specify and decompose

Delegate to spec-drafter (produces spec.md: objective, requirements with acceptance criteria, architecture, ADRs, boundaries) and task-decomposer (produces tasks.md: vertical, dependency-ordered, commit-sized tasks with acceptance criteria, verification, and checkpoints). Only create a section/artifact when it changes a decision — don't pad.

Step 7 — Harden (High-Risk) and review (Large+)

For High-Risk work, run security-rollback to add a threat model, the Always/Ask-First/Never boundary set, and a rollback plan. For Large/High-Risk, get an independent review: dispatch the read-only reviewer subagent (.cursor/agents/reviewer.md) and/or invoke plan-griller. The reviewer must not be the author. Fix what review finds before requesting approval.

Step 8 — Request approval, then stop

Present the plan and the open assumptions. Ask for approval. Update manifest.md: approved → Status: READY_FOR_DEV; changes requested → return to the relevant step; abandoned → Status: ABANDONED. Do not start implementing until the user approves.

Step 9 — Drift control (during implementation)

If implementation later diverges from the approved plan, don't silently continue. Note the drift and recommend one of: continue-with-note, update tasks.md, re-decompose remaining work, return to spec, or stop and ask the user.

State, memory, and resume

All planning state lives in .cursor/plans/<project>/ (manifest.md, spec.md, tasks.md, context.md). Context window is RAM; the file system is disk. Persist decisions to files; update context.md (the memory bank) per project-memory. Keep manifest.md current at phase boundaries so a post-compaction session can recover by reading it.

Team mode (opt-in, Large parallel builds only)

Do not stand up a team by default. A single orchestrator plus the read-only research/review subagents handles almost everything. Only for large, genuinely parallel build programs, read references/team-mode.md and spawn specialists per task from a team-snapshot.md — never keep a standing team.

Anti-Rationalization

ExcuseReality
"This is clearly tiny"If there are design decisions, it's at least Small.
"Research will slow us down"Wrong research slows us down more. Verify or label [NO RELIABLE DATA].
"The user knows what they want"Then intake is fast. Don't skip it.
"We don't need the griller"If it's Large or High-Risk, you do. Generator ≠ Evaluator.
"I'll just stand up the full team"Smallest team that produces a reliable plan wins. Justify every specialist.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.