diff options
| author | sillylaird <sillyfanboy@gmail.com> | 2026-09-03 00:33:59 +0000 |
|---|---|---|
| committer | sillylaird <sillyfanboy@gmail.com> | 2026-09-03 00:33:59 +0000 |
| commit | 898b52edcb47bcb3e9d6106e74ca73e74ea01e70 (patch) | |
| tree | 85c6ee5ad58b860144551184d4cf86b560c62b91 /.agents/skills/zotero-obsidian-bridge/SKILL.md | |
| download | www-898b52edcb47bcb3e9d6106e74ca73e74ea01e70.tar.gz www-898b52edcb47bcb3e9d6106e74ca73e74ea01e70.zip | |
Diffstat (limited to '')
| -rw-r--r-- | .agents/skills/zotero-obsidian-bridge/SKILL.md | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/.agents/skills/zotero-obsidian-bridge/SKILL.md b/.agents/skills/zotero-obsidian-bridge/SKILL.md new file mode 100644 index 0000000..577e209 --- /dev/null +++ b/.agents/skills/zotero-obsidian-bridge/SKILL.md @@ -0,0 +1,112 @@ +--- +name: zotero-obsidian-bridge +description: 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. +version: 0.2.0 +--- + +# 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.canvas`** as the default graph artifact. +- Prefer a strong review schema inside each canonical paper note: + - `Claim` + - `Method` + - `Evidence` + - `Limitation` + - `Direct relevance to repo` + - `Relation to other papers` +- Treat some Zotero `webpage` items as valid literature sources when they still expose useful metadata, attachment text, or fulltext. + +## Default workflow + +1. 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. +2. 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-mcp` source checkout or Python environment is available, use that local fallback to read metadata/fulltext instead of stopping the workflow. +3. For each paper: + - get metadata, + - get full text when available, + - get annotations/notes when helpful, + - create or update the canonical paper note in `Papers/`. +4. 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. +5. Synthesize the batch into durable `Knowledge/` notes such as: + - `Knowledge/Literature-Overview.md` + - `Knowledge/Method-Families.md` + - `Knowledge/Research-Gaps.md` + only when the synthesis is stable enough to deserve a canonical note. +6. 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`. +7. 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`. +8. If the user also wants writing deliverables, update: + - `Writing/literature-review.md` + - `Writing/comparison-matrix.md` +9. Update today's `Daily/` note and repo-local project memory. +10. Run a deterministic verification pass after batch ingestion or schema refactors. + +## Default outputs + +- `Papers/*.md` - one detailed reading note per paper +- `Knowledge/*.md` - durable literature synthesis notes when the batch yields stable knowledge +- `Knowledge/Zotero-Collection-{collection-slug}-Inventory.md` - when the source is a concrete Zotero collection and coverage tracking matters +- `Maps/literature.canvas` - default visual literature graph +- `Maps/literature-main.canvas` - optional lightweight presentation graph after semantic filtering +- `Writing/literature-review.md` - when the user asks for synthesis +- `Writing/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/` or `Datasets/` trees by default. +- Do not treat `Experiments/`, `Results/`, or `Writing/` as the default bridge target during Zotero ingestion. +- Do not force every relationship into a new note; use frontmatter fields, sections, wikilinks, and `linked_knowledge` first. +- 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 procedure +- `references/PAPER-NOTE-SCHEMA.md` - detailed paper note fields and sections +- `references/COLLECTION-INVENTORY-SCHEMA.md` - canonical inventory note naming and mapping contract +- `references/LOCAL-ZOTERO-FALLBACK.md` - local fallback runbook when MCP transport fails +- `examples/example-collection-inventory.md` - example inventory note +- `scripts/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 |
