agentleFS
sentasitysentasity/cadence/skills/c-brainstorm/SKILL.md

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.

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
  1. Distinctive:

    After hearing the topic (and before any deep Q&A), pick a mode:

    line 34
  2. Very specific:

    Before entering Q&A, run the resolver.

    line 46
  3. Very specific:

    If user says yes,: ask four focused questions (one at a time via AskUserQuestion):

    line 49
  4. Distinctive:

    Read recent commits: git log -20 --oneline.

    line 62
  5. Distinctive:

    Read the repo's CLAUDE.md (if any).

    line 64
  6. Very specific:

    Step 2 — Scope decomposition check: If the idea spans multiple independent subsystems, surface this immediately.

    line 68
  7. Very specific:

    Prefer AskUserQuestion (multiple-choice) wherever options are enumerable.

    line 72
  8. Very specific:

    Never write the stub with unresolved questions in it.

    line 88
  9. Very specific:

    No convergence pressure. The session ends when the user says so ("ok thanks", "got it", "let's stop here").

    line 94
  10. Distinctive:

    If the user picks "nothing," exit cleanly with no artifact.

    line 101
  11. Very specific:

    When Q&A converges, confirm: *"I have enough — writing 00-overview.md.

    line 105

≈ “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.

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

/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.md stub.

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.

  1. Plain-English lead, at the top. The question field 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.
  2. 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.
  3. Each option's description states 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:

  1. Print: "No .cadence/config.yaml found in this repo or any parent. Scaffold defaults to get started? (y/n)"
  2. 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); see skills/_shared/storage-resolution.md (First-run provisioning). Filesystem needs no follow-up.
  3. Read ${CLAUDE_PLUGIN_ROOT}/defaults/config.default.yaml as the source of truth, then write .cadence/config.yaml to the repo root: take its config_version verbatim, fold the user's four brainstorm answers (paths, TDD default, advisors, and — when the user chose notion — storage.backend plus storage.notion.root_page) over the corresponding default keys, and write the merged result with every other default key included as-is, except the keys in scripts/migrate-config.js's NEVER_INSERT list (today plan.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; see skills/_shared/config-resolution.md). (This scaffolding write is a sanctioned write path per config-resolution.md; the direct-read ban covers resolution only.)
  4. Enter the regular Q&A loop (below) for the user's brainstorm input.
  5. 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 JSON config (paths, naming, status vocab, advisors). Follow the notice/gitignore/hard-stop contract in skills/_shared/config-resolution.md; never read .cadence/config.yaml, .cadence/config.local.yaml, or defaults/config.default.yaml directly.
  • 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 scan paths.designs/paths.plans directly.
  • 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}.md note — write a short standalone note capturing the idea for later.
    • Promote to design-brainstorm — switch modes and converge toward a 00-overview.md stub.

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-in if Q&A decided to include them; otherwise omit.
  • Decisions log — every [!success] Decision callout from Q&A, with rationale (authored in the backend's form per skills/_shared/obsidian-format.md's backend rule: obsidian > [!success] on the filesystem, native <callout> per skills/_shared/notion-translation.md on 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.

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.