skills/brainstorming/SKILL.md
Use when turning a fuzzy idea into a refined design through dialogue — across software, writing, talks, events, naming, activities, or any creative/design task. Triggers: 'brainstorm', 'help me think about/through', 'figure out', 'work through', 'I have this idea', 'let's design', 'flesh this out'. Domain-agnostic. Not for: open-ended ideation with no anchor ('what should I build?'), implementing from a finalized spec, narrow binary decisions ('X or Y?'), retrospective review, mechanical refactors, or reframing whether the presenting question is the "real" one.
npx skillsauth add ahgraber/skills brainstormingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Inform the user when this skill is being invoked by name: brainstorming.
The skill is a leash on the assistant's reflexes, not a ritual the user performs. Three non-negotiables:
HARD-GATE on artifacts and handoffs.
Verbal consolidation is not gated — when the user signals readiness, do it.
Writing files, scaffolding code, producing spec files, or invoking another skill (e.g., sdd-propose, handoff) requires an explicit user request in the turn.
Not gated: parallel-subagent dispatch within lateral or steelman — those are internal moves that return ideation material to this conversation, not handoffs to another skill.
Narrate, don't gate.
Take the next move.
In the same message, name the move in one short line, then do it.
Do NOT ask permission between moves ("want me to X?") — it kills momentum and offloads pacing onto the user who came here because they didn't know where to go.
The user redirects on the next turn ("back up", "wait, instead…", "no, push on X") — trust them to course-correct after seeing output, not before.
Moves with user-visible cost (parallel-subagent dispatch in lateral or multi-steelman) get one-line narration before firing.
The fire-conditions for those moves are the gate; if conditions aren't met, don't fire.
Agent-paced, user-steerable. The agent chooses the next move based on user signals. The user steers by dissent, not by picking from menus. When the user redirects, honor it without argument.
The agent picks one move per turn. Moves are cued inline (one line, then executed) — never announced as phase transitions.
| Move | Trigger | What it does |
| -------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| reflect | User is producing new material, exploring aloud, or has just answered | Mirror back the shape ("sounds like you're partly deciding X and partly venting about Y") |
| diverge | Enough clarity to propose; user hasn't picked a direction | Offer 2–3 approaches that vary on the load-bearing axis. Lead with a recommendation; if user has expressed a lean, lead with the case for not-X first. |
| lateral | Option set looks homogeneous; user wants novelty; high-ambiguity domain | Dispatch parallel persona subagents in isolated context for genuinely fresh angles. Narrate-then-dispatch when fire-conditions are met (see references/lateral.md). |
| steelman | A proposal is on the table; decision is substantive | Apply adversarial lenses (skeptic, adversary, future-self, audience, novice); produce a refined proposal. Cross-context for high-stakes. See references/steelman.md. |
| name-tension | A current claim conflicts with something stated earlier — by user or by agent | Flag the contradiction explicitly; cite the earlier claim. Includes self-tension (agent softening its own earlier sharper read). |
| close | User signals readiness or asks to wrap up | Verbal consolidation: problem, approaches, direction, trade-offs, exclusions. Not gated. HARD-GATE engages only if user requests an artifact or skill handoff. |
Selecting the next move: read the user's signals before acting.
diverge; don't stall on reflect fishing for more context.reflect.diverge.diverge homogeneous and stakes justify dispatch, or user explicitly asks for lateral → lateral.steelman.name-tension if there's a conflict, reflect otherwise.name-tension (self).close.The agent maintains persistent agent-only working notes across turns to fight cross-turn thread loss.
Schema, write/read rhythms, and surface rules live in references/case-file.md.
Quick reference:
$TMPDIR/brainstorming-<topic-slug>.mdunderstood, open, discarded, tensions, engagementname-tension or close.These counter the assistant's default reflexes.
reflect, not fresh options.
Don't pile structure on a flow that's still diverging.name-tension (self).engagement in case file and probe the substance via name-tension (self) or restate the strongest counter.lateral runs, combine parallel subagents with verbalized sampling and selection-for-distance (see references/lateral.md).writing-plans, sdd-propose, etc.) — the user chooses what (if anything) comes nextlateral (parallel subagents) is the divergence mechanismVerbal consolidation, in-conversation. The user directs what (if anything) comes next. No file is required. No implementation skill is invoked. If the user asks for a handoff, artifact, or next skill, honor the specific request — do not default to one.
references/case-file.md — schema, rhythms, surface rulesreferences/diverge.md — batched mode, lead-against-lean, shape-distinct constraintreferences/lateral.md — parallel subagent dispatch, persona roster, anti-homogeneity tactics (verbalized sampling, MMR selection, persona distance), no-probabilities-to-user rulereferences/steelman.md — devil's advocate vs multi-steelman, cross-context dispatch, adversarial lenses, distinct-roster ruledevelopment
Use when the user wants rigorous, non-sycophantic editorial feedback on a draft, essay, blog post, or argument through back-and-forth dialogue — pressure-testing thesis, structure, argument, clarity, tone, and evidence. Triggers: "be my sparring partner", "pressure-test this draft", "poke holes in my argument", "is this ready to publish", "sharpen this post", "where is this weak". Not for one-shot copyediting, proofreading, or ghostwriting.
testing
Use when distilling the through-line gist of one or more sources — the spine, argument, tension, or recurring frame running through a set of documents, notes, research, or transcripts, OR across the ideas within a single rich piece — into a few concise paragraphs. Triggers: "synthesize", "what's the through-line/gist", "extract the insight", "pull these together". Not for faithful summary or condensation that covers what a source says, nor for comparisons or catalogs where enumeration is the deliverable.
development
Use when writing or reviewing tests in any language, or diagnosing a suite that is slow, brittle, or hard to read. Triggers: "write tests", "how should I test this", "what kind of test", "test is flaky/fragile", "should I mock this", "test is hard to read". For Python-specific guidance see `python-testing`.
development
Use when writing, debugging, or explaining Strudel live-coding music patterns — mini-notation syntax, pattern functions (fast/slow/every/off/stack), synth/sample selection, audio effects, scale/chord/voicing API, or EDM production recipes. Triggers: "write a Strudel pattern", "how do I make a bassline in Strudel", "what does .every() do", "strudel drum beat", "strudel chord voicing", any Strudel code question.