Help us improve
Share bugs, ideas, or general feedback.
From agentheim
Searches the web, fetches sources, and writes a structured research report to disk. Activates when the user or another skill needs external knowledge — state of the art, comparisons, library docs, or domain info outside the codebase.
npx claudepluginhub heimeshoff/agentheim --plugin agentheimHow this skill is triggered — by the user, by Claude, or both
Slash command
/agentheim:researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The `research` skill is how external knowledge enters the workflow. It runs WebFetch and WebSearch, synthesizes the findings, and produces a markdown report that other skills can cite.
Researches topics via web search to identify approaches, papers, implementations, tradeoffs, and recommendations. Creates structured Markdown reports in reports/ directory.
Conducts deep parallel research on topics using web searches and tools. Produces cited markdown files in research/ directory with validated URLs and synthesis summary.
Conducts deep research on topics or indexes local files/URLs into a git-versioned knowledge base using web search, fetch, and structured templates.
Share bugs, ideas, or general feedback.
The research skill is how external knowledge enters the workflow. It runs WebFetch and WebSearch, synthesizes the findings, and produces a markdown report that other skills can cite.
Research is about understanding, not decision-making. Produce a report; do not produce an ADR. Decisions come later — in model or work — and they cite research reports.
Accept one of:
If the request is vague ("research auth"), narrow it once with the user before running.
Delegate to the researcher agent. The researcher will:
Files land at .agentheim/knowledge/research/<slug>-<date>.md:
---
topic: [one-line topic]
date: 2026-04-24
requested_by: [brainstorm | model | work | user]
related_tasks: []
---
# Research: [Topic]
## Question
What we wanted to know, in one or two sentences.
## Summary
3–6 bullet answers. Lead with what's decision-relevant, not with what's novel.
## Findings
Subsections as needed. Each claim cites its source(s). Disagreements
between sources are named, not hidden.
## Sources
Numbered list with URL, title, and one-line relevance note per source.
## Open questions
Things we wanted to answer and couldn't, or that would need primary research.
When a research report influences a task or decision:
related_research frontmatter gets the report's slug (so workers pre-load it)related_research frontmatterrelated_tasks gets updatedThis bidirectional linking is how knowledge stays findable.
After the researcher writes the report, update the index entries so the report is discoverable. Index template lives at references/index-template.md.
related_tasks are all in one BC, or the topic is clearly scoped to one BC → insert under <!-- research-local:start --> in contexts/<bc>/INDEX.md.<!-- research-global:start --> in .agentheim/knowledge/index.md.If the target INDEX.md doesn't exist yet, create it from references/index-template.md first.
A later task or ADR that adopts this report should update the inserted line's BC scope if it migrates from global to BC-local (rare).
After writing the report, prepend an entry to .agentheim/knowledge/protocol.md (creating the file with its header if missing — see brainstorm/model/work skills for the header template):
## YYYY-MM-DD HH:MM -- Research: [topic]
**Type:** Research
**Requested by:** brainstorm | model | work | user
**Report:** knowledge/research/<slug>-<date>.md
**Summary:** [2-3 bullet findings]
---
Research is naturally parallelizable. If the user asks for research on multiple distinct topics, spawn multiple researcher agents rather than serializing. Each writes its own report.