From mysuperpowers
Use before any creative work — creating features, building components, adding functionality, or modifying behavior — OR when revising an existing feature design. Triggers on: 'create feature X', 'build X', 'add functionality', 'update feature X', 'revise the design', 'change the plan for Y', 'modify the existing design'. Explores intent and design (new features) or focused change delta (revisions) before implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mysuperpowers:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
When brainstorming activates, determine which mode applies before asking any questions:
Revision mode — any of these apply:
docs/features/<name>/: <name>-design.md, prd.md, or plan.mdCreate mode — none of the above apply and the user is describing something new with no existing design.
If uncertain, ask before proceeding:
"Is this a new feature or an update to an existing one?"
Do not begin either flow's questions until the mode is confirmed.
You MUST create a task for each of these items and complete them in order:
docs/features/<feature-name>/<feature-name>-design.md and commitFor Revision Mode flow, see the Revision Mode section below.
digraph brainstorming {
"Explore project context" [shape=box];
"Visual questions ahead?" [shape=diamond];
"Offer Visual Companion\n(own message, no other content)" [shape=box];
"Ask clarifying questions" [shape=box];
"Propose 2-3 approaches" [shape=box];
"Present design sections" [shape=box];
"User approves design?" [shape=diamond];
"Write design doc" [shape=box];
"Spec self-review\n(fix inline)" [shape=box];
"User reviews spec?" [shape=diamond];
"Ask: Create PRD?" [shape=diamond];
"Invoke creating-prd skill" [shape=doublecircle];
"Ask: Create milestone plan?" [shape=diamond];
"Invoke milestone-planning skill" [shape=doublecircle];
"Stop and wait" [shape=box];
"Explore project context" -> "Visual questions ahead?";
"Visual questions ahead?" -> "Offer Visual Companion\n(own message, no other content)" [label="yes"];
"Visual questions ahead?" -> "Ask clarifying questions" [label="no"];
"Offer Visual Companion\n(own message, no other content)" -> "Ask clarifying questions";
"Ask clarifying questions" -> "Propose 2-3 approaches";
"Propose 2-3 approaches" -> "Present design sections";
"Present design sections" -> "User approves design?";
"User approves design?" -> "Present design sections" [label="no, revise"];
"User approves design?" -> "Write design doc" [label="yes"];
"Write design doc" -> "Spec self-review\n(fix inline)";
"Spec self-review\n(fix inline)" -> "User reviews spec?";
"User reviews spec?" -> "Write design doc" [label="changes requested"];
"User reviews spec?" -> "Ask: Create PRD?" [label="approved"];
"Ask: Create PRD?" -> "Invoke creating-prd skill" [label="yes"];
"Ask: Create PRD?" -> "Ask: Create milestone plan?" [label="no"];
"Ask: Create milestone plan?" -> "Invoke milestone-planning skill" [label="yes"];
"Ask: Create milestone plan?" -> "Stop and wait" [label="no"];
}
The terminal states are invoking creating-prd, invoking milestone-planning, or stopping to wait. This applies in both Create Mode and Revision Mode. Do NOT invoke any implementation skill directly.
Understanding the idea:
Exploring approaches:
Presenting the design:
Design for isolation and clarity:
Working in existing codebases:
Documentation:
Confirm the feature name with the user before writing the design doc. If a name has already been mentioned in the conversation, state it and ask for confirmation rather than re-asking.
"What's the kebab-case name for this feature? I'll save the design to
docs/features/<name>/<name>-design.md."
docs/features/<feature-name>/<feature-name>-design.mdSpec Self-Review: After writing the spec document, look at it with fresh eyes:
Fix any issues inline. No need to re-review — just fix and move on.
User Review Gate: After the spec review loop passes, ask the user to review the written spec before proceeding:
"Spec written and committed to
<path>. Please review it and let me know if you want to make any changes before we move on."
Wait for the user's response. If they request changes, make them and re-run the spec review loop. Only proceed once the user approves.
Next Steps:
After the user approves the spec, ask:
"Would you like me to create a PRD for this feature?"
creating-prd skill.milestone-planning skill.Do NOT invoke any implementation skill directly or start writing code.
Activates when Mode Detection determines this is an update to an existing feature. This is a focused, delta-only conversation. The original design is the anchor — do not re-run the full discovery questions.
You MUST create a task for each of these items and complete them in order:
docs/features/<name>/<name>-design.md, prd.md, and plan.md from docs/features/<name>/ if they exist. The design file is the primary context anchor; the PRD and plan add additional context. If none of the three files are found, stop and tell the user (see fallback below)digraph revision_mode {
"Confirm feature name" [shape=box];
"Read existing context\n(design, PRD, plan)" [shape=box];
"Files found?" [shape=diamond];
"Stop: no existing design found\n(offer Create Mode or wait)" [shape=box];
"Ask revision questions\n(one at a time)" [shape=box];
"Present change summary" [shape=box];
"User confirms summary?" [shape=diamond];
"Ask: Update design file?" [shape=diamond];
"Update design file" [shape=box];
"Ask: Update PRD?" [shape=diamond];
"Invoke creating-prd skill" [shape=doublecircle];
"Ask: Update milestone plan?" [shape=diamond];
"Invoke milestone-planning skill" [shape=doublecircle];
"Stop and wait" [shape=box];
"Confirm feature name" -> "Read existing context\n(design, PRD, plan)";
"Read existing context\n(design, PRD, plan)" -> "Files found?";
"Files found?" -> "Stop: no existing design found\n(offer Create Mode or wait)" [label="no"];
"Files found?" -> "Ask revision questions\n(one at a time)" [label="yes"];
"Ask revision questions\n(one at a time)" -> "Present change summary";
"Present change summary" -> "User confirms summary?";
"User confirms summary?" -> "Ask revision questions\n(one at a time)" [label="no, revise"];
"User confirms summary?" -> "Ask: Update design file?" [label="yes"];
"Ask: Update design file?" -> "Update design file" [label="yes"];
"Ask: Update design file?" -> "Ask: Update PRD?" [label="no"];
"Update design file" -> "Ask: Update PRD?";
"Ask: Update PRD?" -> "Invoke creating-prd skill" [label="yes"];
"Ask: Update PRD?" -> "Ask: Update milestone plan?" [label="no"];
"Ask: Update milestone plan?" -> "Invoke milestone-planning skill" [label="yes"];
"Ask: Update milestone plan?" -> "Stop and wait" [label="no"];
}
If Step 2 finds none of the three files at docs/features/<name>/, stop the revision flow and tell the user:
"I don't find any existing design, PRD, or plan at
docs/features/<name>/. Did you mean to create a new feature? If so, I can switch to Create Mode. If not, check the feature name and try again."
Ask these one at a time, conversationally. Follow the user's answers — if one answer makes the next question obvious, weave it in naturally.
Unlike the Create Mode flow, these four questions are the full conversation. Do not probe further unless an answer is genuinely ambiguous.
After the four questions, present a clear summary of the delta:
"Here's what I understand is changing: [summary of what changes, what motivates it, what stays the same, and any implications]"
Wait for explicit user confirmation before proceeding. If the user corrects anything, revise the summary and re-confirm.
After the user confirms the summary:
"Do you want me to update the design file to reflect this change?"
docs/features/<feature-name>/<feature-name>-design.md with the updated design. Then continue."Do you want to update the PRD to reflect this change?"
creating-prd. It will detect the existing PRD and handle the update.milestone-planning.Do NOT write or modify PRD or plan files from this skill. Do NOT invoke any implementation skill.
creating-prd and milestone-planning respectively. Brainstorming hands off; it does not write PRDs or plans.<feature-name>-design.md) is owned by this skill. Create Mode writes it. Revision Mode may update it, but only after explicit user confirmation in the handoff step.| Thought | Reality |
|---|---|
| "The user said 'update feature X' — I'll re-run the full discovery questions to make sure I understand" | NO. Revision mode is focused on the delta, not a full re-derivation. Run the four revision questions only. |
| "I'll just update the PRD myself while I have context — it's faster than handing off" | NO. Brainstorming never writes PRDs or plans. Summarize the change, confirm it, then hand off to creating-prd. |
| "The user described the change clearly enough — I don't need to read the existing files first" | NO. Always read the design file, PRD, and plan before the revision conversation. They are the anchor and may contain constraints the user didn't mention. |
| "The change summary is confirmed — I'll update the design file and move straight to offering the PRD" | NO. Always ask explicitly before updating the design file. Confirmation of the summary is not the same as authorization to write. |
A browser-based companion for showing mockups, diagrams, and visual options during brainstorming. Available as a tool — not a mode. Accepting the companion means it's available for questions that benefit from visual treatment; it does NOT mean every question goes through the browser.
Offering the companion: When you anticipate that upcoming questions will involve visual content (mockups, layouts, diagrams), offer it once for consent:
"Some of what we're working on might be easier to explain if I can show it to you in a web browser. I can put together mockups, diagrams, comparisons, and other visuals as we go. This feature is still new and can be token-intensive. Want to try it? (Requires opening a local URL)"
This offer MUST be its own message. Do not combine it with clarifying questions, context summaries, or any other content. The message should contain ONLY the offer above and nothing else. Wait for the user's response before continuing. If they decline, proceed with text-only brainstorming.
Per-question decision: Even after the user accepts, decide FOR EACH QUESTION whether to use the browser or the terminal. The test: would the user understand this better by seeing it than reading it?
A question about a UI topic is not automatically a visual question. "What does personality mean in this context?" is a conceptual question — use the terminal. "Which wizard layout works better?" is a visual question — use the browser.
If they agree to the companion, read the detailed guide before proceeding:
skills/brainstorming/visual-companion.md
npx claudepluginhub walnashgit/mysuperpowers --plugin mysuperpowersGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.