Brainstorming
Turn an idea into a design the user has agreed to, through dialogue — then
hand it to planning. This is a flexible skill with one firm gate, stated
once: implementation starts after the user approves a design. Small work gets
a proportionally small design — a few sentences can be enough — rather than
an exemption, because simple-looking projects are where unexamined
assumptions cost the most rework.
The flow
- Explore project context first. Files, docs, recent commits — before
asking the user anything they shouldn't have to repeat.
- Check scope before refining. A request that bundles several
independent subsystems (chat, billing, storage, analytics) gets decomposed
first: what are the pieces, how do they relate, what order. Then design
the first piece through the normal flow. Don't spend questions polishing
details of something that needs splitting.
- Ask focused questions, one decision at a time. One question per turn by
default; for an expert user facing orthogonal decisions, batch a few into one
turn via the host's question UI rather than forcing strict serialization.
Multiple choice when it fits, open-ended when it doesn't. Aim at purpose,
constraints, and success criteria.
- Propose two or three approaches with trade-offs. Lead with the
recommendation and the reasoning, not a neutral menu.
- Present the design in sections, each scaled to its complexity — a few
sentences when straightforward, a few hundred words when nuanced. Confirm
each section before the next. Cover architecture, components, data flow,
error handling, and testing — and, for work an agent or capped spawn will
execute, whether the turn/time/cost budget suffices for the expected work.
- Record the agreed design where the project keeps specs (user
preference wins; a dated file under the repo's design-docs convention is a
sensible default). Then self-review it with fresh eyes: placeholders or
vague requirements, internal contradictions, scope too large for one
implementation plan, requirements readable two ways. Fix inline.
- The user reviews the written spec. Requested changes loop back;
approval hands the spec to the planning tool that owns execution — keel
for a governed series, plan mode or your orchestrator otherwise.
Design for isolation
Break the system into units that each have one clear purpose, communicate
through defined interfaces, and can be understood and tested independently.
Two checks: can someone tell what a unit does without reading its internals,
and can the internals change without breaking consumers? Well-bounded units
are also easier to hold in context — reasoning and edits are more reliable
when files are focused, and a file that has grown large is usually doing too
much.
In existing codebases
Explore the current structure before proposing changes, and follow its
patterns. Where existing code has problems that genuinely affect the work —
a tangled module the feature must touch — targeted improvement belongs in the
design. Unrelated refactoring doesn't.
Working principles
One focused question per turn (batch orthogonal decisions for an expert user) ·
cut features that aren't needed yet, ruthlessly ·
alternatives before settling · validate incrementally rather than presenting
a finished monolith · go back when something stops making sense.
Boundaries
Work already specified to execution level goes straight to planning or
implementation. A user thinking aloud gets assessment, not artifacts — the
deliverable of a discussion turn is your judgment, until they ask for the
design.
1---2name: brainstorming3description: Turn an idea into an agreed design before implementation — explore project context, ask clarifying questions one at a time, propose two or three approaches with trade-offs and a recommendation, present the design in sections for approval, and record the agreed design. Use when the user proposes a feature, component, behavior change, or project whose requirements or shape are not yet pinned ('let's build', 'I want to add', 'how should we approach'), or when one request bundles several independent subsystems and needs decomposition before any single design is refined. Design before code holds for small work too — a simple project gets a proportionally short design, not an exemption. Hands the agreed design to the planning tool that owns execution (keel for governed series, plan mode or your orchestrator otherwise). Not for work already specified to execution level, and not for discussion turns where the user is thinking aloud and wants assessment rather than artifacts.4---56# Brainstorming78Turn an idea into a design the user has agreed to, through dialogue — then9hand it to planning. This is a **flexible** skill with one firm gate, stated10once: implementation starts after the user approves a design. Small work gets11a proportionally small design — a few sentences can be enough — rather than12an exemption, because simple-looking projects are where unexamined13assumptions cost the most rework.1415## The flow16171. **Explore project context first.** Files, docs, recent commits — before18 asking the user anything they shouldn't have to repeat.192. **Check scope before refining.** A request that bundles several20 independent subsystems (chat, billing, storage, analytics) gets decomposed21 first: what are the pieces, how do they relate, what order. Then design22 the first piece through the normal flow. Don't spend questions polishing23 details of something that needs splitting.243. **Ask focused questions, one decision at a time.** One question per turn by25 default; for an expert user facing orthogonal decisions, batch a few into one26 turn via the host's question UI rather than forcing strict serialization.27 Multiple choice when it fits, open-ended when it doesn't. Aim at purpose,28 constraints, and success criteria.294. **Propose two or three approaches** with trade-offs. Lead with the30 recommendation and the reasoning, not a neutral menu.315. **Present the design in sections,** each scaled to its complexity — a few32 sentences when straightforward, a few hundred words when nuanced. Confirm33 each section before the next. Cover architecture, components, data flow,34 error handling, and testing — and, for work an agent or capped spawn will35 execute, whether the turn/time/cost budget suffices for the expected work.366. **Record the agreed design** where the project keeps specs (user37 preference wins; a dated file under the repo's design-docs convention is a38 sensible default). Then self-review it with fresh eyes: placeholders or39 vague requirements, internal contradictions, scope too large for one40 implementation plan, requirements readable two ways. Fix inline.417. **The user reviews the written spec.** Requested changes loop back;42 approval hands the spec to the planning tool that owns execution — keel43 for a governed series, plan mode or your orchestrator otherwise.4445## Design for isolation4647Break the system into units that each have one clear purpose, communicate48through defined interfaces, and can be understood and tested independently.49Two checks: can someone tell what a unit does without reading its internals,50and can the internals change without breaking consumers? Well-bounded units51are also easier to hold in context — reasoning and edits are more reliable52when files are focused, and a file that has grown large is usually doing too53much.5455## In existing codebases5657Explore the current structure before proposing changes, and follow its58patterns. Where existing code has problems that genuinely affect the work —59a tangled module the feature must touch — targeted improvement belongs in the60design. Unrelated refactoring doesn't.6162## Working principles6364One focused question per turn (batch orthogonal decisions for an expert user) ·65cut features that aren't needed yet, ruthlessly ·66alternatives before settling · validate incrementally rather than presenting67a finished monolith · go back when something stops making sense.6869## Boundaries7071Work already specified to execution level goes straight to planning or72implementation. A user thinking aloud gets assessment, not artifacts — the73deliverable of a discussion turn is your judgment, until they ask for the74design.