brainstorming
Brainstorming
Structured pre-implementation design exploration. Transforms a vague idea into a written spec through focused, one-at-a-time questioning before any code is written, any plan is created, or any architecture is decided. The spec is the deliverable -- everything else follows from it.
No code until the spec is written and approved.
When to Use
- The user says "I want to build X" but has no written requirements
- A feature request exists as a sentence or two with no detail
- The user asks "how should I build X" before defining what X actually is
- Someone says "let's brainstorm" or "help me figure this out"
- A problem statement exists but the solution space is unexplored
Quick Start
/brainstorming user authentication for a SaaS app
/brainstorming migrate our monolith to services
/brainstorming # asks what to explore
If $ARGUMENTS is provided, use it as the initial topic and skip straight to Phase 1. If no argument, ask: "What idea, feature, or problem would you like to explore?"
Workflow
This skill uses guided phases -- each phase is a separate file loaded one at a time. Every phase ends with a gate where you must wait for user confirmation before proceeding. Do not skip phases or merge them.
| Phase | File | What it covers |
|---|---|---|
| 1 | Intake | Read context, classify maturity, summarize understanding |
| 2 | Divergence | Expand problem space with one-at-a-time questions across 7 categories |
| 3 | Convergence | Narrow to concrete scope, lock must-haves and non-goals |
| 4 | Spec Writing | Write full spec from gathered material, run quality checklist |
| 5 | Approval | Get explicit user approval, hard-gate implementation |
Start by loading Phase 1. After the user confirms each phase, load the next. Never load multiple phases at once. Never skip a phase.
Critical Rules
- No code until the spec is approved. Not pseudocode, not scaffolding, not "just a quick example."
- One question per message. Compound questions produce shallow answers.
- Open questions before closed questions. Explore before narrowing.
- Challenge assumptions, not people. "Is X a hard requirement, or an assumption we should test?"
- The user defines scope, not the agent. Surface possibilities through questions, let the user decide.
- Non-goals are as important as goals. A spec without explicit non-goals has undefined boundaries.
- Acceptance criteria must be testable. "It should be fast" is not testable. "Under 200ms at p95" is.
- Scale depth to complexity. Simple features get short specs. System redesigns get thorough ones.
- Resolve contradictions before locking scope.
- The spec is a living document until approved.
Question Technique
| Principle | Meaning |
|---|---|
| One at a time | One question, one message |
| Open before closed | "What" and "why" first; "which" and "would you prefer" later |
| Challenge assumptions | When something is stated as obvious, ask what would happen if it were not true |
| Surface constraints early | Constraints eliminate solution space -- the sooner known, the less rework |
| Offer options when narrowing | Present 2-3 concrete choices instead of open-ended questions during convergence |
| Name the silence | If an important topic has not come up, ask about it explicitly |
See question-playbook for the full catalog.
Anti-Patterns
| Anti-Pattern | Fix |
|---|---|
| Solution jumping | Stay in divergence until goals and constraints are clear |
| Compound questions | One question per message |
| Leading questions | Ask neutral: "What scale needs exist?" not "Should we use microservices?" |
| Premature implementation | Hard-gate: no code until spec is approved |
| Fake consensus | Probe: "Can you walk me through how you'd use this?" |
| Scope creep during convergence | Park in "future considerations", re-lock scope |
See anti-patterns for the full guide.
Reference Files
| Reference | Contents |
|---|---|
| question-playbook | Full catalog of question types with example phrasings |
| spec-template | Output template the spec must follow |
| anti-patterns | Failure modes that derail brainstorming |
| when-to-exit | Criteria for "done" vs. "needs more rounds" |
Integration with Other Skills
| Situation | Recommended Skill |
|---|---|
| Spec approved, ready for planning | writing-plans |
| Complex requirements, need stakeholder analysis | product-manager role |
| Spec reveals architectural decisions needed | architect role |
| Spec approved, ready for direct TDD | test-driven-development |
| Acceptance criteria need test plan detail | qa-engineer role |
| API design decisions | api-design |
| Database schema decisions | database-design |
More from krzysztofsurdy/code-virtuoso
solid
SOLID principles for object-oriented design with multi-language examples (PHP, Java, Python, TypeScript, C++). Use when the user asks to review SOLID compliance, fix a SOLID violation, evaluate class design, reduce coupling, improve extensibility, or apply Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, or Dependency Inversion principles. Covers motivation, violation detection, refactoring fixes, and real-world trade-offs for each principle.
47agentic-rules-writer
Interactive tool to generate tailored rules and instruction files for any AI coding agent. Use when the user asks to set up agent rules, configure Claude Code instructions, create Cursor rules, write Windsurf rules, generate Copilot instructions, or establish consistent AI coding standards for a team. Supports 13+ agents (Claude Code, Cursor, Windsurf, Copilot, Gemini, Codex, Cline, OpenCode, Continue, Trae, Roo Code, Amp) with global, team-shared, and dev-specific scopes. Defers to the `using-ecosystem` meta-skill for ecosystem discovery (skills, agents, recommendations) and runs an interactive questionnaire for workflow preferences.
47refactoring
Comprehensive skill for 89 refactoring techniques and 22 code smells with practical examples. Use when the user asks to refactor code, detect code smells, improve code quality, reduce complexity, or clean up technical debt. Covers composing methods, moving features between objects, organizing data, simplifying conditionals and method calls, dealing with generalization, and detecting smells across bloaters, OO abusers, change preventers, dispensables, and couplers with before/after comparisons and step-by-step mechanics.
42clean-architecture
Clean Architecture, Hexagonal Architecture (Ports and Adapters), and Domain-Driven Design fundamentals. Use when the user asks to design system architecture, define layer boundaries, apply DDD tactical patterns (entities, value objects, aggregates, repositories), structure a hexagonal application, enforce dependency rules, or evaluate whether a codebase needs architectural refactoring. Covers bounded contexts, use cases, domain services, and framework-independent design.
41security
Application security principles and OWASP Top 10 for building secure web applications. Use when the user asks to review code for security vulnerabilities, implement authentication or authorization, handle secrets or API keys, configure security headers, prevent injection attacks (SQL, XSS, CSRF), prepare for a security audit, or respond to a vulnerability report. Covers input validation, data protection, secrets management, session handling, and common security antipatterns.
40api-design
REST and GraphQL API design principles for consistent, predictable, and evolvable APIs. Use when the user asks to design a new API, review an existing API, choose between REST and GraphQL, plan API versioning, define error response contracts, implement pagination, or establish API standards for a team. Covers resource modeling, endpoint naming, HTTP methods, status codes, authentication patterns, rate limiting, HATEOAS, and API evolution strategies.
38