91 lines
4.1 KiB
Markdown
91 lines
4.1 KiB
Markdown
# Zotero -> Obsidian Workflow
|
|
|
|
## 1. Resolve the project
|
|
|
|
1. Run the Obsidian project-memory detect flow.
|
|
2. If the repo is bound, use its `Research/{project-slug}/` vault root.
|
|
3. If not bound but clearly a research repo, bootstrap first.
|
|
|
|
## 2. Read from Zotero
|
|
|
|
Preferred read path per paper:
|
|
1. `zotero_get_item_metadata`
|
|
2. `zotero_get_item_fulltext`
|
|
3. `zotero_get_annotations`
|
|
4. `zotero_get_notes`
|
|
|
|
Use metadata + abstract as the minimum fallback when PDF full text is unavailable.
|
|
If the MCP transport path is broken but a local `zotero-mcp` source checkout is available, use the local Python fallback to call the same metadata/fulltext functions instead of aborting.
|
|
Treat Zotero `webpage` items as weak-source entries unless they clearly expose full paper metadata and useful fulltext. Abstract-only pages and webpage placeholders may be kept for discovery, but they must remain `To-Read` or `weak-source` and cannot support `Knowledge` or manuscript claims until replaced by a full paper, preprint, or verified artifact.
|
|
|
|
## 3. Create/update the canonical paper note
|
|
|
|
Canonical destination:
|
|
- `Sources/Papers/{normalized-title-or-citekey}.md`
|
|
|
|
Update instead of duplicating when the note already exists.
|
|
|
|
## 4. Detailed reading note requirements
|
|
|
|
Each durable paper note should contain:
|
|
- claim
|
|
- research question / problem
|
|
- method
|
|
- evidence
|
|
- strengths
|
|
- limitation
|
|
- direct relevance to repo
|
|
- links to related papers and the best matching `Knowledge/` notes
|
|
|
|
## 5. Synthesize the stable literature knowledge
|
|
|
|
After a batch import, prefer agent-first synthesis into `Knowledge/`:
|
|
1. update `Knowledge/Literature Overview.md` when the batch yields a stable overview
|
|
2. update `Knowledge/Method Taxonomy.md` when method clusters are clear
|
|
3. update `Knowledge/Research Gaps.md` when open problems or tensions are stable enough to keep
|
|
4. if the source is a named Zotero collection, update a durable inventory note that records:
|
|
- collection size,
|
|
- triage buckets,
|
|
- collection item -> canonical note mapping,
|
|
- current coverage such as `16 / 16`
|
|
|
|
Apply the Claim Promotion Gate before creating or updating `Knowledge/`:
|
|
- every stable claim must cite a canonical paper note and an Evidence Record ID,
|
|
- `speculative` and `observed` claims stay as hypotheses, motivations, or open gaps,
|
|
- abstract-only or webpage-placeholder items can appear in coverage notes but not as support for durable conclusions,
|
|
- if the batch lacks enough evidence records, produce a warning/claim map instead of a polished synthesis.
|
|
|
|
## 6. Refresh the default literature canvas
|
|
|
|
After batch note creation or major note updates:
|
|
1. rebuild `Maps/literature.canvas`
|
|
2. ensure core paper notes have meaningful wikilinks into `Knowledge/`
|
|
3. keep the graph lightweight and project-facing
|
|
4. prefer semantic filtering and edge thinning over dense all-to-all paper links
|
|
5. prefer `paper + claim + method + gap` argument-map structure for the main graph
|
|
6. add `Maps/literature-main.canvas` only when a second lightweight display graph is genuinely useful
|
|
7. preserve edge evidence strength where possible; do not create all-to-all paper links or stable-looking claim edges without source-note support
|
|
|
|
## 7. Push downstream only when justified
|
|
|
|
- during Zotero ingestion, default to `Sources/Papers/` plus `Knowledge/`
|
|
- update `Writing/` only when the user asks for a review, comparison, or draft-facing synthesis and the promoted claims pass the Claim Promotion Gate
|
|
- treat `Experiments/` and `Results/` as later project workflows, not default Zotero-import targets
|
|
|
|
## 8. Verify before closing
|
|
|
|
After batch ingestion or schema refactors:
|
|
1. verify every expected paper has a canonical note
|
|
2. verify `zotero_key` coverage matches the imported collection
|
|
3. verify all covered notes use the same canonical section schema
|
|
4. update the project `Daily/` note and project memory with what changed
|
|
|
|
Recommended verification command:
|
|
|
|
```bash
|
|
python3 "${CLAUDE_PLUGIN_ROOT}/skills/zotero-obsidian-bridge/scripts/verify_paper_notes.py" \
|
|
--papers-dir "/absolute/path/to/Sources/Papers" \
|
|
--expected-zotero-keys "KEY1,KEY2,KEY3" \
|
|
--inventory-note "/absolute/path/to/Knowledge/Zotero-Collection-collection-slug-Inventory.md"
|
|
```
|