From beads-superpowers
Guides structured brainstorming before any implementation, exploring user intent, requirements, and design through dialogue before writing code.
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.Production-Grade Doctrine applies with full force here — trade-offs are first chosen in brainstorming: you MUST NOT simplify a design by quietly cutting a required behavior; surface every material trade-off and let the user decide. Never weaken, bypass, or remove a security control — a security regression is never acceptable.
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 the session bead + step children up front, via ONE of two mechanisms: (a) atomic — bd create --graph <plan-file.json> (--graph takes a JSON plan FILE PATH; write the JSON to a temp file first, passing JSON inline fails; --dry-run first): session node titled "Brainstorming: ", each checklist step a child node with "type":"chore" and parent_key pointing to the session; or (b) sequential — bd create "Brainstorming: <topic>" -t task then bd create "Step N: <title>" -t chore --parent <session-bead-id> --ephemeral per step. Then complete the steps in order:
The session bead always stays permanent (it's the audit trail). Choose the child mechanism by trade-off: the graph node schema expresses issue type via a type field but cannot express ephemerality (verified: "type":"chore" on a node renders as [chore] in --dry-run output, while the differently-named issue_type field and an ephemeral field are both unknown to the schema and silently dropped with a warning — the binary is SSOT, re-check bd create --help on bd upgrades), so --graph children land as correctly-typed but permanent issues (e.g. permanent chores), visible in bd ready until closed — one call, but an abandoned brainstorm leaves open clutter. Sequential -t chore --ephemeral children are also correctly typed and hidden from bd ready/bd list/bd count — N calls, and ephemeral beads do not self-clean: sweep them eventually with bd purge.
.internal/specs/YYYY-MM-DD-<topic>-design.md and commitstress-test before writing-plansdigraph 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];
"Stress-test selected\nat gate?" [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?" -> "Stress-test selected\nat gate?" [label="approved"];
"Stress-test selected\nat gate?" -> "Invoke stress-test skill" [label="selected"];
"Stress-test selected\nat gate?" -> "Invoke writing-plans skill" [label="skipped"];
"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:
Exploring approaches:
description field for trade-offs and reasoning. This is more efficient than text blocks that require the user to read and type a response.Presenting the design:
{
"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
When filing a bead for discovered/follow-up work, stamp it per Agent-Filed Bead Discipline (
verification-before-completion).
After the work is settled, present the Capture gate (you MUST present it; the user picks Skip if nothing is worth keeping):
{
"questions": [{
"question": "This produced something worth preserving — what should I capture?",
"header": "Capture",
"options": [
{"label": "ADR + memory", "description": "Record an ADR for the decision AND a durable bd-remember memory"},
{"label": "ADR only", "description": "Record an ADR for the architecturally-significant decision"},
{"label": "Memory only", "description": "Capture a durable lesson/insight via bd remember"},
{"label": "Skip", "description": "Nothing here is durable enough to preserve"}
],
"multiSelect": false
}]
}
Route: ADR / ADR+memory → write the ADR per the 3-mark gate (docs/decisions/ADR-NNNN-<kebab>.md, sections Context/Decision/Rationale/Consequences, update docs/decisions/INDEX.md). Memory / ADR+memory → bd remember "<kind>: <durable, evidence-backed insight>". Skip → nothing.
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 your structured question tool (content below; shape shown in Claude Code schema — adapt to your tool):
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 ask via your structured question tool (content below; shape shown in Claude Code schema — adapt to your tool):
{
"questions": [{
"question": "Spec opened in your editor at `<path>`. Review it and let me know how to proceed.",
"header": "Spec review",
"options": [
{"label": "Approved + stress-test (Recommended)", "description": "Spec looks good — run an adversarial stress-test before writing the plan"},
{"label": "Approved", "description": "Spec looks good — skip stress-test and proceed to writing the implementation plan"},
{"label": "Needs changes", "description": "I want to revise the spec before proceeding"}
],
"multiSelect": false
}]
}
Route on the answer:
stress-test skill with the spec path (.internal/specs/YYYY-MM-DD-<topic>-design.md) as the Mode-A artifact; when it completes, invoke writing-plans.writing-plans directly.Implementation:
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 your structured question 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 structured brainstorming to refine ideas into approved designs and specs via dialogue, expert consultation, and review loops before implementation. Enforces for all projects.
Guides collaborative brainstorming to refine ideas into approved designs and specs before implementation. Use prior to building features, components, or modifying behavior.
Guides collaborative dialogue to explore context, clarify requirements, propose approaches, and create approved design specs before any implementation. Use before features, components, or changes.