--- name: brainstorm-with-file description: Interactive brainstorming with documented thought evolution, multi-perspective analysis, and iterative refinement. Serial execution with no agent delegation. argument-hint: "TOPIC=\"\" [--perspectives=creative,pragmatic,systematic] [--max-ideas=]" --- # Codex Brainstorm-With-File Prompt ## Overview Interactive brainstorming workflow with **documented thought evolution**. Expands initial ideas through questioning, inline multi-perspective analysis, and iterative refinement. **Core workflow**: Seed Idea → Expand → Multi-Perspective Explore → Synthesize → Refine → Crystallize **Key features**: - **brainstorm.md**: Complete thought evolution timeline - **Multi-perspective analysis**: Creative + Pragmatic + Systematic (serial, inline) - **Idea expansion**: Progressive questioning and exploration - **Diverge-Converge cycles**: Generate options then focus on best paths ## Auto Mode When `--yes` or `-y`: Auto-confirm exploration decisions, use recommended perspectives, skip interactive scoping. ## Quick Start ```bash # Basic usage /codex:brainstorm-with-file TOPIC="How to improve developer onboarding experience" # With perspective selection /codex:brainstorm-with-file TOPIC="New caching strategy" --perspectives=creative,pragmatic,systematic # Continue existing session /codex:brainstorm-with-file TOPIC="caching strategy" --continue # Auto mode (skip confirmations) /codex:brainstorm-with-file -y TOPIC="Plugin architecture ideas" ``` ## Target Topic **$TOPIC** ## Configuration | Flag | Default | Description | |------|---------|-------------| | `-y, --yes` | false | Auto-confirm all decisions | | `--continue` | false | Continue existing session | | `--perspectives` | creative,pragmatic,systematic | Comma-separated perspective list | | `--max-ideas` | 15 | Maximum ideas to track | **Session ID format**: `BS-{slug}-{YYYY-MM-DD}` - slug: lowercase, alphanumeric + CJK characters, max 40 chars - date: YYYY-MM-DD (UTC+8) - Auto-detect continue: session folder + brainstorm.md exists → continue mode ## Brainstorm Flow ``` Step 0: Session Setup ├─ Parse topic, flags (--perspectives, --continue, -y) ├─ Generate session ID: BS-{slug}-{date} └─ Create session folder (or detect existing → continue mode) Step 1: Seed Understanding ├─ Parse topic, identify brainstorm dimensions ├─ Role/perspective selection with user (or auto) ├─ Initial scoping (mode, focus areas, constraints) ├─ Expand seed into exploration vectors └─ Initialize brainstorm.md Step 2: Divergent Exploration (Inline, No Agents) ├─ Detect codebase → search relevant modules, patterns │ ├─ Run `ccw spec load --category exploration` (if spec system available) │ └─ Use Grep, Glob, Read, mcp__ace-tool__search_context ├─ Multi-perspective analysis (serial, inline) │ ├─ Creative perspective: innovation, cross-domain, challenge assumptions │ ├─ Pragmatic perspective: feasibility, effort, blockers │ └─ Systematic perspective: decomposition, patterns, scalability ├─ Aggregate findings → perspectives.json ├─ Update brainstorm.md with Round 1 └─ Initial Idea Coverage Check Step 3: Interactive Refinement (Multi-Round, max 6) ├─ Present current ideas and perspectives ├─ Gather user feedback ├─ Process response: │ ├─ Deep Dive → deeper inline analysis on selected ideas │ ├─ Diverge → new inline analysis with different angles │ ├─ Challenge → devil's advocate inline analysis │ ├─ Merge → synthesize complementary ideas inline │ └─ Converge → exit loop for synthesis ├─ Update brainstorm.md with round details └─ Repeat until user selects converge or max rounds Step 4: Convergence & Crystallization ├─ Consolidate all insights → synthesis.json ├─ Update brainstorm.md with final synthesis ├─ Interactive Top-Idea Review (per-idea confirm/modify/reject) └─ Offer options: show next-step commands / export / done ``` ## Output Artifacts ### Phase 1: Seed Understanding | Artifact | Purpose | |----------|---------| | `brainstorm.md` | Initialized with session metadata, seed expansion, and exploration vectors | | Session variables | Topic slug, brainstorm mode, dimensions, exploration vectors | ### Phase 2: Divergent Exploration | Artifact | Purpose | |----------|---------| | `exploration-codebase.json` | Codebase context: relevant files, patterns, architecture constraints | | `perspectives/*.json` | Individual perspective outputs (creative, pragmatic, systematic) | | `perspectives.json` | Aggregated findings with synthesis (convergent/conflicting themes) | | Updated `brainstorm.md` | Round 1: Exploration results and multi-perspective analysis | ### Phase 3: Interactive Refinement | Artifact | Purpose | |----------|---------| | `ideas/{idea-slug}.md` | Deep-dive analysis for selected ideas | | `ideas/merged-idea-{n}.md` | Merged idea documents | | Updated `brainstorm.md` | Round 2-6: User feedback, idea selections, refinement cycles | ### Phase 4: Convergence & Crystallization | Artifact | Purpose | |----------|---------| | `synthesis.json` | Final synthesis: top ideas, recommendations, insights | | Final `brainstorm.md` | Complete thought evolution with conclusions | --- ## Recording Protocol **CRITICAL**: During brainstorming, the following situations **MUST** trigger immediate recording to brainstorm.md: | Trigger | What to Record | Target Section | |---------|---------------|----------------| | **Idea generated** | Idea content, source perspective, novelty/feasibility ratings | `#### Ideas Generated` | | **Perspective shift** | Old framing → new framing, trigger reason | `#### Decision Log` | | **User feedback** | User's original input, which ideas selected/rejected | `#### User Input` | | **Assumption challenged** | Original assumption → challenge result, survivability | `#### Challenged Assumptions` | | **Ideas merged** | Source ideas, merged concept, what was preserved/discarded | `#### Decision Log` | | **Scope adjustment** | Before/after scope, trigger reason | `#### Decision Log` | ### Decision Record Format ```markdown > **Decision**: [Description of the decision] > - **Context**: [What triggered this decision] > - **Options considered**: [Alternatives evaluated] > - **Chosen**: [Selected approach] — **Reason**: [Rationale] > - **Rejected**: [Why other options were discarded] > - **Impact**: [Effect on brainstorming direction] ``` ### Narrative Synthesis Format Append after each round update: ```markdown ### Round N: Narrative Synthesis **Starting point**: Based on previous round's [conclusions/questions], this round explored [starting point]. **Key progress**: [New ideas/findings] [confirmed/refuted/expanded] previous understanding of [topic area]. **Decision impact**: User selected [feedback type], directing brainstorming toward [adjusted/deepened/maintained]. **Current state**: After this round, top ideas are [updated idea rankings]. **Open directions**: [remaining exploration angles for next round] ``` ## Implementation Details ### Phase 0: Session Initialization ```javascript const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString() // Parse flags const autoYes = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y') const continueMode = $ARGUMENTS.includes('--continue') const perspectivesMatch = $ARGUMENTS.match(/--perspectives[=\s]([\w,]+)/) const selectedPerspectiveNames = perspectivesMatch ? perspectivesMatch[1].split(',') : ['creative', 'pragmatic', 'systematic'] // Extract topic const topic = $ARGUMENTS.replace(/--yes|-y|--continue|--perspectives[=\s][\w,]+|--max-ideas[=\s]\d+|TOPIC=/g, '').replace(/^["']|["']$/g, '').trim() // Determine project root const projectRoot = Bash('git rev-parse --show-toplevel 2>/dev/null || pwd').trim() const slug = topic.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fa5]+/g, '-').substring(0, 40) const dateStr = getUtc8ISOString().substring(0, 10) const sessionId = `BS-${slug}-${dateStr}` const sessionFolder = `${projectRoot}/.workflow/.brainstorm/${sessionId}` // Auto-detect continue: session folder + brainstorm.md exists → continue mode // If continue → load brainstorm.md + perspectives, resume from last round Bash(`mkdir -p ${sessionFolder}`) ``` ### Phase 1: Seed Understanding **Objective**: Parse the initial idea, identify exploration vectors, scope preferences, and initialize the brainstorm document. ##### Step 1.1: Parse Seed & Identify Dimensions Match topic keywords against brainstorm dimensions (see [Dimensions Reference](#brainstorm-dimensions)): ```javascript // Match topic text against keyword lists from Dimensions Reference // If multiple dimensions match, include all // If none match, default to "technical" and "innovation" const dimensions = identifyDimensions(topic, BRAINSTORM_DIMENSIONS) ``` ##### Step 1.2: Role Selection Recommend roles based on topic keywords, then let user confirm or override. **Professional Roles** (recommended based on topic keywords): | Role | Perspective Focus | Keywords | |------|------------------|----------| | system-architect | Architecture, patterns | 架构, architecture, system, 系统, design pattern | | product-manager | Business value, roadmap | 产品, product, feature, 功能, roadmap | | ui-designer | Visual design, interaction | UI, 界面, interface, visual, 视觉 | | ux-expert | User research, usability | UX, 体验, experience, user, 用户 | | data-architect | Data modeling, storage | 数据, data, database, 存储, storage | | test-strategist | Quality, testing | 测试, test, quality, 质量, QA | | subject-matter-expert | Domain knowledge | 领域, domain, industry, 行业, expert | **Simple Perspectives** (fallback — always available): | Perspective | Focus | Best For | |-------------|-------|----------| | creative | Innovation, cross-domain | Generating novel ideas | | pragmatic | Implementation, feasibility | Reality-checking ideas | | systematic | Architecture, structure | Organizing solutions | **Selection Strategy**: 1. **Auto mode**: Select top 3 recommended professional roles based on keyword matching 2. **Manual mode**: Present recommended roles + "Use simple perspectives" option 3. **Continue mode**: Use roles from previous session ##### Step 1.3: Initial Scoping (New Session Only) For new brainstorm sessions, gather user preferences before exploration (skipped in auto mode or continue mode): ```javascript if (!autoYes && !continueMode) { // 1. Brainstorm Mode (single-select) const mode = request_user_input({ questions: [{ header: "Brainstorm Mode", id: "mode", question: "Select brainstorming intensity:", options: [ { label: "Creative Mode", description: "Fast, high novelty, 1 perspective" }, { label: "Balanced Mode(Recommended)", description: "Moderate, 3 perspectives" }, { label: "Deep Mode", description: "Comprehensive, 3 perspectives + deep refinement" } ] }] }) // 2. Focus Areas (multi-select) const focusAreas = request_user_input({ questions: [{ header: "Focus Areas", id: "focus", question: "Select brainstorming focus:", options: generateFocusOptions(dimensions) // Dynamic based on dimensions }] }) // 3. Constraints (multi-select) const constraints = request_user_input({ questions: [{ header: "Constraints", id: "constraints", question: "Any constraints to consider?", options: [ { label: "Existing Architecture", description: "Must fit current system" }, { label: "Time Constraints", description: "Short implementation timeline" }, { label: "Resource Constraints", description: "Limited team/budget" }, { label: "No Constraints", description: "Blue-sky thinking" } ] }] }) } ``` ##### Step 1.4: Expand Seed into Exploration Vectors Generate key questions that guide the brainstorming exploration. Done inline — no agent delegation. **Exploration Vectors**: 1. **Core question**: What is the fundamental problem/opportunity? 2. **User perspective**: Who benefits and how? 3. **Technical angle**: What enables this technically? 4. **Alternative approaches**: What other ways could this be solved? 5. **Challenges**: What could go wrong or block success? 6. **Innovation angle**: What would make this 10x better? 7. **Integration**: How does this fit with existing systems/processes? Analyze the topic inline against user focus areas and constraints to produce 5-7 exploration vectors. ##### Step 1.5: Initialize brainstorm.md ```javascript const brainstormMd = `# Brainstorm Session **Session ID**: ${sessionId} **Topic**: ${topic} **Started**: ${getUtc8ISOString()} **Dimensions**: ${dimensions.join(', ')} **Mode**: ${brainstormMode} ## Table of Contents - [Session Context](#session-context) - [Current Ideas](#current-ideas) - [Thought Evolution Timeline](#thought-evolution-timeline) ## Current Ideas > To be populated after exploration. ## Session Context - Focus areas: ${focusAreas.join(', ')} - Perspectives: ${selectedPerspectiveNames.join(', ')} - Constraints: ${constraints.join(', ')} - Mode: ${brainstormMode} ## Exploration Vectors ${explorationVectors.map((v, i) => `${i+1}. ${v}`).join('\n')} ## Initial Decisions > Record why these perspectives and focus areas were selected. --- ## Thought Evolution Timeline > Rounds will be appended below as brainstorming progresses. --- ## Decision Trail > Consolidated critical decisions across all rounds (populated in Phase 4). ` Write(`${sessionFolder}/brainstorm.md`, brainstormMd) ``` **Success Criteria**: - Session folder created with brainstorm.md initialized - Brainstorm dimensions identified and user preferences captured - **Initial decisions recorded**: Perspective selection rationale, excluded options with reasons - Exploration vectors generated - 1-3 perspectives selected ### Phase 2: Divergent Exploration **Objective**: Gather codebase context and execute multi-perspective analysis to generate diverse viewpoints. All exploration done inline — no agent delegation. ##### Step 2.1: Detect Codebase & Explore ```javascript const hasCodebase = Bash(` test -f package.json && echo "nodejs" || test -f go.mod && echo "golang" || test -f Cargo.toml && echo "rust" || test -f pyproject.toml && echo "python" || test -f pom.xml && echo "java" || test -d src && echo "generic" || echo "none" `).trim() if (hasCodebase !== 'none') { // 1. Read project metadata (if exists) // - Run `ccw spec load --category exploration` (load project specs) // - Run `ccw spec load --category debug` (known issues and root-cause notes) // - .workflow/specs/*.md (project conventions) // 2. Search codebase for relevant content // Use: Grep, Glob, Read, or mcp__ace-tool__search_context // Focus on: modules/components, patterns/structure, integration points, config/dependencies // 3. Write findings Write(`${sessionFolder}/exploration-codebase.json`, JSON.stringify({ project_type: hasCodebase, relevant_files: [...], // [{path, relevance, summary}] existing_patterns: [...], // [{pattern, files, description}] architecture_constraints: [...], // Constraints found integration_points: [...], // [{location, description}] key_findings: [...], // Main insights from code search _metadata: { timestamp: getUtc8ISOString(), exploration_scope: '...' } }, null, 2)) } ``` ##### Step 2.2: Multi-Perspective Analysis (Serial, Inline) Analyze from each selected perspective. All analysis done inline by the AI — no agents. **Perspective Definitions**: | Perspective | Focus | Tasks | |-------------|-------|-------| | Creative | Innovation, cross-domain | Think beyond obvious, explore cross-domain inspiration, challenge assumptions, generate moonshot ideas | | Pragmatic | Implementation reality | Evaluate feasibility, identify existing patterns/libraries, estimate complexity, highlight blockers | | Systematic | Architecture thinking | Decompose problem, identify architectural patterns, map dependencies, consider scalability | **Serial execution** — analyze each perspective sequentially: ```javascript const perspectives = ['creative', 'pragmatic', 'systematic'] perspectives.forEach(perspective => { // Analyze inline using exploration-codebase.json as context // Generate ideas from this perspective's focus Write(`${sessionFolder}/perspectives/${perspective}.json`, JSON.stringify({ perspective: perspective, ideas: [ // 3-5 ideas per perspective { title: '...', description: '...', novelty: 1-5, feasibility: 1-5, rationale: '...' } ], key_findings: [...], challenged_assumptions: [...], open_questions: [...], _metadata: { perspective, timestamp: getUtc8ISOString() } }, null, 2)) }) ``` ##### Step 2.3: Aggregate Multi-Perspective Findings ```javascript const synthesis = { session_id: sessionId, timestamp: getUtc8ISOString(), topic, // Individual perspective findings creative: readJson(`${sessionFolder}/perspectives/creative.json`), pragmatic: readJson(`${sessionFolder}/perspectives/pragmatic.json`), systematic: readJson(`${sessionFolder}/perspectives/systematic.json`), // Cross-perspective synthesis synthesis: { convergent_themes: [...], // What all perspectives agree on conflicting_views: [...], // Where perspectives differ unique_contributions: [...] // Insights unique to specific perspectives }, // Aggregated for refinement aggregated_ideas: [...], // Merged and deduplicated ideas from all perspectives key_findings: [...] // Main insights across all perspectives } Write(`${sessionFolder}/perspectives.json`, JSON.stringify(synthesis, null, 2)) ``` ##### Step 2.4: Update brainstorm.md Append Round 1 with exploration results using the [Round Documentation Pattern](#round-documentation-pattern). **Round 1 Sections** (Multi-Perspective Exploration): - **Creative Perspective**: Novel ideas with novelty/impact ratings - **Pragmatic Perspective**: Practical approaches with effort/risk ratings - **Systematic Perspective**: Architectural options with tradeoff analysis - **Perspective Synthesis**: Convergent themes, conflicts, unique contributions ##### Step 2.5: Initial Idea Coverage Check ```javascript // Check exploration vectors against Round 1 findings appendToBrainstorm(` #### Initial Idea Coverage Check (Post-Exploration) ${explorationVectors.map((vector, i) => { const status = assessCoverage(vector, explorationFindings) return `- ${status.icon} Vector ${i+1}: ${vector} — ${status.detail}` }).join('\n')} > Next rounds will focus on uncovered and in-progress vectors. `) ``` **Success Criteria**: - exploration-codebase.json created with codebase context (if codebase exists) - perspectives/*.json created for each perspective - perspectives.json created with aggregated findings and synthesis - brainstorm.md updated with Round 1 results - **Initial Idea Coverage Check** completed - **Key findings recorded** with evidence and ratings ### Phase 3: Interactive Refinement **Objective**: Iteratively refine ideas through multi-round user-guided exploration cycles. **Max Rounds**: 6. All analysis done inline. **Auto mode behavior** (`--yes`): - Balanced/Deep mode: Run 2 auto-rounds (1× Deep Dive on top 2 ideas, 1× Challenge on top 3 ideas), then auto-converge - Creative mode: Run 1 auto-round (1× Diverge), then auto-converge - Skip user direction prompts; auto-select based on idea scores ##### Step 3.1: Present Findings & Gather User Direction **Current Understanding Summary** (Round >= 2, BEFORE presenting new findings): - Generate 1-2 sentence recap of top ideas and last round's direction - Example: "Top ideas so far: [idea1], [idea2]. Last round [deepened/challenged/merged]. Here are the latest findings:" ```javascript if (!autoYes) { const feedback = request_user_input({ questions: [{ header: "Brainstorm Direction", id: "direction", question: `Brainstorm round ${round}: What would you like to do next?`, options: [ { label: "Deep Dive", description: "Explore selected ideas in detail" }, { label: "Diverge More", description: "Generate more ideas from different angles" }, { label: "Challenge", description: "Devil's advocate — test ideas critically" }, { label: "Merge Ideas", description: "Combine complementary ideas" }, { label: "Ready to Converge", description: "Sufficient ideas, proceed to synthesis" } ] }] }) } ``` ##### Step 3.2: Process User Response **Recording Checkpoint**: Regardless of option selected, MUST record to brainstorm.md: - User's original choice and expression - Impact on brainstorming direction - If direction changed, record a full Decision Record | Response | Action | |----------|--------| | **Deep Dive** | Ask which ideas to explore. Inline analysis: elaborate concept, identify requirements/dependencies, analyze challenges, suggest PoC approach, define success metrics. Write to `ideas/{idea-slug}.md`. | | **Diverge More** | Inline analysis with different angles: alternative framings, cross-domain inspiration, what-if scenarios, constraint relaxation. Generate new ideas. | | **Challenge** | Inline devil's advocate analysis: 3 strongest objections per idea, challenge assumptions, failure scenarios, competitive alternatives, survivability rating (1-5). | | **Merge Ideas** | Ask which ideas to merge. Inline synthesis: identify complementary elements, resolve contradictions, create unified concept, preserve strengths. Write to `ideas/merged-idea-{n}.md`. | | **Ready to Converge** | Record why concluding. Exit loop → Phase 4. | ##### Step 3.3: Deep Dive on Selected Ideas When user selects "deep dive", provide comprehensive inline analysis: ```javascript // For each selected idea, analyze inline selectedIdeas.forEach(idea => { const deepDive = { title: idea.title, detailed_description: '...', // Elaborated concept technical_requirements: [...], // Implementation needs dependencies: [...], // What this depends on challenges: [ // Risk/challenge matrix { challenge: '...', severity: 'high|medium|low', mitigation: '...' } ], poc_approach: '...', // Proof-of-concept suggestion success_metrics: [...], // How to measure success source_perspectives: [...] // Which perspectives contributed } Write(`${sessionFolder}/ideas/${ideaSlug}.md`, formatIdeaMarkdown(deepDive)) }) ``` ##### Step 3.4: Devil's Advocate Challenge When user selects "challenge", perform inline critical analysis: ```javascript selectedIdeas.forEach(idea => { const challenge = { idea: idea.title, objections: [...], // 3+ strongest objections challenged_assumptions: [...], // Core assumptions tested failure_scenarios: [...], // When/how this fails alternatives: [...], // Competitive/alternative solutions survivability_rating: 1-5, // How well idea survives challenge strengthened_version: '...' // Improved version post-challenge } // Record in brainstorm.md }) ``` ##### Step 3.5: Merge Multiple Ideas When user selects "merge", synthesize inline: ```javascript const merged = { title: '...', // New merged concept name description: '...', // Unified concept description source_ideas: [...], // Which ideas were merged elements_from_each: [...], // What was taken from each source contradictions_resolved: [...], // How conflicts were handled combined_strengths: [...], // New combined advantages implementation_considerations: '...' } Write(`${sessionFolder}/ideas/merged-idea-${n}.md`, formatMergedIdeaMarkdown(merged)) ``` ##### Step 3.6: Document Each Round Update brainstorm.md using the [Round Documentation Pattern](#round-documentation-pattern). **Append** to Thought Evolution Timeline: User Direction, Decision Log, Ideas Generated/Updated, Analysis Results, Challenged Assumptions, Open Items, Narrative Synthesis. **Replace** (not append): | Section | Update Rule | |---------|-------------| | `## Current Ideas` | Overwrite with latest ranked idea list | | `## Table of Contents` | Update links to include new Round N sections | **Success Criteria**: - User feedback processed for each round - brainstorm.md updated with all refinement rounds - Ideas in `ideas/` folder for selected deep-dives - Exit condition reached (user selects converge or max rounds) ### Phase 4: Convergence & Crystallization **Objective**: Synthesize final ideas, generate conclusions and recommendations, and offer next steps. ##### Step 4.1: Consolidate Insights ```javascript const synthesis = { session_id: sessionId, topic, completed: getUtc8ISOString(), total_rounds: roundCount, top_ideas: [ // Top 5 ranked ideas { title: '...', description: '...', source_perspective: '...', score: 1-10, // Final viability score novelty: 1-5, // Innovation rating feasibility: 1-5, // Implementation feasibility key_strengths: [...], main_challenges: [...], next_steps: [...], review_status: 'accepted|modified|rejected|pending' } ], parked_ideas: [...], // Ideas for future consideration key_insights: [...], // Key learnings from brainstorming recommendations: { primary: '...', // Best path forward alternatives: [...] // Other viable options }, follow_up: [ // Suggested next steps { type: 'implement|research|validate', summary: '...' } ], decision_trail: [ // Consolidated from all phases { round: 1, decision: '...', context: '...', chosen: '...', reason: '...', impact: '...' } ] } Write(`${sessionFolder}/synthesis.json`, JSON.stringify(synthesis, null, 2)) ``` ##### Step 4.2: Final brainstorm.md Update **Synthesis & Conclusions**: - **Executive Summary**: High-level overview of brainstorming results - **Top Ideas**: Ranked list with descriptions and strengths/challenges - **Primary Recommendation**: Best path forward with clear rationale - **Alternative Approaches**: Other viable options with tradeoff analysis - **Parked Ideas**: Future considerations with potential triggers - **Key Insights**: Important learnings from the process **Current Ideas (Final)**: | Subsection | Content | |------------|---------| | Top Ideas | Ranked by score with strengths/challenges | | Idea Evolution | How top ideas developed across rounds | | Key Insights | Valuable learnings for future reference | **Decision Trail**: | Subsection | Content | |------------|---------| | Critical Decisions | Pivotal decisions that shaped the outcome | | Direction Changes | Timeline of scope/focus adjustments with rationale | | Trade-offs Made | Key trade-offs and why certain paths were chosen | **Session Statistics**: Total rounds, ideas generated, ideas survived challenges, perspectives used, artifacts generated. ##### Step 4.3: Interactive Top-Idea Review (skip in auto mode) Walk through top ideas one-by-one (ordered by score): ```javascript for (const [index, idea] of rankedIdeas.entries()) { const review = request_user_input({ questions: [{ header: `Idea #${index + 1}`, id: `idea_${index + 1}`, question: `Idea #${index + 1}: "${idea.title}" (score: ${idea.score}, novelty: ${idea.novelty}, feasibility: ${idea.feasibility}). Your decision:`, options: [ { label: "Accept(Recommended)", description: "Keep this idea in final recommendations" }, { label: "Modify", description: "Adjust scope, description, or priority" }, { label: "Reject", description: "Remove from final recommendations" } ] }] }) // Accept → "accepted" | Modify → gather text → "modified" | Reject → gather reason → "rejected" // Accept All Remaining → mark all remaining as "accepted", break loop // Record review decision to brainstorm.md Decision Log + update synthesis.json } ``` **Review Summary** (append to brainstorm.md): ```markdown ### Top Idea Review Summary | # | Idea | Score | Novelty | Feasibility | Review Status | Notes | |---|------|-------|---------|-------------|---------------|-------| | 1 | [title] | 8 | 4 | 3 | Accepted | | | 2 | [title] | 7 | 5 | 2 | Modified | [notes] | | 3 | [title] | 6 | 3 | 4 | Rejected | [reason] | ``` ##### Step 4.4: Post-Completion Options **Available Options** (this skill is brainstorming-only — NEVER auto-launch other skills): | Option | Purpose | Action | |--------|---------|--------| | **Show Next-Step Commands** | Show available commands | Display command list for user to manually run | | **Export Report** | Generate shareable report | Create formatted report document | | **Done** | No further action | End workflow | **Next-step commands to display** (user runs manually, NOT auto-launched): - `/workflow-lite-plan "..."` → Generate implementation plan - `/issue:new "..."` → Track top ideas as issues - `/workflow:analyze-with-file "..."` → Analyze top idea in detail **Success Criteria**: - synthesis.json created with complete synthesis - brainstorm.md finalized with all conclusions - User offered meaningful next step options - Session complete and all artifacts available ## Templates ### Round Documentation Pattern Each round follows this structure in brainstorm.md: ```markdown ### Round N - [DeepDive|Diverge|Challenge|Merge] (timestamp) #### User Input What the user indicated they wanted to focus on #### Decision Log #### Ideas Generated New ideas from this round with ratings #### Analysis Results Detailed findings from this round's analysis - Finding 1 (evidence: file:line or rationale) - Finding 2 (evidence: file:line or rationale) #### Challenged Assumptions - ~~Previous assumption~~ → New understanding - Reason: Why the assumption was wrong #### Open Items Remaining questions or exploration directions #### Narrative Synthesis ``` ### brainstorm.md Evolution Summary - **Header**: Session ID, topic, start time, dimensions, mode - **Session Context**: Focus areas, perspectives, constraints - **Exploration Vectors**: Key questions guiding exploration - **Initial Decisions**: Why these perspectives and focus areas were selected - **Thought Evolution Timeline**: Round-by-round findings - Round 1: Exploration Results + Decision Log + Narrative Synthesis - Round 2-N: Current Ideas Summary + User feedback + direction adjustments + new ideas + Decision Log + Narrative Synthesis - **Decision Trail**: Consolidated critical decisions across all rounds - **Synthesis & Conclusions**: Summary, top ideas, recommendations - **Current Ideas (Final)**: Consolidated ranked ideas - **Session Statistics**: Rounds completed, ideas generated, artifacts produced ## Reference ### Output Structure ``` {projectRoot}/.workflow/.brainstorm/BS-{slug}-{date}/ ├── brainstorm.md # Complete thought evolution timeline ├── exploration-codebase.json # Phase 2: Codebase context ├── perspectives/ # Phase 2: Individual perspective outputs │ ├── creative.json │ ├── pragmatic.json │ └── systematic.json ├── perspectives.json # Phase 2: Aggregated findings with synthesis ├── synthesis.json # Phase 4: Final synthesis └── ideas/ # Phase 3: Individual idea deep-dives ├── idea-1.md ├── idea-2.md └── merged-idea-1.md ``` | File | Phase | Description | |------|-------|-------------| | `brainstorm.md` | 1-4 | Session metadata → thought evolution → conclusions | | `exploration-codebase.json` | 2 | Codebase context: relevant files, patterns, constraints | | `perspectives/*.json` | 2 | Per-perspective idea generation results | | `perspectives.json` | 2 | Aggregated findings with cross-perspective synthesis | | `ideas/*.md` | 3 | Individual idea deep-dives and merged ideas | | `synthesis.json` | 4 | Final synthesis: top ideas, recommendations, insights | ### Brainstorm Dimensions | Dimension | Keywords | Description | |-----------|----------|-------------| | technical | 技术, technical, implementation, code, 实现, architecture | Implementation approaches | | ux | 用户, user, experience, UX, UI, 体验, interaction | User-facing design ideas | | business | 业务, business, value, ROI, 价值, market | Business model innovations | | innovation | 创新, innovation, novel, creative, 新颖 | Breakthrough ideas | | feasibility | 可行, feasible, practical, realistic, 实际 | Realistic approaches | | scalability | 扩展, scale, growth, performance, 性能 | Large-scale solutions | | security | 安全, security, risk, protection, 风险 | Security considerations | ### Brainstorm Perspectives | Perspective | Focus | Best For | |-------------|-------|----------| | **Creative** | Innovation, cross-domain inspiration, challenging assumptions | Generating novel and surprising ideas | | **Pragmatic** | Implementation feasibility, effort estimates, blockers | Reality-checking ideas | | **Systematic** | Problem decomposition, patterns, scalability, architecture | Organizing and structuring solutions | ### Brainstorm Modes | Mode | Intensity | Perspectives | Description | |------|-----------|-------------|-------------| | Creative | High novelty | 1 perspective | Fast, focus on novel ideas | | Balanced | Mixed | 3 perspectives | Moderate, balanced exploration (default) | | Deep | Comprehensive | 3 perspectives + deep refinement | Thorough multi-round investigation | ### Collaboration Patterns | Pattern | Usage | Description | |---------|-------|-------------| | Parallel Divergence | New topic | All perspectives explored serially for comprehensive coverage | | Sequential Deep-Dive | Promising idea | One perspective elaborates, others critique | | Debate Mode | Controversial approach | Inline analysis arguing for/against | | Synthesis Mode | Ready to decide | Inline synthesis combining insights from all perspectives | ### Context Overflow Protection **Per-Perspective Limits**: - Main analysis output: < 3000 words - Sub-document (if any): < 2000 words each - Maximum sub-documents: 5 per perspective **Synthesis Protection**: - If total analysis > 100KB, synthesis reads only main analysis files (not sub-documents) - Large ideas automatically split into separate idea documents in ideas/ folder **Recovery Steps**: 1. Check outputs for truncation or overflow 2. Reduce scope: fewer perspectives or simpler topic 3. Use structured brainstorm mode for more focused output 4. Split complex topics into multiple sessions ### Error Handling | Situation | Action | Recovery | |-----------|--------|----------| | No codebase detected | Normal flow, pure topic brainstorming | Proceed without exploration-codebase.json | | Codebase search fails | Continue with available context | Note limitation in brainstorm.md | | No good ideas | Reframe problem or adjust constraints | Try new exploration angles | | Perspectives conflict | Present as tradeoff options | Let user select preferred direction | | Max rounds reached (6) | Force synthesis phase | Highlight unresolved questions | | Session folder conflict | Append timestamp suffix | Create unique folder | | User timeout | Save state, show resume command | Use `--continue` to resume | ## Best Practices ### Core Principles 1. **No code modifications**: This skill is strictly read-only. It produces analysis and idea documents but NEVER modifies source code. 2. **Record Decisions Immediately**: Capture decisions as they happen using the Decision Record format 3. **Evidence-Based**: Ideas referencing codebase patterns should include file:line evidence 4. **Embrace Conflicts**: Perspective conflicts often reveal important tradeoffs ### Before Starting 1. **Clear Topic Definition**: Detailed topics lead to better dimension identification 2. **User Context**: Understanding preferences helps guide brainstorming intensity 3. **Scope Understanding**: Being clear about time/scope expectations sets correct exploration level ### During Brainstorming 1. **Review Perspectives**: Check all perspective results before refinement rounds 2. **Document Assumptions**: Track what you think is true for correction later 3. **Use Continue Mode**: Resume sessions to build on previous exploration 4. **Iterate Thoughtfully**: Each refinement round should meaningfully advance ideas 5. **Track Idea Evolution**: Document how ideas changed across rounds ### Documentation Practices 1. **Timeline Clarity**: Use clear timestamps for traceability 2. **Evolution Tracking**: Document how ideas developed and morphed 3. **Multi-Perspective Synthesis**: Document convergent/conflicting themes 4. **Action Items**: Generate specific, implementable recommendations ## When to Use **Use brainstorm-with-file when:** - Generating new ideas and solutions for a topic - Need multi-perspective exploration of possibilities - Want documented thought evolution showing how ideas develop - Exploring creative solutions before committing to implementation - Need diverge-converge cycles to refine ideas **Consider alternatives when:** - Analyzing existing code/architecture → use `analyze-with-file` - Specific bug diagnosis needed → use `debug-with-file` - Complex planning with requirements → use `collaborative-plan-with-file` - Ready to implement → use `lite-plan` --- **Now start brainstorming for topic**: $TOPIC **IMPORTANT**: This skill is brainstorming-only. It produces analysis, perspectives, and synthesis documents but NEVER executes code, modifies source files, or auto-launches other skills. All follow-up actions require user to manually run the suggested commands.