Research a topic by gathering knowledge from existing documents and web sources. Integrates findings into the knowledge base. Use this skill when the user wants to research, investigate, learn about, or deepen understanding of a specific topic. Also for "research X", "find out about X", "what do experts say about X", "deepen my knowledge on X", or "explore topic X".
Actively research a topic: scan existing knowledge documents, discover and use available research skills from installed plugins, search the web for new sources, and integrate findings into the knowledge base. Idempotent — automatically adapts based on how much is already known.
| Invocation | Action |
|---|---|
/research TOPIC | Research a topic — broad if new, deeper if knowledge exists |
/research (no args) | Suggest what to research next based on current gaps |
/research TOPIC — Idempotent ResearchCheck the current state of knowledge about TOPIC:
synthesis/graph/nodes.yaml exist?synthesis/gaps/gap-matrix.md or synthesis/gaps/research-questions.md?Before researching, check if other installed plugins provide skills that can help gather knowledge on TOPIC.
Scan for installed skills — run a single Grep to find all skill descriptions:
Grep(pattern="^description:", path="~/.claude/plugins/cache/", glob="**/SKILL.md", output_mode="content")
Also check the project's .claude/skills/*/SKILL.md for local skills.
Match relevant skills — from the discovered descriptions, select skills relevant to TOPIC:
pubmed-database for biomedical topics, arxiv-database for physics/CS, fred-economic-data for economics)Extract qualified names — from each file path, derive the invocation name:
cache/{repo-name}/ (e.g., scientific-skills)literature-review){plugin-name}:{skill-name} (e.g., scientific-skills:literature-review)Apply rules:
research-aggregation plugin (prevent recursion)compatibility:, note it — the skill may need API keysIf no relevant skills found: proceed with web-only research (current behavior). This is fine — skill discovery is an enhancement, not a requirement.
This is the initial knowledge base setup. Perform a full scan:
Identify knowledge base
wissen/ or similar directories with Markdown documentsExtract concepts (Grounded Theory — open coding)
Discover relationships (Grounded Theory — axial coding)
Derive dimensions (selective coding)
Identify gaps
Save initial outputs
synthesis/graph/nodes.yamlsynthesis/graph/edges.yamlsynthesis/zwicky/dimensions.yamlsynthesis/zwicky/matrix.mdsynthesis/gaps/gap-matrix.mdThen research TOPIC — continue with web research (see section B or C below, depending on how much was found in the docs)
Read the templates under ${CLAUDE_PLUGIN_ROOT}/templates/ for the exact output formats.
Broad research to establish knowledge:
@researcher agent with TOPIC and the list of discovered skillswissen/*.md files with findings from both skill and web researchTargeted deep research to fill specific gaps:
synthesis/gaps/gap-matrix.md and synthesis/gaps/research-questions.md for open questions about TOPIC@researcher agent with TOPIC, the open research questions, and the list of discovered skillsarxiv-database for finding papers, pubmed-database for biomedical evidence)Every invocation creates a run entry:
synthesis/runs/DATE-research-TOPIC/run.yamlsynthesis/runs/DATE-research-TOPIC/sources.md (sources found and quality assessment)synthesis/runs/DATE-research-TOPIC/insights.md (key findings and surprises)The run.yaml must include a discovered-skills section when skills were scanned:
discovered-skills:
- name: scientific-skills:literature-review
relevance: "Systematic literature review for TOPIC"
used: true
result: "Found 12 relevant papers"
- name: scientific-skills:perplexity-search
relevance: "AI-powered web search"
used: false
reason: "Requires OPENROUTER_API_KEY"
If no skills were discovered, set discovered-skills: [].
/research (no args) — Suggest Next TopicsWhen invoked without a topic:
synthesis/gaps/gap-matrix.md and the graph, then suggest the top 3–5 topics worth researching next, ordered by priority/analyse for that)On first invocation: Create the directory structure synthesis/ in the project root if it does not exist. Also create synthesis/CLAUDE.md as an index.
synthesis/runs/