brainstorming
npx machina-cli add skill CodingCossack/agent-skills-library/brainstorming --openclawBrainstorming Ideas Into Designs
Overview
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.
The Process
Understanding the idea:
- Check out the current project state first (files, docs, recent commits)
- Ask questions one at a time to refine the idea
- Prefer multiple choice questions when possible, but open-ended is fine too
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, success criteria
Exploring approaches:
- Propose 2-3 different approaches with trade-offs
- Present options conversationally with your recommendation and reasoning
- Lead with your recommended option and explain why
Presenting the design:
- Once you believe you understand what you're building, present the design
- Break it into sections of 200-300 words
- Ask after each section whether it looks right so far
- Cover: architecture, components, data flow, error handling, testing
- Be ready to go back and clarify if something doesn't make sense
After the Design
Documentation:
- Write the validated design to
docs/plans/YYYY-MM-DD-<topic>-design.md - Commit the design document to git
Implementation (if continuing):
- Ask: "Ready to set up for implementation?"
- Use
using-git-worktreesskill to create isolated workspace - Use
writing-plans skillto create detailed implementation plan
Key Principles
- One question at a time - Don't overwhelm with multiple questions
- Multiple choice preferred - Easier to answer than open-ended when possible
- YAGNI ruthlessly - Remove unnecessary features from all designs
- Explore alternatives - Always propose 2-3 approaches before settling
- Incremental validation - Present design in sections, validate each
- Be flexible - Go back and clarify when something doesn't make sense
Source
git clone https://github.com/CodingCossack/agent-skills-library/blob/main/skills/brainstorming/SKILL.mdView on GitHub Overview
Brainstorming helps turn ideas into fully formed designs and specs through natural collaborative dialogue. Start by understanding the current project context, then ask questions one at a time to refine the idea, and present the design in 200-300 word sections, validating after each.
How This Skill Works
Understand the idea by checking the current project state (files, docs, recent commits) and ask one focused question at a time to clarify purpose, constraints, and success criteria. Propose 2-3 approaches with trade-offs, lead with your recommended option, and present the design in 200-300 word sections with incremental validation after each. After the design is agreed, write the validated design to docs/plans/YYYY-MM-DD-<topic>-design.md and commit to git; if continuing to implementation, prompt Ready to set up for implementation? and use the appropriate skills to create an isolated workspace and detailed plan.
When to Use It
- When starting a new feature from scratch and need a clear design direction.
- Before building or refactoring components to ensure alignment with goals.
- When deciding between architectural approaches or data flows.
- Prior to adding functionality that affects multiple subsystems.
- During complex design discussions where multiple trade-offs must be surfaced.
Quick Start
- Step 1: Review the current project state (files, docs, recent commits).
- Step 2: Ask a single focused question to refine the idea.
- Step 3: Present the design in 200-300 word sections and validate after each section.
Best Practices
- Ask one question at a time to avoid overloading the discussion.
- Prefer multiple-choice questions to gather quick decisions.
- Apply YAGNI to remove unused features from the design.
- Always propose 2-3 alternative approaches before settling on one.
- Validate the design incrementally by presenting sections and gathering feedback.
Example Use Cases
- Designing a new user onboarding flow and deciding between screen sequences.
- Choosing between API contract designs (REST vs. GraphQL) with trade-offs.
- Refactoring a shared UI component with accessibility and performance considerations.
- Outlining data architecture for a new module and data flow.
- Documenting a testing strategy for a feature before implementation.