brainstorming
SKILL.md
Brainstorming Ideas Into Designs and Specs
Process
Understanding the idea:
Before asking any question, ask yourself: What decision does this answer unlock? What assumption am I testing? If you can't name one, skip the question. Always state the reason when you ask.
- Check the current project state first (files, docs, recent commits) — don't ask what already exists
- One question per message; prefer multiple choice, but explain what range of answers would change your approach
Exploring approaches:
Before proposing options, ask yourself: Is there one clearly dominant choice? If yes, state it with your confidence rather than manufacturing false balance.
- For each approach, make trade-offs explicit: what you gain, what you give up, and under what conditions it wins or loses
- Lead with your recommendation and explain what about this specific situation makes it the right call — not generic pros/cons
Presenting the design:
Before presenting, ask yourself: What's the single most likely thing I got wrong? Name it explicitly and ask about it first.
- Scale sections to complexity: a few sentences if straightforward, up to 200-300 words if nuanced
- Check in after each section before moving on
- Cover what's relevant: architecture, components, data flow — add error handling and testing only if non-trivial
When to Stop Asking
Stop and present the design when you have:
- What problem this solves and who is affected
- The smallest thing that would count as working
- At least one constraint that would have changed your default design
Keep asking when:
- The stated want and actual problem don't match (probe for the real constraint)
- You're about to add scope the user didn't ask for (challenge it first)
- "Just make it work" — always get one concrete success scenario before designing
If remaining questions are about implementation details, stop — make a decision and surface it explicitly in the design.
NEVER
- NEVER ask a question or make a design decision without explaining the reasoning behind it — the user needs to understand trade-offs to make good decisions, not just respond to prompts. Bad: "Should we use REST or GraphQL?" Good: "Should we use REST or GraphQL? — your answer determines whether I design around flexible querying or simple endpoint contracts."
- NEVER ask about implementation approach before understanding the problem — users anchor to the first solution they hear. Bad: jumping to "here are 3 database options" before knowing the access patterns.
- NEVER present a design without identifying the single most likely thing you got wrong and asking about that explicitly
- NEVER treat "I want X" as the requirement — probe for the actual constraint driving it. Bad: designing a cache because "it's slow"; good: discovering the real bottleneck is a single expensive query that runs on every page load.
- NEVER ask multiple questions in one message even if they seem related — pick the most important one
- NEVER skip asking what success looks like on open-ended features — it surfaces unstated acceptance criteria that would otherwise invalidate the design
- NEVER manufacture 2-3 options when one is clearly dominant — false balance signals indecision and wastes time
Weekly Installs
5
Repository
theme34090/machine-godFirst Seen
Feb 24, 2026
Security Audits
Installed on
pi5
gemini-cli5
claude-code5
github-copilot5
codex5
kimi-cli5