academic-writing
Write or revise thesis and paper prose section by section (abstract, introduction, related work, method, results, discussion,…
Turn a rough idea into a fully formed, written design through collaborative dialogue, exploring intent, requirements, and trade-offs one question at a time, then proposing approaches and capturing the agreed design in a spec before any code is written. Use at the start of any
Claude Code
$ npx -y skills add KhaledSaeed18/dotclaude --skill brainstorming --agent claude-code
Codex
$ npx skills add KhaledSaeed18/dotclaude --skill brainstorming -a codex -y
Cursor
$ npx skills add KhaledSaeed18/dotclaude --skill brainstorming -a cursor -y
Gemini CLI
$ npx skills add KhaledSaeed18/dotclaude --skill brainstorming -a gemini-cli -y
GitHub Copilot
$ npx skills add KhaledSaeed18/dotclaude --skill brainstorming -a github-copilot -y
OpenCode
$ npx skills add KhaledSaeed18/dotclaude --skill brainstorming -a opencode -y
Windsurf
$ npx skills add KhaledSaeed18/dotclaude --skill brainstorming -a windsurf -y
name: brainstorming description: Turn a rough idea into a fully formed, written design through collaborative dialogue, exploring intent, requirements, and trade-offs one question at a time, then proposing approaches and capturing the agreed design in a spec before any code is written. Use at the start of any creative or feature work, when the idea isn't yet concrete enough to plan or build.
Help shape a vague idea into a concrete, agreed design before anything gets built. The work is collaborative and conversational: understand what the user actually wants, surface the decisions hidden inside the request, weigh approaches together, and write the result down. The goal is a design the user has explicitly approved: not code, and not a plan yet.
Hold off on writing code, scaffolding a project, or invoking any build/plan skill until you've presented a design and the user has approved it. This holds even when the task looks trivial. "Too simple to need a design" is exactly where unexamined assumptions cause the most wasted work: a to-do app, a one-function utility, a config change all carry decisions worth naming. The design can be short (a few sentences for a genuinely simple thing), but present it and get a yes before moving on.
Before asking anything, look at what already exists, relevant files, docs, recent commits, the surrounding code. Ground the conversation in the real project so your questions are about *this* idea in *this* context, not generic ones.
Refine the idea through dialogue, asking a single question at a time rather than a wall of them. You're after:
Let each answer shape the next question. This is where unstated assumptions get surfaced and corrected cheaply.
Once you understand the shape of the problem, put two or three viable approaches on the table. For each, give the trade-offs honestly, and say which one you'd recommend and why. Don't present a single option as if it were the only one, and don't bury your recommendation: the user is deciding, and they decide better with a clear comparison.
Lay out the design in sections, each scaled to its complexity: a hard part gets detail, a trivial part gets a sentence. Get the user's agreement as you go rather than presenting a finished monolith and asking for a single thumbs-up at the end. Adjust as they react.
If the design has load-bearing decisions you're unsure about, pressure-test them before settling: the `grill-me` skill is built for stress-testing a design until the critical decisions are actually resolved.
Capture the agreed design in a spec document (a `docs/specs/YYYY-MM-DD-<topic>.md` location works well unless the project has its own convention). Then read it once with fresh eyes and check for:
Fix what you find inline. If the spec covers several independent subsystems, note that it should probably be split into one spec per subsystem.
Once the spec is written and the user has reviewed it, the natural next step is an implementation plan: use the `writing-plans` skill to turn the approved design into task-by-task work. Don't start coding directly from the brainstorm: the plan is where the design becomes executable.
Adapted from the `brainstorming` entry of [superpowers](https://github.com/obra/superpowers) by Jesse Vincent (MIT). The structure and the core rules are theirs; the wording, the examples, and the integration with this registry's other items are this repository's.
Reusable Claude Code extension registry. skills, subagents, slash commands, and hooks for engineering, git, testing, and security workflows. Distributed as a shadcn GitHub registry and as installable plugins.
Write or revise thesis and paper prose section by section (abstract, introduction, related work, method, results, discussion,…
Report computational benchmarks and experimental comparisons the way examiners and reviewers expect: fair baselines run under the…
Maintain the thesis .bib file as a single source of truth: fetch verified BibTeX from a DOI, arXiv id, or title via CrossRef and…
Expand a set of key papers into the literature around them by walking the citation graph with the Semantic Scholar and OpenAlex…
Audit every citation in a chapter, paper, or proposal against the .bib file and the real world: each cite key must exist, each…
Structure a thesis whose contribution is a built artifact (tool, system, method, model) using design science research: explicit…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.