5.4 KiB
5.4 KiB
name, description, args, tags
| name | description | args | tags | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| zotero-notes | Batch read papers from Zotero and create/update detailed reading notes, preferably inside the bound Obsidian project knowledge base |
|
|
/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}.mdin the working directory if the current repo is not bound to Obsidian
Workflow
Step 0: Resolve whether the current repo is Obsidian-bound
- If
.claude/project-memory/registry.yamlexists for the current repo, treat the bound vault as the primary output target. - If the repo is a research project but not yet bound, bootstrap it first.
- If there is no bound project context, fall back to a plain markdown output in the working directory.
- Treat this command as an explicit agent-first ingestion pass under
$zotero-obsidian-bridge.
Step 1: Load papers from Zotero
- Call
mcp__zotero__zotero_get_collectionsto find the matching collection. - Call
mcp__zotero__zotero_get_collection_itemsto list the papers. - For each item, call:
mcp__zotero__zotero_get_item_metadatamcp__zotero__zotero_get_item_fulltextwhen a PDF is availablemcp__zotero__zotero_get_annotationswhen helpfulmcp__zotero__zotero_get_noteswhen helpful
- If MCP transport fails but a local
zotero-mcpcheckout is available, use the local Python fallback instead of stopping the pass. - Treat Zotero
webpageitems as weak-source inputs unless they clearly expose full paper metadata and useful full text. Abstract-only or placeholder pages must stayTo-Readand cannot supportKnowledgeorWritingclaims.
Step 2: Create/update the canonical paper note
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 hooks- canonical
Evidence RecordwithSource typeandClaim strengthwhen the paper has reusable claims
Recommended frontmatter fields:
title,authors,year,venue,doi,url,citekey,zotero_keykeywords,concepts,methodsrelated_papers,linked_knowledge,argument_claims,argument_methods,argument_gaps,paper_relationships
Prefer updating the existing note over creating a sibling note.
Step 3: Collection coverage and synthesis
After the paper-note pass:
- update a collection inventory note when the source is a named collection
- record item -> canonical note mapping and coverage counts such as
16 / 16 - verify coverage against expected Zotero keys, DOI values, or arXiv IDs when the user supplied them
- label abstract-only and webpage-placeholder items separately in the inventory
- synthesize durable literature knowledge under
Knowledge/, for example:Knowledge/Literature Overview.mdKnowledge/Method Taxonomy.mdKnowledge/Research Gaps.md
Prefer updating existing canonical knowledge notes over creating parallel summaries.
Step 4: Refresh the default literature canvas
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.
Step 5: Optional synthesis outputs
- If
format=comparisonand promoted claims pass the evidence gate, also updateWriting/comparison-matrix.md. - If the paper batch already supports a thematic synthesis and promoted claims pass the evidence gate, update
Writing/related-work-draft.md. If not, write only a coverage warning or claim map.
Step 6: Minimal write-back
Always update:
- today's
Daily/YYYY-MM-DD.md - repo-local binding summary when project state changes
Step 7: Final response
Include:
- collection size and coverage summary
- created / updated note paths
- optional
obsidian://openlinks - optional
obsidian open ...suggestions when CLI is available
Fallback behavior
If the repo is not bound to Obsidian:
- create
reading-notes-{collection}.md - if
format=comparisonand promoted claims pass the evidence gate, also createcomparison-matrix.md
Notes
- Zotero remains the source of truth for collection structure, metadata, attachments, PDF full text, and annotations.
- Obsidian remains the durable project knowledge surface for reading notes, project relevance, and cross-note linking.
- Default bridge targets are
Sources/Papers/andKnowledge/. - Do not dump raw full text into Obsidian paper notes.
- Do not create
Concepts/orDatasets/trees by default. - Refresh
Maps/literature.canvasby default after a substantial Zotero ingestion pass. - Treat
Experiments/andResults/as later project workflows, not the default Zotero-import destination. - Do not let abstract-only or webpage-placeholder items support durable claims.