From fw
Explore requirements and approaches. Use for a fuzzy idea, open scope, or one direction that needs sharper behavior before planning.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fw:brainstormThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use the actual current date from runtime context when dating requirements
Use the actual current date from runtime context when dating requirements documents.
Brainstorming helps answer WHAT to build through collaborative dialogue. It
precedes $fw:plan, which answers HOW to build it.
The durable output of this workflow is a requirements document or, when the
user asks for one, a lightweight spec packet. Treat PRD as a user synonym
for a product-flavored spec, but use spec as Flywheel's canonical artifact
term. Keep the workflow name brainstorm, and make the written artifact strong
enough that planning does not need to invent product behavior, scope
boundaries, or success criteria.
This skill does not implement code. It explores, clarifies, and documents decisions for later planning or execution.
IMPORTANT: All file references in generated documents must use repo-relative
paths such as src/models/user.rb, never absolute paths. Absolute paths
break portability across machines, worktrees, and teammates.
Do not preload every reference file. Load only the one needed for the current phase so the working context stays tight.
references/universal-brainstorming.md only when Phase 0 routes the
task into non-software brainstorming.references/requirements-capture.md when Phase 3 begins and a durable
requirements document should be created or updated.references/spec-packet.md when the user asks for a spec, PRD, product
requirements, issue-ready requirements, or a synthesis of the current
conversation into a planning-ready artifact.references/spec-grilling.md for every software brainstorm that may
produce a durable requirements doc or spec packet. Skip it only for
alignment-only trivial work where no artifact will be produced.references/brainstorm-examples.md when taking the clear-requirements
fast path, preparing the synthesis checkpoint, structuring approach
comparisons, drafting the requirements document, or repairing output that is
drifting from the expected shape.../references/research/activation-heuristics.md when deciding whether
to reuse a saved research brief or run a focused research pass before deeper
brainstorming.../references/research/source-ranking-and-synthesis.md when current
published guidance or unfamiliar territory would materially change the
requirements, scope, or approach comparison.../references/architecture-code-quality/activation-heuristics.md when
the brainstorm is explicitly about technical boundaries, architecture, or
named pattern choices that may materially affect scope or behavior.../references/architecture-code-quality/pattern-families.md only when
a technical brainstorm needs help comparing candidate patterns or
architectural styles at a requirements level.references/visual-communication.md when deciding whether a diagram,
table, or other visual aid would make the requirements or approach
comparison easier to understand.references/handoff.md when Phase 4 begins and the brainstorm is ready
to hand off, pause, or continue.Follow ../references/host-interaction-contract.md.
src/models/user.rb, never absolute paths.<feature_description> #$ARGUMENTS </feature_description>
If the feature description above is empty, ask the user: "What would you like to explore? Please describe the feature, problem, or improvement you're thinking about."
Do not proceed until you have a feature description from the user.
If the user references an existing brainstorm topic or document, or there is
an obvious recent matching *-requirements.md file in docs/brainstorms/:
Before proceeding to Phase 0.2, classify whether this is a software task. The key question is: does the task involve building, modifying, or architecting software? -- not whether the task mentions software topics.
Software (continue to Phase 0.2) -- the task references code, repositories, APIs, databases, or asks to build, modify, debug, or deploy software.
Non-software brainstorming (route to universal brainstorming) -- BOTH conditions must be true:
Neither (respond directly, skip all brainstorming phases) -- the input is a quick-help request, error message, factual question, or single-step task that does not need a brainstorm.
If non-software brainstorming is detected: Read
references/universal-brainstorming.md and use those facilitation principles
to brainstorm with the user naturally. Do not follow the software
brainstorming phases below.
Clear requirements indicators:
If requirements are already clear:
Keep the interaction brief. Confirm understanding and present concise next-step options rather than forcing a long brainstorm. Only write a short requirements document when a durable handoff to planning or later review would be valuable. Skip Phase 1.1 and 1.2 entirely and choose exactly one fast path:
Even on this fast path, verify any checkable claim about existing repo infrastructure before writing it into a requirements document. If not verified, label it as an unverified assumption.
Use the feature description plus a light repo scan to classify the work:
If the scope is unclear, ask one targeted question to disambiguate and then proceed.
Scan the repo before substantive brainstorming. Match depth to scope:
Lightweight -- Search for the topic, check if something similar already exists, and move on.
Standard and Deep -- Two passes:
Constraint Check -- Check project instruction files (AGENTS.md, and
CLAUDE.md only if retained as compatibility context) for workflow, product,
or scope constraints that affect the brainstorm. If these add nothing, move
on.
Topic Scan -- Search for relevant terms. Read the most relevant existing
artifact if one exists (brainstorm, plan, spec, skill, feature doc, or active-
repo docs/solutions/ entry). When the active repo has docs/solutions/,
search that local store by frontmatter using files_touched, module, tags,
problem_type, component, and title before opening full docs. Prefer
doc_status: active and follow superseded_by when present. Skim adjacent
examples covering similar behavior. When the active repo has docs/research/
and the topic is current-practice-sensitive, unfamiliar, or explicitly
research-driven, search that local store by frontmatter and title before broad
external research. Match on topic, keywords, reuse_targets, and title.
Prefer a matching fresh brief whose reuse_targets include brainstorm. If it
is stale or partial, reuse it as context and note the need for targeted
follow-up research instead of trusting it blindly.
Context and decision scan -- For software brainstorms that may produce a
durable artifact, look for existing project language and prior decisions before
the first substantive question. Check CONTEXT-MAP.md, CONTEXT.md,
docs/context/, docs/decisions/, docs/adr/, and area-local context or ADR
docs when they exist. Use those artifacts to challenge terminology and
decision assumptions during the brainstorm.
If nothing obvious appears after a short scan, say so and continue. Two rules govern technical depth during the scan:
Research context (conditional, proactive) -- may auto-run when evidence quality would otherwise be weak. Route by condition:
Slack context (opt-in, Standard and Deep only) -- never auto-dispatch. Route by condition:
Before generating approaches, challenge the request to catch misframing. Match depth to scope:
Lightweight:
Standard:
Deep -- Standard questions plus:
For every software brainstorm that may produce a durable requirements doc or
spec packet, read references/spec-grilling.md and apply it before the
synthesis checkpoint. This is automatic when fw:shape routes into
fw:brainstorm.
Keep the grill proportional:
Ask one material question at a time with a recommended answer when repo truth cannot resolve the issue. If the missing answer would not change the spec, document the assumption and continue.
Follow the Interaction Rules above. Call the exact host question tool named in the host interaction contract when that tool is available.
Guidelines:
Exit condition: Continue until the idea is clear OR the user explicitly wants to proceed.
Before moving to Phase 2 or Phase 3, summarize the current understanding in a compact checkpoint. Cover:
If any of those cannot be stated concretely, ask one more targeted question before proceeding.
If the checkpoint or later structured output starts drifting, read
references/brainstorm-examples.md before continuing.
If multiple plausible directions remain, propose 2-3 concrete approaches based on research and conversation. Otherwise state the recommended direction directly.
Use at least one non-obvious angle -- inversion (what if we did the opposite?), constraint removal (what if X were not a limitation?), or analogy from how another domain solves this. The first approaches that come to mind are usually variations on the same axis.
Present approaches first, then evaluate. Let the user see all options before hearing which one is recommended -- leading with a recommendation before the user has seen alternatives anchors the conversation prematurely.
When useful, include one deliberately higher-upside alternative:
For each approach, provide:
Keep the format and order consistent across all approaches. Do not exceed 3 approaches. If the user needs to choose between them, keep the choice set to 2-3 portable options by default.
After presenting all approaches, state your recommendation and explain why. Prefer simpler solutions when added complexity creates real carrying cost, but do not reject low-cost, high-value polish just because it is not strictly necessary.
If one approach is clearly best and alternatives are not meaningful, skip the menu and state the recommendation directly.
If relevant, call out whether the choice is:
Write or update a requirements document only when the conversation produced
durable decisions worth preserving. Read references/requirements-capture.md
for the document template, formatting rules, and completeness checks. If a
visual aid may materially improve comprehension, also read
references/visual-communication.md.
When research materially shaped the requirements, capture only the decision-changing conclusions, the recommended direction they support, or cite the saved brief. Do not turn the requirements document into a source dump.
Before finalizing a requirements doc or spec packet, reapply the grill
checkpoint: project terms are consistent, fuzzy language has a canonical term,
important scenarios have been stress-tested, repo/code contradictions are
surfaced, and any context or ADR-worthy decision has been routed to
decision or recorded as an explicit open decision.
For Lightweight brainstorms, keep the document compact. Skip document creation when the user only needs brief alignment and no durable decisions need to be preserved.
When a requirements document was created or updated, run document-review in
mode:headless on it before presenting handoff options. Pass the document path.
If the skill is somehow unavailable in the current environment, manually review
the document for clarity, scope, simplification opportunities, portability, and
completeness.
If document-review auto-applied fixes, note them briefly when presenting handoff options. If it surfaces residual P0 or P1 findings, or a clearly blocking top-ranked item, mention that so the user can decide whether to address it before proceeding.
The handoff must offer a document-review option before planning. If the review surfaces issues that could change product behavior, scope, success criteria, or the definition of done, route back into questions or brainstorming before planning unless the user explicitly accepts the risk as an assumption.
When document-review surfaces architectural or scope-shaping complexity that looks heavier than the stated goal requires, call that out explicitly before offering handoff options so the user can choose whether to keep or simplify the documented shape.
When document-review surfaces runtime observability or validation blind spots, call that out explicitly before offering handoff options so the user can decide whether to sharpen the support story before planning.
When document review is complete, proceed to Phase 4.
Present next-step options and execute the user's selection. Read
references/handoff.md for the option logic, dispatch instructions, and
closing summary format.
npx claudepluginhub mopeyjellyfish/flywheel --plugin flywheelCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.