Agent skill
zotero-obsidian-bridge
Use this skill when papers are collected in Zotero but the user wants detailed reading notes, project-linked literature synthesis, collection-wide paper-note coverage checks, and a connected knowledge map inside the bound Obsidian project knowledge base.
Install this agent skill to your Project
npx add-skill https://github.com/Galaxy-Dawn/claude-scholar/tree/main/skills/zotero-obsidian-bridge
SKILL.md
Zotero Obsidian Bridge
Bridge Zotero as the literature source of truth with Obsidian as the durable project knowledge base.
Use this skill when the user wants to:
- collect and organize papers in Zotero,
- read papers from Zotero MCP,
- create or update one detailed paper note per paper under Obsidian
Papers/, - synthesize those notes into
Knowledge/notes, - verify that a whole Zotero collection has complete canonical note coverage,
- visualize the literature structure as a default Obsidian canvas.
Core stance
- Zotero owns collection, metadata, attachments, PDF full text, annotations.
- Obsidian owns durable reading notes, project-facing literature knowledge, cross-note links, synthesis.
- Prefer one canonical paper note per paper.
- Prefer filesystem-first Obsidian notes; do not require Obsidian MCP.
- Use this as an explicit, agent-first skill for Zotero ingestion.
- Prefer
Papers/+Knowledge/as the default bridge targets. - Prefer
Maps/literature.canvasas the default graph artifact. - Prefer a strong review schema inside each canonical paper note:
ClaimMethodEvidenceLimitationDirect relevance to repoRelation to other papers
- Treat some Zotero
webpageitems as valid literature sources when they still expose useful metadata, attachment text, or fulltext.
Default workflow
- Resolve the current project via
$obsidian-project-memory.- If the repo is already bound, use the existing vault.
- If it looks like a research repo but is not bound, bootstrap it first.
- Read Zotero items from the target collection/query.
- If the user asked for a full collection pass, prefer full coverage over a small representative subset.
- If the transport path through MCP is failing but a local
zotero-mcpsource checkout or Python environment is available, use that local fallback to read metadata/fulltext instead of stopping the workflow.
- For each paper:
- get metadata,
- get full text when available,
- get annotations/notes when helpful,
- create or update the canonical paper note in
Papers/.
- Add project-facing structure to each paper note:
- claim,
- research question,
- method,
- evidence,
- strengths,
- limitation,
- direct relevance to repo,
- relation to other papers,
- links to related papers and the best matching
Knowledge/notes.
- Synthesize the batch into durable
Knowledge/notes such as:Knowledge/Literature-Overview.mdKnowledge/Method-Families.mdKnowledge/Research-Gaps.mdonly when the synthesis is stable enough to deserve a canonical note.
- If the request is collection-scoped, update a durable inventory note that records:
- collection size,
- item triage,
- item -> canonical note mapping,
- current coverage count such as
16 / 16. - use the canonical inventory path
Knowledge/Zotero-Collection-{collection-slug}-Inventory.md.
- Refresh
Maps/literature.canvas.- Prefer semantic filtering and edge thinning.
- Prefer argument-map structure (
paper + claim + method + gap) over dense all-to-all paper links. - If needed, keep a second lightweight display canvas such as
Maps/literature-main.canvas.
- If the user also wants writing deliverables, update:
Writing/literature-review.mdWriting/comparison-matrix.md
- Update today's
Daily/note and repo-local project memory. - Run a deterministic verification pass after batch ingestion or schema refactors.
Default outputs
Papers/*.md- one detailed reading note per paperKnowledge/*.md- durable literature synthesis notes when the batch yields stable knowledgeKnowledge/Zotero-Collection-{collection-slug}-Inventory.md- when the source is a concrete Zotero collection and coverage tracking mattersMaps/literature.canvas- default visual literature graphMaps/literature-main.canvas- optional lightweight presentation graph after semantic filteringWriting/literature-review.md- when the user asks for synthesisWriting/comparison-matrix.md- when cross-paper comparison is useful
Safety rules
- Do not dump raw full text into Obsidian.
- Do not create a new note if the canonical paper note already exists.
- Do not create
Concepts/orDatasets/trees by default. - Do not treat
Experiments/,Results/, orWriting/as the default bridge target during Zotero ingestion. - Do not force every relationship into a new note; use frontmatter fields, sections, wikilinks, and
linked_knowledgefirst. - If a relationship is uncertain, record it in the note body or
Daily/instead of manufacturing durable structure. - Do not stop at a representative subset if the user explicitly asked to check all papers in a collection.
- Do not leave schema drift unresolved across notes in the same collection after a batch pass.
References
Load only what is needed:
references/WORKFLOW.md- end-to-end Zotero -> Obsidian procedurereferences/PAPER-NOTE-SCHEMA.md- detailed paper note fields and sectionsreferences/COLLECTION-INVENTORY-SCHEMA.md- canonical inventory note naming and mapping contractreferences/LOCAL-ZOTERO-FALLBACK.md- local fallback runbook when MCP transport failsexamples/example-collection-inventory.md- example inventory notescripts/verify_paper_notes.py- deterministic schema, zotero-key, and inventory consistency check../obsidian-literature-workflow/references/PAPER-NOTE-SCHEMA.md- shared note schema../obsidian-literature-workflow/references/CANVAS-WORKFLOW.md- default literature canvas refresh rules
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
bug-detective
This skill should be used when the user asks to "debug this", "fix this error", "investigate this bug", "troubleshoot this issue", "find the problem", "something is broken", "this isn't working", "why is this failing", or reports errors/exceptions/bugs. Provides systematic debugging workflow and common error patterns.
doc-coauthoring
This skill should be used when the user asks to co-author documentation, draft a proposal, write a technical spec, create a decision doc or RFC, or structure a substantial document through iterative collaboration and reader testing.
daily-paper-generator
Use when the user asks to "generate daily paper", "search arXiv for EEG papers", "find EEG decoding papers", "review brain-computer interface papers", or wants to create paper summaries for EEG/brain decoding/speech decoding research. This skill automates searching arXiv for recent papers on EEG decoding, EEG speech decoding, or brain foundation models, reviewing paper quality, and generating structured Chinese/English summaries.
paper-self-review
This skill should be used when the user asks to "review paper quality", "check paper completeness", "validate paper structure", "self-review before submission", or mentions systematic paper quality checking. Provides comprehensive quality assurance checklist for academic papers.
agent-identifier
Use when creating or configuring Claude Code agents and their frontmatter.
obsidian-cli
Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Didn't find tool you were looking for?