Generate, prioritize, and refine research ideas based on current investigation state. Use when the pipeline needs new or better hypotheses — after formalization, between investigation batches, or when all current ideas are resolved.
The recurring ideation step. Reads the current research state and proposes new or refined ideas for investigation. This skill is lightweight and fast — it generates ideas, not experiments.
Invoke this skill by name; pass an optional context hint as a quoted string. On slash-command hosts, prefix with / (e.g. /brainstorm "<hint>").
# Generate ideas based on current state
brainstorm
# With a hint about what direction to explore
brainstorm "explore liveness under partial synchrony"
/formalize-problem handles initial formalization: pinning down trust assumptions, the core question, definitional hygiene, and the first set of hypotheses. It runs once./brainstorm handles recurring ideation: generating additional ideas as the investigation progresses. It runs many times./investigate handles execution: deep-diving into specific ideas. It does not generate new hypotheses.Always read before starting:
reaper-workspace/notes/problem-statement.md — model assumptions and property definitionsreaper-workspace/notes/ideas.md — the current ideas and their resolution statusreaper-workspace/notes/current-understanding.md — the "branch tip" of accumulated knowledgereaper-workspace/notes/results.md — what's been tried and what happened. If the file is long (20+ rows), read the batch summaries at the end instead of every individual row. Look for patterns in failures across batches, not individual cycle details.Lazy-load only when needed (skip these unless you're stuck or exploring a specific direction):
reaper-workspace/notes/paper-summary.md — the source paper (if provided)reaper-workspace/notes/literature.md — known prior workreaper-workspace/notes/clarified-goal.md — refined research goal and scopereaper-workspace/papers/ — downloaded PDFs and per-paper notesThis skill references files in sibling skills. {{REAPER_SKILL_DIR}} below is a template placeholder — you MUST substitute it with the absolute install path of the /reaper skill before reading, or the read will fail. Common install locations:
~/.claude/skills/reaper/ (Claude Code)~/.cursor/skills/reaper/ (Cursor)~/.agents/skills/reaper/ (Codex CLI, Cline, Gemini CLI, Copilot, OpenCode, Warp, Goose, Replit — universal target)~/.continue/skills/reaper/ (Continue)~/.windsurf/skills/reaper/ (Windsurf)<repo-root>/skills/reaper/ (during repo development)Sibling-skill dependency: This skill assumes the full /reaper package was installed together (npx skills add SebastianElvis/reaper). Single-skill installs will fail to resolve sibling references.
Read all inputs and build a picture of:
Apply these techniques systematically. Not all will produce ideas every time — use the ones that fit the current state.
Map the dimensions of existing work and find unexplored combinations. Consult {{REAPER_SKILL_DIR}}/references/model.md for the domain-appropriate gap-finding matrix dimensions. Which cells in this matrix are empty? Those are candidate hypotheses.
For each stuck or failed hypothesis, invert it:
What seems like a blockage often becomes the key insight.
What do the "keep" results imply that hasn't been stated as a hypothesis yet? If you proved safety holds under X, does that suggest liveness might fail under X? If you found a gap in the proof, does the same gap appear in related protocols?
If a hypothesis has trended toward refutation over 3+ cycles (counterexample attempts partially succeed, proof attempts consistently fail at the same point):
For each candidate idea, check whether it contradicts a known impossibility or lower bound. Consult {{REAPER_SKILL_DIR}}/references/impossibility-results.md for the domain-relevant impossibility results and lower bounds.
If a candidate contradicts a known impossibility:
Not all ideas are equally worth investigating. Rank by consequence — ask: "If we resolved this idea, who would care and why?" Consult {{REAPER_SKILL_DIR}}/references/model.md for domain-specific examples of how to rank by importance.
Update reaper-workspace/notes/ideas.md:
New ideas use this format:
## Ideas — Brainstorm Round N
### H<next>: [Short descriptive title]
- **Statement**: [Precise, falsifiable claim — specific enough that a reader could disagree]
- **Success condition**: [What evidence would confirm this?]
- **Failure condition**: [What evidence would refute this?]
- **Priority**: High / Medium / Low
- **Rationale**: [Why this priority? What's the consequence of resolving it?]
- **Source**: [What prompted this idea — a pattern in failures, a gap in the matrix, an inversion of H<x>, etc.]
Where N is one more than the highest existing brainstorm round (or 1 if none exist). Use hypothesis numbers that continue from the highest existing H number.
Constraints:
ideas.md firstAfter writing, briefly summarize to the orchestrator:
problem-statement.md or ideas.md is missing, return an error to the orchestrator