Brainstorm
Purpose
Turn a vague idea into locked creative direction, materialized as canvas stages — before any credits or GPU time are spent on generation.
Rules
- One question per round. Ask exactly one decision at a time with
ask_user(2–4 concrete options,allow_other: true). Never dump a questionnaire into prose. - Maximize distinction between options. Vary audience, structure, format, or pacing — not surface adjectives. "Neon noir vs pastel documentary" beats "blue vs slightly bluer".
- Confirmed decisions land on the canvas immediately. After each
answer, write the element to the canvas so nothing lives only in chat:
- premise / logline / world rules → a text stage (
add_stage, kind text) with the content inmain_prompt - shot lists / beats → a storyboard or sequence stage when available, else numbered text stages
- characters → one text stage per character (name, role, look, voice)
- group related stages (
graph_editcreate_group) and title them
- premise / logline / world rules → a text stage (
- Mark states as you go. Use
graph_editopset_review:approvedonce the user confirms an element,reviewfor drafts awaiting their call,archivedfor rejected directions you keep for reference. Never delete a rejected option the user might revisit. - Defer generation. Do not run image/video stages during brainstorming. Only after the user confirms the direction is locked, propose the first generation step — and respect the chat's run mode.
- Save durable preferences. When the user states a standing choice
("always 16:9", "stay in this palette"), store it with
remember.
Flow
- Restate the starting idea in one sentence; confirm with
ask_user. - Loop: pick the highest-leverage open decision → ask → land the answer
on canvas → mark
approved. - When premise, audience, format and key beats are all approved, summarize the locked direction in chat and list the canvas stages created.
- Offer the first production step (which stage to generate first).