Loading...
Loading...
Use when breaking down a Beat change spec into tasks — not for spec creation or implementation
npx skill4agent add kirkchen/beat plan/beat:design/beat:explore/beat:apply/beat:verifyreferences/adr-format.md| Superpower | When | Priority |
|---|---|---|
| using-git-worktrees | Before first file write | MUST |
| writing-plans | When creating tasks | MUST |
| 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 benefit from a test coverage check. Review scales with complexity — it's fast for simple changes. |
| "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. |
- [ ]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];
"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" -> "Assess complexity" [label="spec ready"];
"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";
}beat/changes/archive/using-git-worktreesstatus.yamlreferences/status-schema.mdgherkinstatus: donegherkinstatus: skippedproposalstatus: done/beat:designtasksstatus: doneproposal.mdfeatures/*.featuredesign.mdbeat/config.yamlreferences/config-schema.mdlanguagecontextrules.tasks@e2e"Based on the spec artifacts, I suggest the following review perspectives: [dynamically selected roles with rationale]Adjust, add, remove, or confirm?"
| Signal | Suggested role |
|---|---|
| Always included | Test coverage: Are all scenarios covered? Any gaps? |
| Integration: 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? |
superpowers:writing-plans<!-- Generated without writing-plans. Consider re-running with superpowers plugin. -->### 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.beat/changes/<name>/tasks.mdreview-subagent-prompt.mdExploreExplore/beat:planreferences/adr-format.mddocs/adr/tasks.mddesign.mdbeat/changes/<name>/tasks.md## Review Applied
- [Role]: <what was changed>
- [Role]: <what was changed>
...status.yamltasks{ status: done }tasksgit add beat/changes/<name>/ && git commitimplementstatus.yamltasksimplement## 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.