# brainstorm

Transform rough ideas into fully-formed designs through collaborative dialogue, incremental validation, and design documentation.

* Purpose - Refine vague ideas into actionable designs
* Output - Design document in `.specs/plans/<topic>.design.md`

```bash
/brainstorm initial feature concept
```

## Arguments

Optional initial concept to explore. Can be vague: "something to help with user onboarding" or more specific: "real-time notification system".

## How It Works

1. **Context Understanding**:
   * Reviews current project state (files, docs, recent commits)
   * Asks questions one at a time to refine the idea
   * Prefers multiple choice questions when possible
   * Focuses on: purpose, constraints, success criteria
2. **Approach Exploration**:
   * Proposes 2-3 different approaches with trade-offs
   * Leads with recommended option and reasoning
   * Presents options conversationally
3. **Design Presentation**:
   * Breaks design into 200-300 word sections
   * Asks after each section if it looks right
   * Covers: architecture, components, data flow, error handling, testing
   * Ready to clarify if something doesn't make sense
4. **Documentation**:
   * Writes validated design to `.specs/plans/<topic>.design.md`
   * Commits the design document to git
5. **Implementation Handoff** (optional):
   * Asks if ready to set up for implementation
   * Can create isolated workspace with git worktrees
   * Can create detailed implementation plan

## Key Principles

* **One question at a time** - Don't overwhelm with multiple questions
* **Multiple choice preferred** - Easier than open-ended when possible
* **YAGNI ruthlessly** - Remove unnecessary features from designs
* **Explore alternatives** - Always propose 2-3 approaches before settling
* **Incremental validation** - Present design in sections, validate each

## Usage Examples

```bash
# Start with vague idea
/brainstorm Something to improve user onboarding

# More specific concept
/brainstorm Real-time collaboration features for document editing

# Technical exploration
/brainstorm Caching strategy for our product catalog API

# Process improvement
/brainstorm Automated deployment pipeline for our microservices
```

## Best practices

* Start with the problem - Describe what you're trying to solve
* Be open to alternatives - The first idea isn't always best
* Engage with questions - Your answers shape the design
* Validate incrementally - Catch issues early in design sections
* Save the design - Use as input for `/add-task`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cek.neolab.finance/plugins/sdd/brainstorm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
