brainstorming

shaowei-g's avatarfrom shaowei-g

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.

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

When & Why to Use This Skill

The Brainstorming skill is a specialized design and requirement exploration tool that transforms vague ideas into structured technical specifications. It ensures project success by forcing a collaborative dialogue to explore user intent, evaluate multiple architectural approaches, and document design decisions before a single line of code is written. This skill is essential for maintaining high-quality software architecture and ensuring that implementations align perfectly with user requirements.

Use Cases

  • Feature Scoping: Use this skill to break down high-level feature requests into detailed technical requirements and component architectures.
  • Technical Trade-off Analysis: Evaluate 2-3 different implementation approaches for a complex problem, comparing pros and cons before committing to a path.
  • Automated Design Documentation: Generate standardized design documents and commit them to your repository as a single source of truth for the development team.
  • Requirement Refinement: Clarify ambiguous project goals through a structured, iterative questioning process to eliminate guesswork during the build phase.
namebrainstorming
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.

SDD Compatibility Guard

If a spec, speckit, constitution, or system prompt exists:

  • Treat it as the single source of truth
  • DO NOT propose features, requirements, or designs outside the spec
  • DO NOT ask exploratory questions unless the spec explicitly marks something as "TBD" or "Open Question"
  • DO NOT recommend alternative approaches unless the spec asks for comparison

If the spec fully defines behavior:

  • Skip brainstorming
  • Switch to clarification-only mode

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 is fine too
  • 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