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/references | |
| download | www-898b52edcb47bcb3e9d6106e74ca73e74ea01e70.tar.gz www-898b52edcb47bcb3e9d6106e74ca73e74ea01e70.zip | |
Diffstat (limited to '.agents/skills/zotero-obsidian-bridge/references')
4 files changed, 235 insertions, 0 deletions
diff --git a/.agents/skills/zotero-obsidian-bridge/references/COLLECTION-INVENTORY-SCHEMA.md b/.agents/skills/zotero-obsidian-bridge/references/COLLECTION-INVENTORY-SCHEMA.md new file mode 100644 index 0000000..759803d --- /dev/null +++ b/.agents/skills/zotero-obsidian-bridge/references/COLLECTION-INVENTORY-SCHEMA.md @@ -0,0 +1,49 @@ +# Collection Inventory Schema + +Use this note when a Zotero collection is imported or audited at collection scope. + +## Canonical path + +```text +Knowledge/Zotero-Collection-{collection-slug}-Inventory.md +``` + +## Frontmatter + +```yaml +--- +type: zotero-collection-inventory +collection: Cross Subject +collection_slug: cross-subject +source: zotero +coverage_expected: 16 +coverage_actual: 16 +updated: 2026-03-18T00:00:00Z +--- +``` + +## Required sections + +```markdown +# Cross Subject Inventory + +## Coverage Summary +- Expected items: 16 +- Canonical notes: 16 / 16 + +## Item Mapping +| Zotero Key | Item Title | Canonical Note | Status | +|---|---|---|---| +| ABCDEFGH | Example title | Papers/Example-Paper.md | covered | + +## Triage +- fully covered +- skipped or bridge-only notes +- items that still need full notes +``` + +## Rules +- Keep one durable inventory note per collection slug. +- `Canonical Note` should use project-relative note paths. +- `Status` should use a small vocabulary such as `covered`, `bridge-only`, `skipped`, `needs-review`. +- Update coverage counts whenever the collection is batch-processed again. diff --git a/.agents/skills/zotero-obsidian-bridge/references/LOCAL-ZOTERO-FALLBACK.md b/.agents/skills/zotero-obsidian-bridge/references/LOCAL-ZOTERO-FALLBACK.md new file mode 100644 index 0000000..5bed8f5 --- /dev/null +++ b/.agents/skills/zotero-obsidian-bridge/references/LOCAL-ZOTERO-FALLBACK.md @@ -0,0 +1,22 @@ +# Local Zotero Fallback + +Use this runbook when the Zotero MCP transport is unavailable but the user still wants a collection-level pass. + +## Preconditions + +- A local `zotero-mcp` checkout or installed Python package is available. +- The local environment can read metadata/fulltext without mutating the Zotero library. + +## Default fallback sequence + +1. Confirm that MCP transport is the failing layer, not the collection query itself. +2. Switch to the local Python-backed path for metadata and fulltext retrieval. +3. Continue creating or updating canonical paper notes. +4. Run `verify_paper_notes.py` before closing the batch. + +## Report explicitly + +Always state: +- that MCP transport failed, +- that the workflow continued through local fallback, +- what remained unavailable, if anything. diff --git a/.agents/skills/zotero-obsidian-bridge/references/PAPER-NOTE-SCHEMA.md b/.agents/skills/zotero-obsidian-bridge/references/PAPER-NOTE-SCHEMA.md new file mode 100644 index 0000000..1171aab --- /dev/null +++ b/.agents/skills/zotero-obsidian-bridge/references/PAPER-NOTE-SCHEMA.md @@ -0,0 +1,81 @@ +# Zotero-Sourced Paper Note Schema + +## Frontmatter + +```yaml +--- +type: paper +project: project-slug +title: "Paper Title" +canvas_visibility: hidden +authors: + - Author A + - Author B +year: 2026 +venue: "NeurIPS" +doi: "10.xxxx/xxxxx" +url: "https://doi.org/..." +citekey: "author2026paper" +zotero_key: "ABCDEFGH" +status: read +keywords: + - subject-invariance + - contrastive-learning +concepts: + - shared geometry +methods: + - contrastive pretraining +subfield: speech-transfer +related_papers: + - "Papers/Another-Paper" +linked_knowledge: + - "Knowledge/Literature-Overview" + - "Knowledge/Method-Families" +argument_claims: + - "Shared geometry exists but is fragile" +argument_methods: + - "Geometry-aware transfer" +argument_gaps: + - "Still needs speech-specific validation" +paper_relationships: + - "Papers/Another-Paper::complements" +updated: 2026-03-16T00:00:00Z +--- +``` + +## Sections + +```markdown +# Paper Title + +## Claim + +## Research question + +## Method + +## Evidence + +## Strengths + +## Limitation + +## Direct relevance to repo + +## Relation to other papers + +## Knowledge links + +## Optional downstream hooks +- Writing: +``` + +## Rules + +- `related_papers` and `linked_knowledge` should prefer project-relative note paths. +- `paper_relationships` should record explicit semantic edges only when they are stable enough to support graph construction. +- `concepts` and `methods` may remain plain strings; do not create dedicated notes by default. +- Keep `Direct relevance to repo` concrete and actionable. +- Prefer one durable canonical note per paper; update in place instead of making sibling notes. +- If the user asked for a full collection pass, normalize the schema across the entire covered set before closing the task. +- Treat Zotero `webpage` items as acceptable inputs when attachment text or fulltext is still available and useful. diff --git a/.agents/skills/zotero-obsidian-bridge/references/WORKFLOW.md b/.agents/skills/zotero-obsidian-bridge/references/WORKFLOW.md new file mode 100644 index 0000000..605a408 --- /dev/null +++ b/.agents/skills/zotero-obsidian-bridge/references/WORKFLOW.md @@ -0,0 +1,83 @@ +# 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 some Zotero `webpage` items as valid literature entries when they still expose meaningful metadata or fulltext. + +## 3. Create/update the canonical paper note + +Canonical destination: +- `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-Families.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` + +## 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. Push downstream only when justified + +- during Zotero ingestion, default to `Papers/` plus `Knowledge/` +- update `Writing/` only when the user asks for a review, comparison, or draft-facing synthesis +- 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/Papers" \ + --expected-zotero-keys "KEY1,KEY2,KEY3" \ + --inventory-note "/absolute/path/to/Knowledge/Zotero-Collection-collection-slug-Inventory.md" +``` |
