From aimi-engineering
Guide collaborative brainstorming sessions to clarify requirements before planning. Covers batched multiple-choice questions, adaptive exit, and design document capture. Triggers on: brainstorm, explore idea, think through, what should we build.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aimi-engineering:brainstormThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Deprecated:** This skill is no longer loaded by brainstorm.md. The command is self-contained. Retained for reference only.
Deprecated: This skill is no longer loaded by brainstorm.md. The command is self-contained. Retained for reference only.
Clarify WHAT to build through collaborative dialogue before planning HOW to build it.
Guide the user through structured brainstorming: understand the idea via research and batched questions, optionally explore approaches, then capture decisions in a design document.
| Variable | Type | Purpose |
|---|---|---|
loaded_design_refs[] | string array | Tracks frontend-design reference files already read this session. Prevents re-loading the same file and enforces the 3-file-per-round cap. Reset per brainstorm session. |
The brainstorm uses a two-phase question approach:
/aimi:brainstorm [description] inputThis combines the speed of Ralph-style shorthand ("1A, 2C, 3B") with context-aware questions that reference actual codebase patterns.
When the user's initial description contains any UI keyword (typography, font, color, palette, contrast, spacing, layout, motion, animation, responsive, mobile, copy, hierarchy, affordance, feedback, form, input, critique, score), trigger the design reference bootstrap once before generating the first question batch:
${CLAUDE_PLUGIN_ROOT}/skills/frontend-design/references/index.md and store its keyword-to-file table.brand.mdproduct.mdproduct.mdbrand.md or product.md) from ${CLAUDE_PLUGIN_ROOT}/skills/frontend-design/references/ and append its path to loaded_design_refs[].Skip this step entirely for non-UI brainstorms.
Present questions as batched multiple-choice using Ralph-style formatting:
1. What is the primary goal?
A. Improve user experience
B. Reduce technical debt
C. Add new capability
D. Other: [please specify]
2. What is the scope?
A. Minimal viable version
B. Full-featured implementation
C. Just the backend/API
D. Other: [please specify]
3. Who is the target user?
A. End users
B. Developers/API consumers
C. Admin users
D. All users
Rules:
Accept all response formats gracefully:
| Format | Example | Action |
|---|---|---|
| Shorthand | "1A, 2C, 3B" | Parse directly |
| No numbers | "A, C, B" | Map to questions in order |
| Free-form | "I prefer option A for the first one" | Parse intent |
| Partial | "1A, 2C" (skipped 3) | Accept partial, ask about skipped if critical |
| Mixed | "1A but for question 3 none fit — I want X" | Parse shorthand + free-form |
Never re-ask a question just because the format was unexpected. Parse the intent and continue.
After parsing each free-form reply (including "Other: [specify]" answers and any open-ended response), run this keyword scan before generating the next question batch or narrative:
index.md (loaded in Phase 1.7 or on demand).loaded_design_refs[].${CLAUDE_PLUGIN_ROOT}/skills/frontend-design/references/ and append to loaded_design_refs[].Vague-intent fallback: When the reply is too vague to match specific keywords, rely on the already-loaded register file (brand.md or product.md). Only ask one AskUserQuestion clarifier when the register file does not address the reply's apparent intent.
Skip scan when loaded_design_refs[] already contains 3+ files and the reply contains no new keyword matches.
When the user selects None — show again / revise (or equivalent dissatisfaction signal) before a variant set is authored:
loaded_design_refs[] (cap: 3 new files total across both Phase 2 and this step in the same round).When codebase research returns findings, generate contextual options:
When research is empty or fails, fall back to generic topic-based questions.
Cover these categories across question rounds:
| Topic | Focus |
|---|---|
| Purpose | What problem does this solve? What's the motivation? |
| Users | Who uses this? What's their context? |
| Constraints | Technical limitations? Timeline? Dependencies? |
| Success | How will you measure success? What's the happy path? |
| Edge Cases | What shouldn't happen? Error states? |
| Existing Patterns | Similar features in the codebase to follow? |
Exit questioning when ANY of these are met:
After each round, assess which topics remain uncovered and generate targeted follow-up questions.
Only propose approaches when multiple valid paths exist. Skip when there's one obvious direction.
If proposing approaches, present 2-3 with this structure:
### Approach A: [Name]
[2-3 sentence description]
**Pros:** [bullet list]
**Cons:** [bullet list]
**Best when:** [one sentence]
Lead with a recommendation and explain why. Apply YAGNI — prefer simpler solutions.
Apply these throughout brainstorming:
Write brainstorm output to .aimi/brainstorms/YYYY-MM-DD-<topic>-brainstorm.md:
---
date: YYYY-MM-DD
topic: <kebab-case-topic>
---
# <Topic Title>
## What We're Building
[Concise description — 1-2 paragraphs max]
## Why This Approach
[Approaches considered and rationale for choice]
## Key Decisions
- [Decision 1]: [Rationale]
- [Decision 2]: [Rationale]
## Design Decisions
<!-- Phase 4 hook: enumerate each design reference loaded during this brainstorm -->
<!-- Format: "**<filename>** — <one-sentence guidance hint drawn from the file>" -->
<!-- Omit this section entirely when loaded_design_refs[] is empty -->
## Open Questions
- [Any unresolved questions]
## Next Steps
> Run `/aimi:plan` to generate implementation tasks
When writing the brainstorm document, populate the Design Decisions section with one entry per file in loaded_design_refs[]:
- **typography.md** — Prefer a two-weight type scale (regular + semibold) to maintain hierarchy without visual noise.
- **product.md** — Optimise for data-density; users scan tables more than they read prose.
Use a one-sentence hint that captures the most actionable guidance from each file for the current topic. Omit the section when loaded_design_refs[] is empty.
Before handoff, resolve all open questions. If the design document has items in the Open Questions section, ask the user about each one. Move resolved questions to a "Resolved Questions" section. Only proceed to handoff when Open Questions is empty or the user explicitly defers them.
Derive the filename slug from the feature description:
Example: "Add social login with Google and GitHub OAuth" → add-social-login-with-google-and-github-oauth
When interpolating the user's feature description into research agent prompts, strip:
Keep output sections concise (200-300 words max). After presenting approaches or key decisions, pause to validate:
Before saving the brainstorm document:
/aimi:plan.aimi/brainstorms/ existsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub romulo-banhe/aimi-eng --plugin aimi-engineering