c-brainstorm
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user wants to explore an idea, think through a feature, or start a new Cadence design, including a first Cadence run in a repo with no .cadence/config.yaml.
In this repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- docs-siteSkill
- c-auditSkill
- c-checkSkill
- c-designSkill
- c-executeSkill
- c-explainSkill
- c-find-bugsSkill
- c-planSkill
- c-validateSkill
- c-worktreeSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 4 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
After hearing the topic (and before any deep Q&A), pick a mode:
- Very specific: line 46
Before entering Q&A, run the resolver.
- Very specific: line 49
If user says yes,: ask four focused questions (one at a time via AskUserQuestion):
- Distinctive: line 62
Read recent commits: git log -20 --oneline.
- Distinctive: line 64
Read the repo's CLAUDE.md (if any).
- Very specific: line 68
Step 2 — Scope decomposition check: If the idea spans multiple independent subsystems, surface this immediately.
- Very specific: line 72
Prefer AskUserQuestion (multiple-choice) wherever options are enumerable.
- Very specific: line 88
Never write the stub with unresolved questions in it.
- Very specific: line 94
No convergence pressure. The session ends when the user says so ("ok thanks", "got it", "let's stop here").
- Distinctive: line 101
If the user picks "nothing," exit cleanly with no artifact.
- Very specific: line 105
When Q&A converges, confirm: *"I have enough — writing 00-overview.md.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/c-brainstorm
You drive an interactive brainstorming Q&A. The session runs in one of two modes:
- Thought-partner mode — exploratory; helps the user think through an idea or small question; ends when the user is satisfied; writes nothing unless they ask.
- Design-brainstorm mode — converges on a concrete approach; ends by writing a single
00-overview.mdstub.
You never write child docs, plans, or code. You never auto-promote into /c-design.
Hard gate: every AskUserQuestion (no exceptions)
Before sending ANY question — including casual "what next?" / "which thread first?" menus in the middle of a thought-partner chat — it MUST pass all three checks. This is not optional and not relaxed by conversational flow. If a question can't pass, it is not ready to send.
- Plain-English lead, at the top. The
questionfield opens with a sentence a newcomer could follow — what we're deciding and why it matters right now. A bare"What next?"or a terse label fails this gate. The user must understand what's going on from the question text alone. - Exactly one
(Recommended)option, listed first. Append(Recommended)to that option's label and put it in position 1. Triage/exploration menus are NOT exempt — "it's your call" is a non-answer; pick the one you'd tackle first and say why. If which one you'd recommend depends on state, put whichever you're recommending this time first. - Each option's
descriptionstates the trade-off in one sentence — what you get, what you give up.
Full spec + worked bad→good example: skills/_shared/ask-user-question.md. Read it if you haven't this session.
Invocation forms
/c-brainstorm <idea text>— start fresh with the user's idea. Detect mode from phrasing (see "Mode detection" below)./c-brainstorm(no args) — ask: "What are we tackling?" before entering Q&A./c-brainstorm --explore <topic>— force thought-partner mode./c-brainstorm --design <topic>— force design-brainstorm mode.
Mode detection
After hearing the topic (and before any deep Q&A), pick a mode:
- Phrasing suggests thought-partner: "help me think about", "thoughts on", "what about", "is X a good idea", "I'm wondering", "exploring", "should I", "what's the trade-off between".
- Phrasing suggests design-brainstorm: "design", "build", "implement", "spec out", "let's build", "I want to add", "we need to make".
- Ambiguous → ask once via
AskUserQuestion: "Is this a thought-partner session (no artifact) or a design brainstorm (ends with a stub)?" — mark the option matching the phrasing pattern as(Recommended).
Switching mid-session:
- User says "let's capture this as a design" → switch to design-brainstorm; start steering toward convergence.
- User says "this is just exploration" or "I'm not building this yet" → drop convergence pressure; switch to thought-partner.
Detect-and-offer: missing .cadence/config.yaml
Before entering Q&A, run the resolver; if its output has "root": null (no .cadence config anywhere), then:
- Print: "No
.cadence/config.yamlfound in this repo or any parent. Scaffold defaults to get started? (y/n)" - If user says yes, ask four focused questions (one at a time via
AskUserQuestion):- Paths: "Where should designs and plans live?" — options:
docs/designs(default),docs/obsidian/designs, or other (free text). - TDD default: "Should plans default to TDD-shaped tasks (test → fail → impl → pass → commit)?" — yes / no.
- Advisors: "Any repo-specific agents to register as advisors?" — comma-separated names or "none."
- Storage backend: "Store designs and plans on the filesystem (default) or in Notion?" — filesystem / notion. When the user picks notion, ask one follow-up for
storage.notion.root_page(the parent page under which Cadence provisions its databases); seeskills/_shared/storage-resolution.md(First-run provisioning). Filesystem needs no follow-up.
- Paths: "Where should designs and plans live?" — options:
- Read
${CLAUDE_PLUGIN_ROOT}/defaults/config.default.yamlas the source of truth, then write.cadence/config.yamlto the repo root: take itsconfig_versionverbatim, fold the user's four brainstorm answers (paths, TDD default, advisors, and — when the user chose notion —storage.backendplusstorage.notion.root_page) over the corresponding default keys, and write the merged result with every other default key included as-is, except the keys inscripts/migrate-config.js'sNEVER_INSERTlist (todayplan.style): those stay out of project configs so a later change to their default still reaches this repo. Never restate a version number or key list inline — the defaults file is the single source. Confirm the file was created, and mention that personal per-machine overrides can later go in.cadence/config.local.yaml(gitignored; seeskills/_shared/config-resolution.md). (This scaffolding write is a sanctioned write path per config-resolution.md; the direct-read ban covers resolution only.) - Enter the regular Q&A loop (below) for the user's brainstorm input.
- If user says no, exit cleanly with a one-line note: "Config required to proceed. Run /c-brainstorm again when ready." No error, no pointer dump.
Q&A loop mechanics
Step 1 — Parallel context scan + pre-flight (before the first question, all in parallel):
- Resolve config by running
node "${CLAUDE_PLUGIN_ROOT}/scripts/resolve-config.js"and use its JSONconfig(paths, naming, status vocab, advisors). Follow the notice/gitignore/hard-stop contract inskills/_shared/config-resolution.md; never read.cadence/config.yaml,.cadence/config.local.yaml, ordefaults/config.default.yamldirectly. - Read recent commits:
git log -20 --oneline. - Enumerate and read related artifacts that match the idea's slug or topic per
skills/_shared/storage-resolution.md(query to list each type's artifacts, read_artifact to pull a match); do not scanpaths.designs/paths.plansdirectly. - Read the repo's
CLAUDE.md(if any).
The scan is invisible — its job is to sharpen the first question, not produce a report. No questions during the scan.
Step 2 — Scope decomposition check. If the idea spans multiple independent subsystems, surface this immediately. Offer to write future/{slug}.md stubs for the other subsystems while brainstorming one. The user picks which subsystem to brainstorm now.
Step 3 — Question discipline:
- One question per turn. A tightly-coupled cluster of 2-3 sharing an option set is acceptable; broad dumps are not.
- Prefer
AskUserQuestion(multiple-choice) wherever options are enumerable. Every call must clear the Hard gate above — plain-English lead, one(Recommended)pick listed first, trade-off per option. Use previews for visual comparisons. - User nods or redirects — never draft from scratch.
- Free-text fallback only when the option space is genuinely open.
Step 4 — Advisor consultation (opt-in). When a question is genuinely architectural ("does this approach scale," "is this the right boundary"), offer: "Want me to consult <advisor1>, <advisor2>? Token-heavy." User opts in case-by-case. Off by default. Dispatch in parallel; opinions feed back into Q&A, never directly into the artifact. User adjudicates conflicts.
Step 5 — OOS capture during Q&A (see dedicated section below).
Step 6 — Approach proposal (design-brainstorm mode only). Once questions converge, propose 2-3 approaches with trade-offs and a recommendation. User picks (or hybridizes). No design content gets written before this gate. In thought-partner mode, skip this step — there is no convergence target. Let the user drive when to wrap up.
OOS capture during Q&A
An entry lands in the running OOS list only when an option is explicitly rejected during Q&A with a clear reason. Each entry has a one-line rationale. Speculative "things we might not do" never land in OOS.
Internal-consistency invariants (Invariant 1)
Never write the stub with unresolved questions in it. The 00-overview.md stub never contains an "Open questions" section. If a question is still open, keep asking.
Exit gate
Thought-partner mode
No convergence pressure. The session ends when the user says so ("ok thanks", "got it", "let's stop here"). Before silently exiting, offer once via AskUserQuestion:
- "Capture anything from this?"
- Nothing — just exit (Recommended unless the conversation produced a concrete next step).
- Drop a
future/{slug}.mdnote — write a short standalone note capturing the idea for later. - Promote to design-brainstorm — switch modes and converge toward a
00-overview.mdstub.
If the user picks "nothing," exit cleanly with no artifact. The conversation itself is the value.
Design-brainstorm mode
When Q&A converges, confirm: "I have enough — writing 00-overview.md. Proceed?"
Stub structure — create the design artifact for slug {yyyy-mm-dd-slug} per skills/_shared/storage-resolution.md (create_artifact), which writes the 00-overview overview with the frontmatter and sections below; do not compute a <paths.designs>/… path:
- Frontmatter per
skills/_shared/frontmatter.md(design overview shape,linked_plan: null). - What we're building — 2-4 sentences, plain English.
- Why — 1-2 sentences naming the motivating problem.
- Approach — the picked option from step 6, summarized.
- Doc index — proposed child docs, one wikilink + one-line description each. Mark 97/98 as
opt-inif Q&A decided to include them; otherwise omit. - Decisions log — every
[!success] Decisioncallout from Q&A, with rationale (authored in the backend's form perskills/_shared/obsidian-format.md's backend rule: obsidian> [!success]on the filesystem, native<callout>perskills/_shared/notion-translation.mdon notion). - Out of scope — wikilink to
99-out-of-scope.md(canonical list lives there once /c-design materializes it).
Handoff: "Stub written to <path>/00-overview.md. Run /c-design to write the child docs." No auto-chain.
What /c-brainstorm doesn't do
- Doesn't write child docs (that's
/c-design). - Doesn't write plans.
- Doesn't write code.
- Doesn't decide approval — that's a user gate after
/c-design. - In thought-partner mode, doesn't write any artifact unless the user picks one at the exit gate.
- Doesn't read from or write to
future/unless scope-decomposition triggered it or the user picks that exit option.
References
- Shared frontmatter spec:
skills/_shared/frontmatter.md. - Shared question/option formatting:
skills/_shared/ask-user-question.md.
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.

