skills/brainstorm/SKILL.md
Collaborative design for greenfield features and new ideas. Triggers: 'brainstorm', 'ideate', 'new feature design', 'help me think through', 'what should we build', 'help me design', 'think through X with me', 'I want to build something new'.
npx skillsauth add luan/dot-claude brainstormInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Turn vague ideas into actionable designs through collaborative dialogue. For vision/exploratory work, produces structured vault output (hub + linked deep dives).
Main thread only. Interactive dialogue stays here; context scanning and research use background subagents.
Present and get approval on a design before any implementation. "Simple" projects are where unexamined assumptions waste the most work.
Dispatch up to 2 background Explore agents in parallel:
Empty/new project — skip scan, ask stack preferences in interview.
Begin the interview immediately — scan results feed Step 3.
--auto → skip interview. Infer purpose, scope, constraints, and success criteria from prompt + project context.
Without --auto: AskUserQuestion, ONE per turn. Prefer multiple-choice.
Skip interview only if the prompt has ALL three: explicit scope boundaries (non-goals stated), measurable constraints, and testable success criteria. Acknowledge by citing 2+ concrete details. When in doubt, interview.
Sequence (adapt, skip irrelevant):
Stop when you can propose approaches. Usually 3-5 questions, never >7.
Mid-dialogue pivot: If direction shifts fundamentally, acknowledge, discard stale context, restart from the relevant question.
Trigger: The topic involves architecture decisions, product direction, ecosystem integration, or greenfield design where external context matters. Skip for purely internal work (refactoring, bug triage, isolated features).
Dispatch 1-2 research subagents using WebSearch/WebFetch with specific, targeted questions — not broad surveys. Good: "Who ships QUIC in production game servers? Name projects and cite sources." Bad: "Research QUIC for games."
Keep research focused. Max 800 words per agent. Present findings as grounding for approaches, not as a literature review. If the first round is insufficient, dispatch a second round with more targeted questions based on what was missing.
Check that both scans completed. Read key documents yourself if the scan surfaced important ones — don't rely solely on subagent summaries for architectural decisions. Incorporate findings from code scan, documentation, and industry research.
Lead with recommendation + justification referencing user's constraints. Non-recommended: 2-3 sentences + downside vs recommended. Be opinionated.
Independent thinking: User inputs during the interview are hypotheses, not conclusions. If research contradicts an assumption the user stated, surface it. Don't echo the user's framing as the thesis — build your own from evidence.
--auto → auto-select the recommended approach. Without --auto → ask user to pick or refine. All rejected → ask what's missing, propose new approaches.
Scale to complexity. --auto → skip per-section confirmations. Without --auto → confirm after each section.
Include only relevant sections: architecture, data flow, API surface, error handling, testing.
Clarify as you go. If the design introduces concepts the user may not know (protocols, algorithms, infrastructure patterns), explain them inline. The brainstorm should educate while designing.
Iteration rounds. After presenting the full design, ask for feedback with structured options:
Handle granular pushback: the user may accept some sections and push back on others. Address each point individually rather than re-presenting the entire design. If pushback raises new research questions, dispatch targeted research agents before responding.
On major pushback, don't restart from scratch. Re-enter the relevant phase. Track which round you're in (Round 1/2/3) so the user sees progress.
Honest maturity. Not every topic deserves equal depth. Flag what's speculative vs. proven. If you don't have evidence for a claim, say so rather than presenting it with false confidence.
For simple brainstorms (isolated features, small scope):
Brainstorm: <topic>
Problem: <1 sentence>
Approach: <1 sentence>
Next: /spec
The design lives in this conversation. When ready to formalize, run /spec.
For vision/exploratory brainstorms (architecture, product direction, multi-faceted design):
When the conversation has matured and the user is satisfied with the direction, offer to write structured output to the project's shared vault.
Output structure:
spec/) — one-pager: problem, thesis/principles (brief),
current position, actionable direction, [[wiki-links]] to deep divesdive/) — one per major concept, independently readable,
linked back to hub via source: "[[hub-stem]]" frontmatter and Part of [[hub-name]] in bodyWriting to the vault.
For projects using the blueprints system, scaffold each spec via blueprint_create (MCP),
Edit the body, then blueprint_commit. The hub is a regular spec; each deep dive is a spec
with dive: true and a source linking back to the hub. For other vaults, write files
directly using the same sibling-folder layout.
# Hub (vision-level spec)
blueprint_create { kind: "spec", topic: "<hub topic>",
tags: ["domain/<area>", "stage/research", "status/needs-review"] }
# → ~/blueprints/<project>/spec/YYYYMMDD-<hub-slug>.md
# Edit the scaffold body, then:
blueprint_commit { path: "<returned path>" }
# Each deep dive (routed to dive/ via dive=true, linked via source)
blueprint_create { kind: "spec", dive: true,
topic: "<dive subtopic>",
slug: "<hub-slug>-<dive-subtopic-slug>",
source: "<hub-stem>",
tags: ["domain/<area>", "stage/research", "status/needs-review"] }
# → ~/blueprints/<project>/dive/YYYYMMDD-<hub-slug>-<dive-subtopic>.md
# Edit, then blueprint_commit.
Dive slug composition.
The dive slug must be explicitly composed as <hub-slug>-<dive-subtopic-slug> and passed as
slug. This is the skill's responsibility, not ct's. The hub prefix prevents collisions
across brainstorms and groups dives from the same hub together in alphabetical sort.
Do not rely on ct's auto-slug for dives — it would derive from topic alone and lose the
hub prefix.
ct spec list defaults.
blueprint_list with kind: "spec" hides dives by default. Pass include_dives: true
(or ct spec list --include-dives) to see dives alongside hubs.
Frontmatter (every hub and every dive gets the same rich shape — Obsidian needs it for queries, tag filters, and backlinks):
---
topic: <topic> # from topic arg
created: <date> # auto
author: <user> # skill-supplied (ct does not add this)
source: "[[<hub-stem>]]" # from source arg (dives only)
tags:
- type/spec # auto-derived
- project/<project> # auto-derived
- domain/<area> # skill-supplied
- stage/research # skill-supplied
- status/needs-review # skill-supplied
---
blueprint_create writes topic, created, type/spec, project/<name>, and (for dives)
source automatically. The brainstorm skill is responsible for passing the domain/stage/status
tags on every call and for appending an author: <user> line to the frontmatter after
scaffolding (or whatever convention the project uses). Keep hub and dive frontmatter
identical in shape so Obsidian queries work uniformly across both folders.
Actionable direction section (in the hub):
End with Next: chain: could be /spec for implementation, /develop for execution, or "share with team for review."
[[wiki-links]], proper frontmatter, no periods on bold titles in vault docs.tools
Tree-sitter indexed code navigator (ct sym CLI). Use INSTEAD OF Read/Grep/Glob/Bash when exploring existing code, understanding how something works, locating a symbol, tracing the call graph up (impact) or down (trace), finding implementations of an interface, scoping a diff to one symbol, or preparing to edit code you have not read yet. Triggers: 'how does X work', 'explain this class/file/symbol', 'walk me through X', 'what does X do', 'where is X defined', 'who calls X', 'what does X call', 'find implementations of', 'what breaks if I change X', 'outline this file', 'map imports', 'show me this symbol', exploring unfamiliar repo, tracing call graph, scoping diff to a symbol, preparing to edit code I haven't read, about to Read a file over ~500 lines to understand it. Do NOT use for: writing new code from scratch, editing prose or config, running tests, or when a stack trace already names the file and line.
development
Fully autonomous development workflow from prompt to commit. Chains spec → develop → review → commit. Triggers: /vibe, 'vibe this', 'autonomous workflow', 'just do it all', 'build this end-to-end', 'full pipeline', 'handle everything'.
development
Comprehensive vault maintenance — cross-references blueprints against codebase state to produce a maintenance plan: archive consumed artifacts, audit docs for staleness, propose new docs for undocumented stable systems. Triggers: 'vault sweep', 'sweep the vault', 'clean up vault', 'vault maintenance', 'what can we archive', 'audit blueprints', 'vault hygiene', 'blueprint cleanup'. Use whenever the user wants a holistic view of vault health rather than archiving a single artifact (that's /archive). Also use when the user asks what's stale, what needs docs, or whether artifacts can be cleaned up.
development
Analyze current diff, classify changes by risk, and produce structured manual test plan. Triggers: 'test plan', 'what should I test', 'manual testing', 'verification steps', 'QA checklist'. Exits early for trivial changes. Do NOT use when: writing automated tests — use /develop with TDD. Do NOT use when: reviewing code quality — use /crit instead.