research-lit
Search and analyze research papers, find related work, summarize key ideas. Use when user says "find papers", "related work", "literature review", "what does this paper say", or needs to understand academic papers.
npx skills add majiayu000/claude-skill-registry --skill research-lit --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Guides an AI to search and analyze research papers, identify related work, and summarize key ideas. It is triggered when users request phrases like "find papers", "related work", "literature review", or need to understand academic papers.
How it works
- Defines a local PAPER_LIBRARY with prioritized paths and a MAX_LOCAL_PAPERS limit; scans local PDFs (first 3 pages) to extract title, authors, year, core contribution, and relevance.
- Performs stepwise source integration:
- Step 0a: Attempt Zotero search via MCP for topic matching papers, then extract annotations and BibTeX, and compile results.
- Step 0b: Attempt Obsidian vault search via MCP for notes related to topic, then extract user summaries and linked notes.
- Step 0c: Scan local PDFs (papers/ or literature/) for relevant documents, de-duplicate against Zotero results, filter by topic relevance, read first 3 pages, and build a local knowledge base.
- Step 1: External search using WebSearch across arXiv, Semantic Scholar, and Google Scholar; prioritize papers from the last 2 years unless foundational work is necessary; de-duplicate against Zotero/Obsidian/local results.
- If configured to use arXiv, runs an arXiv API search to obtain title, abstract, authors, and categories; merges results with WebSearch findings and removes duplicates.
- If semantic-scholar is requested, runs a semantic_scholar_fetch.py search to retrieve venue papers with citation data and metadata; integrates with arXiv results while de-duplicating by arXiv IDs.
- Maintains provenance and contribution lines for multi-source aggregation, and degrades gracefully if certain sources are unavailable.
When to use it
Use when the user asks for papers, related work, literature review, or understanding an academic paper; the skill adapts to the specified sources via a — sources directive or defaults to a broad, multi-source crawl.
What it can touch
- Local: scans PDFs in papers/ and literature/
- Web: uses WebSearch to fetch arXiv/venue papers
- External sources: Zotero and Obsidian via MCP if configured; Open access APIs (arXiv, Semantic Scholar) when available
Caveats
- De-duplication rules rely on matching filenames, arXiv IDs, and metadata; exact matching behavior is defined by the source integrations and may vary by source availability.
- Some sources may be skipped if not configured; the skill degrades to local PDFs and WebSearch in that case.
- arXiv downloads are controlled by ARXIV_DOWNLOAD and may not fetch PDFs by default; only metadata is retrieved unless explicitly enabled.
# Research Literature Review Research topic: $ARGUMENTS ## Constants - **PAPER_LIBRARY** — Local directory containing user's paper collection (PDFs). Check these paths in order: 1. `papers/` in the current project directory 2. `literature/` in the current project directory 3. Custom path specified by user in `CLAUDE.md` under `## Paper Library` - **MAX_LOCAL_PAPERS = 20** — Maximum number of local PDFs to scan (read first 3 pages each). If more are found, prioritize by filename relevance to the topic. - **SOURCES = `all`** — Which literature sources to search. Options: `zotero`, `obsidian`, `local`, `web`, `semantic-scholar`, `deepxiv`, `exa`, `gemini`, `openalex`, `all`. Full source table and selection rules: see `## Data Sources` below. - **ARXIV_DOWNLOAD = false** — When `true`, download top 3-5 most relevant arXiv PDFs to PAPER_LIBRARY after search. When `false` (default), only fetch metadata (title, abstract, authors) via arXiv API — no files are downloaded. - **ARXIV_MAX_DOWNLOAD = 5** — Maximum number of PDFs to download when `ARXIV_DOWNLOAD = true`. > 💡 Overrides: > - `/research-lit "topic" — paper library: ~/my_papers/` — custom local PDF path > - `/research-lit "topic" —
- Constants
- Data Sources
- Source Selection
- Source Table
- Workflow
- Step 0a: Search Zotero Library (if available)
- Step 0b: Search Obsidian Vault (if available)
- Step 0c: Scan Local Paper Library
- Step 1: Search (external)
- Step 1.5: Verify Candidate Papers (anti-hallucination, mandatory)
- Step 2: Analyze Each Paper
- Step 3: Synthesize
- Step 4: Output
- Step 5: Save (if requested)
Canonical strict-safe resolver (see shared-references/integration-contract.md §2).
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
fi
if [ -n "$ARXIV_FETCHER" ]; then
if python3 "$ARXIV_FETCHER" search "QUERY" --max 10; then
echo "D2 contribution: arxiv (helper invocation exit 0)" >&2
else
echo "WARN: arxiv_fetch.py invocation failed; D2 aggregate continues with WebSearch results." >&2
echo "WARN: arxiv_fetch.py not resolved; falling back to WebSearch for arXiv hits." >&2What does the research-lit skill do?
Search and analyze research papers, find related work, summarize key ideas. Use when user says "find papers", "related work", "literature review", "what does this paper say", or needs to understand academic papers.
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill research-lit --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
