brainstorm
Purpose
Creative ideation and solution exploration. Brainstorm is the creative engine of the Creation group — it generates multiple approaches with trade-offs, explores alternatives using structured frameworks, and hands the selected approach to plan for structuring. Uses opus for deep creative reasoning.
Modes
Discovery Mode (default)
Normal brainstorming at the start of a task — generate approaches before any code is written.
Vision Mode
Activated for product-level rethinks — not "how to implement X" but "should we even build X?" Forces 10x thinking instead of incremental improvement.
Vision Mode triggers:
- Manual:
/rune brainstorm vision <product area> - Called by
@rune-pro/product.feature-specwhen requirements feel incremental - When the user says "rethink", "reimagine", "what if we", "step back"
Vision Mode constraints:
- MUST restate the user's REAL problem (not their proposed solution) — "you asked for a settings page, but your real problem is users can't find the right config"
- MUST generate 2-3 approaches where at least 1 eliminates the need for the feature entirely
- MUST apply the "10-star experience" lens: what would a 1-star, 5-star, and 10-star version look like?
- MUST challenge assumptions: "why does this need to be a page?" "why does the user need to do this at all?"
Design-It-Twice Mode
Activated when exploring alternative interface shapes for a deepening candidate. Spawns N=3-4 parallel subagents, each pinned to a radically different design constraint (minimize / maximize-flexibility / optimize-common-case / ports-and-adapters), computes a diversity score over feature vectors, and presents sequentially with an opinionated recommendation. Used by improve-architecture when a deepened module's interface is non-obvious.
Design-It-Twice triggers:
improve-architecture(Step 7 hand-off) when the picked candidate has multiple credible interface shapes- User says "design it twice", "explore interfaces", "what are the API options"
- Manual:
/rune brainstorm design-it-twice <module>
Design-It-Twice constraints:
- MUST spawn N=3 (minimum) or N=4 (when dependency category is remote-owned or true-external) parallel subagents
- Each subagent pinned to exactly ONE of the 4 standard constraints — enforced via prompt template
- Diversity score MUST be >= 0.4 before presenting (re-spawn once if below)
- Recommendation MUST be opinionated with a concrete hedge condition — "it depends" is BLOCKED
- Hybrid synthesis (Step 4.5) is opt-in when 2 designs have complementary strengths
- council (Step 3.75) is opt-in per the narrow trigger — MUST NOT fire on every design-it-twice run, and its output MUST NOT replace the diversity-score mechanism, only supplement it
Full doctrine: references/design-it-twice.md.
Rescue Mode
Activated when an approach has been tried and fundamentally failed — not a bug, but a wrong approach. Rescue mode forces category-diverse alternatives instead of variants of the failed approach.
Rescue Mode triggers:
cookPhase 4: Approach Pivot Gate fires (3 debug-fix loops exhausted + re-plan still fails)debug: 3-Fix Escalation Rule fires AND root cause is "approach doesn't work" (not a bug in implementation)fix: 3 fix attempts fail AND each attempt reveals a different blocker (systemic, not localized)- Manual:
/rune brainstorm rescue <what failed and why>
Rescue Mode input:
mode: "rescue" failed_approach: string — what was tried failure_evidence: string[] — concrete reasons it failed (error messages, blockers, dead ends) original_goal: string — what we're still trying to achieve
Rescue Mode constraints:
- MUST generate 3-5 approaches (more than Discovery's 2-3 — wider net)
- Each approach MUST be a different category, not a variant of the failed one
- At least 1 approach must be "unconventional" (hacky, wrapper, reverse-engineer, proxy, etc.)
- MUST use Collision-Zone Thinking or Inversion Exercise — conventional thinking already failed
- MUST explicitly state why each approach is a different category from the failed one
- Failed approach MUST be listed as "Option X (FAILED)" — visible reminder not to loop back
Category examples (approaches in different categories):
Direct API call ≠ Wrapper/middleware layer ≠ Reverse engineering ≠ Browser automation ≠ Extension/plugin ≠ Proxy/bridge service ≠ Alternative tool entirely
Triggers
- Called by
cookwhen multiple valid approaches exist for a feature (Discovery Mode) - Called by
cookApproach Pivot Gate when current approach fundamentally fails (Rescue Mode) - Called by
debug3-Fix Escalation when root cause is architectural, not a bug (Rescue Mode) - Called by
planwhen architecture decision needs creative exploration (Discovery Mode) /rune brainstorm <topic>— manual brainstorming (Discovery Mode)/rune brainstorm rescue <context>— manual rescue (Rescue Mode)- Auto-trigger: when task description is vague or open-ended (Discovery Mode)
Calls (outbound)
ba(L2): when no requirements spec exists yet AND brainstorm is a standalone entry point — hand off for requirement elicitation BEFORE plan (never whenbais the caller — would loop)plan(L2): when idea is selected and needs structuring into actionable steps (spec already exists, or task is a refactor/config change with no new behavior)design(L2): when selected approach has UI/UX implications — hand off visual decisionsresearch(L3): gather data for informed brainstorming (existing solutions, benchmarks)trend-scout(L3): market context and trends for product-oriented brainstormingproblem-solver(L3): structured reasoning frameworks (SCAMPER, First Principles, 6 Hats)sequential-thinking(L3): evaluating approaches with many variablescouncil(L3): Step 3.75 — decorrelated judgment on which Design-It-Twice candidate is strongest, narrow trigger only (Design-It-Twice Mode)
Called By (inbound)
cook(L1): when multiple valid approaches exist for a feature (Discovery Mode)cook(L1): Approach Pivot Gate — current approach failed, need category-diverse alternatives (Rescue Mode)debug(L2): 3-Fix Escalation when root cause is "wrong approach" not "wrong code" (Rescue Mode)plan(L2): when architecture decision needs creative exploration (Discovery Mode)- User:
/rune brainstorm <topic>direct invocation (Discovery Mode) - User:
/rune brainstorm rescue <context>manual rescue (Rescue Mode) ba(L2): when multiple requirement approaches existimprove-architecture(L2): when a deepened module's interface needs Design-It-Twice exploration
Cross-Hub Connections
brainstorm↔plan— bidirectional: brainstorm generates options → plan structures the chosen one, plan needs exploration → brainstorm ideatesbrainstorm→ba— a standalone brainstorm that picks an approach for a NEW feature with no requirements spec routes tobafirst (WHAT before HOW). Suppressed whenbais the caller — that direction isba→brainstormand re-invoking would loop.brainstorm→council— Design-It-Twice candidates ready + high-stakes trigger fires (Step 3.75) → decorrelated judgment on the strongest candidate before Step 4 Recommend
Reasoning Frameworks
Analytical Frameworks
SCAMPER — Substitute, Combine, Adapt, Modify, Put to use, Eliminate, Reverse FIRST PRINCIPLES — Break down to fundamentals, rebuild from ground up 6 THINKING HATS — Facts, Emotions, Caution, Benefits, Creativity, Process CRAZY 8s — 8 ideas in 8 minutes (rapid ideation)
Breakthrough Frameworks (when conventional thinking fails)
Collision-Zone Thinking — Force unrelated concepts together: "What if we treated X like Y?"
- Pick two unrelated domains (e.g., services + electrical circuits → circuit breakers)
- Explore emergent properties from the collision
- Test where the metaphor breaks → those boundaries reveal design constraints
- Best source domains: physics, biology, economics, psychology
- Use when: conventional approaches feel inadequate, need innovation not optimization
Inversion Exercise — Flip every assumption: "What if the opposite were true?"
- List core assumptions ("cache reduces latency", "handle errors when they occur")
- Invert each: "add latency" → debouncing; "make errors impossible" → type systems
- Valid inversions expose context-dependence in "obvious" truths
- Use when: feeling forced into "the only way", stuck on unquestioned assumptions
Scale Game — Test at extremes (1000x bigger/smaller) to expose fundamentals
- Pick a dimension: volume, speed, users, duration, failure rate
- Test minimum (1000x smaller) AND maximum (1000x bigger)
- What breaks reveals algorithmic limits; what survives is fundamentally sound
- Use when: unsure about production scale, edge cases unclear, "it works in dev"
Executable Steps
Step 0 — Detect Mode
Check the invocation context:
- If
mode="design-it-twice"is set, or caller isimprove-architectureStep 7, or user says "design it twice / explore interfaces" → Design-It-Twice Mode (jump to Step 2.5 directly) - If
mode="vision"is set, or user says "rethink/reimagine/step back" → Vision Mode - If
mode="rescue"is set, or caller is Approach Pivot Gate / 3-Fix Escalation → Rescue Mode - Otherwise → Discovery Mode
If Rescue Mode: read failed_approach and failure_evidence before proceeding. These become anti-constraints — approaches that MUST NOT repeat the failed category.
Step 1 — Frame the Problem
State the decision to be made in one clear sentence: "We need to decide HOW TO [achieve X] given [constraints Y]." Identify:
- Hard constraints (cannot change): budget, existing tech stack, deadlines
- Soft constraints (prefer to avoid): complexity, breaking changes, unfamiliar tech
- Success criteria: what does a good solution look like?
- [Rescue Mode only] Anti-constraints: "Approach X was tried and failed because Y — do NOT generate variants of X"
If the problem is unclear, ask the user ONE clarifying question before proceeding.
Step 1.5 — Problem Restatement (MANDATORY)
After framing the problem, restate it back to the user for confirmation:
"Let me confirm: you want to [X] because [Y], and the main constraint is [Z]. Correct?"
DO NOT generate approaches until user confirms the restatement. This prevents wasted ideation on a misunderstood problem — the most expensive brainstorm failure mode.
Skip conditions (Rescue Mode only):
- Rescue Mode: problem is already well-defined by
failure_evidence— restatement is implicit in the failed approach summary.
Step 1.75 — Dynamic Questioning (When Clarification Needed)
When Step 1 or Step 1.5 reveals gaps, ask structured clarifying questions using this format:
### [P0|P1|P2] **[DECISION POINT]** **Question:** [Clear, specific question] **Why This Matters:** - [Architectural consequence — what changes based on the answer] - [Affects: cost | complexity | timeline | scale | security] **Options:** | Option | Pros | Cons | Best For | |--------|------|------|----------| | A | [+] | [-] | [scenario] | | B | [+] | [-] | [scenario] | **If Not Specified:** [Default choice + rationale]
Priority levels:
- P0: Blocking — cannot generate approaches without this answer
- P1: High-leverage — significantly changes the recommended approach
- P2: Nice-to-have — refines the recommendation but doesn't change direction
Rules:
- Ask maximum 3 questions per round (avoid overwhelming the user)
- Each question MUST connect to a specific decision point (no generic "what do you want?")
- MUST provide a default answer — if user says "you decide", the default is used
- Questions generate data, not assumptions — each eliminates implementation paths
Step 2 — Generate Approaches
Discovery Mode: Produce exactly 2–3 distinct approaches. Rescue Mode: Produce exactly 3–5 approaches, each a different category from the failed approach. Design-It-Twice Mode: skip to Step 2.5.
Each approach must be meaningfully different — not just variations of the same idea. For each approach provide:
- Name: short memorable label
- Description: 2–4 sentences on how it works
- Pros: concrete advantages (not generic "simple" — be specific)
- Cons: concrete disadvantages and failure modes
- Effort: low (< 1 day) | medium (1–3 days) | high (> 3 days)
- Risk: low | medium | high + one-line explanation of the main risk
If the domain is unfamiliar or data is needed, invoke rune:research before generating options. For product/market context, invoke rune:trend-scout.
Step 2.5 — Constraint Matrix Spawn (Design-It-Twice Mode only)
Spawn N=3 parallel subagents (or N=4 if dependency category is remote-owned / true-external). Each is pinned to exactly one constraint via Task tool spawn:
| Constraint ID | Pinning |
|---|---|
| C1 | "Minimize the interface — aim for 1–3 entry points. Maximize leverage per entry point." |
| C2 | "Maximize flexibility — support many use cases, extension surface." |
| C3 | "Optimize for the most common caller — make the default case trivial. Rare cases pay cost." |
| C4 | "Design around ports and adapters for cross-seam dependencies." (only when applicable) |
Use the spawn prompt template from references/design-it-twice.md. Include CONTEXT.md domain terms in the prompt so each design names things consistently with project domain language.
Each subagent returns a YAML block: interface, usage example, what's hidden, dependency strategy/adapters, tradeoffs.
Step 3 — Evaluate
Discovery Mode — Apply the most relevant framework:
- Use SCAMPER when exploring variations of an existing solution
- Use First Principles when the problem looks unsolvable with conventional approaches
- Use 6 Thinking Hats when stakeholder perspectives matter (product vs. engineering vs. user)
- Use Crazy 8s (rapid listing) when time-boxed exploration is needed
- Use Collision-Zone when innovation is needed, not just optimization — force cross-domain metaphors
- Use Inversion when all options feel forced or there's an unquestioned "must be this way"
- Use Scale Game when validating which approach survives production reality
Rescue Mode — MUST use at least one of these (conventional thinking already failed):
- Collision-Zone Thinking (mandatory first pick) — force cross-domain metaphors to break out of the failed category
- Inversion Exercise — flip assumptions that led to the failed approach
- First Principles — strip to fundamentals, rebuild without the assumption that caused failure
Additionally in Rescue Mode:
- Invoke
rune:researchto search for how others solved similar problems (repos, articles, workarounds) - At least 1 approach must be "hacky/unconventional" — wrappers, reverse engineering, browser automation, proxy layers, debug mode abuse, etc.
- Label each approach with its category tag to prove diversity:
[Direct API],[Wrapper],[Reverse-Engineer],[Proxy],[Extension],[Alternative Tool], etc.
For approaches with many interacting variables, invoke rune:sequential-thinking to reason through trade-offs systematically.
Step 3.5 — Diversity Gate (Design-It-Twice Mode only)
After subagents return, compute the diversity score:
feature_vector(design) = [ count(methods), count(return_types), count(adapter_kinds), count(dependencies), paradigm_tag, has_async, has_streaming ] diversity = 1 - mean(pairwise_jaccard(feature_vectors))
| Diversity | Action |
|---|---|
| ≥ 0.6 | Proceed to Step 4 |
| 0.4 – 0.59 | Surface to user: "designs are similar in [shared trait] — re-spawn with different constraints?" |
| < 0.4 | Re-spawn once with rotated constraints; if still <0.4, give up and present what's there with a diversity-low warning |
Emit diversity_score in chain_metadata.
Step 3.75 — Decorrelated Judgment (council, Design-It-Twice Mode only)
The diversity score (Step 3.5) measures how DIFFERENT the candidate designs are — it says nothing about which one is BEST. For high-stakes interface decisions, that judgment call benefits from a second architecture's opinion, the same discipline adversary Step 0.6 and review Step 1.6 already apply.
Trigger — call council (mode=judge) when ANY of:
- N=4 was spawned (dependency category
remote-ownedortrue-external, per Step 2.5 — the same tier that already signals higher stakes) - Diversity landed in the 0.4–0.59 marginal band (Step 3.5) and a re-spawn still didn't clearly separate the candidates
- User explicitly asks for a second opinion on which design to pick
Do NOT call council for: routine Design-It-Twice runs where diversity ≥ 0.6 on an in-process/local-substitutable dependency (N=3) — this is opt-in overhead on top of the existing subagent fan-out, not a default tax on every design-it-twice run.
Request: { question: <the candidate designs' interface/usage/tradeoffs YAML + "which design is strongest given constraints X">, mode: "judge", n: 3, diversity: { prefer_model_families: true }, evidence_required: [reasoning] }. Self-contained — council's voices never saw the subagent spawns.
Consume: fold agreement.consensus_claims into Step 4's recommendation as a [council-verified] signal alongside (never instead of) the diversity score. Fold agreement.dissent into the hedge condition, tagged [council-dissent]. If decorrelation: NO_DECORRELATION, say so plainly — do NOT describe the judgment as independent confirmation from same-family subagents; the diversity-score mechanism remains the primary signal in that case.
Step 4 — Recommend
Select ONE approach as the recommendation. State:
- Which option is recommended
- Primary reason (1 sentence)
- Conditions under which a different option would be better (hedge case)
Do not recommend "it depends" without a concrete decision rule.
Step 4.5 — Tiered Recommendations (Product/Strategy Mode)
For product-level brainstorming (Vision Mode or when approaches have strategic implications), structure the recommendation into time-horizon tiers:
| Tier | Timeframe | Focus |
|---|---|---|
| Quick Win | 0-30 days | Immediate value, validates direction, low risk |
| Differentiation | 1-3 months | Competitive advantage, harder to copy |
| Long-term Moat | 6-12 months | Defensible position, compounds over time |
For each tier, specify:
markdown### Quick Win (0-30 days) - **Action**: [specific deliverable from the chosen approach] - **Resources**: [team/tools needed] - **Expected Impact**: [measurable outcome] - **Validates**: [what assumption this proves/disproves] ### Differentiation (1-3 months) - **Action**: [...] - **Resources**: [...] - **Expected Impact**: [...] ### Long-term Moat (6-12 months) - **Action**: [...] - **Resources**: [...] - **Expected Impact**: [...]
Rules:
- Quick Win MUST be achievable with chosen approach in first sprint
- Each tier builds on the previous — not 3 independent tracks
- Skip this step for pure technical brainstorming (no product/strategy dimension)
- If all tiers look equally expensive → approach may be too complex for Quick Win
Step 4.5 — Hybrid Synthesis (Design-It-Twice Mode, optional)
If two designs have complementary strengths (e.g., C1's leverage + C4's seam discipline), propose a 4th option that combines them. Skip this step when no two designs have clear complementary strengths.
Option D (Hybrid C1 + C4): - Interface: 3 methods (from C1's minimization) - Adapters: HttpAdapter + InMemoryAdapter (from C4's port discipline) - Pros: small surface AND testable across the seam - Cons: more upfront design work; locks the port early
The hybrid is the recommended default in many cases. Be opinionated.
Step 4.75 — Not Doing List (MANDATORY)
After selecting a recommendation, explicitly document what was rejected and why. This prevents scope creep later when someone asks "why didn't we do X?"
For each rejected option, state:
- Option name: the rejected approach
- Why not: 1-sentence trade-off rationale (not "it's worse" — the specific cost that made it lose)
- Revisit if: the condition under which this option becomes viable again
### Not Doing - **[Option B name]** — [specific trade-off, e.g., "adds 2 weeks for a 10% perf gain we don't need at current scale"]. Revisit if [condition, e.g., "user count exceeds 100k"]. - **[Option C name]** — [specific trade-off]. Revisit if [condition].
The "Revisit if" clause is critical — it turns a rejection into a future trigger, not a permanent dismissal.
Step 5 — Hand Off (Spec Gate → BA if missing, then Plan)
Before structuring the chosen approach, check whether a requirements spec exists. Choosing an approach answers HOW — it does NOT answer WHAT (requirements, acceptance criteria, scope boundaries, hidden requirements). Handing a bare approach straight to plan produces a plan with no spec behind it — the "plan without spec" gap that turns into vibe-coding.
Spec-presence gate:
Glob.rune/features/*/requirements.md.- Route to
rune:plandirectly if ANY of:- A requirements doc already exists (BA ran earlier this session, or a continuation).
- Brainstorm was invoked BY
baorcook(mode/caller from Step 0) — the spec step is already in the chain; re-invokingbawould loop. - The chosen approach implies NO new user-facing behavior (pure refactor, config change, infra swap, dependency choice).
- Route to
rune:baFIRST (thenbahands toplan) if ALL of:- No requirements doc exists, AND
- Brainstorm is a standalone entry point (user ran
/rune brainstorm …directly), AND - The chosen approach implies new feature behavior (a new capability, workflow, or product surface).
Pass to the next skill (ba or plan):
- The chosen option name
- Key constraints to honor
- Any risks identified that must be mitigated
- The Not Doing list (so the next skill knows what's explicitly out of scope)
If the user rejects the recommendation, return to Step 2 with adjusted constraints and regenerate.
Constraints
- MUST propose 2-3 approaches (Discovery) or 3-5 approaches (Rescue) — never present only one option
- MUST include your recommendation and reasoning for why
- MUST ask one question at a time — don't overwhelm with multiple questions
- MUST save approved design to docs/plans/ before transitioning to plan
- MUST NOT jump to implementation — brainstorm → plan → implement is the order
- [Rescue Mode] MUST NOT generate variants of the failed approach — each approach must be a different CATEGORY
- [Rescue Mode] MUST use Collision-Zone or Inversion framework — conventional thinking already failed
- [Rescue Mode] MUST include at least 1 unconventional/hacky approach — sometimes the "dirty" solution is the only one that works
- [Design-It-Twice Mode] MUST spawn parallel subagents with one constraint pinned per agent — fake diversity (one agent producing N options) is BLOCKED
- [Design-It-Twice Mode] MUST emit
diversity_scoreand re-spawn (once) if below 0.4 floor - [Design-It-Twice Mode] MUST NOT produce "it depends" recommendations — pick one design with a concrete hedge condition
- [Design-It-Twice Mode] MUST NOT call council on every run — narrow trigger only (N=4 remote/external dependency, marginal diversity band, or explicit user request); when invoked, council output supplements (never replaces) the diversity-score mechanism
Output Format
## Brainstorm: [Topic] ### Context [Problem statement and constraints] ### Option A: [Name] (Recommended) - **Approach**: [description] - **Pros**: [advantages] - **Cons**: [disadvantages] - **Effort**: low | medium | high - **Risk**: low | medium | high — [main risk] ### Option B: [Name] - **Approach**: [description] - **Pros**: [advantages] - **Cons**: [disadvantages] - **Effort**: low | medium | high - **Risk**: low | medium | high — [main risk] ### Option C: [Name] (if needed) ... ### Recommendation Option A — [one-line primary reason]. Choose Option B if [specific hedge condition]. ### Not Doing - **[Option B name]** — [trade-off rationale]. Revisit if [condition]. - **[Option C name]** — [trade-off rationale]. Revisit if [condition]. ### Next Step Proceeding to rune:plan with Option A. Constraints to honor: [list].
Returns
| Artifact | Format | Location |
|---|---|---|
| Option matrix (2-3 Discovery / 3-5 Rescue) | Markdown sections | inline (chat output) |
| Trade-off analysis per option | Markdown (pros/cons/effort/risk) | inline |
| Single recommendation with hedge condition | Markdown | inline |
| Approved design document | Markdown | docs/plans/<feature>.md |
Sharp Edges
Known failure modes for this skill. Check these before declaring done.
| Failure Mode | Severity | Mitigation |
|---|---|---|
| Generating only one option instead of 2-3 | HIGH | Always present multiple approaches — the value is in the comparison, not the recommendation |
| Proceeding to plan without user approval on the approach | CRITICAL | Brainstorm MUST get explicit sign-off before calling plan — no silent "going with Option A" |
| Options are variations of the same approach (fake diversity) | HIGH | Options must differ in architecture, not just naming — different trade-offs, not just different words |
| [Rescue] Generating variants of the failed approach | CRITICAL | Each approach MUST have a different category tag — if two share a tag, one must be replaced |
| [Rescue] Skipping Collision-Zone/Inversion frameworks | HIGH | Conventional thinking already failed — MUST use at least one breakthrough framework |
| [Rescue] All approaches are "clean/proper" — no hacky option | MEDIUM | At least 1 must be unconventional — wrappers, reverse-engineering, debug mode abuse, proxy layers |
| Calling plan directly instead of presenting options first | CRITICAL | Steps 2-3 are mandatory — present options, get approval, THEN call plan |
Handing a chosen approach straight to plan for a new feature with no requirements spec | CRITICAL | Step 5 spec-presence gate: standalone brainstorm + no requirements.md + new behavior → route to ba FIRST. Approach (HOW) is not a spec (WHAT). Skipping ba here is the "plan without spec" vibe-coding gap |
| "Creative" options that ignore stated constraints | MEDIUM | Every option must satisfy the constraints declared in Step 1 |
| Missing "Not Doing" list — rejected options not documented | MEDIUM | Step 4.75 is MANDATORY — every rejected option needs trade-off rationale + "Revisit if" condition |
| [Design-It-Twice] Single agent producing N options instead of N parallel subagents | HIGH | Step 2.5 — constraint pinning happens at spawn, not in a loop. Each constraint = one Task call |
| [Design-It-Twice] Diversity score below 0.4 ignored | HIGH | Step 3.5 gate — re-spawn once; if still low, present with explicit "low-diversity" warning |
| [Design-It-Twice] "It depends" recommendation | HIGH | Step 4 — must pick one with a hedge; if genuinely tied, propose hybrid (Step 4.5) and recommend that |
| [Design-It-Twice] Forgetting to include CONTEXT.md domain terms in subagent prompt | MEDIUM | Step 2.5 spawn template requires domain glossary be passed through |
| [Design-It-Twice] Reporting council output as consensus when decorrelation is NO_DECORRELATION | CRITICAL | Step 3.75 consume rule: report the decorrelation stamp plainly, never imply independent confirmation from same-family subagents |
Done When
- Context scan complete (project files read, existing patterns identified)
- 2-3 genuinely different approaches presented with trade-offs
- User has explicitly approved an approach (not implied or assumed)
- Selected option documented with rationale
- Constraints for plan phase listed explicitly
- Step 5 spec-presence gate evaluated — routed to
ba(new feature, no spec, standalone) orplan(spec exists, or ba/cook was the caller, or no new behavior) - Next skill (
baorplan) called with the approved approach and constraints - (Design-It-Twice) If council's high-stakes trigger matched (Step 3.75): council invoked before Step 4, decorrelation stamp reported plainly, consensus/dissent folded into the recommendation alongside the diversity score
Cost Profile
~2000-5000 tokens input, ~1000-2500 tokens output. Opus for creative reasoning depth. Runs infrequently — only when creative exploration is needed.
Scope guardrail: Brainstorm produces options and a recommendation — never implementation code or an execution plan. All code and planning begins only after user approves an approach and rune:plan is invoked.


