--- name: "brainstorm" description: "Structured brainstorm — from quick Socratic refinement to full C-suite strategy sessions. The missing step before /directive: figure out WHAT to do before telling agents to DO it. Takes a question or topic as argument." --- # Brainstorm — Structured Strategic Thinking ## Role Resolution Read `.claude/agent-registry.json` to map roles to agent names. Use each agent's `id` as the `subagent_type` when spawning. The COO = operations/orchestration, the CTO = architecture/technical, the CPO = product/UX, the CMO = growth/marketing. --- The CEO has a question: $ARGUMENTS ## Step 0: Triage Read the question. Classify it before doing anything else. **Lightweight** — single agent, Socratic dialogue, no external research: - Focused design question ("how should I structure this component?") - Single-domain topic (just architecture, or just UX, or just process) - Answer can be reached in one conversation - No cross-cutting impact (doesn't change multiple systems) **Heavyweight** — multi-agent parallel research, synthesis, options: - Strategic question affecting multiple systems ("how should goal tracking work?") - Crosses domains (architecture + UX + operations) - Needs external research (how do others solve this?) - Decision has lasting consequences (data models, project structure, user flows) State the classification: ``` Classification: {lightweight | heavyweight} Reasoning: {one sentence} ``` --- ## Lightweight Path — Socratic Refinement For focused questions. One agent, interactive dialogue. Think 5-minute whiteboard chat. **Pick the right agent** based on the question domain: - Architecture / data model → the CTO - User experience / product → the CPO - Process / operations → the COO - Growth / positioning → the CMO Spawn the agent (using the registry's `id` as `subagent_type`) with: - Their personality file (auto-loaded via `subagent_type`) - The CEO's question - `.context/vision.md` and `.context/preferences.md` - Relevant files the question touches ``` You are {Name}, {Title}. The CEO wants to think through a design question with you. QUESTION: {question} Your job: Socratic refinement. Don't jump to an answer. Instead: 1. CLARIFY — Ask 2-3 sharpening questions to make sure you understand what the CEO really needs. What are the constraints? What matters most? What have they already considered? 2. EXPLORE — Once you understand, propose 2 options with clear trade-offs. Be opinionated. "I'd go with A because..." not "both have merit." 3. DETAIL — After the CEO picks a direction, flesh it out: what changes, what the structure looks like, what to watch out for. Keep it conversational. Short responses. This is a dialogue, not a report. CRITICAL OUTPUT FORMAT: JSON only. First character `{`, last `}`. { "agent": "{name}", "clarifying_questions": ["question 1", "question 2", "question 3"], "initial_instinct": "Your gut reaction to the question in 1-2 sentences" } ``` **After the agent asks questions**, present them to the CEO via AskUserQuestion or as text. Let the CEO answer. Then re-spawn the agent (or resume) with the answers to get the options. **Final output:** Write a brief design note to `.context/directives/{relevant-directive}/brainstorm.md` capturing the decision. Keep it short — this is a lightweight brainstorm, not a design doc. **If the question turns out to be bigger than expected** (agent's questions reveal cross-cutting complexity), upgrade to heavyweight. Tell the CEO: "This is bigger than it looked — upgrading to full brainstorm." --- ## Heavyweight Path — Multi-Agent Strategy Session For strategic questions. Full C-suite, parallel research, synthesis, options. **The pattern:** Diverge (independent perspectives) → Converge (synthesize options) → Decide (CEO picks) → Capture (design doc). ## Step 1: Frame the Question Read the CEO's question. If it's vague, clarify it with AskUserQuestion before proceeding. Read context: - `.context/vision.md` — current north star - `.context/preferences.md` — CEO preferences - `.context/goals/*/goal.json` — current goal structure - `.context/lessons/scenarios.md` — standing user scenarios (if relevant) Frame the question as a clear design challenge: - **What we're deciding**: one sentence - **Why it matters**: what breaks if we get this wrong - **Constraints**: non-negotiables from vision.md or preferences.md - **Current state**: how things work today (brief) Show the framing to the CEO before spawning agents. This prevents wasted work on a misunderstood question. ## Step 2: Diverge — Independent Perspectives Spawn 2-3 C-suite agents **in parallel**. Pick the most relevant agents for the question domain: - **Architecture / data model / system design** → the CTO - **User experience / product design / workflows** → the CPO - **Operations / process / project structure** → the COO - **Growth / positioning / external patterns** → the CMO **Always include the COO** (they synthesize in Step 3). Pick 1-2 others based on the question. Each agent receives: - Their personality from `.claude/agents/{name}.md` - The framed question from Step 1 - `.context/vision.md` and `.context/preferences.md` - Relevant context files (goal structure, current system docs, etc.) - These instructions: ``` You are {Name}, {Title}. The CEO is brainstorming a strategic question and wants your independent perspective. QUESTION: {framed question} CURRENT STATE: {how it works today} CONSTRAINTS: {non-negotiables} Your job: 1. RESEARCH first — use WebSearch if external patterns would help (how do other tools/frameworks handle this?). Use Read/Grep/Glob if you need to understand the current system. 2. THINK from your domain expertise — what matters most from your perspective? 3. PROPOSE — give 1-2 concrete options with trade-offs. Don't hedge. Have an opinion. Structure your response: { "agent": "{name}", "perspective": "Your 2-3 sentence framing of the problem from your domain", "research": [ { "finding": "What you found externally or internally", "source": "URL or file path", "relevance": "Why it matters to this question" } ], "proposals": [ { "name": "short-name", "summary": "One paragraph describing the approach", "pros": ["advantage 1", "advantage 2"], "cons": ["disadvantage 1", "disadvantage 2"], "effort": "quick (hours) | medium (days) | large (weeks)", "opinion": "Why you'd pick this one (or not)" } ], "non_negotiables": ["Things that MUST be true regardless of which option we pick"], "watch_outs": ["Risks or gotchas the CEO should know about"] } CRITICAL: First character `{`, last character `}`. JSON only. Have a STRONG opinion — the CEO wants perspectives, not waffling. ``` All agents: `subagent_type: "general-purpose"`, `model: "opus"`. ## Step 3: Converge — COO Synthesizes After all agents return, spawn the COO with a synthesis task. The COO receives: - Their personality - All agent outputs from Step 2 - The original framed question - Vision + preferences ``` You are the COO. The team has brainstormed independently. Your job: synthesize their perspectives into 2-3 clear OPTIONS for the CEO to choose from. AGENT PERSPECTIVES: {all agent outputs} SYNTHESIS RULES: 1. Find the OVERLAPS — where do agents agree? This is the foundation. 2. Find the CONFLICTS — where do they disagree? These are the real decision points. 3. Design 2-3 OPTIONS that represent genuinely different approaches (not just variations). 4. For each option, be honest about trade-offs. Don't create a strawman "bad option" to make one look good. 5. Include a "COO'S PICK" — your recommendation with reasoning. 6. Include the NON-NEGOTIABLES that all agents agreed on (these apply regardless of option). { "agreements": ["Things all agents agreed on — the foundation"], "tensions": [ { "topic": "What they disagree about", "positions": {"sarah": "her view", "marcus": "his view"}, "why_it_matters": "What depends on this decision" } ], "options": [ { "name": "Option A: descriptive name", "summary": "2-3 sentence description", "inspired_by": ["which agent roles/perspectives contributed"], "pros": ["advantages"], "cons": ["disadvantages"], "effort": "quick | medium | large", "best_when": "This option is best if the CEO values X over Y" } ], "non_negotiables": ["Must be true regardless of option chosen"], "coo_pick": { "option": "Option name", "reasoning": "Why — in 2-3 sentences" } } CRITICAL: First character `{`, last character `}`. JSON only. ``` ## Step 4: Present to CEO Present the synthesized options in a readable format: ``` # Brainstorm: {question title} ## The Team Agrees On {non-negotiables — things that are true regardless of direction} ## The Key Tensions {where agents disagreed — these are the real decisions} ## Options ### Option A: {name} {summary} **Pros:** {list} **Cons:** {list} **Effort:** {estimate} **Best if:** {when to pick this} ### Option B: {name} ... ### Option C: {name} (if applicable) ... ## COO's Recommendation {COO's pick and reasoning} ## Research Highlights {Most interesting external findings from agents — URLs included} ``` Ask the CEO using AskUserQuestion: - Option A / Option B / Option C / "Hybrid — let me explain" ## Step 5: Capture Decision After the CEO decides: 1. **Write a design doc** to `.context/directives/{relevant-directive}/brainstorm.md`: ```markdown # {Question Title} Date: {date} Decision: {chosen option} Participants: {agents involved} ## Context {framed question + why it matters} ## Options Considered {brief summary of each option} ## Decision {which option + CEO's reasoning} ## Non-Negotiables {agreed constraints} ## Next Steps {what needs to happen to implement this — becomes /directive input} ``` 2. **If the decision requires implementation**, ask the CEO: - "Create directive" — write a directive to directives/ based on the decision - "Add to backlog" — write to the relevant goal's backlog - "Design doc only" — just capture the decision, implement later ## Failure Handling | Situation | Action | |-----------|--------| | Agent output doesn't parse | Log error, continue with others. 2/3 perspectives is fine. | | Agents all agree | Great — present the consensus as the recommendation. Still offer 2 options (the consensus + a contrarian alternative). | | CEO wants to explore further | Spawn additional research on the specific area. Don't re-run the whole brainstorm. | | Question is too broad | Break it into sub-questions. Brainstorm the most foundational one first. | ## How Brainstorm Fits the Conductor Flow **Normal path (auto-triggered):** Strategic directives trigger a brainstorm automatically inside the /directive pipeline. The CEO never needs to invoke /brainstorm separately — the team detects when strategic thinking is needed and handles it. ``` CEO gives direction → /directive → triage as "strategic" → C-suite brainstorms → COO plans → execute ``` **Standalone path (CEO-invoked):** The CEO can still invoke /brainstorm directly for questions that don't need a directive — strategy decisions, process design, framework choices, or "I want to think through X with the team" moments. ``` CEO invokes /brainstorm → triage → lightweight or heavyweight brainstorm → design doc ``` **Not every directive needs a brainstorm** (simple fixes don't). But strategic work — new data models, workflow changes, architectural shifts — benefits from the team exploring approaches before the COO plans execution. ## Rules ### NEVER - Skip triage (Step 0) — always classify before spawning - Use heavyweight for a focused question (wastes tokens and CEO time) - Use lightweight for a strategic question (misses perspectives) - Start heavyweight agents without framing the question first (Step 1) - Let heavyweight agents see each other's output during Step 2 (independent thinking prevents groupthink) - Present more than 3 options (decision paralysis) - Skip the COO's synthesis in heavyweight (raw perspectives without synthesis is a data dump) ### ALWAYS - Triage first — lightweight or heavyweight - Capture the decision to a discussion file (reasoning dies in context windows) - Upgrade lightweight → heavyweight if clarifying questions reveal cross-cutting complexity - Include at least the COO + one other agent for heavyweight - Have the COO state a recommendation for heavyweight (no "it depends" cop-outs) - Include external research in heavyweight (agents should WebSearch, not just opine) - Frame the question before spawning heavyweight agents (prevents wasted work)