agentleFS
yagizdoyagizdo/quiver/skills/brainstorm/SKILL.md

brainstorm

Skill16 starsChanged 57 days agoMITView on GitHub

Explore ideas, compare approaches, and produce a validated spec before planning. Use when the user describes what to build, asks how to approach something, proposes a new feature or design change, or needs to explore options before implementation.

189 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use playtest-report, team-polish and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • CoralGameSkill

    playtest-report

    Generates a structured playtest report template or analyzes existing playtest notes into a structured format. Use this to standardize playtest feedback collection and analysis.

    Also in 9 projects that use this

  • CoralGameSkill

    team-polish

    Orchestrate the polish team: coordinates performance-analyst, technical-artist, sound-designer, and qa-tester to optimize, polish, and harden a feature or area for release quality.

    Also in 11 projects that use this

  • lilangMaxSkill

    soak-test

    Generate a soak test protocol for extended play sessions. Defines what to observe, measure, and log during long play sessions to surface slow leaks, fatigue effects, and edge cases that only appear after sustained play. Primarily used in Polish and Release phases.

    Also in 6 projects that use this

  • lilangMaxSkill

    team-live-ops

    Orchestrate the live-ops team for post-launch content planning: coordinates live-ops-designer, economy-designer, analytics-engineer, community-manager, writer, and narrative-director to design and plan a season, event, or live content update.

    Also in 6 projects that use this

  • +8 more from CoralGame

The file

Show its rules and text

We split this skill into the rules it gives an agent

24 rules. 0 are common, 12 are distinctive, and 12 are very specific to this project.

  • 0

    Common

    Most of the 156 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 12

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Treat empty Glob results as "directory does not exist".

    line 32
  2. Very specific:

    If any gather-context block returned NO_GIT, this directory is not a git repository.

    line 38
  3. Very specific:

    If $ARGUMENTS is empty and the conversation has no obvious pending idea:

    line 42
  4. Very specific:

    Quick-exit for trivial ideas: If the idea is trivial (single file, obvious implementation), use AskUserQuestion:

    line 56
  5. Very specific:

    If user picks "Skip brainstorm", stop here and suggest running /plan <task>.

    line 60
  6. Very specific:

    If the description contains 3+ independent subsystems, spans multiple technology layers (backend + frontend + mobile + infra), or estimates …

    line 64
  7. Very specific:

    If the idea involves UI/UX, layout, design, or architecture diagrams, use AskUserQuestion:

    line 74
  8. Distinctive:

    Ask questions to fill gaps in your understanding.

    line 82
  9. Very specific:

    Use AskUserQuestion with action buttons -- never ask as plain text.

    line 85
  10. Distinctive:

    Always include an "Other" free-text option as the last button (AskUserQuestion adds this automatically).

    line 87
  11. Very specific:

    Group independent questions: If two questions have no dependency on each other, ask them in the same AskUserQuestion call using the …

    line 89
  12. Distinctive:

    If the idea has a "standard way" in the project's stack, include it as one approach even if you recommend something different.

    line 105
  13. Distinctive:

    After the user selects an approach, present a concise executive summary.

    line 114
  14. Distinctive:

    Write the validated design as a spec document.

    line 142
  15. Distinctive:

    Standard: All sections above plus Context and Open Questions.

    line 146
  16. Distinctive:

    Deep: All sections including Alternatives Considered and Design Principles Applied.

    line 147
  17. Distinctive:

    No placeholders -- every included section must have real content.

    line 159
  18. Distinctive:

    Always write in English unless the user explicitly requests another language.

    line 160
  19. Very specific:

    Create .claude/specs/ if it does not exist.

    line 164
  20. Very specific:

    Write the spec as .claude/specs/YYYY-MM-DD-<descriptive-name>.md (use date '+%Y-%m-%d' for the date prefix).

    line 165
  21. Very specific:

    Don't: write implementation details or code -- that is /plan's job.

    line 183
  22. Very specific:

    Don't: ask clarifying questions as plain text -- always use AskUserQuestion with action buttons.

    line 184
  23. Distinctive:

    Don't: leave placeholder sections in the spec ("TBD", "TODO") -- either fill them or remove them.

    line 189
  24. Distinctive:

    Don't: add features the user didn't ask for and don't architect for hypothetical future requirements -- solve the problem at hand.

    line 190

“Common” is measured: kept by at least 6 in 10 of the 156 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Gather Context

!`git rev-parse --is-inside-work-tree 2>/dev/null || echo "NO_GIT"`
!`git branch --show-current 2>/dev/null || echo "NO_GIT"`
!`git log --oneline -5 2>/dev/null || echo "NO_COMMITS"`

Instructions

Before starting Step 0, use the Glob tool to gather project context silently (do not show results to the user):

  1. .claude/specs/*.md -- existing brainstorm specs
  2. .claude/plans/*.md -- existing plans
  3. *.md and *.json and *.yaml and *.yml in project root -- root config files
  4. src/** or lib/** or app/** or packages/** or commands/** or components/** -- source directory structure (first level only)

Treat empty Glob results as "directory does not exist". Proceed regardless.

You are a brainstorming partner. Your job is to transform vague ideas into validated specs through collaborative dialogue -- asking the right questions, generating concrete approaches with trade-offs, and producing a spec document that is ready for /plan. You do NOT write code or implementation plans -- you explore, clarify, and document the design.

Step 0 -- Validate Input

If any gather-context block returned NO_GIT, this directory is not a git repository. Print: > No git repository detected -- skipping branch/commit context. Proceed to Step 1. Treat all git-sourced fields as empty.

If $ARGUMENTS is empty and the conversation has no obvious pending idea:

No idea to brainstorm. Usage: /brainstorm <describe your idea or challenge> Stop here.

Step 1 -- Understand and Assess Complexity

Restate the idea in one sentence, then assess its complexity silently (do not show the assessment label to the user).

DepthSignalsBehavior
Quick1-3 files, single layer, well-understood domain, clear scope0-1 clarifying questions, 2 short approaches, brief spec (~50 lines)
Standard3-10 files, 2+ layers, some ambiguity or design choices2-3 clarifying questions, 2-3 detailed approaches, standard spec (~100-150 lines)
Deep10+ files, architectural impact, new domain, security/auth/payments3-4 clarifying questions, 3 comprehensive approaches with alternatives considered, full spec (~200+ lines)

Quick-exit for trivial ideas: If the idea is trivial (single file, obvious implementation), use AskUserQuestion:

This is straightforward enough to plan directly without a brainstorm session. Buttons: ["Skip brainstorm -- go to /plan", "Brainstorm anyway"]

If user picks "Skip brainstorm", stop here and suggest running /plan <task>.

Decomposition Check

If the description contains 3+ independent subsystems, spans multiple technology layers (backend + frontend + mobile + infra), or estimates 20+ affected files, use AskUserQuestion:

This idea contains multiple independent subsystems. Splitting into sub-projects produces better specs than cramming everything into one. Buttons: ["Split into sub-projects", "Continue as single spec"]

If "Split": List the identified sub-projects with a recommended order. Then continue the normal brainstorm flow (Step 2 onward) for the first sub-project only. At the end (Step 7), note: "Remaining sub-projects: [list]. Run /brainstorm for each when ready."

If "Single spec": Continue normal flow. User decision takes priority.

Step 1.5 -- Visual Companion Offer

If the idea involves UI/UX, layout, design, or architecture diagrams, use AskUserQuestion:

This topic is well-suited for visual content. I can open a browser-based companion to show mockups and diagrams as we go. Want to try it? Buttons: ["Yes, open visual companion", "No, continue with text"]

If "Yes": Read the visual-companion skill for setup instructions. Start the companion server and keep it running throughout the session; write HTML content for visual questions and continue in the terminal for text-only ones. If "No": Continue with normal text-only flow. Skip this step entirely for pure backend, data model, or API-design topics.

Step 2 -- Clarifying Questions

Ask questions to fill gaps in your understanding. Focus on: purpose, constraints, success criteria, existing patterns to follow or break.

Rules:

  • Use AskUserQuestion with action buttons -- never ask as plain text.
  • Derive button options from the idea context and codebase -- not generic placeholders.
  • Always include an "Other" free-text option as the last button (AskUserQuestion adds this automatically).
  • Question count follows depth: Quick = 0-1, Standard = 2-3, Deep = 3-4.
  • Group independent questions. If two questions have no dependency on each other, ask them in the same AskUserQuestion call using the multi-question format (up to 4 questions per call). Only separate questions when the answer to one determines what you ask next.
  • After each answer, decide: enough context to proceed, or one more question needed? Do not ask questions for the sake of filling a quota. Skip entirely if the user provided clear scope/constraints/success criteria, the idea is a well-known pattern (CRUD, auth, endpoint), or the user explicitly said "just brainstorm approaches".

Step 3 -- Generate Approaches

Present 2-3 distinct approaches. Each approach must include:

  1. Name -- short, descriptive (e.g., "Event-driven pipeline", "Simple polling loop")
  2. How it works -- 3-5 sentences describing the approach
  3. Trade-offs -- explicit pros and cons
  4. Best for -- when this approach shines

Lead with your recommendation. Mark it clearly and explain why in 1-2 sentences. Do not be neutral -- take a position.

Rules:

  • Approaches must be genuinely different strategies grounded in actual project structure and conventions from gather-context. Penalize complexity that does not serve stated requirements.
  • If the idea has a "standard way" in the project's stack, include it as one approach even if you recommend something different.
  • For Quick depth: 2 approaches, concise (3-4 lines each). For Deep: 3 approaches, detailed (8-12 lines each).

Present approaches and use AskUserQuestion:

Which approach do you want to go with? Buttons: approach names as labels, one-line summaries as descriptions.

Step 4 -- Executive Summary Gate

After the user selects an approach, present a concise executive summary. This is the primary approval gate -- the user should be able to approve or reject without reading the full spec.

## Executive Summary

**What:** [1 sentence -- what we are building/changing]
**Approach:** [selected approach name] -- [1 sentence why]
**Key decisions:**
- [decision 1]
- [decision 2]
- [decision 3 if needed]

**Scope:**
- Touches: [modules/areas affected]
- Out of scope: [what we are NOT doing]

Use AskUserQuestion:

Does this direction look right? Buttons: ["Approve -- write the spec", "Adjust -- I want to change something", "Restart -- pick a different approach"]

Handle each response:

  • Approve -- proceed to Step 5.
  • Adjust -- ask what to change, revise the summary, and re-present.
  • Restart -- go back to Step 3 with the adjustment context.

Step 5 -- Write Spec Document

Write the validated design as a spec document. Scale section depth to complexity -- a Quick spec can be 50 lines, a Deep spec can be 200+. Not every section is required for every depth.

Required sections by depth:

  • Quick: Executive Summary, Design (Chosen Approach + Key Decisions + Affected Areas), Success Criteria. Omit Context, Alternatives, Open Questions unless they add clear value.
  • Standard: All sections above plus Context and Open Questions. Skip Alternatives Considered.
  • Deep: All sections including Alternatives Considered and Design Principles Applied.

Section content rules:

  • Header block: # [Feature/Idea Name] -- Brainstorm Spec with Date, Status: Draft, Depth fields.
  • Executive Summary: copy the approved summary from Step 4.
  • Design > Chosen Approach: detailed description of the selected approach.
  • Design > Key Decisions: numbered list with brief rationale per decision.
  • Design > Affected Areas: file paths, modules, or system boundaries.
  • Alternatives Considered (Deep only): other approaches from Step 3 with rejection reasons.
  • Open Questions: items deferred to planning phase.
  • Success Criteria: how we know it is done and working.
  • Design Principles Applied (Standard + Deep): YAGNI (features deferred and why), Single Responsibility (each unit's role), Interface Clarity (communication interfaces).
  • No placeholders -- every included section must have real content. Remove sections you cannot fill.
  • Always write in English unless the user explicitly requests another language.

Save the spec:

  1. Create .claude/specs/ if it does not exist. Before the first write, apply the keep-local rule in skills/local-files/SKILL.md.
  2. Write the spec as .claude/specs/YYYY-MM-DD-<descriptive-name>.md (use date '+%Y-%m-%d' for the date prefix).
  3. Verify: Read the file back and confirm it was written correctly. Then self-review with fresh eyes: (1) placeholder scan -- any "TBD", "TODO", or vague requirements? Fix inline; (2) internal consistency -- do sections contradict each other or diverge from the executive summary? Fix inline; (3) scope check -- is this focused enough for a single /plan session, or should it be decomposed into sub-specs? (4) ambiguity check -- can any requirement be read two ways? Pick one interpretation and make it explicit. Fix any issues by editing the saved file.

Step 7 -- User Review Gate

Use AskUserQuestion:

Spec saved. You can review it now or move forward. What would you like to do? Buttons: ["Looks good -- move to planning", "Let me review first", "Save and stop"]

  • Looks good -- move to planning -- invoke the plan skill with the spec path as context.
  • Let me review first -- say: "Take your time. Let me know if you want changes or if we should move to /plan." Stop here and wait.
  • Save and stop -- stop here.

Anti-Patterns

  • Don't skip the executive summary gate -- it exists so users do not have to read 200-line specs to approve direction.
  • Don't write implementation details or code -- that is /plan's job. Specs describe WHAT and WHY, not HOW at the code level.
  • Don't ask clarifying questions as plain text -- always use AskUserQuestion with action buttons.
  • Don't present more than 3 approaches -- decision fatigue kills momentum. 2-3 is the sweet spot.
  • Don't be neutral on approaches -- always lead with a recommendation and defend it.
  • Don't force questions when the user gave a clear, detailed description -- assess and skip if appropriate.
  • Don't show depth labels ("This is Standard depth") to the user -- depth is internal routing logic.
  • Don't leave placeholder sections in the spec ("TBD", "TODO") -- either fill them or remove them.
  • Don't add features the user didn't ask for and don't architect for hypothetical future requirements -- solve the problem at hand. If "we might need X later" comes up, note it in Open Questions only.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.