Brainstorming Ideas Into Designs
Overview
Help turn ideas into fully formed designs 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, checking after each section whether it looks right.
The Process
Understanding the Idea
- •Check out the current project state (files, docs, recent commits)
- •Ask questions one at a time to refine the idea
- •Prefer multiple choice questions when possible
- •Only one question per message
- •Focus on: purpose, constraints, success criteria
Exploring Approaches
- •Propose 2-3 different approaches with trade-offs
- •Lead with your recommended option and explain why
- •Present options conversationally
Presenting the Design
- •Once you understand what you're building, present the design
- •Break it into sections of 200-300 words
- •Ask after each section: "Does this look 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?"
- •Use
writing-plansskill to create detailed implementation plan
Key Principles
| Principle | Description |
|---|---|
| One question at a time | Don't overwhelm with multiple questions |
| Multiple choice preferred | Easier to answer than open-ended |
| 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 |
Common Mistakes
- •Asking multiple questions in one message
- •Jumping to implementation without full design
- •Not checking project context first
- •Presenting the entire design at once
- •Ignoring user's "actually..." signals