Help us improve
Share bugs, ideas, or general feedback.
From obsidian-vault-agent
Searches academic databases (Semantic Scholar) for papers by topic, finds papers related to existing notes, and discovers research gaps. Presents ranked results and optionally creates formatted paper notes.
npx claudepluginhub tuan3w/obsidian-vault-agent --plugin obsidian-vault-agentHow this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-vault-agent:paper-discoverThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<Purpose>
Searches academic literature across multiple sources (Google Scholar, Consensus, Paperpile) with deduplication, DOI resolution, and journal filtering.
Synthesizes existing knowledge on topics, identifies research gaps, and traces evolution of scientific ideas via systematic literature reviews using academic databases.
Runs a systematic literature review workflow: scope definition, multi-source search (arXiv, Semantic Scholar, Google Scholar), screening, extraction, synthesis, and gap analysis.
Share bugs, ideas, or general feedback.
<Use_When>
<Do_Not_Use_When>
<Execution_Policy>
Determine the search mode from user input:
Mode A — Topic search (default): User provides a topic or question. Extract search terms.
"find papers about scaling laws for LLMs" → query: "scaling laws large language models"
Mode B — Similar papers: User references an existing vault note or provides a paper ID/DOI.
Mode C — Gap filling: User asks about a domain. Search vault first to identify what's covered, then search for papers on uncovered subtopics.
Run the search script:
SKILL_DIR="${CLAUDE_SKILL_DIR}"
# Topic search
python3 "$SKILL_DIR/scripts/search_papers.py" "QUERY" --limit 20 --min-citations 5
# With year filter
python3 "$SKILL_DIR/scripts/search_papers.py" "QUERY" --limit 20 --year-from 2020
# Get recommendations from a paper
python3 "$SKILL_DIR/scripts/search_papers.py" "" --recommend-from "DOI:10.xxxx/xxxxx"
# Look up specific paper
python3 "$SKILL_DIR/scripts/search_papers.py" "" --paper-id "DOI:10.xxxx/xxxxx"
Script returns JSON array of papers with: title, authors, year, abstract, tldr, citation_count, influential_citations, url, doi, arxiv_id, fields_of_study.
Read the agent definition from agents/paper-writer.md in the skill directory.
Search the vault for existing paper notes on this topic using the MCP tool:
search_notes(query="KEYWORD", limit=20)
Or fall back to Grep if MCP is unavailable:
Grep(pattern="KEYWORD", path="notes/", glob="*.md", head_limit=20)
Launch the paper-writer agent to rank and present:
Agent(
subagent_type="general-purpose",
model="sonnet",
run_in_background=false,
prompt="You are Paper Writer. Follow these instructions exactly:
[INSERT FULL CONTENT OF agents/paper-writer.md HERE]
SEARCH CONTEXT:
- User query: [original query]
- Search mode: [topic/similar/gap]
- Vault topics: [detected from search/tags]
EXISTING VAULT PAPERS:
[List any matching paper notes already in the vault]
SEARCH RESULTS:
[INSERT JSON FROM STAGE 2 HERE]
Rank these papers by relevance to the vault's existing knowledge.
Present the top 10 with your assessment. Do NOT create notes yet —
just present the ranked list for user triage."
)
After user selects which papers to add:
For each selected paper, create a vault note:
date +%Y%m%d%H%M%SNote template:
---
id: YYYYMMDDHHMMSS
created_date: YYYY-MM-DD
updated_date: YYYY-MM-DD
type: paper
category:
link: [paper URL]
processing_status: inbox
---
# Title
- **🏷️Tags** : #paper #topic-tag #MM-YYYY
[ ](#anki-card)
## Abstract
- [Synthesized abstract bullets]
## Notes
## Questions
## Related links
- [Paper URL](url)
- [[(Type) Related Vault Note]]
Place the note in notes/paper/ (or appropriate topic folder).
<Tool_Usage>
<Escalation_And_Stop_Conditions>
$ARGUMENTS