Skip to content

061-storm: divergent exploration and idea generation #84

Description

@ahoward

Summary

brane storm — divergent brainstorming against accumulated knowledge. "Here's what I know — what's missing? What connections haven't I made? What questions should I be asking?"

Why

Brane is purely retrieval right now. It finds what's there but never proposes what isn't. An agent that can only recall is half an agent — it also needs to speculate, question assumptions, and surface blind spots. Bunny's storm does this against markdown files; we do it against the structured graph.

What

CLI

brane storm                                    # brainstorm on bare knowledge
brane storm "security implications"            # seeded brainstorm
brane storm --input threat-model.md            # brainstorm against a document
brane storm --rounds 3                         # multi-round deepening

Flags

  • --rounds <n> — iterative rounds (reload context each round, default: 1)
  • --input <path> — seed from file
  • --dry-run / -n — show what would be created without writing
  • --json / -j — JSON output

Flow

  1. Load context — vector search for relevant concepts + episodes (seeded by topic or broad sample)
  2. LLM generation — Claude thinks divergently: gaps, questions, connections, contradictions
  3. Output — new concepts, edges, episodes, plus suggestions

LLM Response Schema

{
  concepts: { name: string, type: string }[],
  edges: { source: string, target: string, relation: string }[],
  episodes: { observation: string, tags: string[] }[],
  suggestions: { kind: "question" | "source" | "lens", value: string, reason: string }[],
  reasoning: string
}

Suggestions

Storm doesn't just create — it suggests next actions:

  • question — "Have you considered X?" (becomes a future ask)
  • source — "You should read about Y" (becomes a future digest)
  • lens — "Try looking at this from Z perspective" (becomes a future lens)

Multi-round

Each round reloads context (seeing previous round's additions), goes deeper. Stops early if LLM signals convergence.

MCP Tool

storm: { seed?: string, rounds?: number, dry_run?: boolean }

Depends On

Acceptance

  • Generates new concepts, edges, episodes from existing knowledge
  • Suggestions include questions, sources, and lens ideas
  • Multi-round deepening works
  • Seeded and unseeded modes
  • Dry-run shows what would be created
  • MCP tool exposed
  • Spike test passes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions