brainstorming
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.
When & Why to Use This Skill
The Brainstorming skill is a collaborative design and planning tool that bridges the gap between initial ideas and technical implementation. It systematically explores user intent, refines requirements through iterative dialogue, and produces comprehensive architectural designs. By enforcing a 'design-first' approach, it ensures that software components, data flows, and error-handling strategies are validated before implementation, significantly reducing technical debt and scope creep.
Use Cases
- Feature Scoping: Transforming a high-level feature request into a detailed technical specification with clear constraints and success criteria.
- Architectural Trade-off Analysis: Evaluating multiple technical approaches (e.g., different data structures or API patterns) to select the most efficient solution for a specific problem.
- Incremental Design Validation: Breaking down complex system designs into manageable sections for step-by-step review to ensure alignment with project goals.
- Technical Documentation: Automatically generating and committing structured design documents to git to maintain a clear project history and roadmap.
| name | brainstorming |
|---|---|
| description | "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." |
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 - Commit the design document to git
Implementation (if continuing):
- Ask: "Ready to set up for implementation?"
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