From beads-superpowers
Guides brainstorming and design exploration before implementation. Turns ideas into structured specs through collaborative dialogue, with a step-by-step checklist.
How this skill is triggered — by the user, by Claude, or both
Slash command
/beads-superpowers: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.
You MUST create a brainstorming session bead (bd create "Brainstorming: <topic>" -t task) and child beads for each checklist step below (bd create "Step N: <title>" -t chore --parent <session-bead-id>), then complete them in order:
.internal/specs/YYYY-MM-DD-<topic>-design.md and commitstress-test skill for adversarial review before proceedingdigraph brainstorming {
"Explore project context" [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];
"Design complex\nor risky?" [shape=diamond];
"Invoke stress-test skill" [shape=box];
"Invoke writing-plans skill" [shape=doublecircle];
"Explore project context" -> "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?" -> "Design complex\nor risky?" [label="approved"];
"Design complex\nor risky?" -> "Invoke stress-test skill" [label="yes"];
"Design complex\nor risky?" -> "Invoke writing-plans skill" [label="no"];
"Invoke stress-test skill" -> "Invoke writing-plans skill";
}
The terminal state is writing-plans. The only other skill brainstorming may invoke is stress-test (optional, between spec approval and writing-plans). Do NOT invoke frontend-design, mcp-builder, or any other implementation skill.
Understanding the idea:
AskUserQuestion tool for these (structured options are faster to answer than reading text and typing a response). Open-ended questions that don't have clear discrete options can remain as text.Exploring approaches:
AskUserQuestion tool to present the approaches as structured options. Put your recommended option first with "(Recommended)" in the label. Use the description field for trade-offs and reasoning. This is more efficient than text blocks that require the user to read and type a response.AskUserQuestion invocation for the actual selectionPresenting the design:
AskUserQuestion tool to check approval:
{
"questions": [{
"question": "Does the <section-name> section look right?",
"header": "Design",
"options": [
{"label": "Looks good", "description": "Approve this section and move to the next one"},
{"label": "Needs changes", "description": "I have feedback or revisions for this section"}
],
"multiSelect": false
}]
}
Design for isolation and clarity:
Working in existing codebases:
Documentation:
.internal/specs/YYYY-MM-DD-<topic>-design.md
Capture what you learned before closing:
bd remember "design: <key design decision and rationale>"
If a previous memory is now wrong, bd forget <id> first.
Spec 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, open the spec file in the user's editor so they can review it, then gate progression with AskUserQuestion:
User's preferred editor: !echo ${VISUAL:-${EDITOR:-not-configured}}
⚠️ Run the open command as a standalone Bash call — never chain it after bd commands in the same invocation (e.g., bd close <id> && open file.md). The combination hangs.
# Open in user's preferred editor, with platform fallbacks
if [ -n "$VISUAL" ]; then
"$VISUAL" "<spec-file-path>"
elif [ -n "$EDITOR" ]; then
"$EDITOR" "<spec-file-path>"
elif command -v open >/dev/null 2>&1; then
open "<spec-file-path>"
else
xdg-open "<spec-file-path>" 2>/dev/null
fi
# If none available: just report the path
Then immediately use the AskUserQuestion tool:
{
"questions": [{
"question": "Spec opened in your editor at `<path>`. Review it and let me know when ready.",
"header": "Spec review",
"options": [
{"label": "Approved", "description": "Spec looks good — proceed to writing the implementation plan"},
{"label": "Needs changes", "description": "I want to revise the spec before proceeding"}
],
"multiSelect": false
}]
}
If the user selects "Needs changes", make the requested changes and re-run the spec review loop. Only proceed to writing-plans once approved.
Implementation:
AskUserQuestion tool to offer:
{
"questions": [{
"question": "This design has some complexity. Want to stress-test it before planning?",
"header": "Stress test",
"options": [
{"label": "Yes, stress-test it", "description": "Run adversarial review to find gaps before committing to a plan"},
{"label": "No, proceed to planning", "description": "Skip stress-test and go straight to writing the implementation plan"}
],
"multiSelect": false
}]
}
bd dep add <epic-id> <brainstorming-bead-id> --type discovered-fromA 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 (just-in-time): Do NOT offer it upfront. Wait until a question would genuinely be clearer shown than told — a real mockup / layout / diagram question, not merely a UI topic. The first time that happens, offer it then for consent using the AskUserQuestion tool. This offer MUST be its own message. Do not combine it with clarifying questions, context summaries, or any other content. If they decline, continue text-only and don't offer again unless they raise it.
{
"questions": [{
"question": "This next part might be easier to show than describe. I can put together mockups, diagrams, and comparisons in a web browser as we go. This feature is still new and can be token-intensive. Want me to? (Requires opening a local URL)",
"header": "Visual",
"options": [
{"label": "Yes, use visuals", "description": "Open a browser companion for mockups and diagrams during brainstorming"},
{"label": "No, text only", "description": "Continue with text-based brainstorming in the terminal"}
],
"multiSelect": false
}]
}
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
Invokes:
npx claudepluginhub dollardill/beads-superpowers --plugin beads-superpowersGuides collaborative brainstorming to explore intent, clarify requirements, propose designs, and secure approval before implementing features or changes.
Explores user intent, requirements, and design before implementation. Guides brainstorming, proposes approaches, writes a design doc, and transitions to implementation plans.
Turns ideas into approved designs and specs via structured dialogue: context exploration, questions, proposals, reviews. Enforces before any feature, component, or change implementation.