brainstorm
Skill75 starsChanged 2 months agoMITView on GitHub
Runs a structured design conversation — clarifies intent, proposes 2-3 approaches with trade-offs, iterates the design — and writes a user-approved engineering spec to docs/specs/ that /optimus:tdd auto-detects. No implementation happens until the spec is approved. With the scaffold argument, creates docs/product/ steering skeletons instead (never overwrites, authors no content). Recommends /optimus:init first.
189 other projects use a version of this.
Adopted by
Most recently taken up by
- nielsmadan/skillstheir own version, first seen Nov 8, 2026
- phuthuycoding/kanban-flowtheir own version, first seen Nov 8, 2026
- baethon/skillstheir own version, first seen Nov 8, 2026
- CloudChef/atlasclaw-providerstheir own version, first seen Nov 8, 2026
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- LongJohnSilver1504/claude-skillstheir own version, first seen Nov 8, 2026
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.
CoralGameSkillplaytest-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
CoralGameSkillteam-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
lilangMaxSkillsoak-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
lilangMaxSkillteam-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
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- codeaholicguy/ai-devkit★ 1.7ksame name
- jtydhr88/ComfyTV★ 1.2ksame name
- event-driven-io/emmett★ 562same name
- zaxbysauce/opencode-swarm★ 519same name
- ZaxbyHub/opencode-swarm★ 518same name
- automagik-dev/genie★ 351same name
- namastexlabs/automagik-genie★ 351same name
- bkywksj/knowledge-base★ 340same name
- pixel-cellar/Claude-Code-Game-Studios★ 324same name
179 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository20 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- code-reviewSkill
- commitSkill
- deepSkill
- dreamSkill
- gauntletSkill
- handoffSkill
- how-to-runSkill
- initSkill
- jiraSkill
- paper-initSkill
- permissionsSkill
- promptSkill
- prSkill
- refactorSkill
- resetSkill
- tddSkill
- unit-testSkill
- worktreeSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 156 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
When invoked with the scaffold argument, or when the user asks to set up the docs-first steering cascade, run this flow instead of the …
- Very specific: line 31
If .claude/CLAUDE.md or .claude/docs/coding-guidelines.md is missing, recommend /optimus:init first.
- Distinctive: line 39
Check for JIRA context before prompting the user:
- Very specific: line 130
Read $CLAUDE_PLUGIN_ROOT/skills/brainstorm/references/plan-mode-handoff.md and emit its Prompt skeleton as a copyable plan-mode prompt, …
“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.
Files
Brainstorm
Guide the user through a design conversation that produces a written, approved spec before any implementation begins.
The hard gate: no implementation until the design is approved. Do not invoke an implementation skill, write production code, or scaffold project structure until a spec is written and the user has approved it — even for seemingly simple tasks.
Resolve the target repo first: if git rev-parse --is-inside-work-tree does not return true, read $CLAUDE_PLUGIN_ROOT/skills/init/references/multi-repo-detection.md and apply it — in a workspace, operate in the repo the user targets, asking which if ambiguous. Otherwise use git rev-parse --show-toplevel, including in a linked worktree or subdirectory. Both modes resolve paths from that root.
Scaffold mode
When invoked with the scaffold argument, or when the user asks to set up the docs-first steering cascade, run this flow instead of the design conversation:
- Scaffold in the resolved repo root — a cascade outside the target repo never auto-loads as steering.
- For each of
docs/product/product-context.md,mvp-prd.md, andtech-stack.md: if it exists, never overwrite — skip it. If missing, copy the matching file from$CLAUDE_PLUGIN_ROOT/skills/brainstorm/templates/product/verbatim, creatingdocs/product/if needed. Write nothing else — nodocs/specs/file (the design flow authors that later), nothing under.claude/. - Emit skeletons with TODO markers only — author no product content (no personas, KPIs, business-value prose, or technology choices) and never fill a TODO; that is the human's job.
- Report created vs skipped files. Tell the user to fill the TODOs top-down (vision → MVP PRD → target stack), then run
/optimus:brainstormin a fresh conversation to design the first build.
Step 1: Pre-flight
If .claude/CLAUDE.md or .claude/docs/coding-guidelines.md is missing, recommend /optimus:init first; on the user's choice, continue with general best practices.
Load .claude/CLAUDE.md and .claude/docs/coding-guidelines.md, plus — only if present — the steering cascade docs/product/product-context.md, mvp-prd.md, and tech-stack.md. Steering informs the design; it is never the task itself or content to copy. Authoring boundary and precedence: $CLAUDE_PLUGIN_ROOT/references/sdd-mapping.md. In a monorepo, load the subproject's own docs/ files (testing, architecture, styling) and shared guidelines from the root .claude/docs/.
Scan the project's directory structure, key modules, and existing patterns to ground the conversation in what actually exists.
Step 2: Gather Intent
Check for JIRA context before prompting the user:
- Inline input containing a key matching
[A-Z][A-Z0-9]+-\d+whosedocs/jira/<key>.mdexists → use that file's Goal and Acceptance Criteria as the brainstorm input. If the whole input is a bare key (^[A-Z][A-Z0-9]+-\d+$) with no such file, tell the user to run/optimus:jira <KEY>first, then gather intent normally. - No inline input and
docs/jira/contains.mdfiles → pick the one with the newest frontmatterdescription-refresh-dateand offer it via AskUserQuestion (Use it / Ignore), noting when that date is over 7 days old that re-running/optimus:jirarefreshes it. Use it consumes the file's Goal and Acceptance Criteria and skips the prompts below.
Otherwise use the inline description; if none, ask what to build or change. Distill input longer than ~3 sentences into a single-sentence goal and confirm it with the user.
Surface your key assumptions about scope, constraints, and expected behavior in reply text before the first clarifying question. Then ask at most 3 clarifying questions — a maximum, not a target; one per AskUserQuestion call, preferring multiple-choice — and skip them entirely when intent is already clear.
Step 3: Explore and Propose
Explore the code the design will touch: relevant modules and conventions, dependencies and integration points, related tests. Then present 2-3 approaches (a third only if genuinely distinct), each with a name, a 2-3 sentence description, pros/cons, effort (Low / Medium / High), and alignment with existing patterns — plus a recommendation with a one-sentence rationale.
The user selects via AskUserQuestion, one option per approach with the recommendation marked. If they want to combine aspects or redirect, incorporate the feedback and present a revised approach before proceeding.
Step 4: Design
Develop a detailed design covering the spec template sections in Step 5, omitting those that don't apply. Include Scenarios when any signal applies — JIRA Acceptance Criteria, an intent naming a user-visible flow (end-user, cross-team, or regulatory), or clarifying answers describing observable outcomes — and omit them for internal refactors, infrastructure changes, and developer-only tooling. When including them, first read $CLAUDE_PLUGIN_ROOT/skills/brainstorm/references/scenario-style.md for Given/When/Then discipline — /optimus:tdd consumes each scenario as one Red-Green-Refactor cycle.
Present the design in conversation and iterate through an Approve / Adjust AskUserQuestion until the user approves.
Step 5: Write the Spec
Write to docs/specs/YYYY-MM-DD-<topic-slug>.md (lowercase hyphenated slug from the goal, max 5 words, matching [a-z0-9]+(-[a-z0-9]+)*; create docs/specs/ if needed). If the file already exists, ask the user whether to overwrite or append a -2, -3, … suffix; on overwrite, carry any existing ### Refined plan section into the new file — it holds plan-mode iteration. Keep the spec under 200 lines.
# Spec: <Title>
**Date:** YYYY-MM-DD
**Status:** Approved
**Goal:** <single sentence — what and why>
## Context
<Why the change is needed; relevant existing state.>
## Approach
<How it works; key decisions and their rationale.>
## Components
| Component | Responsibility | New / Modified |
|-----------|----------------|----------------|
## Interfaces
<How components interact — APIs, data flow, signatures. Skip for single-file changes.>
## Edge Cases and Risks
| Risk | Mitigation |
|------|------------|
## Scenarios
<Conditional — 3-7 Given/When/Then scenarios per scenario-style.md; remove the section if none apply.>
### Scenario: <concrete user-observable outcome>
**Given** <starting state in business language>
**When** <single user action>
**Then** <observable outcome>
## Out of Scope
- <What this design explicitly does not cover>
## Open Questions
- <Deferred decisions — remove if none>The spec ships with no TODOs or placeholders. If closing a gap would change a design decision the user approved, ask before changing it.
Step 6: Report
## Design Complete
**Spec:** `<spec-path>`
**Goal:** <single-sentence goal>
**Approach:** <chosen approach name>
**Components:** <count> (<count> new, <count> modified)Step 7: Next Step
Route by task type. Substitute the actual spec path into every recommendation and emitted block — /optimus:refactor and /optimus:unit-test do not read docs/specs/ on their own. Recommend running the routed skill in a fresh conversation.
| Task | Route |
| Refactoring | /optimus:refactor, passing the scope and key decisions from <spec-path> as the scope argument |
| Test-only | /optimus:unit-test, passing the target paths from <spec-path> |
| Small implementation (1-2 components, <5 behaviors) | /optimus:tdd directly — it auto-detects the spec at <spec-path> |
| Medium-to-large implementation | Plan-mode handoff below |
| Prose deliverable (zero code components, or the goal names a written artifact) | Prose flow below |
Plan-mode handoff (medium-to-large)
Read $CLAUDE_PLUGIN_ROOT/skills/brainstorm/references/plan-mode-handoff.md and emit its Prompt skeleton as a copyable plan-mode prompt, filled from the spec with <doc-path> = <spec-path>, and closed with the carve-out's ## How this conversation should run block.
Under Codex, use that reference's Codex handoff branch instead of Claude's carve-out blocks/three toggle steps. Otherwise give the three carve-out steps. Emit the execution prompt as a second copyable block from the same skeleton.
Prose flow
/optimus:tdd does not apply — use the current host's prose flow from plan-mode-handoff.md. Emit the same plan-mode prompt, but close it with a ## How this conversation should run section saying: iterate on the plan against the actual codebase; once authorized in a write-enabled conversation, produce the deliverable there; afterwards recommend the host's Optimus commit invocation in that same conversation so the implementation context is captured. For Claude Code, tell the user: start a fresh conversation in plan mode, paste the prompt, iterate, and approve the plan when satisfied; under Codex, give the reference's Codex handoff branch. Skip the execution prompt.
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
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.

