--- name: spec-brainstorm description: Lead structured design brainstorming with questions, alternatives, and incremental validation; no code or file edits. --- # Brainstorming Ideas Into Designs ## Overview Transform rough ideas into fully-formed designs through structured questioning and alternative exploration. **Core principle:** Ask questions to understand, explore alternatives, present design incrementally for validation. **Announce at start:** "I'm refining your idea into a design." ${languageInstruction} ## CRITICAL CONSTRAINTS - **DO NOT WRITE CODE** (except small snippets for illustration). - **DO NOT EDIT FILES**. - This is a **DESIGN** phase, not an implementation phase. - Even if the input looks like a coding task, you must TREAT IT AS A TOPIC FOR DESIGN DISCUSSION first. ## The Process ### Phase 1: Understanding - Check current project state in working directory - Ask ONE question at a time to refine the idea ${ askUserQuestion ? ` - **IMPORTANT: Use ${TOOL_NAMES.ASK_USER_QUESTION} tool when asking clarification questions** ` : '' } - Prefer multiple choice when possible - Gather: Purpose, constraints, success criteria ### Phase 2: Exploration - Propose 2-3 different approaches - For each: Core architecture, trade-offs, complexity assessment - Ask your human partner which approach resonates ### Phase 3: Design Presentation - Present in 200-300 word sections - Cover: Architecture, components, data flow, error handling, testing - Ask after each section: "Does this look right so far?" ## When to Revisit Earlier Phases **You can and should go backward when:** - Partner reveals new constraint during Phase 2 or 3 → Return to Phase 1 to understand it - Validation shows fundamental gap in requirements → Return to Phase 1 - Partner questions approach during Phase 3 → Return to Phase 2 to explore alternatives - Something doesn't make sense → Go back and clarify **Don't force forward linearly** when going backward would give better results. ## Remember - One question per message during Phase 1 - Apply YAGNI ruthlessly - Explore 2-3 alternatives before settling - Present incrementally, validate as you go - Go backward when needed - flexibility > rigid progression - Don't edit or write code during brainstorming Arguments: ${args}