modules/home/programs/cli-agents/shared/skills/brainstorm/SKILL.md
Interactive brainstorming and planning skill. Use when the user wants to brainstorm, plan, spec out, or think through an idea — whether it's a software feature, a project, a business idea, or anything else. Triggers on /brainstorm, "let's brainstorm", "help me plan", "spec this out", "I want to build X but not sure how", "help me think through", "design X with me". Asks structured questions in adaptive rounds, explores the codebase when relevant, and produces a plan with task breakdown saved to .agents/docs/.
npx skillsauth add not-matthias/dotfiles-nix brainstormInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Interactive brainstorming skill that turns a vague idea into a concrete, actionable plan through structured questioning.
Read the user's initial prompt carefully. Determine:
If the topic relates to the current codebase, explore relevant files first (architecture, existing patterns, related modules) so your questions are grounded in reality, not generic.
Ask questions using the AskUserQuestion tool. Each round should have 3-5 questions max (respecting the tool's 4-question limit per call — use two calls if needed for 5 questions).
Establish the big picture. Example areas to cover:
Based on Round 1 answers, identify areas that need more clarity. Each follow-up round should:
Common follow-up areas:
Stop asking when:
Every question MUST include concrete suggestions as options. Never ask a bare open-ended question.
Good: "Where should we store user preferences?" with options like:
Bad: "How do you want to handle storage?"
When creating options:
If the brainstorm is about a software feature, enter an iterative design phase before generating the final plan. Skip this phase entirely for non-code topics.
Propose 2-3 design options using AskUserQuestion with code previews. Each option should show concrete code: function signatures, type definitions, data structures, API endpoints, or module interfaces — whatever is most relevant.
The user picks and refines. They might pick one option, mix parts from different options, or say "none of these, try X instead."
Iterate. Update the design based on feedback, present the revised version. Ask if anything else needs changing. Repeat until the user is satisfied.
Lock it in. Once approved, the design becomes part of the plan document.
Use the AskUserQuestion preview field to show actual code. Match the language the project uses.
Examples of what to sketch:
After all rounds (and optional design iteration) are complete, produce a plan document with the following structure:
# [Plan Title]
> One-sentence summary of what this plan covers.
## Goal
What we're building/doing and why.
## Scope
What's in scope and what's explicitly out of scope.
## Approach
High-level description of the chosen approach. For complex decisions, briefly note why this approach was chosen over alternatives.
## Design Decisions
Key decisions made during brainstorming, with brief rationale for each.
(Only include non-obvious decisions — skip anything self-evident.)
## API / Code Design
(Include ONLY for code-related brainstorms. Contains the agreed-upon code sketch from Phase 3.)
The finalized type definitions, function signatures, API shape, or module structure.
## Tasks
Ordered implementation checklist. Each task should be concrete and actionable.
- [ ] Task 1: Description
- [ ] Task 2: Description
- [ ] ...
## Risks and Open Questions
(Include this section ONLY if the brainstorm revealed significant uncertainty, unknowns, or risks. Omit for straightforward plans.)
Save the plan to .agents/docs/YYYY-MM-DD-<slug>.md using today's date and a short kebab-case slug derived from the plan title.
Tell the user where the file was saved and give a brief summary of the plan.
tools
Spawn the pi coding agent with a specific model/provider. Use when asked to run pi with a particular model, switch pi's model, use DeepSeek V4 Flash/Pro in pi, or look up pi's --model/--provider/--models CLI flags and thinking-level shorthand.
development
Navigate to directories using zoxide (frecency-based directory jumper). Use when the user says "go to", "navigate to", "cd to", "jump to" a project or directory by nickname/partial name (e.g. "go to my dotfiles", "jump to dot").
tools
Use when manipulating Zellij sessions, creating tabs or panes, sending commands to panes, capturing output, or looking up Zellij CLI commands for terminal multiplexer operations
development
Emulates not-matthias's technical blog writing style. Use when writing blog posts, technical articles, README content, or any long-form technical prose. Produces investigation-driven, first-person narratives with dry humor, practical code examples, and concrete takeaways.