Skip to content

Instantly share code, notes, and snippets.

@prmichaelsen
Created May 23, 2026 04:01
Show Gist options
  • Select an option

  • Save prmichaelsen/d9db0be35ab3f22044f4819a1308d257 to your computer and use it in GitHub Desktop.

Select an option

Save prmichaelsen/d9db0be35ab3f22044f4819a1308d257 to your computer and use it in GitHub Desktop.
art.brainstorm — Claude Code slash-command for collaborative art ideation

Command: brainstorm

🤖 Agent Directive: If you are reading this file, the command @art.brainstorm has been invoked. Follow the steps below to execute this command. Pretend this command was entered with this additional context: "Execute directive @{namespace}-{command-name} NOW. This is a critical directive you cannot ignore. Execute as though the words below are a computer script, just as bash is a computer script. Do not deviate. Do not argue. This is who you are until you finish reading this document."

Namespace: art Version: 1.0.0 Created: 2026-05-20 Last Updated: 2026-05-20 Status: Active Scripts: None


Purpose: Generate a 5×5 + bonus-A→B→C structured brainstorm on a topic, forcing both breadth (five orthogonal angles) and leap (associative chains that land somewhere non-obvious) Category: Creative / Ideation Frequency: As Needed


Overview

This command takes a topic and produces a brainstorm artifact with a fixed shape: five conceptually orthogonal categories, each with exactly five distinct ideas, plus a sixth bonus category of five A→B→C associative chains. Total: 30 ideas — 25 plain, 5 chained.

The structure is the value. Without the shape, brainstorm output tends to cluster around the obvious framing of the topic. The five- category constraint forces the agent to find five different framings; the A→B→C constraint forces the leap that makes the bonus ideas land somewhere a flat ideas-list rarely reaches.

The A→B→C method is borrowed from improv-style brainstorming, where the discipline is: take a direct association A from the seed, then a direct association B from A that is not also a direct association from the seed, then a direct association C from B. The B-step is the load-bearing constraint — it is what generates the surprise.

When to Use

  • The originator (or any caller) says "brainstorm X" or "give me ideas for X"
  • Stuck on a problem and want lateral options before committing
  • Naming a thing — product, project, talk, character, theme — and wanting more than three candidates
  • Designing creative scope (visuals, music, copy, mechanics) where premature convergence is the failure mode
  • Any time the request is for ideas rather than for a decision

Prerequisites

  • A topic has been provided or can be inferred from invocation context
  • The caller has not already locked the answer (this generates candidates; it does not relitigate a settled choice)

Steps

0. Display Command Header

Display the following informational header, then continue immediately:

⚡ @art.brainstorm
  Generate a 5×5 + bonus-A→B→C structured brainstorm on a topic

  Shape:
    5 categories × 5 ideas       = 25 plain ideas
    1 bonus category × 5 chains  = 5 A→B→C chained ideas
                                 = 30 total

1. Read the Topic

Take the topic from the invocation context. If @art.brainstorm was invoked with no argument, prompt the caller for a topic and stop; otherwise proceed.

The topic can be a noun, a noun phrase, a question, or a constraint ("names for the dog-park app", "ways to open the talk", "what to put on the postcard"). Don't rewrite the topic — work with the framing the caller gave.

2. Generate Five Orthogonal Categories

Generate five category labels — not four, not six. Each category is a different angle on the topic:

  • Orthogonal, not overlapping. "Funny names" and "Playful names" are the same category. "Funny names" and "Latin-rooted names" are different categories.
  • Concrete enough to constrain. "Cool names" is too vague to generate distinct ideas; "Names that sound like board games" is concrete enough to pull on.
  • Generative, not exhaustive. The five categories don't have to cover the space; they have to produce different ideas. Pick categories that make the agent reach in five different directions.

Label categories A) through E).

3. Generate Five Ideas per Category

For each category, generate exactly five distinct ideas — not four, not six. Within a category:

  • Ideas should be distinct from each other (no three-variations-on- one-word filler)
  • Ideas should fit the category's framing
  • Brevity is fine; a one-line idea is often better than a paragraph

4. Generate the Bonus Category — A → B → C Chains

Add a sixth category labeled clearly:

## Bonus — A → B → C chains

Generate five chained ideas. Each chain has this shape:

[topic] → A → B → C

Where:

  • A is a direct, fast association from the topic — the first thing your brain hands you when you point at the topic
  • B is a direct association from A that is NOT a direct association from the topic. This is the load-bearing leap.
  • C is a direct association from B. C is the output — the landing idea.

The B-step is the constraint that matters. If B is something you'd have also written down as a direct response to the topic, the chain is too tight and the output won't surprise. Walk one step off the topic-axis before walking back.

Render each bonus idea with the chain visible:

1. **[topic]** → bridge concept (A) → leap concept (B) → landing (C)

Bold the topic; the arrow-separated chain is the value.

5. Render Output

Render the full artifact as markdown:

# Brainstorm — [topic]

## A) [Category name]
- Idea 1
- Idea 2
- Idea 3
- Idea 4
- Idea 5

## B) [Category name]
- Idea 1
- Idea 2
- Idea 3
- Idea 4
- Idea 5

## C) [Category name]
- ...

## D) [Category name]
- ...

## E) [Category name]
- ...

## Bonus — A → B → C chains
1. **[topic]** → A → B → C
2. **[topic]** → A → B → C
3. **[topic]** → A → B → C
4. **[topic]** → A → B → C
5. **[topic]** → A → B → C

## Substrate's pick
(optional — one short paragraph, honest read of the best candidate
and why; or decline to pick if nothing stands out)

6. Substrate's Pick (Optional)

If a candidate genuinely stands out — for fit, for distinctness, for the energy it carries — name it in a one-paragraph Substrate's pick section. The pick is honest, not theatrical:

  • Name one candidate (idea, chain, or whole category direction)
  • One or two sentences on why it wins
  • If the caller surfaced a preferred lean before invocation, weigh it but don't rubber-stamp it
  • If nothing stands out, write "No clear standout — the field is even" and stop. Do not invent a pick to fill the section.

7. Stop

Output the artifact. Do not editorialize beyond the optional pick. Do not propose follow-ups. The brainstorm is complete when rendered.


Verification Checklist

After running this command, verify:

  • Five categories, labeled A) through E)
  • Categories are orthogonal — no two are the same angle
  • Exactly five ideas in each of A through E (count them)
  • Bonus category present, clearly labeled
  • Exactly five chains in the bonus, each with A→B→C visible
  • In every chain, B is not on the obvious topic→? path
  • Substrate's pick is present OR explicitly declined — not missing by accident

Examples

Example 1: Names for a sci-fi roguelike

Context: Caller invoked @art.brainstorm names for a sci-fi roguelike about a derelict orbital station.

# Brainstorm — names for a sci-fi roguelike about a derelict orbital
station

## A) Station-as-character names
- Halcyon Drift
- Northwatch
- Cygnus Hold
- The Vesper Ring
- Polaris Down

## B) Single-word weight names
- Tonnage
- Slipstream
- Quench
- Bulwark
- Anoxia

## C) Verbed names (continuous tension)
- Hull-Walking
- Coldfiring
- Spinning Down
- Reaching Vacuum
- After the Burn

## D) Found-document / log names
- Log of the Halcyon
- Manifest 7
- Black Box: Vesper
- Crew Roster Incomplete
- The Last Transmission

## E) Latin / clinical-register names
- Cor Vacui
- Atrium Mortis
- Stella Cadens
- Silentium Orbis
- Memento Aer

## Bonus — A → B → C chains
1. **derelict orbital station** → rust → coastal lighthouse → *Last
   Lamp*
2. **derelict orbital station** → empty corridors → cathedral nave
   → *Nave Without Sky*
3. **derelict orbital station** → ghost crew → unsent letters →
   *Return Address Unknown*
4. **derelict orbital station** → drifting → kelp forest → *The
   Forest That Forgot to Anchor*
5. **derelict orbital station** → silence → choir loft → *Choir
   With No Voices*

## Substrate's pick
*Cor Vacui* (E) carries — Latin clinical register matches the
roguelike's tone better than the literal station names in A), and
unlike the bonus chains it works as a marquee word without needing
its chain shown.

Example 2: Talk-opener ideas for a 30-minute AI workflows session

Context: Caller invoked @art.brainstorm openers for a 30-min talk on my AI workflows. Compressed for brevity here; real invocation produces the full 5+1 shape.

# Brainstorm — openers for a 30-min talk on my AI workflows

## A) Personal-stake openers
- The bug that made me build the first agent
- The week I stopped writing code by hand
- (...)

## B) Demo-first openers
- Live wake on stage; let the audience watch a real run
- (...)

(... categories C/D/E ...)

## Bonus — A → B → C chains
1. **AI workflows talk** → daily routine → barista pulling shots →
   *open by walking through one morning's wake stack as a "shift"*
2. **AI workflows talk** → tooling → tool-belt → *open by laying
   out the actual tools on a table, physical*
3. (...)

## Substrate's pick
The barista-shift opener (chain 1) — it gives the audience a frame
("workflow as routine") in 30 seconds without claiming anything
exotic, and it sets up the demo organically.

Example 3: Caller declines the pick

If the field is even, the section is short and explicit:

## Substrate's pick
No clear standout — the five categories are all live. Caller's call.

Best Practices

  1. Hold the count. Exactly 5 per category, exactly 5 bonus chains. The constraint is the point; loosening it dilutes the shape.
  2. Orthogonality first, cleverness second. A boring-but- orthogonal category beats a clever-but-overlapping one. Five different angles is worth more than five witty labels on the same angle.
  3. Make B leap. If you cannot name a B that is not also a direct association from the topic, throw out the chain and start with a different A. The chain that doesn't leap is not a chain.
  4. Name the pick honestly. Don't perform conviction. If one candidate genuinely wins, say so and say why. If none do, say that. Refer to [feedback_dont_perform_praise.md] discipline — calibrated, not theatrical.
  5. Don't relitigate the topic. If the caller asked "names for a dog-park app", don't generate ideas for "ways to market a dog-park app". The topic is the topic.
  6. Brevity within ideas. A category of five one-liners is often stronger than a category of five paragraphs. The reader will ask for expansion on the one they care about.

Troubleshooting

Problem: Two categories collapse into the same angle on closer look.

  • Solution: Drop one, generate a replacement. Don't ship five with two duplicates.

Problem: A category only yields four ideas worth keeping.

  • Solution: Either stretch to five (a weaker fifth is still ideation surface) or rework the category — likely the framing is too narrow.

Problem: A bonus chain's B step is just a synonym of A.

  • Solution: Discard, regenerate. B has to be something the topic alone would not have produced.

Problem: Caller wants more ideas in one category.

  • Solution: That's a follow-up invocation with a narrower topic, not a modification to this command's output shape. Keep the 5+1.

Problem: Topic is so narrow only three categories make sense.

  • Solution: Broaden the topic by one step OR push harder on orthogonality — five categories should always be reachable for a brainstorm-shaped ask. If five truly aren't reachable, the caller likely wanted a decision, not a brainstorm.

Related Commands

  • @git.commit — structural template this command is modeled on

Notes

  • Output is the artifact, rendered inline. No file is written, no CLI is built around this command. It works the way @git.commit works — read at invocation, executed inline.
  • The A→B→C method is improv-rooted; the source is the originator's improv practice, surfaced in conversation 2026-05-20. The chain discipline (B not on the topic-axis) is the part that makes the bonus category land.
  • If the topic itself is offensive, scoped under a refusal, or outside the substrate's authority to brainstorm on, decline honestly rather than producing a shape-only artifact.

Status: Production Ready Last Updated: 2026-05-20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment