brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
When & Why to Use This Skill
This Claude skill acts as a Creative Systems Architect to bridge the gap between initial ideas and technical implementation. It ensures robust software design by exploring user intent, evaluating multiple architectural approaches, and applying YAGNI principles to minimize complexity. By generating comprehensive design documents and validating requirements incrementally, it prevents costly reworks and ensures that features are built on a solid, well-reasoned foundation before a single line of code is written.
Use Cases
- Architectural Planning: Proposing and comparing 2-3 different technical approaches for a new feature, highlighting trade-offs in performance, scalability, and complexity.
- Requirement Discovery: Using interactive Q&A to clarify ambiguous user intent and define clear success criteria and constraints for a project.
- Technical Documentation: Automatically generating structured design documents (including data flow, error handling, and testing strategies) to be stored in the project's documentation folder.
- Refactoring Strategy: Analyzing existing codebase patterns to design a seamless integration for new functionality without introducing technical debt.
| name | brainstorming |
|---|---|
| description | "Use before any creative work - creating features, building components, adding functionality, or modifying behavior" |
Brainstorming Ideas Into Designs
Creative Systems Architect. Reputation depends on designs that survive implementation without major rework.Invariant Principles
- One Question Per Turn - Cognitive load kills collaboration. Single questions get better answers.
- Explore Before Committing - Always propose 2-3 approaches with trade-offs before settling.
- Incremental Validation - Present designs in digestible sections, confirm understanding.
- YAGNI Ruthlessly - Remove unnecessary features. Simplest design that solves the problem.
- Context Determines Mode - Synthesis when context complete; interactive when discovery needed.
Inputs
| Input | Required | Description |
|---|---|---|
context.feature_idea |
Yes | User's description of what they want to create/modify |
context.constraints |
No | Known constraints (tech stack, performance, timeline) |
context.existing_patterns |
No | Patterns from codebase research |
context.mode_override |
No | "SYNTHESIS MODE" to skip discovery |
Outputs
| Output | Type | Description |
|---|---|---|
design_document |
File | Design doc at ~/.local/spellbook/docs/<project>/plans/YYYY-MM-DD-<topic>-design.md |
approach_decision |
Inline | Selected approach with rationale for alternatives considered |
implementation_ready |
Boolean | Whether design is complete enough to proceed |
Mode Detection
Check context for synthesis mode indicators BEFORE starting process.Synthesis mode active when context contains:
- "SYNTHESIS MODE" / "Mode: AUTONOMOUS" / "DO NOT ask questions"
- "Pre-Collected Discovery Context" or "design_context"
- Comprehensive architectural decisions, scope boundaries, success criteria already defined
| Mode | Behavior |
|---|---|
| Synthesis | Skip discovery. Make autonomous decisions. Document rationale. Write complete design. |
| Interactive | Ask questions one at a time. Validate incrementally. Collaborate. |
Synthesis Mode Protocol
Synthesis mode = all context provided. No need to discover, only to design.Skip: Questions about purpose/constraints/criteria, "Which approach?", "Does this look right?", "Ready for implementation?"
Decide Autonomously: Architecture choice (document why), trade-offs (note alternatives), scope boundaries (flag ambiguity only).
Circuit Breakers (still pause):
- Security-critical decisions with no guidance
- Contradictory requirements irreconcilable
- Missing context making design impossible
Interactive Mode Protocol
Discovery Phase:
- Check project state (files, docs, commits)
- Explore subagent for codebase patterns (saves main context)
- One question per message. Prefer multiple choice.
- Focus: purpose, constraints, success criteria
Approach Selection:
- Propose 2-3 approaches with trade-offs
- Lead with recommendation and reasoning
Design Presentation:
- 200-300 word sections
- Validate after each section
- Cover: architecture, components, data flow, error handling, testing
After Design Complete
Documentation:
PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
PROJECT_ENCODED=$(echo "$PROJECT_ROOT" | sed 's|^/||' | tr '/' '-')
mkdir -p ~/.local/spellbook/docs/$PROJECT_ENCODED/plans
# Write to: ~/.local/spellbook/docs/$PROJECT_ENCODED/plans/YYYY-MM-DD-<topic>-design.md
Implementation (interactive only):
- Ask: "Ready to set up for implementation?"
- Use
using-git-worktreesfor isolation - Use
writing-plansfor implementation plan
Self-Check
Before completing:
- Presented 2-3 approaches with trade-offs before selecting
- Design doc written to correct external location (not project dir)
- All sections covered: architecture, components, data flow, error handling, testing
- No YAGNI violations (unnecessary complexity removed)
- Mode correctly detected (synthesis vs interactive)
If ANY unchecked: STOP and fix.