agentleFS
mattstrublemattstruble/skills/brainstorm/SKILL.md

brainstorm

Skill2 starsChanged 4 months agoMITView on GitHub

You MUST use this before any creative work — creating features, building components, adding functionality, or modifying behavior. Also trigger when the user mentions brainstorming, wants to think through a design, stress-test a plan, or says 'grill me'. NOT for debugging, code review, writing tests, committing, or mechanical refactors (renaming, version bumps, config changes).

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

14 rules. 0 are common, 12 are distinctive, and 2 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.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask questions one at a time.

    line 17
  2. Distinctive:

    If a question can be answered by exploring the codebase, explore the codebase instead of asking.

    line 19
  3. Distinctive:

    Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until the user says the …

    line 23
  4. Distinctive:

    Every topic gets questioned.

    line 31
  5. Distinctive:

    Walk every branch: Follow each line of the decision tree to resolution before moving on.

    line 46
  6. Distinctive:

    Surface alternatives organically: When multiple valid approaches exist, present them as part of the natural conversation flow rather than a …

    line 48
  7. Distinctive:

    Answer the objection: When the user pushes back, address their specific point and check the option against their underlying goal instead of …

    line 59
  8. Distinctive:

    Flag scope early: If the request covers multiple independent subsystems, flag it immediately rather than refining details of something that …

    line 62
  9. Distinctive:

    Before asking questions, orient yourself from two sources:

    line 73
  10. Distinctive:

    Before wrapping up, actively challenge your own conclusions:

    line 114
  11. Very specific:

    Guard: only propose this bucket if .beads/ exists in the project root.

    line 141
  12. Very specific:

    If it does not, surface these terms as inline recommendations and ask the user to persist them manually — do not emit bd remember commands.

    line 142
  13. Distinctive:

    Wait for confirmation. The user sees the exact commands (including the full quoted content) before anything runs — this review step is the …

    line 160
  14. Distinctive:

    If the glossary is empty or contains only ephemeral session chatter, skip the flush entirely.

    line 171

“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

Brainstorm

Turn ideas into fully formed designs through relentless, opinionated questioning. Interview the user about every aspect of their idea, walking down each branch of the decision tree and resolving dependencies one by one. For each question, lead with your recommended answer.

Ask questions one at a time.

If a question can be answered by exploring the codebase, explore the codebase instead of asking.

<HARD-GATE> Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until the user says the brainstorming session is done. This applies regardless of perceived simplicity — jumping to code before understanding the problem leads to wrong assumptions and wasted work. </HARD-GATE>

No Topic Is Too Simple

Every topic gets questioned. A todo list, a single-function utility, a config change — all of them. "Simple" topics are where unexamined assumptions cause the most damage, because nobody thinks to question them. The questioning can be brief for truly simple topics, but you still question before acting.

How You Work

  • Always recommend first. State your recommendation and reasoning, then ask the question. This ordering matters — the user reads your position, then responds to it. "I'd recommend X because Y. What's your situation with Z?" is the pattern. This is faster than neutral "what do you think?" and produces better results because you bring your own informed perspective.
  • One question at a time. Each message contains exactly one question. Don't ask multiple questions, bullet lists of follow-ups, or restate the same question in different words at the end.
  • Walk every branch. Follow each line of the decision tree to resolution before moving on. Don't leave decisions half-explored.
  • Surface alternatives organically. When multiple valid approaches exist, present them as part of the natural conversation flow rather than a formal checkpoint. Compare trade-offs and recommend one.
  • YAGNI ruthlessly. Challenge features that aren't clearly needed. Remove unnecessary complexity from all designs.
  • 80/20 when YAGNI fails. Sometimes you can't say no — a stakeholder has already committed, a business requirement is non-negotiable, or the team has decided. That's okay. When a feature survives the YAGNI challenge, the next question becomes: what's the version that delivers 80% of the value with 20% of the complexity? Strip it to the core need. The goal shifts from elimination to simplification.
  • Answer the objection. When the user pushes back, address their specific point and check the option against their underlying goal instead of restating the earlier recommendation.
  • Flag scope early. If the request covers multiple independent subsystems, flag it immediately rather than refining details of something that needs decomposition first. Help break it into pieces, then brainstorm the first piece.

Phases

These are a loose guide, not a rigid checklist. The conversation naturally loops between them as new information surfaces.

1. Quick Context Scan

Before asking questions, orient yourself from two sources:

Wiki traversal — If a knowledge base is configured (check AGENTS.md for Knowledge base: <path>), traverse it using the reading protocol from the knowledge-base skill: INDEX.md → relevant MOC → 1–5 atomic notes most relevant to the domain being discussed. Also check plans/ for any active map if the work looks like part of an ongoing effort. Don't narrate the read — absorb it and ask questions as if you already knew the context.

Codebase scan — Do a light read of the project structure, docs, and recent commits. Enough to avoid asking questions the codebase already answers. Heavier exploration happens on-demand as the conversation surfaces specific areas worth investigating.

2. Question and Discuss

Grill the user. Understand purpose, constraints, success criteria. Prefer multiple-choice questions when possible, but open-ended is fine. Keep going until you've walked every relevant branch of the decision tree and reached shared understanding.

Scratch glossary — As the conversation resolves domain terms, entity definitions, and design decisions, accumulate them as a running mental model: term: definition. No wiki formatting, no file writes — just a lightweight list you hold in working memory. This prevents re-explanation as terms compound within the session and gives you the material for the stress-test and handoff.

In existing codebases:

  • Explore current structure before proposing changes. Follow existing patterns.
  • Where existing code has problems that affect the work, include targeted improvements in the discussion — don't propose unrelated refactoring.

For new components:

  • Break the system into units with one clear purpose each, communicating through well-defined interfaces.
  • For each unit: what does it do, how do you use it, what does it depend on?
  • Favor small, well-bounded units — they're easier to reason about, test, and implement correctly.

3. Stress-Test Before Converging

Before wrapping up, actively challenge your own conclusions:

  • What assumptions did we make that we didn't examine?
  • What alternative approaches didn't we explore?
  • Are there trade-offs we accepted implicitly?
  • Are there terms we resolved in the scratch glossary whose definitions we assumed but never fully pressure-tested?

Be honest about your own ideas — call your own bluff, audit the beliefs you started with, and check that novelty isn't masquerading as depth. See references/idea-judgment.md.

Present these to the user as a genuine attempt to find blind spots. They either dig deeper (extending the session) or confirm satisfaction (moving to summary).

4. Summarize and Hand Off

Present a concise summary of the decisions made. If the scratch glossary is non-empty, include it as a Shared language section — a flat list of term: definition pairs. This gives follow-on agents and future sessions the vocabulary established here without requiring re-explanation.

Glossary flush — After presenting the shared language list, classify each term into one of two buckets and present the proposed split to the user for confirmation before writing anything:

  • Project-local — terms that only matter inside this repo (implementation specifics, local naming conventions, project-scoped entities): persist with bd remember 'term: definition', surfaced next session by bd prime. Guard: only propose this bucket if .beads/ exists in the project root. If it does not, surface these terms as inline recommendations and ask the user to persist them manually — do not emit bd remember commands.
  • Cross-project — decisions, domain concepts, patterns, and entities that future sessions in other repos would benefit from knowing: persist as wiki writes following the knowledge-base skill's write protocol.

Present the split like this:

Glossary flush — proposed split:

bd remember (project-local) (omit this section if no .beads/ exists):

  • bd remember 'term: definition'

Wiki (cross-project):

  • term: definition → suggested note path/type

Does this split look right?

Wait for confirmation. The user sees the exact commands (including the full quoted content) before anything runs — this review step is the primary injection safeguard. After the user confirms (or adjusts), execute the writes. Use single quotes for bd remember arguments so shell does not interpret $, backticks, or " inside the content.

For wiki writes, load and follow the knowledge-base skill's write protocol — don't duplicate it here. The boundary rule from that skill applies: if the insight only matters inside this repo, bd remember; if a future session in a different repo would benefit, write to the wiki.

If the glossary is empty or contains only ephemeral session chatter, skip the flush entirely.

Ticket-type tagging — When recommending beads tasks at handoff (or handing off to the planner skill to create them), prefix each ticket title with a session-type tag. This tells the next session how to work the ticket, not just what to work on:

TagWhen to use
[research]Unknown facts must be established before the work can proceed. AFK-capable.
[brainstorming]A design decision requires a live grilling session. HITL.
[prototype]A question is best answered by building something cheap and throwaway. HITL.
[human-task]Only a human can do this: provisioning, credentials, external approvals. HITL.
(no tag)Standard implementation ticket — scope is clear and the agent can execute.

Then let the user know they can invoke follow-up skills to turn the brainstorming output into whatever artifact they need next — infer relevant options from the conversation context rather than suggesting a hardcoded list.

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.