From claude-scholar
Batch reads papers from a Zotero collection and creates or updates detailed reading notes, preferring an Obsidian vault as the output target.
How this command is triggered — by the user, by Claude, or both
Slash command
/claude-scholar:zotero-notesThe summary Claude sees in its command listing — used to decide when to auto-load this command
# /zotero-notes - Zotero to Obsidian Reading Notes
Read papers from the Zotero collection "$collection" and create or update detailed reading notes.
## Default target
- **Preferred target**: the bound Obsidian project knowledge base (`Sources/Papers/*.md`)
- **Fallback target**: `reading-notes-{collection}.md` in the working directory if the current repo is not bound to Obsidian
## Workflow
### Step 0: Resolve whether the current repo is Obsidian-bound
1. If `.claude/project-memory/registry.yaml` exists for the current repo, treat the bound vault as the primary output target.
2. If th...Read papers from the Zotero collection "$collection" and create or update detailed reading notes.
Sources/Papers/*.md)reading-notes-{collection}.md in the working directory if the current repo is not bound to Obsidian.claude/project-memory/registry.yaml exists for the current repo, treat the bound vault as the primary output target.$zotero-obsidian-bridge.mcp__zotero__zotero_get_collections to find the matching collection.mcp__zotero__zotero_get_collection_items to list the papers.mcp__zotero__zotero_get_item_metadatamcp__zotero__zotero_get_item_fulltext when a PDF is availablemcp__zotero__zotero_get_annotations when helpfulmcp__zotero__zotero_get_notes when helpfulzotero-mcp checkout is available, use the local Python fallback instead of stopping the pass.webpage items as weak-source inputs unless they clearly expose full paper metadata and useful full text. Abstract-only or placeholder pages must stay To-Read and cannot support Knowledge or Writing claims.If the project is Obsidian-bound, create or update one canonical note per paper under Sources/Papers/.
Each detailed note should contain:
ClaimResearch questionMethodEvidenceStrengthsLimitationDirect relevance to repoRelation to other papersKnowledge linksOptional downstream hooksEvidence Record with Source type and Claim strength when the paper has reusable claimsRecommended frontmatter fields:
title, authors, year, venue, doi, url, citekey, zotero_keykeywords, concepts, methodsrelated_papers, linked_knowledge, argument_claims, argument_methods, argument_gaps, paper_relationshipsPrefer updating the existing note over creating a sibling note.
After the paper-note pass:
16 / 16Knowledge/, for example:
Knowledge/Literature Overview.mdKnowledge/Method Taxonomy.mdKnowledge/Research Gaps.mdPrefer updating existing canonical knowledge notes over creating parallel summaries.
After batch note creation or substantial note updates, refresh:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/obsidian-literature-workflow/scripts/build_literature_canvas.py" --cwd "$PWD"
This rebuilds Maps/literature.canvas from paper-note and knowledge-note links.
format=comparison and promoted claims pass the evidence gate, also update Writing/comparison-matrix.md.Writing/related-work-draft.md.
If not, write only a coverage warning or claim map.Always update:
Daily/YYYY-MM-DD.mdInclude:
obsidian://open linksobsidian open ... suggestions when CLI is availableIf the repo is not bound to Obsidian:
reading-notes-{collection}.mdformat=comparison and promoted claims pass the evidence gate, also create comparison-matrix.mdSources/Papers/ and Knowledge/.Concepts/ or Datasets/ trees by default.Maps/literature.canvas by default after a substantial Zotero ingestion pass.Experiments/ and Results/ as later project workflows, not the default Zotero-import destination.npx claudepluginhub galaxy-dawn/claude-scholar --plugin claude-scholar/gap-analysisAnalyzes papers in a folder or Zotero collection for research gaps and generates new research ideas.
/obsidian-archiveExtracts learnings from the current Claude Code session using progressive summarization and archives them as Zettelkasten notes in Obsidian vault after user approval.
/ingestFetches paper via URL, arXiv ID, DOI, or PDF path and generates 4-section triage summary (Key Takeaways, Background, Main Idea & Summary, Critique). Adds to vault if new.