plan
Skill4 starsChanged 15 days agoMITView on GitHub
Use when work spans several files or sessions, the user asks for a plan, spec, PRD or tickets, or after grill settles a project-size design.
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 162 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Follow the repo's existing plan or spec location if it has one.
- Distinctive: line 26
If the work covers independent subsystems, write one plan per subsystem.
- Distinctive: line 34
Prefer REDUCTION when requirements are broad and HOLD when the scope is already fixed.
- Distinctive: line 78
Add commit steps only when the user asked for commits.
- Very specific: line 80
Engineering pass: Read references/eng-review.md and apply its prime directives to every new codepath: named error paths, the nil / empty / …
“Common” is measured: kept by at least 6 in 10 of the 162 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 plan records the decisions the implementer can't make alone: which files, which names and signatures, the spec's exact values, and the check that proves each task. Leave the code out. A plan longer than the code it describes has written the code; a line that decides nothing ("handle edge cases", "TBD", "add validation") is a gap.
1. Pick the branch
| Situation | Output |
| One or two files, obvious approach | No plan. Say so in one line and hand to the execute skill. |
| Fits one or two sessions | Session plan: docs/plans/YYYY-MM-DD-<slug>.md |
| Multi-session build, or the user asks for a spec, PRD or tickets | Spec + tickets (section 4) |
Follow the repo's existing plan or spec location if it has one. Explore the code first and keep what the plan needs: file pointers, conventions, test commands, entry points. If a product decision is still open, run the grill skill first.
Consume existing research notes and triage briefs before rediscovering the same facts. Refresh date-sensitive claims and resolve missing acceptance criteria; a label such as ready-for-agent is not proof of a reproduced bug. For queue/retry/concurrency invariants whose ordering is the main risk, offer the optional, explicitly invoked statechart workflow rather than requiring it for ordinary tasks.
If the work covers independent subsystems, write one plan per subsystem; each should produce working, testable software on its own.
Done when: the branch is chosen and every decision the plan needs is either in hand or settled by grill.
2. Challenge the scope
For project-size work, read references/scope-review.md and run it: premise check, what already exists, two or three approaches (one minimal, one ideal), then a scope mode (EXPANSION, SELECTIVE, HOLD, REDUCTION). Every scope addition is the user's opt-in, one decision brief per addition. Once a mode is chosen, commit to it for the rest of the plan.
- Prefer REDUCTION when requirements are broad and HOLD when the scope is already fixed. Response mode does not change scope.
Done when: the chosen approach and mode are written in the plan header.
3. Write the session plan
Header
# <Feature> plan
**Goal:** <one sentence>
**Approach:** <two or three sentences; the chosen approach and scope mode>
**Design:** <path to the grill doc, or "none">
## Global constraints
<Project-wide requirements, one per line, exact values copied verbatim from the design.>
## Review focus
<Up to five inputs or failure modes the design implies but no test exercises, most likely first. Each gets a test in the task that owns the code.>
## File map
- `path/to/file.ts`: <its one responsibility> (create | modify)File map first. Lock the decomposition here: one clear responsibility per file, files that change together live together, existing patterns win over new ones.
Right-sized tasks. A task is the smallest unit that carries its own test cycle and that a reviewer could reject while approving its neighbor. Fold setup, config and docs into the task whose deliverable needs them.
### Task N: <deliverable>
**Files:** create `a.ts`; modify `b.ts:40-60`; test `a.test.ts`
**Interfaces:** consumes `parseRow(line: string): Row` (Task 2); produces `importCsv(path: string): Promise<Row[]>`
- [ ] Test `rejects rows with missing id`: `importCsv("fixtures/missing-id.csv")` rejects with `MissingIdError`
- [ ] Implement `importCsv` in `a.ts`, streaming line by line
- [ ] Verify: `npm test -- a.test.ts` → 4 passedWhat each step carries, and nothing more:
- Test step: the test's name and its assertions with the spec's exact values.
- Code step: the exact signature, its file, the values the spec pins. A body only for an algorithm the signature and test don't determine.
- Verify step: the command and the output that means it passed. Every task ends with one.
- Cross-task reference: point at the other task's Interfaces line; don't repeat its code.
Add commit steps only when the user asked for commits. Test-first tasks open with a failing test at a clean seam.
Engineering pass. Read references/eng-review.md and apply its prime directives to every new codepath: named error paths, the nil / empty / upstream-error shadow paths, interaction edge cases, and the failure-modes table. Add the tests it surfaces to the owning tasks.
Self-review, fixed inline:
- Coverage: every design requirement maps to a task.
- Step scan: every step lets the implementer write exactly one reasonable thing.
- Names: signatures and types match across tasks (
clearLayersin Task 3 isclearLayersin Task 7). - Proportion: if code blocks are most of the document, replace bodies with signatures and assertions.
Done when: the file is saved, every task has a verify command, and the self-review passes.
4. Spec + tickets
Synthesize from the conversation and the repo; don't re-interview. Read references/spec-and-tickets.md for the templates and publish commands.
- Spec: problem, solution, user stories, implementation decisions (modules, interfaces, schema, API contracts; no file paths), testing decisions (the highest seam that reaches the behavior, fewest seams overall), out of scope.
- Tickets as tracer bullets. Each ticket is a narrow but complete vertical slice through every layer, demoable on its own, sized for one fresh session. Prefactoring comes first: make the change easy, then make the easy change. Each ticket declares Blocked by. A wide mechanical refactor goes expand, migrate in batches, contract, instead of a slice.
- Publish. With a GitHub remote and
ghauthenticated, create issues in dependency order (blockers first) so each "Blocked by" cites real numbers. Issues are visible to others: show the numbered breakdown (title, blocked by, delivers) and publish on the user's go. Otherwise write one file per ticket todocs/tickets/<slug>/NN-<slug>.md, numbered in dependency order; local files need no go.
The frontier is every ticket whose blockers are done. That's the queue execute drains, one fresh session per ticket.
Done when: the spec exists and every ticket is published with its blocking edges.
5. Hand off
If the user asked for the plan itself, link it and stop. If they already asked for implementation, continue into execute; the plan records the authorized scope. Ask only for an unresolved product decision or a scope expansion. Do not ask again for implementation already authorized.
Other versions181 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 181
- 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
- fuyuxiang/echo-agent★ 1.1ksame name
- kdlbs/kandev★ 1ksame name
- suboss87/FDEOps★ 940same name
- loongclaw-ai/loongclaw★ 640same name
- witnesstodark/mr-mak-workspace★ 609same name
171 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.
Used alongsideProjects with it also use webhook-subscriptions, heartmula 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.
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-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
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
ibahgatSkillcontext-optimize
Improve context efficiency and cache stability for long or complex sessions.
Also in 3 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
- +4 more from math-inc
In this repository39 other files it gives its agents.
- migrate/AGENTS.mdAGENTS.md
- migrate/CLAUDE.mdCLAUDE.md
- api-designSkill
- architectureSkill
- databaseSkill
- debugSkill
- deploySkill
- docsSkill
- domainSkill
- executeSkill
- frontendSkill
- grillSkill
- handoffSkill
- honeySkill
- incidentSkill
- observabilitySkill
- opensrcSkill
- perfSkill
- principlesSkill
- project-verifySkill
- prototypeSkill
- qaSkill
- researchSkill
- reverse-engineerSkill
- reviewSkill
- rsiSkill
- securitySkill
- shipSkill
- stageshowSkill
- statechartSkill
- tddSkill
- teachSkill
- test-designSkill
- toolingSkill
- triageSkill
- unslopSkill
- upgradeSkill
- verifySkill
- write-skillSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

