plan
Skill9 starsChanged 7 months agoMITView on GitHub
Use when breaking down a Beat change spec into tasks — not for spec creation or implementation
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
Show its rules and text
We split this skill into the rules it gives an agent
36 rules. 0 are common, 21 are distinctive, and 15 are very specific to this project.
0
Common
Most of the 167 edited versions we read keep these.
21
Distinctive
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Should NOT trigger: "design a new feature" / "write gherkin for X" / "implement the change"
- Distinctive: line 28
Before writing any files: you MUST invoke superpowers:using-git-worktrees.
- Distinctive: line 33
Do NOT create tasks from a description alone — spec artifacts are the input.
- Very specific: line 35
When the multi-role review rejects an alternative with a load-bearing reason that would otherwise have to be re-litigated by future …
- Distinctive: line 40
If a prerequisite skill is unavailable (not installed), continue with fallback — but NEVER skip because you judged it unnecessary.
- Distinctive: line 51
If a superpower is unavailable (skill not installed), skip and continue.
- Distinctive: line 132
If no name provided:
- Very specific: line 133
Look for beat/changes/ directories (excluding archive/)
- Distinctive: line 134
If only one exists, use it (announce: "Using change: <name>")
- Distinctive: line 135
If multiple exist, use AskUserQuestion tool to let user select
- Very specific: line 143
Read status.yaml (schema: references/status-schema.md).
- Very specific: line 149
If neither condition is met: "Spec artifacts are required before task breakdown.
- Very specific: line 151
If status.yaml has source: distill: warn — "This is a distill change.
- Very specific: line 153
If tasks already has status: done: "Tasks already exist.
- Distinctive: line 155
Read all available artifacts:
- Very specific: line 160
Read beat/config.yaml if it exists (schema: references/config-schema.md).
- Very specific: line 174
Use AskUserQuestion tool (unattended: take the suggested roles, record in assumed.md):
- Distinctive: line 191
Test coverage is always included.
- Very specific: line 200
If writing-plans is unavailable (not installed), create tasks.md as fallback with notice: <!-- Generated without writing-plans.
- Distinctive: line 209
"And then" test: if a task description needs "and then", split it.
- Very specific: line 227
Read review-subagent-prompt.md for the subagent prompt template.
- Distinctive: line 235
All spec artifacts (proposal, gherkin, design)
- Distinctive: line 238
Do NOT pass conversation history or session context to any agent.
- Very specific: line 242
Fallback: If any agent fails or returns empty, proceed with findings from the others.
- Distinctive: line 248
When findings conflict, prefer the more conservative recommendation
- Very specific: line 262
Read beat/changes/<name>/tasks.md, then use the Edit tool to apply:
- Distinctive: line 263
Add missing tasks or steps identified by the review
- Distinctive: line 265
Add test coverage notes where the review found gaps
- Very specific: line 277
Update status.yaml: set tasks to { status: done } and phase to tasks.
- Very specific: line 281
Commit tasks.md, updated status.yaml, and every living-documentation file this run wrote — an ADR recorded at the review's ADR gate (plus …
- Distinctive: line 292
Use a descriptive message, e.g.
- Very specific: line 294
Update phase to implement in status.yaml (advancing from tasks → implement), then run node <skill-dir>/scripts/validate-beat.mjs --file …
- Distinctive: line 309
NEVER proceed without at least one spec artifact (gherkin or proposal) being done
- Distinctive: line 310
NEVER write tasks inline — always use writing-plans (or fallback with notice)
- Distinctive: line 312
Test coverage review is always included regardless of complexity
- Distinctive: line 314
If review reveals spec-level issues (missing scenarios, design gaps), surface them to the user rather than silently compensating in tasks …
“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 the execution — read spec artifacts, review from multiple perspectives, then generate tasks.md.
<decision_boundary>
Use for:
- Breaking down spec artifacts into implementation tasks (tasks.md)
- Multi-role review of an execution plan before implementation
- Re-generating or updating tasks for an existing change
NOT for:
- Creating spec artifacts like proposal, gherkin, or design.md (use
/beat:design) - Exploring ideas or investigating a problem (use
/beat:explore) - Implementing code (use
/beat:apply) - Verifying implementation (use
/beat:verify)
Trigger examples:
- "Break down the tasks" / "Create execution plan" / "Plan the implementation" / "Review and generate tasks"
- Should NOT trigger: "design a new feature" / "write gherkin for X" / "implement the change"
</decision_boundary>
<HARD-GATE>
Before writing any files: you MUST invoke superpowers:using-git-worktrees.
You MUST invoke superpowers:writing-plans to generate tasks. Do NOT write tasks inline.
writing-plans IS the task creation process. This applies regardless of change complexity or time pressure.You MUST have at least one spec artifact done (gherkin or proposal) before proceeding. Do NOT create tasks from a description alone — spec artifacts are the input.
When the multi-role review rejects an alternative with a load-bearing reason
that would otherwise have to be re-litigated by future reviewers: you MUST
run the three-condition ADR gate (see references/adr-format.md) and offer
to record an ADR. User may decline.
If a prerequisite skill is unavailable (not installed), continue with fallback — but NEVER skip
because you judged it unnecessary.
</HARD-GATE>
Prerequisites (invoke before proceeding)
| Superpower | When | Priority |
| using-git-worktrees | Before first file write | MUST |
| writing-plans | When creating tasks | MUST |
If a superpower is unavailable (skill not installed), skip and continue.
Unattended mode
When the run carries a stage-result nonce (see references/handoff-report.md), nobody is watching: follow references/unattended-mode.md. Every AskUserQuestion in this skill becomes a default (recorded in beat/changes/<name>/decisions/assumed.md), a decision brief (references/decision-brief.md, blocked-on: decision), or an environmental stop (blocked-on: env). The per-skill table in that reference says which. For plan specifically: use the suggested review roles; a review finding that changes what gets built becomes a brief, one that only reshapes tasks is applied and noted.
Rationalization Prevention
| Thought | Reality |
| "I don't need a worktree, design already committed the artifacts" | Design may not have run, or the worktree may not exist yet. using-git-worktrees is idempotent — if already isolated, it detects and continues. |
| "This change is simple enough to write tasks inline" | Simple changes finish writing-plans quickly. Complex changes need it most. There is no middle ground where skipping helps. |
| "I already understand the scope from the proposal/gherkin" | Understanding scope ≠ properly decomposed tasks. writing-plans catches scope gaps you haven't noticed. |
| "The user wants speed, invoking superpowers will slow us down" | Skipping prerequisites produces lower-quality tasks that cause rework during apply. |
| "The spec artifacts are clear enough, review is overkill" | Review catches blind spots that the spec author can't see. The more obvious the spec seems, the more likely assumptions are hiding. |
| "I'll skip review for this small change" | Small changes still get the test coverage check — the preset decides how many roles, never whether to review. minimal/technical means one role, not zero. |
| "The review rejected option X — let's just note it in tasks.md" | If the rejection reason is load-bearing for future reviewers, it'll be re-litigated. Run the ADR gate; if all three conditions hold, write the ADR. |
Red Flags — STOP if you catch yourself:
- Writing any file before invoking using-git-worktrees
- Writing
- [ ]task checkboxes without having invoked writing-plans - Creating tasks without reading spec artifacts first
- Thinking "review isn't needed for this particular change"
- Skipping a MUST prerequisite and planning to "compensate" later
- Proceeding without at least one spec artifact (gherkin or proposal) being done
- Merging a review rejection into tasks.md without checking whether it qualifies as an ADR
Process Flow
digraph plan {
"Select change" [shape=box];
"Invoke using-git-worktrees" [shape=box, style=bold];
"Read spec artifacts" [shape=box];
"Check readiness" [shape=diamond];
"STOP: need spec first" [shape=box, style=dashed];
"Preset minimal/technical?" [shape=diamond];
"Test-coverage role only" [shape=box];
"Assess complexity" [shape=box];
"Suggest review roles" [shape=box];
"User confirms roles" [shape=box];
"Invoke writing-plans" [shape=box, style=bold];
"Generate initial tasks.md" [shape=box];
"Role count?" [shape=diamond];
"Single review agent\n(all roles)" [shape=box, style=bold];
"Parallel review agents\n(1 per role)" [shape=box, style=bold];
"Merge findings +\nupdate tasks.md" [shape=box];
"Advance to implement" [shape=box];
"Show summary" [shape=doublecircle];
"Select change" -> "Invoke using-git-worktrees";
"Invoke using-git-worktrees" -> "Read spec artifacts";
"Read spec artifacts" -> "Check readiness";
"Check readiness" -> "STOP: need spec first" [label="no spec done"];
"Check readiness" -> "Preset minimal/technical?" [label="spec ready"];
"Preset minimal/technical?" -> "Test-coverage role only" [label="yes"];
"Preset minimal/technical?" -> "Assess complexity" [label="no"];
"Test-coverage role only" -> "Invoke writing-plans";
"Assess complexity" -> "Suggest review roles";
"Suggest review roles" -> "User confirms roles";
"User confirms roles" -> "Invoke writing-plans";
"Invoke writing-plans" -> "Generate initial tasks.md";
"Generate initial tasks.md" -> "Role count?";
"Role count?" -> "Single review agent\n(all roles)" [label="1-2 roles"];
"Role count?" -> "Parallel review agents\n(1 per role)" [label="3+ roles"];
"Single review agent\n(all roles)" -> "Merge findings +\nupdate tasks.md";
"Parallel review agents\n(1 per role)" -> "Merge findings +\nupdate tasks.md";
"Merge findings +\nupdate tasks.md" -> "Commit tasks";
"Commit tasks" [shape=box];
"Commit tasks" -> "Advance to implement";
"Advance to implement" -> "Show summary";
}Input: Optionally specify a change name. If omitted, infer from context or prompt.
Steps
Select the change
If no name provided:
- Look for
beat/changes/directories (excludingarchive/) - If only one exists, use it (announce: "Using change:
<name>") - If multiple exist, use AskUserQuestion tool to let user select
- Look for
Ensure worktree isolation
Invoke
using-git-worktreesbefore reading or writing any files. If already in a worktree (e.g., from design), it detects and continues.Read spec artifacts and verify readiness
Read
status.yaml(schema:references/status-schema.md).Check that either:
gherkinhasstatus: done→ Gherkin-drivengherkinhasstatus: skippedANDproposalhasstatus: done→ Proposal-driven
If neither condition is met: "Spec artifacts are required before task breakdown. Run
/beat:designfirst." STOP.If
status.yamlhassource: distill: warn — "This is a distill change; it describes current behavior, so there is nothing to plan. The intended flow is/beat:verify→/beat:archive." Use AskUserQuestion tool to confirm before proceeding.If
tasksalready hasstatus: done: "Tasks already exist. Re-running will regenerate tasks.md." Confirm with user before proceeding.Read all available artifacts:
proposal.md(if exists)features/*.feature(all files, if gherkin is done)design.md(if exists)
Read
beat/config.yamlif it exists (schema:references/config-schema.md). Uselanguagefor output language, injectcontext, and applyrules.tasksas additional constraints.Assess change complexity and suggest review roles
Preset
minimalortechnical(fromstatus.yaml): the review is the Test coverage role alone. Say so in one line, skip the AskUserQuestion below, and go to step 5. The user can still ask for more roles;/beat:applyupgrades the preset if the change turns out bigger.Otherwise, evaluate complexity based on:
- Number of feature files and scenarios
- Number of components/services mentioned in design.md
- Whether
@e2escenarios exist (implies integration surface) - Whether design.md mentions external dependencies, DB changes, or API changes
Suggest review roles based on complexity:
Use AskUserQuestion tool (unattended: take the suggested roles, record in
assumed.md):"Based on the spec artifacts, I suggest the following review perspectives: [dynamically selected roles with rationale]
Adjust, add, remove, or confirm?"
Role selection guidance:
Signal Suggested role Always included Test coverage: Are all scenarios covered? Any gaps? @e2escenarios presentIntegration: Are integration boundaries identified? design.md mentions API/DB changes Architecture: Is the design consistent with existing patterns? proposal.md mentions user-facing changes User experience: Does the plan match user expectations? design.md mentions auth/data/external APIs Security: Are there security considerations? High scenario count (>5) or multiple features Scope: Is the decomposition granular enough? Test coverage is always included. Other roles are suggested dynamically. The user can add custom roles (e.g., "performance", "accessibility") or remove suggested ones.
Generate initial tasks via writing-plans
Invoke
superpowers:writing-plans. Pass the completed artifacts (proposal, gherkin, design) as context.The output of writing-plans becomes the initial tasks.md — do NOT generate tasks.md yourself.
If writing-plans is unavailable (not installed), create tasks.md as fallback with notice:
<!-- Generated without writing-plans. Consider re-running with superpowers plugin. -->Task Decomposition Principles — if writing-plans output violates any principle, decompose further before saving tasks.md:
- Single concern: one component, service, or API endpoint per task. "Build X and integrate into Y" = two tasks.
- ~200 LOC cap: each task produces ~200 lines of new code (excluding tests). More = too many responsibilities.
- 2-3 files max: each task touches at most 2-3 source files. More = crossing concern boundaries.
- Independently verifiable: can run tests after completing without depending on later tasks.
- "And then" test: if a task description needs "and then", split it.
- Exception: project initialization/scaffolding tasks may exceed file limits while maintaining single concern.
Quality Principles header — insert the following block between the tasks.md header and the first
### Task:## Quality Principles **Testing:** Tests verify behavior (return values, state changes, responses), not wiring. If the main assertion is `toHaveBeenCalledWith`, rewrite to assert on the function's output. **Code:** No single new file exceeds ~300 lines. If it grows past that, split into focused sub-modules.Save the initial tasks.md to
beat/changes/<name>/tasks.md.Dispatch review agents
Read
review-subagent-prompt.mdfor the subagent prompt template.Dispatch strategy based on confirmed role count:
- 1–2 roles: Single Agent (subagent_type:
Explore) with all confirmed roles. Build one prompt containing all roles and their focus areas. - 3+ roles: One Agent (subagent_type:
Explore) per role, dispatched in parallel. Each agent receives ONLY its own role and focus area — no knowledge of other roles.
Every agent receives:
- All spec artifacts (proposal, gherkin, design)
- The initial tasks.md
Do NOT pass conversation history or session context to any agent.
Why parallel at 3+: A single agent reviewing from many perspectives simultaneously loses depth and independence — findings from one role bias another. Independent agents give genuine blind-spot coverage. At 1–2 roles the overhead isn't worth the split.
Fallback: If any agent fails or returns empty, proceed with findings from the others. If ALL fail, use initial tasks.md as-is. Show notice: "Review could not be completed — tasks.md was not reviewed. Consider re-running
/beat:plan."- 1–2 roles: Single Agent (subagent_type:
Merge findings and update tasks.md
Collect findings from all review agents. If parallel agents were used:
- Deduplicate findings that identify the same issue from different roles
- When findings conflict, prefer the more conservative recommendation
ADR gate on rejected alternatives — scan the review output for cases where an alternative approach was considered and rejected with a load-bearing reason (i.e. a reason a future reviewer would want to know about to avoid re-suggesting the same thing). For each, run the three conditions from
references/adr-format.md:- Hard to reverse?
- Surprising without context?
- Result of a real trade-off?
If all three hold, use AskUserQuestion tool: "Review rejected '
<alt>' because '<reason>' — record as ADR?" On Yes, follow "Before writing an ADR" inreferences/adr-format.md(apply configrules.adr; use the project'sdocs/adr/TEMPLATE.mdif it exists, otherwise Beat's front-matter template withsource: beat/changes/<name>), write the ADR underdocs/adr/, increment numbering, cross-reference fromtasks.mdordesign.mdas appropriate. On No, continue. Step 8 commits the ADR together with tasks.md.Read
beat/changes/<name>/tasks.md, then use the Edit tool to apply:- Add missing tasks or steps identified by the review
- Split tasks that the review flagged as too broad
- Add test coverage notes where the review found gaps
- Reorder tasks if the review identified dependency issues
Show the user a brief summary of what changed:
## Review Applied - [Role]: <what was changed> - [Role]: <what was changed> ...Update
status.yaml: settasksto{ status: done }and phase totasks.Commit and advance phase
Commit tasks.md, updated status.yaml, and every living-documentation file this run wrote — an ADR recorded at the review's ADR gate (plus any ADR index the project keeps under
docs/adr/) belongs in the same commit as the tasks it came from:git add beat/changes/<name>/ git add docs/adr/NNNN-<slug>.md # only if this run wrote an ADR, by file name git add docs/adr/<index-file> # only if the project keeps an ADR index there and this run updated it git commitStage files by name, never
docs/adr/as a directory: a path is staged whengit statusshows it and this run wrote it; a path modified by the user outside this run stays unstaged.Use a descriptive message, e.g. "plan(
<name>): add task breakdown".Update phase to
implementinstatus.yaml(advancing fromtasks→implement), then runnode <skill-dir>/scripts/validate-beat.mjs --file beat/changes/<name>/status.yaml(seereferences/lint-tools.md) and fix anything it reports.## Plan Complete: <change-name> Tasks: N tasks in tasks.md Review: [list of roles that reviewed] Changes from review: [count of modifications] Ready for implementation! Run `/beat:apply` to start.Then end with the handoff block from
references/handoff-report.md(next: /beat:apply <name>). In unattended mode readbeat/changes/<name>/decisions/sensitive.md: when it saysyes, print the plan brief (references/decision-brief.md"Plan brief") as the last thing before the block and setsensitive=yesin the suffix — the orchestrator stops once here and, on/answer continue, moves to apply without re-running plan. Otherwisesensitive=no. A decision brief, when written, is likewise printed last withblocked-on: decisionandnextpointing back at this command.
Guardrails
- NEVER proceed without at least one spec artifact (gherkin or proposal) being done
- NEVER write tasks inline — always use writing-plans (or fallback with notice)
- Review is part of the process, not optional — but depth scales with complexity
- Test coverage review is always included regardless of complexity
- Apply review findings directly to tasks.md, not as a separate report
- If review reveals spec-level issues (missing scenarios, design gaps), surface them to the user rather than silently compensating in tasks (unattended: a brief when it changes what gets built)
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.

