- name
- brainstorm
- description
- Guided concept ideation using professional studio techniques, player psychology, creative exploration.
- argument-hint
- [genre or theme hint, or 'open'] [--review full|lean|solo]
- user-invocable
- true
- allowed-tools
- Read, Glob, Grep, Write, WebSearch, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/brainstorm/../../hooks/yaml-helper.sh" resolve_config *)
- model
- sonnet
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,docs.density,workflow`
Resolved above — use as-is. No block → defaults in
`.claude/docs/config-resolution.md`.
# Brainstorm
`--review` overrides `review_mode`; store it for all gate spawns this run. See
`.claude/docs/director-gates.md` for the full check pattern. Individual gate definitions live in `.claude/docs/director-gates/[gate-id].md` — the spawned agent reads its own gate file; do not read it in the parent session.
Every `AskUserQuestion` call follows `.claude/docs/automation-modes.md`
(collaborative asks always · guided major-only · autonomous logs and proceeds;
`automation_always_ask` categories always prompt).
**`docs.density`** — it controls per-section *depth*, where `workflow`
controls which sections exist. `modes.rigor` sets both together; set
`docs.density` explicitly to vary depth alone: `terse` (the default, via `rigor: minimal`) = pillar bullets + concept bullets;
`balanced` = pillars + concept with brief rationale (`rigor: standard`); `thorough` =
pillars + concept + extensive rationale + alternatives. Apply it to every section
you author.
---
## Tier branch — check `workflow` FIRST
The `workflow` tier resolved above governs this skill's output:
- **`standard` / `full`** → run the full flow ("When this skill is invoked" through
Phase 5 and the concept-document generation). No change.
- **`minimal`** → run the **Lean Brief flow** immediately below and **STOP** — skip
Phases 1–5, the director gates (CD-PILLARS / AD-CONCEPT-VISUAL / TD-FEASIBILITY /
PR-SCOPE), and the full-length concept document entirely. Output is the one-page
`design/game-brief.md`, not `game-concept.md`.
### Lean Brief flow (`workflow: minimal` only)
A jam / small-scope session: capture the load-bearing thinking in one page, then get
to code. Keep prompting light — a few exchanges, not fifteen. Author from the
one-page template `.claude/docs/templates/game-brief.md` (6 required fields + 3
one-liners). If `design/game-brief.md` already exists, read it and resume/refine
rather than restart.
1. **Concept** — from the argument hint (or one quick open question if none), propose
**2–3 one-line concepts** (verb-first or mashup, per Phase 2's techniques). One
`AskUserQuestion` to pick or combine — the only guaranteed creative prompt.
2. **Fill the brief fields** conversationally (not one prompt each):
- **One-sentence pitch** — the excited one-liner.
- **Core loop** — the 2–4 step cycle the player repeats.
- **Player goal & fail state** — what the player is trying to do, and how they
lose or fail. `/create-stories` turns it into each story's acceptance criteria.
- **MVP** — the ruthlessly short feature list that makes it *the game* (each becomes
a story downstream). If it runs past ~7, push back on scope.
- **Out of scope** — what they're deliberately NOT building.
- **Build order** — sequence to build the MVP, risky / core-fun thing first.
- **Who it's for / what they feel**, **Art & audio direction** and **Reference
game** (the shipped game it is closest to, and the ~10% of it the MVP keeps) —
one line each (offer, don't force).
Present the filled brief back in full for a single confirmation.
3. **Write approval** — `AskUserQuestion`: "Brief is ready. May I write it to
`design/game-brief.md`?" → `[A] Yes — write it` / `[B] Revise a field first`. On
[B], revise the named field, show before/after, re-ask; repeat until [A]. Then
write `design/game-brief.md` from the template, creating directories as needed.
Honor `modes.automation` for this write as elsewhere in the framework.
4. **Next steps** (short — this is the point). **Read `engine.name` from
`project.yaml` first and list `/setup-engine` only if it is absent or empty:**
1. *(only when `engine.name` is absent or empty)* "`/setup-engine` — configure
the engine (required before code)"
2. "`/create-stories` — turn the brief's MVP list into implementable stories. The
epic is implicit at `minimal`; there is no separate `/create-epics` or
`/sprint-plan` — the brief's build order is the plan."
3. "`/dev-story` — first line of game code"
> **Why the condition.** `/start`'s `minimal` path runs `/setup-engine`
> *before* `/brainstorm`, and `/setup-engine` Section 2 states that a missing
> brief is expected because the brief is authored afterwards. Listing engine
> setup unconditionally here tells a user who just followed that path to go
> back and redo step one — the only skill in the four-step path that assumes
> it runs first.
Then output a one-line summary (pitch + MVP feature count + `design/game-brief.md`).
Verdict: **COMPLETE** — game brief created; next stop is code. Do NOT run Phases 1–5,
spawn any director gate, or write `game-concept.md` at this tier.
---
When this skill is invoked (`standard` / `full` tier — `minimal` uses the Lean Brief
flow above):
1. **Parse the argument** for an optional genre/theme hint (e.g., `roguelike`,
`space survival`, `cozy farming`). If `open` or no argument, start from
scratch.
2. **Check for existing concept work**:
- Read `design/gdd/game-concept.md` if it exists (resume, don't restart)
- Read `design/gdd/game-pillars.md` if it exists (build on established pillars)
3. **Run through ideation phases** interactively, asking the user questions at
each phase. Do NOT generate everything silently — the goal is **collaborative
exploration** where the AI acts as a creative facilitator, not a replacement
for the human's vision.
**Use `AskUserQuestion`** at key decision points throughout brainstorming:
- Constrained taste questions (genre preferences, scope, team size)
- Concept selection ("Which 2-3 concepts resonate?") after presenting options
- Direction choices ("Develop further, explore more, or prototype?")
- Pillar ranking after concepts are refined
Write full creative analysis in conversation text first, then use
`AskUserQuestion` to capture the decision with concise labels.
Professional studio brainstorming principles to follow:
- Withhold judgment — no idea is bad during exploration
- Encourage unusual ideas — outside-the-box thinking sparks better concepts
- Build on each other — "yes, and..." responses, not "but..."
- Use constraints as creative fuel — limitations often produce the best ideas
- Time-box each phase — keep momentum, don't over-deliberate early
---
### Phase 1: Creative Discovery
Start by understanding the person, not the game. Ask these questions
conversationally (not as a checklist):
**Emotional anchors**:
- What's a moment in a game that genuinely moved you, thrilled you, or made
you lose track of time? What specifically created that feeling?
- Is there a fantasy or power trip you've always wanted in a game but never
quite found?
**Taste profile**:
- What 3 games have you spent the most time with? What kept you coming back?
*(Ask this as plain text — the user must be able to type specific game names freely.
Do NOT put this in an AskUserQuestion with preset options.)*
- Are there genres you love? Genres you avoid? Why?
- Do you prefer games that challenge you, relax you, tell you stories,
or let you express yourself? *(Use `AskUserQuestion` for this — constrained choice.)*
**Practical constraints** (shape the sandbox before brainstorming).
Bundle these into a single multi-tab `AskUserQuestion` with these exact tab labels:
- Tab "Experience" — "What kind of experience do you most want players to have?" (Challenge & Mastery / Story & Discovery / Expression & Creativity / Relaxation & Flow)
- Tab "Timeline" — "What's your realistic development timeline?" (Weeks / Months / 1-2 years / Multi-year)
- Tab "Dev level" — "Where are you in your dev journey?" (First game / Shipped before / Professional background)
Use exactly these tab names — do not rename or duplicate them.
**Synthesize** the answers into a **Creative Brief** — a 3-5 sentence
summary of the person's emotional goals, taste profile, and constraints.
Read the brief back and confirm it captures their intent.
---
### Phase 2: Concept Generation
Using the creative brief as a foundation, generate **3 distinct concepts**
that each take a different creative direction. Use these ideation techniques:
**Technique 1: Verb-First Design**
Start with the core player verb (build, fight, explore, solve, survive,
create, manage, discover) and build outward from there. The verb IS the game.
**Technique 2: Mashup Method**
Combine two unexpected elements: [Genre A] + [Theme B]. The tension between
the two creates the unique hook. (e.g., "farming sim + cosmic horror",
"roguelike + dating sim", "city builder + real-time combat")
**Technique 3: Experience-First Design (MDA Backward)**
Start from the desired player emotion (aesthetic goal from MDA framework:
sensation, fantasy, narrative, challenge, fellowship, discovery, expression,
submission) and work backward to the dynamics and mechanics that produce it.
For each concept, present:
- **Working Title**
- **Elevator Pitch** (1-2 sentences — must pass the "10-second test")
- **Core Verb** (the single most common player action)
- **Core Fantasy** (the emotional promise)
- **Unique Hook** (passes the "and also" test: "Like X, AND ALSO Y")
- **Primary MDA Aesthetic** (which emotion dominates?)
- **Estimated Scope** (small / medium / large)
- **Why It Could Work** (1 sentence on market/audience fit)
- **Biggest Risk** (1 sentence on the hardest unanswered question)
Present all three. Then use `AskUserQuestion` to capture the selection.
**This decision asks regardless of `modes.automation`.** Concept selection
is the creative heart of `/brainstorm` and has no defensible autonomous
default — there is no algorithmic way to pick which creative direction
resonates with the user. Per `.claude/docs/automation-modes.md`, treat
this site as exempt (it overrides the mode the same way
`automation_always_ask` categories do).
**CRITICAL**: This MUST be a plain list call — no tabs, no form fields. Use exactly this structure:
```
AskUserQuestion(
prompt: "Which concept resonates with you? You can pick one, combine elements, or ask for fresh directions.",
options: [
"Concept 1 — [Title]",
"Concept 2 — [Title]",
"Concept 3 — [Title]",
"Combine elements across concepts",
"Generate fresh directions"
]
)
```
Do NOT use a `tabs` field here. The `tabs` form is for multi-field input only — using it here causes an "Invalid tool parameters" error. This is a plain `prompt` + `options` call.
Never pressure toward a choice — let them sit with it.
---
### Phase 3: Core Loop Design
For the chosen concept, use structured questioning to build the core loop.
The core loop is the beating heart of the game — if it isn't fun in
isolation, no amount of content or polish will save the game.
**30-Second Loop** (moment-to-moment):
Ask these as `AskUserQuestion` calls — derive the options from the chosen concept, don't hardcode them:
1. **Core action feel** — prompt: "What's the primary feel of the core action?" Generate 3-4 options that fit the concept's genre and tone, plus a free-text escape (`I'll describe it`).
2. **Key design dimension** — identify the most important design variable for this specific concept (e.g., world reactivity, pacing, player agency) and ask about it. Generate options that match the concept. Always include a free-text escape.
After capturing answers, analyze: Is this action intrinsically satisfying? What makes it feel good? (Audio feedback, visual juice, timing satisfaction, tactical depth?)
**5-Minute Loop** (short-term goals):
- What structures the moment-to-moment play into cycles?
- Where does "one more turn" / "one more run" psychology kick in?
- What choices does the player make at this level?
**Session Loop** (30-120 minutes):
- What does a complete session look like?
- Where are the natural stopping points?
- What's the "hook" that makes them think about the game when not playing?
**Progression Loop** (days/weeks):
- How does the player grow? (Power? Knowledge? Options? Story?)
- What's the long-term goal? When is the game "done"?
**Player Motivation Analysis** (based on Self-Determination Theory):
- **Autonomy**: How much meaningful choice does the player have?
- **Competence**: How does the player feel their skill growing?
- **Relatedness**: How does the player feel connected (to characters,
other players, or the world)?
---
### Phase 4: Pillars and Boundaries
Game pillars are used by real AAA studios (God of War, Hades, The Last of
Us) to keep hundreds of team members making decisions that all point the
same direction. Even for solo developers, pillars prevent scope creep and
keep the vision sharp.
Collaboratively define **3-5 pillars**:
- Each pillar has a **name** and **one-sentence definition**
- Each pillar has a **design test**: "If we're debating between X and Y,
this pillar says we choose __"
- Pillars should feel like they create tension with each other — if all
pillars point the same way, they're not doing enough work
Then define **3+ anti-pillars** (what this game is NOT):
- Anti-pillars prevent the most common form of scope creep: "wouldn't it
be cool if..." features that don't serve the core vision
- Frame as: "We will NOT do [thing] because it would compromise [pillar]"
**Pillar confirmation**: After presenting the full pillar set, use `AskUserQuestion`:
- Prompt: "Do these pillars feel right for your game?"
- Options: `[A] Lock these in` / `[B] Rename or reframe one` / `[C] Swap a pillar out` / `[D] Something else`
If the user selects B, C, or D, make the revision, then use `AskUserQuestion` again:
- Prompt: "Pillars updated. Ready to lock these in?"
- Options: `[A] Lock these in` / `[B] Revise another pillar` / `[C] Something else`
**At `collaborative`** — repeat until the user selects [A] Lock these in.
**At `guided`** — pillars are a major decision, so ask once; apply the chosen
revision and lock them in without a second confirmation round.
**At `autonomous`** — do not ask. Lock in the drafted pillars and record them via
`log_decision` with the alternatives considered.
> An `autonomous` run never issues the question, so "repeat until [A]" has no
> exit condition (`automation-modes.md:56`).
**Review mode check** — apply before spawning CD-PILLARS and AD-CONCEPT-VISUAL:
- `solo` → skip both. Note: "CD-PILLARS skipped — Solo mode. AD-CONCEPT-VISUAL skipped — Solo mode." Proceed to Phase 5.
- `lean` → skip both (not PHASE-GATEs). Note: "CD-PILLARS skipped — Lean mode. AD-CONCEPT-VISUAL skipped — Lean mode." Proceed to Phase 5.
- `full` → spawn as normal.
**After pillars and anti-pillars are agreed, spawn BOTH `creative-director` AND `art-director` via `Agent` in parallel before moving to Phase 5. Issue both `Agent` calls simultaneously — do not wait for one before starting the other.**
- **`creative-director`** — gate **CD-PILLARS** (`.claude/docs/director-gates/cd-pillars.md`)
Pass: full pillar set with design tests, anti-pillars, core fantasy, unique hook.
- **`art-director`** — gate **AD-CONCEPT-VISUAL** (`.claude/docs/director-gates/ad-concept-visual.md`)
Pass: game concept elevator pitch, full pillar set with design tests, target platform (if known), any reference games or visual touchstones the user mentioned.
Collect both verdicts. When CD-PILLARS returns APPROVE, present them together using a two-tab `AskUserQuestion`:
- Tab **"Pillars"**: present creative-director feedback. Options mirror the standard CD-PILLARS handling — `Lock in as-is` / `Revise [specific pillar]` / `Discuss further`.
- Tab **"Visual anchor"**: present the art-director's 2-3 named visual direction options. Options: each named direction (one per option) + `Combine elements across directions` + `Describe my own direction`. On **STRONG**, mark the dominant direction `(Recommended)`. On **CONCERNS** (the pillars do not yet differentiate a visual identity), show the art-director's reason instead of directions and offer `Revise pillars` / `Describe my own direction`.
The user's selected visual anchor (the named direction or their custom description) is stored as the **Visual Identity Anchor** — it will be written into the game-concept document and becomes the foundation of the art bible.
If the creative-director returns CONCERNS or REJECT on pillars, resolve pillar issues before asking for the visual anchor selection — visual direction should flow from confirmed pillars. Ask the Pillars question on its own first (same options, no Visual anchor tab); once the pillars are resolved, ask the Visual anchor question on its own. **NOT ASSESSED** from either gate (it lacked an input — `.claude/docs/director-gates.md`) is not an approval: name what was missing, and supply it and re-run that gate; failing that, treat a CD-PILLARS NOT ASSESSED like CONCERNS, and with no art-director directions offer only `Describe my own direction`.
---
### Phase 5: Player Type Validation
Using the Bartle taxonomy and Quantic Foundry motivation model, validate
who this game is actually for:
- **Primary player type**: Who will LOVE this game? (Achievers, Explorers,
Socializers, Competitors, Creators, Storytellers)
- **Secondary appeal**: Who else might enjoy it?
- **Who is this NOT for**: Being clear about who won't like this game is as
important as knowing who will
- **Market validation**: Are there successful games that serve a similar
player type? What can we learn from their audience size?
Ver no GitHub