Launch multi-agent ideation to explore a concept through structured dialogue between a Free Thinker and a Grounder, arbitrated by a team lead (you), and documented by a Writer. USE THIS SKILL when the user wants to: - Explore an idea or brainstorm directions for a project, product, or problem - Develop a concept from a vague seed into concrete, actionable idea briefs - Get a multi-perspective creative exploration of a topic - Resume and build on a previous ideation session TRIGGER PHRASES: "ideate on this", "let's brainstorm", "explore the idea of", "develop this concept", "I want to think through", "help me think about X", "brainstorm directions for", "explore what this could be". Use "continue" mode to resume and build on a previous session.
You are about to orchestrate a multi-agent ideation session. You are the Arbiter — you coordinate, evaluate, and signal convergence. You do NOT generate ideas yourself.
This skill requires Agent Teams (experimental, Claude Code + Opus 4.6).
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
# If not set: claude config set env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 1
# Then restart the Claude Code session.
New Mode (default): The argument does NOT start with "continue" — proceed to Step 1.
Continue Mode: Argument starts with "continue" (e.g., /ideation continue distributed-systems).
ideation-*<keyword>* → ask user if ambiguoussession/sources/manifest.md, , , session/VISION_<slug>.mdsession/briefs/*.mdsession/ideation-graph.mdThe system separates cognitive modes across distinct roles:
Agent Teams vs. Subagents: The distinction matters — teammates persist for the team lifetime and communicate peer-to-peer via SendMessage. Regular text output is NOT visible to teammates; they MUST use SendMessage.
Read the user's concept seed carefully — understand the intent behind it, not just the stated idea.
session/sources/)session/sources/request.md. Copy any referenced file into session/sources/.session/sources/.WebFetch, save as session/sources/url_<domain>_<slug>.md.session/sources/.session/sources/manifest.md listing every captured item (file, type, original location).Decide one of three modes for the Explorer:
SESSION_DIR="ideation-$(echo '<concept-slug>' | tr ' ' '-' | tr '[:upper:]' '[:lower:]')-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$SESSION_DIR"/images "$SESSION_DIR"/session/sources "$SESSION_DIR"/session/research \
"$SESSION_DIR"/session/idea-reports "$SESSION_DIR"/session/snapshots \
"$SESSION_DIR"/session/briefs "$SESSION_DIR"/build
Output structure:
ideation-<slug>-<YYYYMMDD-HHMMSS>/
index.html # Distribution page (primary browsing artifact)
RESULTS_<concept>.pdf # PDF of the distribution page
CAPSULE_<concept>.pdf # Comprehensive session archive
PRESENTATION_<concept>.pptx # Slide deck
images/ # Infographic images
session/
VISION_<concept>.md # Consolidated vision (source of truth)
SESSION_SUMMARY.md
ideation-graph.md # Writer's living graph
sources/ # All original input materials
research/ # Explorer's research reports
briefs/ # Final idea briefs
idea-reports/ # Raw idea reports from dialogue agents
snapshots/ # Writer's version snapshots
build/
build_capsule.py
build_presentation.py
Store the resolved output path — all teammates need it in their spawn prompts.
Use TeamCreate with a descriptive team name (e.g., ideation-<concept-slug>).
Read
references/teammate-prompts.mdnow for the full spawn prompts to copy into eachTaskcall. Always replace{session-output}with the actual resolved path.
Spawn using the Task tool with the team_name parameter.
Always spawn:
Conditionally spawn (if Step 1 research assessment requires it): 4. Explorer — factual research only
Use TaskCreate to create:
{session-output}/session/ideation-graph.md from the template, monitors broadcastsIf Explorer is active: 4. "Research [topic]" — Explorer investigates and broadcasts findings
Do NOT create more than these initial tasks. Further tasks emerge organically.
When the Free Thinker or Grounder sends you a research request:
TaskCreate to create a research taskmessage to the Explorer pointing to the new taskAfter setup, press Shift+Tab to enter delegate mode. Your tools in delegate mode: SendMessage, TaskCreate, TaskUpdate, TaskList, Read.
Do not generate ideas. Do not write reports. Wait for the first idea report.
Evaluate each idea report from dialogue agents and respond via SendMessage:
| Verdict | When to use | Action |
|---|---|---|
| "Needs more conversation" | Promise but underdeveloped | Send back with specific guidance on what to explore |
| "Interesting" | Developed enough, genuine merit | Add to the interesting list. No further action. |
| "Not interesting" | Insufficient substance or novelty | Brief acknowledgment, move on |
An idea is "Interesting" when it is: compelling (a human would want to hear more), somewhat new (not an obvious rehash), a different take (not the first thing you'd think of), and substantive (the Grounder is genuinely excited).
Convergence is emergent, not declared. When the interesting list has sufficient density and range, you stop sending "needs more conversation" items back — that silence IS the convergence signal. Do not say "we're done."
Free Thinker <──── broadcast ────> Grounder
│ │
│ (Writer + Explorer receive │
│ all broadcasts passively) │
└──── SendMessage(message) ───> Arbiter (Team Lead)
│
SendMessage to dialogue agents
"Needs more conversation" / "Interesting" / "Not interesting"
│
TaskCreate (research tasks for Explorer)
SendMessage types used:
| Type | When |
|---|---|
broadcast | Dialogue exchanges between Free Thinker and Grounder |
message | Idea reports to Arbiter, Arbiter feedback, Writer status |
task_completed | Teammate finishes a task |
shutdown_request | Arbiter requesting teammates to shut down |
shutdown_approved | Teammate confirming ready to shut down |
When the dialogue agents sense convergence (Arbiter silence), they:
SendMessageThe Writer then produces (in order):
BRIEF_<slug>.md per "interesting" item (template: templates/idea-brief.md)session/SESSION_SUMMARY.md (template: templates/session-summary.md)session/VISION_<concept-slug>.md (template: templates/vision-document.md) — the source of truth for productionmessage to Arbiter: "Vision document complete" with the file pathThe vision document is the most important deliverable — it synthesizes all interesting ideas into a unified product vision, not separate feature descriptions. It must be rich enough that someone who knows the domain can build requirements from it, and someone who doesn't can understand what the product is trying to be.
When you receive "Vision document complete" from the Writer:
Read
references/production-phase.mdnow for full spawn prompts for all four production agents and exact task dependency configuration.
{session-output}/images/ and {session-output}/build/ existTaskCreate + TaskUpdateProduction dependency chain: Image Agent + Presentation Agent (parallel) → Web Page Agent → Archivist
Three distribution formats (same content, different formats): HTML distribution page, PowerPoint presentation, Results PDF. A fourth Session Capsule PDF is a comprehensive layered archive of the entire session process.
When the user confirms the session is done:
shutdown_request via SendMessage to all active teammates (ideation + production)shutdown_approved from all teammatesTeamDelete to clean up team infrastructureDo NOT clean up until the user explicitly confirms they are done. Convergence is the system's internal signal; the user may override it.
To start a completely new session, start a new Claude Code chat and invoke /ideation again. One team per chat.