5.9 KiB
| name | description |
|---|---|
| zotero-ai-notes | Generate, resume, audit, and maintain AI-generated Zotero child-note literature notes using Zotero Local API metadata, Zotero Web API writes, and AwesomeGPT/DeepSeek-compatible chat settings. Use when the user asks to batch-generate Zotero literature notes, fill Zotero notes from Obsidian templates, use AwesomeGPT or DeepSeek for Zotero papers, skip existing AI notes, resume interrupted Zotero note generation, audit duplicate Zotero AI notes, or package/upgrade this Zotero note workflow. |
Zotero AI Notes
Use this skill to create Zotero child notes from local Zotero items with the user's literature-note templates.
This skill is also Obsidian-aware: templates, prompts, and the local audit cache live in the user's Obsidian vault, so preserve Obsidian Flavored Markdown conventions when reading or adapting those materials. Read references/obsidian-integration.md before changing template handling, adding vault-facing files, or generating Markdown meant to round-trip through Obsidian. Read references/upstream-obsidian-skills.md before pulling in more ideas from kepano/obsidian-skills.
Core script:
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\generate_zotero_ai_note.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --item-key SXAIQUJT --skip-existing
Fast audit script:
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\audit_zotero_ai_notes.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --keys-only
Requirements
- Zotero Desktop must be open and Local API enabled at
http://127.0.0.1:23119. - The vault must contain
00 Templaterwith:01 ...mdresearch-article template02 ...mdreview-article template03 ...mdAI prompt
ZOTERO_API_KEYmust be available in the process environment for write access.- LLM settings come from either:
AWESOMEGPT_API_KEY,AWESOMEGPT_BASE_URL,AWESOMEGPT_MODEL, or- AwesomeGPT preferences in the default Zotero profile.
Never store API keys in the skill. If keys appear in chat or logs, tell the user to rotate them.
Obsidian-Aware Template Rules
- Treat
00 Templateras the source of truth for note structure. Do not rewrite the user's templates unless asked. - Preserve Obsidian syntax from templates, including wikilinks, callouts, tags, math, highlights, comments, and YAML frontmatter.
- Zotero child notes should remain clean Markdown/HTML note content; do not insert visible AI banners such as
AI Literature NoteorAI文献笔记. - If generating any auxiliary
.mdfile in the vault, use valid Obsidian properties and internal links as described in references/obsidian-integration.md. - Keep operational artifacts hidden or clearly tool-scoped: cache/index files should stay under
00 Templaterand begin with a dot when practical.
Common Workflows
Single item
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\generate_zotero_ai_note.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --item-key SXAIQUJT --skip-existing
Set ZOTERO_API_KEY in the current shell before running live writes, but do not print or paste the value into logs or chat.
Multiple item keys
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\generate_zotero_ai_note.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --item-keys "SXAIQUJT X7GJZ627 ZCZXGRAM" --limit 0 --skip-existing --fulltext-chars 4000
Whole library
Use only after the user explicitly approves library-wide writes.
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\generate_zotero_ai_note.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --all --limit 0 --skip-existing --fulltext-chars 4000
For long runs, prefer 20-30 item batches. If a run times out, rerun with --skip-existing; the script resumes by checking child notes for the source Zotero item link.
Find items missing generated notes
Do this deterministically; do not ask DeepSeek or another LLM to compare library state.
First build or refresh the cache:
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\audit_zotero_ai_notes.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --rebuild
Later fast checks:
py "$env:USERPROFILE\.codex\skills\zotero-ai-notes\scripts\audit_zotero_ai_notes.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --keys-only
The cache lives at <vault>\00 Templater\.zotero-ai-notes-index.json. Use --refresh or --rebuild when notes were edited outside this workflow.
Operating Rules
- For live writes, state that Zotero child notes will be created.
- Use
--dry-runfor first-time validation or template changes. - Use
--fulltext-chars 4000for cheap, lightweight notes; increase only when the user asks for deeper notes. - Do not add visible machine markers to note bodies. Use the Zotero item link for duplicate detection.
- Do not delete duplicate notes unless the user explicitly requests cleanup.
- Use
audit_zotero_ai_notes.pyfor missing-note checks. Reserve DeepSeek for generating or improving note content. - If PowerShell/cmd output has Unicode issues, set
PYTHONIOENCODING=utf-8or rely on script UTF-8 reconfiguration. - If PDF full text is unavailable, allow the script to fall back to metadata, abstract, BibTeX, and optional local PDF extraction if a Python PDF library exists.
Upgrade Points
Read references/upgrade-plan.md before changing behavior, adding cleanup, adding collection targeting, or improving note quality.
Read references/obsidian-integration.md before adding Obsidian vault exports, Bases views, markdown normalization, or Obsidian CLI integration.
Read references/upstream-obsidian-skills.md before doing another merge from kepano/obsidian-skills.