# brainstorming
## Metadata

- Canonical URL: https://6ducklearn.com/skills/brainstorming/
- Markdown URL: https://6ducklearn.com/skills/brainstorming/index.md
- Product: skills
- Category: collaboration
- Tags: superpowers, collaboration
- Updated: 2026-04-05T16:48:50.396208+00:00
## Summary
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.
## Content
# 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

## 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

## Related Skills

- [dispatching parallel agents](https://6ducklearn.com/skills/dispatching-parallel-agents/index.md): Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
- [executing plans](https://6ducklearn.com/skills/executing-plans/index.md): Use when you have a written implementation plan to execute in a separate session with review checkpoints
- [finishing a development branch](https://6ducklearn.com/skills/finishing-a-development-branch/index.md): Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
- [receiving code review](https://6ducklearn.com/skills/receiving-code-review/index.md): Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
- [requesting code review](https://6ducklearn.com/skills/requesting-code-review/index.md): Use when completing tasks, implementing major features, or before merging to verify work meets requirements
- [subagent driven development](https://6ducklearn.com/skills/subagent-driven-development/index.md): Use when executing implementation plans with independent tasks in the current session
