brainstorming
Scannednpx machina-cli add skill brothaakhee/superclaw/brainstorming --openclawBrainstorming
This skill enforces design-before-implementation to prevent costly rework and clarify requirements.
Core Principle
HARD-GATE: No code or implementation until design is approved.
This is non-negotiable. Time pressure, user authority, simplicity, or urgency are NOT valid reasons to skip design.
Process
1. Check Context
Before asking questions, review existing context to avoid redundant questions:
- MEMORY.md - User preferences, past decisions, technical context (main session only)
- USER.md - User profile, preferences, communication style
- memory/YYYY-MM-DD.md - Today's and yesterday's activity logs
- Related docs - Check
workspace/docs/for existing designs or decisions
2. Ask Clarifying Questions
Ask 2-5 clarifying questions one at a time to understand:
- Core functionality vs nice-to-have features
- Storage/persistence requirements
- User interface preferences
- Integration points with existing systems
- Non-functional requirements (performance, security, etc.)
Rules:
- Ask questions even if user says "I know what I want"
- Keep questions focused and specific
- Wait for answer before next question
- Build on previous answers
3. Propose Approaches
Present 2-3 distinct approaches with:
- High-level architecture - Major components and data flow
- Trade-offs - Pros/cons of each approach
- Recommendation - Which approach you recommend and why
Keep this section brief (3-5 sentences per approach).
4. Present Design
After user selects approach, present detailed design in digestible sections:
A. Architecture Overview
- Component diagram (ASCII art or description)
- Data flow
- Key dependencies
B. Implementation Details
- File structure with exact paths
- Key functions/modules with responsibilities
- Data models/schemas
C. Open Questions
- Any remaining unknowns
- Decisions user needs to make
D. Next Steps
- What happens after approval
- Estimated complexity
5. Get Approval
Explicitly ask: "Does this design look good? Any changes needed?"
Wait for approval. Do NOT proceed to implementation without explicit confirmation.
6. Save Design
Upon approval, save the design to:
workspace/docs/plans/YYYY-MM-DD-<topic>-design.md
Include:
- Date and context
- Full design from step 4
- User's approval confirmation
- Reference to next skill (writing-plans)
7. Invoke Next Skill
After saving, invoke the writing-plans skill:
"Design approved and saved. Invoking writing-plans skill to break this into executable tasks."
Rationalization Resistance
Common excuses for skipping design and why they're wrong:
| Excuse | Why It's Wrong | Counter |
|---|---|---|
| "User is in a hurry" | Quick design (2-5 min) prevents slow rework (hours/days) | Time pressure makes design MORE important, not less |
| "User knows what they want" | Users know goals, not implementation details | Questions reveal hidden requirements and assumptions |
| "It's simple, doesn't need design" | "Simple" projects hide the most assumptions | Simple projects need simple designs (still designs) |
| "No long discussions needed" | Design ā long discussion | Design can be 2 minutes. Approval can be one word. |
| "User gave detailed specs" | Specs describe what, not how | Design clarifies architecture, trade-offs, and approach |
| "Just a prototype/MVP" | Prototypes become production code | Good architecture costs the same time upfront |
| "We can refactor later" | Later never comes | Design now or debug forever |
The rule: If you're typing code, you skipped a step.
Red Flags
Watch for these signs you're about to violate the hard-gate:
š© You're thinking about file structure before getting approval š© You're considering library choices before presenting approaches š© You're writing pseudocode before user responds š© You catch yourself thinking "I'll just start with..." š© You're rationalizing why THIS case is different š© User says "just start" and you feel compelled to obey
When you see red flags: Stop. Return to step 2 (questions) or step 5 (get approval).
OpenClaw Integration
Memory Context
Main session (direct user chat):
- Read MEMORY.md for long-term context
- Check memory/YYYY-MM-DD.md for recent decisions
- Reference past designs in workspace/docs/plans/
Shared contexts (Discord, groups):
- Skip MEMORY.md (contains private data)
- Use only USER.md and current conversation context
Workspace Organization
All designs save to:
workspace/docs/plans/YYYY-MM-DD-<descriptive-name>-design.md
Examples:
2026-02-25-todo-cli-design.md2026-02-25-user-auth-design.md2026-02-25-api-refactor-design.md
Skill Chaining
After approval and save:
- Explicitly state design is approved
- Confirm save location
- Invoke
writing-plansskill - Do NOT start implementation yourself
Edge Cases
"What if user insists on skipping design?"
Respond with:
"I understand you want to move quickly. A 2-minute design will save hours of rework. Let me ask 2 quick questions, propose an approach, and get your thumbs-up. Total time: 3 minutes. Deal?"
"What if it's a trivial change?"
Even trivial changes get lightweight design:
"Quick design: Change X in file Y because Z. Sound good?"
Wait for confirmation before implementing.
"What if design was done externally?"
If user provides existing design document:
- Review it
- Ask 1-2 clarifying questions about implementation details
- Save to workspace/docs/plans/ for reference
- Get approval to proceed
- Invoke writing-plans skill
"What if this is iteration on existing design?"
Reference previous design:
"Building on the design from 2026-02-20-todo-cli-design.md. Proposed change: [describe change]. This affects: [components]. Sound good?"
Wait for approval before implementing.
Anti-Pattern Examples
ā Bad: Immediate Implementation
User: "Build a todo CLI"
Agent: *writes complete Python application*
ā Good: Design First
User: "Build a todo CLI"
Agent: "Great! Quick questions:
1. How should todos be stored? (JSON file / SQLite / plain text)
2. Need due dates or just simple list?"
[After answers...]
Agent: "Here are 2 approaches:
A. Simple JSON file + Python CLI
- Pros: Easy to inspect/backup, no dependencies
- Cons: Not ideal for large lists, manual file locking
B. SQLite + Python CLI
- Pros: Better for large lists, built-in queries
- Cons: Binary format, slightly more complex
I recommend A for simplicity unless you expect >1000 todos. Thoughts?"
[After user picks A...]
Agent: "Design:
Architecture:
- Single Python script: todo.py
- JSON storage: ~/.todos.json
- Commands: add, list, done, delete
Implementation:
todo.py (main CLI)
- add_todo(text) ā append to JSON
- list_todos() ā read JSON, display
- mark_done(id) ā update JSON
- delete_todo(id) ā remove from JSON
~/.todos.json structure: [ {"id": 1, "text": "...", "done": false}, ... ]
Does this design work for you?"
[Wait for approval...]
Agent: "Approved! Saving to workspace/docs/plans/2026-02-25-todo-cli-design.md and invoking writing-plans skill."
Success Criteria
You've successfully used this skill when:
ā No code written before approval ā At least 2 clarifying questions asked ā Multiple approaches presented ā Design saved to workspace/docs/plans/ ā User gave explicit approval ("yes", "looks good", "approved", etc.) ā writing-plans skill invoked for next phase
Failure Modes
You've violated this skill if:
ā Code appears before design approval ā Jumped straight to implementation ā Rationalized why design wasn't needed ā User pressure caused you to skip steps ā Wrote pseudocode before getting approach approval ā Saved design but implemented before invoking writing-plans
When you catch yourself failing: Stop immediately. Delete any code. Return to the process.
Based on obra/superpowers methodology. Pressure-tested and hardened against rationalization.
Source
git clone https://github.com/brothaakhee/superclaw/blob/master/brainstorming/SKILL.mdView on GitHub Overview
Brainstorming enforces design-before-implementation to prevent costly rework and clarify requirements. It triggers on requests to build, create, add, implement, modify, refactor, or redesign anything that requires code or configuration changes.
How This Skill Works
The process starts by checking existing context (MEMORY.md, USER.md, daily logs, related docs) to avoid redundant questions. It then asks 2-5 clarifying questions one at a time to understand core functionality, storage/persistence, UI preferences, integration points, and non-functional requirements. Next, it proposes 2-3 distinct approaches with high-level architecture, data flow, trade-offs, and a recommendation, awaiting user selection before presenting detailed design. No code or implementation occurs until the design is approved (HARD-GATE).
When to Use It
- Starting a new feature from scratch before coding
- Adding functionality to an existing component
- Modifying behavior or refactoring architecture
- Designing a new system or integration
- Redesigning user flows or configuration-driven behavior
Quick Start
- Step 1: Check context and relevant docs (MEMORY.md, USER.md, memory/YYYY-MM-DD.md, related workspace docs)
- Step 2: Ask clarifying questions (2-5, one at a time) to understand core needs
- Step 3: Propose 2-3 approaches with trade-offs and await selection; then develop design after approval
Best Practices
- Check Context first (MEMORY.md, USER.md, logs, related docs) before asking questions
- Ask 2-5 clarifying questions, one at a time, and wait for responses
- Present 2-3 design approaches with data flow, dependencies, trade-offs, and a recommendation
- Get explicit approval before any implementation
- Save the finalized design to workspace/docs/plans with date and topic
Example Use Cases
- Designing a new checkout flow before coding
- Planning a microservice API redesign
- Designing a data migration plan before code changes
- Architecting a new authentication method
- Refactoring a component to improve interfaces