Zotero Literature Visualizer
Purpose
Turn either a local Zotero library or a research topic into a reproducible literature workspace containing normalized metadata, evidence-aware paper notes, a bilingual synthesis, and an offline interactive dashboard.
Bundled scripts perform deterministic collection, Zotero snapshot reading, metadata normalization, dashboard rendering, citation-network enrichment, and optional Zotero API writes. The agent remains responsible for scholarly judgment: relevance screening, evidence verification, full-text interpretation, taxonomy design, and paper-specific bilingual summaries.
Choose the workflow
| User intent |
Workflow |
Read first |
| Analyze an existing Zotero library |
Local Zotero mode |
references/zotero-workflows.md |
| Add papers, tags, notes, or reading state to Zotero |
Zotero API/write-back mode |
references/zotero-workflows.md |
| Search and review a new topic |
Discovery mode |
references/discovery-workflow.md |
| Verify Impact Factor or CAS partition claims |
Quality evidence |
references/quality-and-evidence.md |
| Build or refine the interactive dashboard |
Dashboard mode |
references/dashboard-workflow.md and references/dashboard-spec.md |
Do not combine modes automatically. In particular, do not apply the discovery workflow's journal or date defaults to a user's existing Zotero library unless requested.
Non-negotiable rules
Privacy and portability
- Never place names, email addresses, institutional accounts, API keys, cookies, browser profiles, Zotero databases, PDFs, or local absolute paths inside this skill or a shareable archive.
- Keep run data outside the skill directory. Treat
examples/demo-review as synthetic demonstration data only.
- Read Zotero through a temporary SQLite snapshot. Never edit
zotero.sqlite directly.
- Read API keys only from
ZOTERO_API_KEY or a user-supplied file outside the skill directory. Never print or commit them.
- Do not copy or upload a user's Zotero PDFs unless the user explicitly requests an authorized import or upload workflow.
Evidence integrity
- Never invent bibliographic fields, Impact Factors, CAS partitions, findings, methods, datasets, limitations, or citations.
- Distinguish
full_text, abstract_only, and metadata_only evidence states.
- For a paper with a readable local PDF, derive the detailed card from the full text.
- Without a readable PDF, summarize only the abstract and label the evidence level clearly.
- If neither PDF text nor abstract is available, provide metadata only and state that no substantive summary was possible.
- Do not present search snippets, inferred labels, or generic templates as paper findings.
Access and selection
- Relevance and quality determine selection; open-access status must not affect ranking.
- Analyze PDFs already available locally to the user. This skill does not claim to download subscription PDFs or control authenticated browser sessions.
- Verify journal metrics from an official journal, publisher, Clarivate, or CAS source before displaying them as official.
Common output contract
Use a run directory outside the skill, normally <workspace>/literature-reviews/<topic-slug>/.
Expected core files:
metadata/papers.json and metadata/papers.csv: normalized paper records.
texts/: extracted PDF text when locally available.
review-bilingual.md: Chinese-English synthesis grounded in the available evidence.
relationship-map.md: theme-method relationships and research gaps.
dashboard-spec.json: editable bilingual taxonomy and paper-card semantics.
<dashboard-name>.html: offline interactive dashboard.
Optional files include metadata/citation-network.json, metadata/journal-if-evidence.csv, metadata/papers-to-zotero.json, update-digest.md, and Zotero write-back logs.
Paper-card contract
Each card should be paper-specific and bilingual. Include only claims supported by the available evidence:
- Research question or purpose / 研究问题或目的
- Method and study design / 方法与研究设计
- Data, sample, case, or setting / 数据、样本、案例或场景
- Main findings / 主要发现
- Limitations / 局限
- Relevance to the review / 与综述主题的关系
- Evidence level / 证据层级
Do not mechanically translate the English abstract into every field. With a PDF, inspect the abstract, methods, results, discussion, and conclusion; with abstract-only evidence, use cautious language such as “the abstract reports”.
Minimal command patterns
Resolve <python> to a real Python 3.10+ interpreter and <skill-dir> to this skill directory.
Local Zotero library
& '<python>' '<skill-dir>\scripts\systematic_literature_review.py' zotero-import `
--output-dir '<workspace>\literature-reviews\zotero-library' `
--topic 'My Zotero Library' `
--dashboard-name 'zotero-literature-dashboard'
Omit --limit for a final full-library run. Use --zotero-dir only when auto-discovery or ZOTERO_DATA_DIR does not locate the library.
Topic discovery
& '<python>' '<skill-dir>\scripts\systematic_literature_review.py' init-config `
--topic '<topic>' --years 1 --min-if 5 `
--output '<run-dir>\review-config.json'
& '<python>' '<skill-dir>\scripts\systematic_literature_review.py' collect `
--config '<run-dir>\review-config.json' `
--output-dir '<run-dir>' --max-results 120
Verify journal evidence before finalizing. See references/discovery-workflow.md.
Dashboard
& '<python>' '<skill-dir>\scripts\build_literature_dashboard.py' init-spec `
--papers '<run-dir>\metadata\papers.json' `
--output '<run-dir>\dashboard-spec.json'
& '<python>' '<skill-dir>\scripts\build_literature_dashboard.py' build `
--papers '<run-dir>\metadata\papers.json' `
--spec '<run-dir>\dashboard-spec.json' `
--output-dir '<run-dir>' --dashboard-name 'literature-dashboard'
Use --inline for a single-file dashboard. Large libraries automatically use the scalable layout.
Completion checks
Before reporting completion:
- Confirm the intended library or search scope and final paper count.
- Spot-check titles, DOI values, authors, years, and resolved PDF paths.
- Confirm each detailed card's evidence level matches its source.
- Confirm Chinese and English content is meaningful, not duplicated placeholder text.
- Open the dashboard and test search, filters, paper details, PDF/Zotero links, reading status, stars, and notes.
- Verify no mojibake, broken assets, personal paths, credentials, or user data entered the skill directory.
- For Zotero writes, run a dry-run first and retain the write log.
Bundled resources
scripts/systematic_literature_review.py: topic discovery, Zotero snapshot import, metadata normalization, queues, and exports.
scripts/build_literature_dashboard.py: dashboard spec creation and rendering.
scripts/large_library_dashboard.py: scalable layout for large libraries.
scripts/dashboard_common.py: shared dashboard UI, bilingual controls, reading state, stars, notes, and exports.
scripts/citation_network.py: OpenAlex-based in-collection citation enrichment.
scripts/zotero_api_import.py: Zotero Web API import and dashboard write-back.
scripts/zotero_link_items.py: local DOI/title matching to Zotero item keys.
scripts/quick_validate.py: offline portability and smoke validation.
references/reporting-template.md: final reporting structure.
examples/demo-review/: synthetic sample data; never cite it as real research.
Validate this skill
& '<python>' '<skill-dir>\scripts\quick_validate.py' '<skill-dir>'
Run this before creating a release archive.
1---2name: zotero-literature-visualizer3description: Build evidence-aware bilingual literature reviews and interactive dashboards from a local Zotero library or a new topic search. Use for Zotero PDF analysis, paper classification, bilingual research cards, journal-quality verification, citation networks, reading-state dashboards, or Zotero write-back.4---56# Zotero Literature Visualizer78## Purpose910Turn either a local Zotero library or a research topic into a reproducible literature workspace containing normalized metadata, evidence-aware paper notes, a bilingual synthesis, and an offline interactive dashboard.1112Bundled scripts perform deterministic collection, Zotero snapshot reading, metadata normalization, dashboard rendering, citation-network enrichment, and optional Zotero API writes. The agent remains responsible for scholarly judgment: relevance screening, evidence verification, full-text interpretation, taxonomy design, and paper-specific bilingual summaries.1314## Choose the workflow1516| User intent | Workflow | Read first |17|---|---|---|18| Analyze an existing Zotero library | Local Zotero mode | `references/zotero-workflows.md` |19| Add papers, tags, notes, or reading state to Zotero | Zotero API/write-back mode | `references/zotero-workflows.md` |20| Search and review a new topic | Discovery mode | `references/discovery-workflow.md` |21| Verify Impact Factor or CAS partition claims | Quality evidence | `references/quality-and-evidence.md` |22| Build or refine the interactive dashboard | Dashboard mode | `references/dashboard-workflow.md` and `references/dashboard-spec.md` |2324Do not combine modes automatically. In particular, do not apply the discovery workflow's journal or date defaults to a user's existing Zotero library unless requested.2526## Non-negotiable rules2728### Privacy and portability2930- Never place names, email addresses, institutional accounts, API keys, cookies, browser profiles, Zotero databases, PDFs, or local absolute paths inside this skill or a shareable archive.31- Keep run data outside the skill directory. Treat `examples/demo-review` as synthetic demonstration data only.32- Read Zotero through a temporary SQLite snapshot. Never edit `zotero.sqlite` directly.33- Read API keys only from `ZOTERO_API_KEY` or a user-supplied file outside the skill directory. Never print or commit them.34- Do not copy or upload a user's Zotero PDFs unless the user explicitly requests an authorized import or upload workflow.3536### Evidence integrity3738- Never invent bibliographic fields, Impact Factors, CAS partitions, findings, methods, datasets, limitations, or citations.39- Distinguish `full_text`, `abstract_only`, and `metadata_only` evidence states.40- For a paper with a readable local PDF, derive the detailed card from the full text.41- Without a readable PDF, summarize only the abstract and label the evidence level clearly.42- If neither PDF text nor abstract is available, provide metadata only and state that no substantive summary was possible.43- Do not present search snippets, inferred labels, or generic templates as paper findings.4445### Access and selection4647- Relevance and quality determine selection; open-access status must not affect ranking.48- Analyze PDFs already available locally to the user. This skill does not claim to download subscription PDFs or control authenticated browser sessions.49- Verify journal metrics from an official journal, publisher, Clarivate, or CAS source before displaying them as official.5051## Common output contract5253Use a run directory outside the skill, normally `<workspace>/literature-reviews/<topic-slug>/`.5455Expected core files:5657- `metadata/papers.json` and `metadata/papers.csv`: normalized paper records.58- `texts/`: extracted PDF text when locally available.59- `review-bilingual.md`: Chinese-English synthesis grounded in the available evidence.60- `relationship-map.md`: theme-method relationships and research gaps.61- `dashboard-spec.json`: editable bilingual taxonomy and paper-card semantics.62- `<dashboard-name>.html`: offline interactive dashboard.6364Optional files include `metadata/citation-network.json`, `metadata/journal-if-evidence.csv`, `metadata/papers-to-zotero.json`, `update-digest.md`, and Zotero write-back logs.6566## Paper-card contract6768Each card should be paper-specific and bilingual. Include only claims supported by the available evidence:69701. Research question or purpose / 研究问题或目的712. Method and study design / 方法与研究设计723. Data, sample, case, or setting / 数据、样本、案例或场景734. Main findings / 主要发现745. Limitations / 局限756. Relevance to the review / 与综述主题的关系767. Evidence level / 证据层级7778Do not mechanically translate the English abstract into every field. With a PDF, inspect the abstract, methods, results, discussion, and conclusion; with abstract-only evidence, use cautious language such as “the abstract reports”.7980## Minimal command patterns8182Resolve `<python>` to a real Python 3.10+ interpreter and `<skill-dir>` to this skill directory.8384### Local Zotero library8586```powershell87& '<python>' '<skill-dir>\scripts\systematic_literature_review.py' zotero-import `88 --output-dir '<workspace>\literature-reviews\zotero-library' `89 --topic 'My Zotero Library' `90 --dashboard-name 'zotero-literature-dashboard'91```9293Omit `--limit` for a final full-library run. Use `--zotero-dir` only when auto-discovery or `ZOTERO_DATA_DIR` does not locate the library.9495### Topic discovery9697```powershell98& '<python>' '<skill-dir>\scripts\systematic_literature_review.py' init-config `99 --topic '<topic>' --years 1 --min-if 5 `100 --output '<run-dir>\review-config.json'101102& '<python>' '<skill-dir>\scripts\systematic_literature_review.py' collect `103 --config '<run-dir>\review-config.json' `104 --output-dir '<run-dir>' --max-results 120105```106107Verify journal evidence before finalizing. See `references/discovery-workflow.md`.108109### Dashboard110111```powershell112& '<python>' '<skill-dir>\scripts\build_literature_dashboard.py' init-spec `113 --papers '<run-dir>\metadata\papers.json' `114 --output '<run-dir>\dashboard-spec.json'115116& '<python>' '<skill-dir>\scripts\build_literature_dashboard.py' build `117 --papers '<run-dir>\metadata\papers.json' `118 --spec '<run-dir>\dashboard-spec.json' `119 --output-dir '<run-dir>' --dashboard-name 'literature-dashboard'120```121122Use `--inline` for a single-file dashboard. Large libraries automatically use the scalable layout.123124## Completion checks125126Before reporting completion:127128- Confirm the intended library or search scope and final paper count.129- Spot-check titles, DOI values, authors, years, and resolved PDF paths.130- Confirm each detailed card's evidence level matches its source.131- Confirm Chinese and English content is meaningful, not duplicated placeholder text.132- Open the dashboard and test search, filters, paper details, PDF/Zotero links, reading status, stars, and notes.133- Verify no mojibake, broken assets, personal paths, credentials, or user data entered the skill directory.134- For Zotero writes, run a dry-run first and retain the write log.135136## Bundled resources137138- `scripts/systematic_literature_review.py`: topic discovery, Zotero snapshot import, metadata normalization, queues, and exports.139- `scripts/build_literature_dashboard.py`: dashboard spec creation and rendering.140- `scripts/large_library_dashboard.py`: scalable layout for large libraries.141- `scripts/dashboard_common.py`: shared dashboard UI, bilingual controls, reading state, stars, notes, and exports.142- `scripts/citation_network.py`: OpenAlex-based in-collection citation enrichment.143- `scripts/zotero_api_import.py`: Zotero Web API import and dashboard write-back.144- `scripts/zotero_link_items.py`: local DOI/title matching to Zotero item keys.145- `scripts/quick_validate.py`: offline portability and smoke validation.146- `references/reporting-template.md`: final reporting structure.147- `examples/demo-review/`: synthetic sample data; never cite it as real research.148149## Validate this skill150151```powershell152& '<python>' '<skill-dir>\scripts\quick_validate.py' '<skill-dir>'153```154155Run this before creating a release archive.