brainstorm
Brainstorm — Structured Requirements Interview
Reduce ambiguity to near-zero through targeted questions. Activated within plan mode after a quick Ariadne/Clio landscape scan — use that context to ask informed, codebase-grounded questions.
When to Use
- Request is vague ("make it faster", "improve the UX")
- Scope touches multiple systems with unclear boundaries
- Acceptance criteria are implied, not stated
- Multiple valid approaches exist and user preference matters
- User explicitly asks to brainstorm or think through a problem
When NOT to Use
- Request is clear and well-scoped ("add a logout button to the navbar")
- User already provided detailed requirements
- Trivial tasks (typo fixes, config changes)
Workflow
Phase 1 — Intent Classification
Classify the request into one of these types:
| Type | Signal | Interview Focus |
|---|---|---|
| Refactoring | "refactor", "restructure", "clean up" | What behavior to preserve, what to change |
| Build | "create", "add", "new feature" | Scope boundaries, MVP vs full vision |
| Mid-sized | Scoped feature, specific deliverable | Exact outputs, explicit exclusions |
| Collaborative | "help me plan", "let's figure out" | Open exploration, incremental clarity |
| Architecture | "how should we structure", system design | Constraints, scale, lifespan |
| Research | Investigation needed, path unclear | Exit criteria, expected outputs |
State the classification and confidence before proceeding.
Phase 2 — Ambiguity Scoring
Score ambiguity across 4 dimensions (High / Medium / Low):
| Dimension | High Ambiguity | Low Ambiguity |
|---|---|---|
| Scope | "improve performance" | "optimize the /users query" |
| Acceptance | "should work well" | "response time < 200ms" |
| Approach | multiple valid paths | one obvious solution |
| Boundaries | unclear what NOT to touch | explicit exclusions stated |
Report the scores. Focus questions on the highest-ambiguity dimensions first.
Phase 3 — Targeted Interview
Ask ONE question at a time using AskUserQuestion. Rules:
- Most ambiguous dimension first — attack the biggest unknown
- Ground in codebase/external context — reference Ariadne/Clio findings already in conversation. "I see 3 auth patterns in the codebase: X, Y, Z — which should we target?" beats "What's the scope?"
- Multi-choice when possible — concrete options from codebase/research findings are faster than open-ended questions
- Build on previous answers — each question should narrow the remaining ambiguity
- State why you're asking — "I'm asking because this determines whether we need a new database table or can reuse the existing one"
After each answer, mentally re-score the ambiguity dimensions. Continue until all dimensions score Low.
Do NOT ask more than 5 questions total. If ambiguity remains after 5, summarize what you know and what's still unclear — let the user decide whether to clarify further or proceed with assumptions.
Phase 4 — Requirements Summary
Output a structured summary of what you learned:
## Requirements Summary
**Intent**: [type] — [one-sentence description]
**Scope**:
- IN: [what's included]
- OUT: [what's explicitly excluded]
**Acceptance Criteria**:
1. [Concrete, verifiable criterion]
2. [Another criterion]
**Approach**: [chosen direction, if decided]
**Key Decisions**:
- [Decision]: [what user chose and why]
**Open Items** (if any):
- [remaining ambiguity to resolve via deeper Ariadne/Clio exploration]
After outputting the summary, proceed — plan mode continues with deep targeted exploration on the clarified scope.
Rules
- Skill, not agent — you run as the main agent. You CAN and SHOULD use
AskUserQuestionfor every question. - Use existing context, do not explore — reference codebase and external findings already in the conversation (from prior Ariadne/Clio landscape scan). Do not spawn new exploration.
- Do NOT write files — output the requirements summary in conversation. It feeds into plan mode naturally.
- Do NOT propose solutions — you gather requirements. Deep exploration and planning happen after.
- 5 question maximum — respect the user's time. If you cannot reduce ambiguity in 5 questions, summarize and move on.
- Match the user's language — if they write in Vietnamese, interview in Vietnamese.
More from trancong12102/agentskills
oracle
Deep analysis and expert reasoning. Use when the user asks for 'oracle', 'second opinion', architecture analysis, elusive bug debugging, impact assessment, security reasoning, refactoring strategy, or trade-off evaluation — problems that benefit from deep, independent reasoning. Do not use for simple factual questions, code generation, code review (use council-review), or tasks needing file modifications.
93react-web-advanced
Web-specific React patterns for type-safe file-based routing, route-level data loading, server-side rendering, search param validation, code splitting, and list virtualization. Use when building React web apps with route loaders, SSR streaming, validated search params, lazy route splitting, or virtualizing large DOM lists. Do not use for React Native apps — use react-native-advanced instead.
45react-advanced
Advanced React patterns and conventions for data fetching, tables, forms, state machines, client state management, schema validation, and testing. Use when tackling complex React problems — not simple component questions, but multi-concern tasks like server-driven tables with filtering, multi-step wizards, eliminating useEffect, Suspense architecture, choosing between state management approaches, or designing data flow across server/client/URL/form state. Do not use for web-specific routing/SSR or React Native-specific navigation/performance.
45react-native-advanced
React Native and Expo patterns for navigation, data fetching lifecycle, infinite scroll lists, form handling, state persistence, authentication routing, gesture-driven animations, bottom sheets, push notifications, and OTA updates. Use when building Expo/React Native apps that need data prefetching without route loaders, auth guard routing, infinite scroll with FlashList, gesture-driven animations, or native platform integration (push notifications, OTA updates, MMKV persistence). Do not use for React web apps.
44typescript-advanced
Advanced TypeScript type system patterns for generics, conditional types, mapped types, template literals, and utility types. Use when implementing complex type logic, creating reusable type utilities, or enforcing type safety beyond basic annotations — discriminated unions with exhaustive checks, branded/opaque types for domain safety, satisfies vs as const decisions, NoInfer for inference control, module augmentation for third-party types, or choosing between hand-rolled types and type-fest utilities. Do not use for basic TypeScript syntax or simple type annotations.
42rust-advanced
Advanced Rust patterns for ownership, traits, async, error handling, macros, type system tricks, unsafe, and performance. Use when tackling complex Rust problems — not basic syntax, but multi-concern tasks like designing cancellation-safe async services, choosing between trait objects and generics, building typestated APIs, structuring error hierarchies across crate boundaries, writing proc macros, or optimizing hot paths with zero-cost abstractions. Do not use for basic Rust syntax, simple CLI tools, or beginner ownership questions.
42