brainstorming

timbuchinger's avatarfrom timbuchinger

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

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 28, 2025

When & Why to Use This Skill

The Brainstorming skill is a collaborative design assistant that transforms rough concepts into comprehensive technical specifications. It employs a structured, iterative questioning process to explore architectural alternatives, evaluate trade-offs, and incrementally validate designs, ensuring a solid foundation and clear implementation path before any code is written.

Use Cases

  • Initial Project Ideation: Converting vague feature requests or rough ideas into structured design documents with clear architecture, components, and data flows.
  • Architectural Trade-off Analysis: Proposing and comparing 2-3 different technical approaches for a new system module to determine the most efficient and scalable solution.
  • Requirement Refinement: Using guided, one-at-a-time questioning to uncover hidden constraints, edge cases, and success criteria early in the development lifecycle.
  • Automated Design Documentation: Generating standardized design plans and automatically committing them to the project repository (e.g., docs/plans/) to maintain a single source of truth.
namebrainstorming
descriptionUse 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
  • Commit the design document to git

Implementation (if continuing):

  • Ask: "Ready to set up for implementation?"
  • Use the writing-plans skill to create a 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 if something doesn't make sense