Use when creating or developing anything, before writing code or implementation plans - refines rough ideas into fully-formed designs through structured Socratic questioning, alternative exploration, and incremental validation
Refines rough ideas into fully-formed designs through structured questioning and alternative exploration.
npx claudepluginhub ed3dai/ed3d-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Transform rough ideas into fully-formed designs through structured questioning and alternative exploration.
Core principle: Ask questions to understand, explore alternatives, present design incrementally for validation.
Announce at start: "I'm using the brainstorming skill to refine your idea into a design."
| Phase | Key Activities | Tool Usage | Output |
|---|---|---|---|
| 1. Understanding | Ask questions (one at a time) | AskUserQuestion for choices, agents for research | Purpose, constraints, criteria |
| 2. Exploration | Propose 2-3 approaches | AskUserQuestion for approach selection, agents for patterns | Architecture options with trade-offs |
| 3. Design Presentation | Present in 200-300 word sections | Open-ended questions | Complete design with validation |
REQUIRED: Create task tracker at start
Use TaskCreate to create todos for each phase (or TodoWrite in older Claude Code versions):
Use TaskUpdate to mark each phase as in_progress when working on it, completed when finished (or TodoWrite in older versions).
DO NOT perform deep research yourself. Delegate to specialized agents.
Use codebase-investigator when you need to:
Example delegation:
Question: "How is authentication currently implemented?"
Action: Dispatch codebase-investigator with: "Find authentication implementation, including file locations, patterns used, and dependencies"
Use @agent-ed3d-research-agents:internet-researcher when available. Otherwise use WebSearch/WebFetch aggressively.
Use internet research when you need to:
Example delegation (with agent):
Question: "What's the recommended way to handle file uploads with this framework?"
Action: Dispatch internet-researcher with: "Find current best practices for file uploads in [framework], including official docs and common patterns"
Example without agent (use WebSearch):
Question: "What's the current Stripe API for subscriptions?"
Action: Use WebSearch for: "Stripe subscriptions API latest version 2025"
Then use WebFetch to read the official docs
When to use internet research:
Don't overdo it:
Balance: Use research for external knowledge and current information. Use Claude's existing knowledge for general programming concepts.
If codebase pattern exists:
If no codebase pattern exists:
If agent/research can't find answer:
Be persistent with research:
Before asking questions:
Investigate current state - DON'T do this yourself:
Then gather requirements:
Example using AskUserQuestion:
Question: "Where should the authentication data be stored?"
Options:
- "Session storage" (clears on tab close, more secure)
- "Local storage" (persists across sessions, more convenient)
- "Cookies" (works with SSR, compatible with older approach)
When to delegate vs ask user:
Ask only useful, coherent, and effective questions: Do not ask a question when only one answer is useful, coherent, and effective. For example, in an auth system with magic links and social logins:
Example (WRONG):
What should happen when a logged-in user requests a magic link for their own email address?
1. Send new magic link (allow re-login)
User can request magic links even when logged in. Useful for re-authentication or session refresh scenarios.
2. Return error or redirect to home
Logged-in users can't request magic links. They must log out first. Simpler, prevents confusion.
3. Silent success (no email sent)
Say 'check your email' but don't send anything. Prevents leaking login state but may confuse legitimate users.
In this case, only #1 is a useful, coherent, and effective option. Option #2 doesn't make any sense (magic links can be used to verify emails after a social login) and #3 is aggressively bad (lies to the user).
Example (WRONG):
How should the magic link token verification be structured?
1. Single-use token with immediate session creation
Token is consumed on first click, session created immediately. Simple flow. User can't re-click the link. Standard pattern for passwordless auth.
2. Token valid for multiple users within TTL
Token can be used multiple times within 15 minutes. Allows re-clicking link if session cookie is lost. More complex state management.
3. Token with idempotent verification
First use creates session, subsequent uses within TTL return same session. Safe re-clicking, prevents double-session creation. Moderate complexity.
No reasonably secure system would do either options #2 or #3. The way this question is written obviously indicates one acceptable answer and the other two answers are trap answers. Do not suggest trap answers for human users.
If you want to ask a question where there is only one useful, coherent, and effective path, state your assumption and continue onward.
Do not ask questions just to ask them. If you have no useful, coherent, and effective questions, cease asking questions.
If starting-a-design-plan already gathered context:
Before proposing approaches:
Research existing patterns - DON'T do this yourself:
Then propose approaches:
Example using AskUserQuestion:
Question: "Which architectural approach should we use?"
Options:
- "Event-driven with message queue" (matches existing notification system, scalable, complex setup)
- "Direct API calls with retry logic" (simple, synchronous, easier to debug)
- "Hybrid with background jobs" (balanced, moderate complexity, best of both)
Research integration:
Level of detail: Present architecture and components, not implementation code.
The distinction: contracts define boundaries between components. Implementation defines behavior within components. Brainstorming validates the boundaries; implementation planning fills in the behavior.
Output: Validated design held in conversation context, ready for documentation.
Use AskUserQuestion for:
Benefits:
Use open-ended questions for:
Example decision flow:
Use codebase-investigator for:
Use internet research for:
Don't do deep research yourself - you'll consume context and may hallucinate. Delegate to agents or use web tools.
digraph revisit_phases {
rankdir=LR;
"New constraint revealed?" [shape=diamond];
"Partner questions approach?" [shape=diamond];
"Requirements unclear?" [shape=diamond];
"Return to Phase 1" [shape=box, style=filled, fillcolor="#ffcccc"];
"Return to Phase 2" [shape=box, style=filled, fillcolor="#ffffcc"];
"Continue forward" [shape=box, style=filled, fillcolor="#ccffcc"];
"New constraint revealed?" -> "Return to Phase 1" [label="yes"];
"New constraint revealed?" -> "Partner questions approach?" [label="no"];
"Partner questions approach?" -> "Return to Phase 2" [label="yes"];
"Partner questions approach?" -> "Requirements unclear?" [label="no"];
"Requirements unclear?" -> "Return to Phase 1" [label="yes"];
"Requirements unclear?" -> "Continue forward" [label="no"];
}
You can and should go backward when:
Don't force forward linearly when going backward would give better results.
These are violations of the skill requirements:
| Excuse | Reality |
|---|---|
| "Idea is simple, can skip exploring alternatives" | Always propose 2-3 approaches. Comparison reveals issues. |
| "Partner knows what they want, can skip questions" | Questions reveal hidden constraints. Always ask. |
| "I'll present whole design at once for efficiency" | Incremental validation catches problems early. |
| "Checklist is just a suggestion" | Create task todos with TaskCreate. Track progress properly. |
| "I can research this quickly myself" | Use agents or web tools. You'll hallucinate or consume excessive context. |
| "Agent didn't find it on first try, must not exist" | Be persistent. Refine query and try again. |
| "Partner said yes, done with brainstorming" | Design is in conversation. Next step is documentation. |
| "I know this codebase, don't need investigator" | You don't know current state. Always verify. |
| "Obvious solution, skip research" | Codebase may have established pattern. Check first. |
| "Don't need internet research for this" | External knowledge and current docs matter. Research when relevant. |
| "I'll show the implementation so partner understands" | Show contracts/interfaces, not implementation. Implementation planning generates code later. |
All of these mean: STOP. Follow the requirements exactly.
| Principle | Application |
|---|---|
| One question at a time | YOU MUST ask single questions in Phase 1, use AskUserQuestion for choices |
| Delegate research | YOU MUST use agents or web tools for codebase and internet research, never do it yourself |
| Be persistent with research | If search doesn't find answer, refine query and try again before asking user |
| Follow existing patterns | If codebase pattern exists and is reasonable, design must follow it |
| Structured choices | YOU MUST use AskUserQuestion tool for 2-4 options with trade-offs |
| YAGNI ruthlessly | Remove unnecessary features from all designs |
| Explore alternatives | YOU MUST propose 2-3 approaches before settling |
| Incremental validation | Present design in sections, validate each - never all at once |
| Task tracking | YOU MUST create task todos at start with TaskCreate, update with TaskUpdate as you progress (or TodoWrite in older versions) |
| Flexible progression | Go backward when needed - flexibility > rigidity |
| Internet research matters | Use research agents or web tools for external knowledge and current information |
When Phase 3 is complete, announce:
"Design is validated and ready for documentation."
Next step: The orchestrating skill (starting-a-design-plan) will invoke writing-design-plans to document this design.
You do NOT:
You DO:
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.