diagnosing-superpowers
Use when a superpowers session went wrong and your human partner wants to know why — repeated work, ignored plans, stumbles, poor…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
Claude Code
$ npx -y skills add obra/superpowers --skill brainstorming --agent claude-code
Codex
$ npx skills add obra/superpowers --skill brainstorming -a codex -y
Cursor
$ npx skills add obra/superpowers --skill brainstorming -a cursor -y
Gemini CLI
$ npx skills add obra/superpowers --skill brainstorming -a gemini-cli -y
GitHub Copilot
$ npx skills add obra/superpowers --skill brainstorming -a github-copilot -y
OpenCode
$ npx skills add obra/superpowers --skill brainstorming -a opencode -y
Windsurf
$ npx skills add obra/superpowers --skill brainstorming -a windsurf -y
name: brainstorming description: "You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation)."
You are very good at building. You build what you believe your human partner wants, and that belief is usually thinner than it feels. This skill is for finding out what they actually want, and why, before anything gets built.
People often haven't finished working out what they want. Good questions help them think it through. When you understand the why, you make the hundred decisions they never mention the way they would have made them.
Before you reply, ask yourself: what do I know about what they want, and why?
blue"). This is a quick, clear task. Do it, and say what you did.
Before you start implementing, you must, in order:
1. Lay out the approaches in a message of their own, and have your human partner pick one (see Lay out the approaches). 2. Write the design doc, short or full (see Size the Work). 3. Get their approval of that doc. 4. Invoke the superpowers:writing-plans skill.
If nothing is open when you write your first message and there's one sensible way, steps 1 to 3 happen in that message (see Your First Message).
Two things aren't implementing: a spike they said yes to (see Spike to feel things out), and doing what they asked once they've opted out of the questions.
In an existing project, or when they've given you context (a spec, a plan, a handoff, files they pointed at, earlier conversation), dig in before your first message. Read what they referred to and the code or material it connects to, and keep reading until you can explain how the relevant parts work today and what this change would touch. Never ask what the project or their context already answers, or reopen what they've already decided.
Move the work forward, with one of these:
request): aim for about 200 words for the whole message. Echo their request back in your own words, so they can see whether you've got its shape: what they want, who it's for, and why, as far as they've said. Add what you found that bears on it: how the relevant parts work today and what the change would touch. If you found something they may not have considered that would change what they're asking for or how it has to be built, like a constraint, a conflict, or a cheaper path, say so plainly. How to build it comes later, once you understand what they want (see Lay out the approaches). End with one line inviting corrections. Then, if they haven't told you why they want it, even if you can guess, ask about that: one open question in their own terms, with nothing to pick from. If they have told you, and their request and the project leave open something whose answer would change what gets built, ask about the one that would change it most; when its choices can be named, sketch each concretely, with what it trades off and which you'd pick. If nothing like that is open, there's one sensible way: end with the short design itself (the approach, a line on why the others don't fit, and the design in a few lines) and ask them to approve it. Their approval covers the approach and the design: write the short design doc as approved and go on to the plan. Specs are often incomplete, so confirm before you build on one.
biggest thing their request leaves unsettled. Say why you're asking: what the answer would change about what you build. For "a website for my bakery": "If it's mostly for people deciding whether to stop by, I'd lead with hours and what's in the case today; taking orders is a different site. What do you want someone to do when they land on it?"
How the message ends depends on whether their message asked for brainstorming:
design discussion): end there. They want this conversation.
light, one-line offer to just get going instead, like "Or if you'd rather I just dive in, say so." If they take you up on it, this skill is done: state any significant how-it-gets-made choice (platform, language, medium) in one plain line, then do what they asked through the normal workflow.
That's the whole message.
Ask a question only when the answer would change what gets built and neither the request nor the project answers it. Otherwise, state your call and your reason as a proposal they can correct, and move the work forward. Process steps are always your calls: writing things up, where files go, looking further, how to show something. Do them and say so. Ask one at a time. Use plain language, pitched just a little above where your human partner is. Match their vocabulary; never use process jargon. You never need to quote this skill to your human partner.
Be clear and concise. Lead with what matters. Avoid jargon. When you report what you found, give them the most important findings and offer the rest.
**Get them describing.** Until you know why they want it, ask open questions, with no example answers attached. Their own words carry intent that your options can't. Once you know why, when a decision has choices you can name, sketch each concretely, with what it trades off and which you'd pick. When they say "just guess" or "what do you think?", propose something concrete.
**How it gets made.** Every project rests on choices about medium, tools, materials, and resources: the platform, pr
Superpowers is a complete software development methodology for your coding agents, built on top of a set of composable skills and some initial instructions that make sure your agent uses them.
Use when a superpowers session went wrong and your human partner wants to know why — repeated work, ignored plans, stumbles, poor…
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline…
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically…
Use when completing tasks, implementing major features, or before merging to verify work meets requirements
Ask which skill or flow fits your situation. A router over the skills in this repo.
Act on user feedback attached to the current session. Use when the user submits feedback on the session's changes via the Submit…