brainstorming
Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation. Don't use during clear 'mechanical' processes
When & Why to Use This Skill
The Brainstorming skill transforms abstract concepts into concrete technical designs through a structured, collaborative dialogue. It bridges the gap between initial ideation and implementation by utilizing iterative questioning, alternative exploration, and incremental validation to ensure robust architecture and clear documentation, preventing common pitfalls in the early stages of software development.
Use Cases
- Refining vague feature requests into detailed technical specifications and architectural blueprints before writing any code.
- Evaluating multiple technical approaches and trade-offs to select the most efficient solution for a specific engineering challenge.
- Generating structured design documentation, including data flow, component architecture, and error handling strategies, for team alignment.
- Facilitating collaborative decision-making by presenting design sections incrementally to ensure every detail meets project requirements.
| name | brainstorming |
|---|---|
| description | Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation. Don't use during clear 'mechanical' processes |
Brainstorming Ideas Into Designs
Overview
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 in small sections (200-300 words), checking after each section whether it looks right so far.
The Process
Understanding the idea:
- Check out the current project state first (files, docs, recent commits)
- Ask questions one at a time to refine the idea
- Prefer multiple choice questions when possible, but open-ended is fine too
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, success criteria
Exploring approaches:
- Propose 2-3 different approaches with trade-offs
- Present options conversationally with your recommendation and reasoning
- Lead with your recommended option and explain why
Presenting the design:
- Once you believe you understand what you're building, present the design
- Break it into sections of 200-300 words
- Ask after each section whether it looks right so far
- Cover: architecture, components, data flow, error handling, testing
- Be ready to go back and clarify if something doesn't make sense
After the Design
Documentation:
- Write the validated design to
docs/plans/YYYY-MM-DD-<topic>-design.md - Use elements-of-style:writing-clearly-and-concisely skill if available
- Commit the design document to git
Implementation (if continuing):
- Ask: "Ready to set up for implementation?"
- Use superpowers:using-git-worktrees to create isolated workspace
- Use superpowers:writing-plans to create detailed implementation plan
Next Steps
After design is complete, prompt user:
Design complete! Ready to:
A) Write the plan
B) Research first (gather codebase insights, library docs, best practices)
Choose: (A/B)
If user chooses A:
- Proceed directly to
writing-plansskill
If user chooses B:
- Invoke
research-orchestrationskill - Research skill will:
- Analyze brainstorm context
- Suggest researchers:
[✓] Codebase [✓] Library docs [✓] Web [ ] GitHub - Allow user to adjust selection
- Spawn selected subagents (max 4 in parallel)
- Synthesize findings
- Automatically save to
YYYY-MM-DD-<feature>-research.md - Report: "Research complete. Ready to write the plan."
- Then proceed to
writing-plansskill with research context
Key Principles
- One question at a time - Don't overwhelm with multiple questions
- Multiple choice preferred - Easier to answer than open-ended when possible
- YAGNI ruthlessly - Remove unnecessary features from all designs
- Explore alternatives - Always propose 2-3 approaches before settling
- Incremental validation - Present design in sections, validate each
- Be flexible - Go back and clarify when something doesn't make sense