@wentorai/research-plugins 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -22
- package/curated/analysis/README.md +82 -56
- package/curated/domains/README.md +225 -69
- package/curated/literature/README.md +115 -46
- package/curated/research/README.md +106 -58
- package/curated/tools/README.md +107 -87
- package/curated/writing/README.md +92 -45
- package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
- package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
- package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
- package/mcp-configs/academic-db/gibs-mcp.json +20 -0
- package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
- package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
- package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
- package/mcp-configs/academic-db/medical-mcp.json +21 -0
- package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
- package/mcp-configs/academic-db/omop-mcp.json +20 -0
- package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
- package/mcp-configs/academic-db/openedu-mcp.json +20 -0
- package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
- package/mcp-configs/academic-db/openstax-mcp.json +21 -0
- package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
- package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
- package/mcp-configs/academic-db/pdb-mcp.json +21 -0
- package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
- package/mcp-configs/ai-platform/magi-researchers.json +21 -0
- package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
- package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
- package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
- package/mcp-configs/ai-platform/paper-reader.json +21 -0
- package/mcp-configs/ai-platform/paperdebugger.json +21 -0
- package/mcp-configs/browser/exa-mcp.json +20 -0
- package/mcp-configs/browser/mcp-searxng.json +21 -0
- package/mcp-configs/browser/mcp-webresearch.json +20 -0
- package/mcp-configs/cloud-docs/confluence-mcp.json +37 -0
- package/mcp-configs/cloud-docs/google-drive-mcp.json +35 -0
- package/mcp-configs/cloud-docs/notion-mcp.json +29 -0
- package/mcp-configs/communication/discord-mcp.json +29 -0
- package/mcp-configs/communication/discourse-mcp.json +21 -0
- package/mcp-configs/communication/slack-mcp.json +29 -0
- package/mcp-configs/communication/telegram-mcp.json +28 -0
- package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
- package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
- package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
- package/mcp-configs/data-platform/mcp-stata.json +21 -0
- package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
- package/mcp-configs/data-platform/ml-mcp.json +21 -0
- package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
- package/mcp-configs/data-platform/numpy-mcp.json +21 -0
- package/mcp-configs/database/neo4j-mcp.json +37 -0
- package/mcp-configs/database/postgres-mcp.json +28 -0
- package/mcp-configs/database/sqlite-mcp.json +29 -0
- package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
- package/mcp-configs/dev-platform/github-mcp.json +31 -0
- package/mcp-configs/dev-platform/gitlab-mcp.json +34 -0
- package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
- package/mcp-configs/dev-platform/manim-mcp.json +20 -0
- package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
- package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
- package/mcp-configs/dev-platform/paperbanana.json +20 -0
- package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
- package/mcp-configs/dev-platform/texmcp.json +20 -0
- package/mcp-configs/dev-platform/typst-mcp.json +21 -0
- package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
- package/mcp-configs/email/email-mcp.json +40 -0
- package/mcp-configs/email/gmail-mcp.json +37 -0
- package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
- package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
- package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
- package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
- package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
- package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
- package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
- package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
- package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
- package/mcp-configs/reference-mgr/academix.json +20 -0
- package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
- package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
- package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
- package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
- package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
- package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
- package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
- package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
- package/mcp-configs/reference-mgr/onecite.json +21 -0
- package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
- package/mcp-configs/reference-mgr/seerai.json +21 -0
- package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
- package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
- package/mcp-configs/registry.json +178 -149
- package/mcp-configs/repository/dataverse-mcp.json +33 -0
- package/mcp-configs/repository/huggingface-mcp.json +29 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +2 -2
- package/skills/analysis/dataviz/algorithm-visualizer-guide/SKILL.md +259 -0
- package/skills/analysis/dataviz/bokeh-visualization-guide/SKILL.md +270 -0
- package/skills/analysis/dataviz/chart-image-generator/SKILL.md +229 -0
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
- package/skills/analysis/dataviz/d3-visualization-guide/SKILL.md +281 -0
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
- package/skills/analysis/dataviz/echarts-visualization-guide/SKILL.md +250 -0
- package/skills/analysis/dataviz/metabase-analytics-guide/SKILL.md +242 -0
- package/skills/analysis/dataviz/plotly-interactive-guide/SKILL.md +266 -0
- package/skills/analysis/dataviz/redash-analytics-guide/SKILL.md +284 -0
- package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +163 -0
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
- package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +139 -0
- package/skills/analysis/econometrics/panel-data-analyst/SKILL.md +259 -0
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
- package/skills/analysis/econometrics/python-causality-guide/SKILL.md +134 -0
- package/skills/analysis/econometrics/stata-accounting-guide/SKILL.md +269 -0
- package/skills/analysis/econometrics/stata-analyst-guide/SKILL.md +245 -0
- package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
- package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +157 -0
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
- package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +212 -0
- package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +192 -0
- package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +193 -0
- package/skills/analysis/statistics/senior-data-scientist-guide/SKILL.md +223 -0
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
- package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +170 -0
- package/skills/analysis/wrangling/data-cleaning-pipeline/SKILL.md +266 -0
- package/skills/analysis/wrangling/data-cog-guide/SKILL.md +178 -0
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
- package/skills/analysis/wrangling/stata-data-cleaning/SKILL.md +276 -0
- package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
- package/skills/analysis/wrangling/survey-data-processing/SKILL.md +298 -0
- package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/ai-model-benchmarking/SKILL.md +209 -0
- package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +159 -0
- package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
- package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
- package/skills/domains/ai-ml/dl-transformer-finetune/SKILL.md +239 -0
- package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
- package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
- package/skills/domains/ai-ml/huggingface-inference-guide/SKILL.md +196 -0
- package/skills/domains/ai-ml/keras-deep-learning/SKILL.md +210 -0
- package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
- package/skills/domains/ai-ml/llm-from-scratch-guide/SKILL.md +124 -0
- package/skills/domains/ai-ml/ml-pipeline-guide/SKILL.md +295 -0
- package/skills/domains/ai-ml/nlp-toolkit-guide/SKILL.md +247 -0
- package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
- package/skills/domains/ai-ml/pytorch-guide/SKILL.md +281 -0
- package/skills/domains/ai-ml/pytorch-lightning-guide/SKILL.md +244 -0
- package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
- package/skills/domains/ai-ml/tensorflow-guide/SKILL.md +241 -0
- package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
- package/skills/domains/biomedical/bioagents-guide/SKILL.md +308 -0
- package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
- package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
- package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
- package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
- package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
- package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +345 -0
- package/skills/domains/biomedical/medical-imaging-guide/SKILL.md +305 -0
- package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
- package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
- package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
- package/skills/domains/business/architecture-design-guide/SKILL.md +279 -0
- package/skills/domains/business/innovation-management-guide/SKILL.md +257 -0
- package/skills/domains/business/operations-research-guide/SKILL.md +258 -0
- package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
- package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
- package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
- package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
- package/skills/domains/chemistry/molecular-dynamics-guide/SKILL.md +237 -0
- package/skills/domains/chemistry/pubchem-api-guide/SKILL.md +180 -0
- package/skills/domains/chemistry/spectroscopy-analysis-guide/SKILL.md +290 -0
- package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
- package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
- package/skills/domains/cs/distributed-systems-guide/SKILL.md +268 -0
- package/skills/domains/cs/formal-verification-guide/SKILL.md +298 -0
- package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
- package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
- package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
- package/skills/domains/ecology/species-distribution-guide/SKILL.md +343 -0
- package/skills/domains/economics/imf-data-api-guide/SKILL.md +174 -0
- package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
- package/skills/domains/economics/post-labor-economics/SKILL.md +254 -0
- package/skills/domains/economics/pricing-psychology-guide/SKILL.md +273 -0
- package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
- package/skills/domains/economics/world-bank-data-guide/SKILL.md +179 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
- package/skills/domains/education/assessment-design-guide/SKILL.md +213 -0
- package/skills/domains/education/educational-research-methods/SKILL.md +179 -0
- package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
- package/skills/domains/education/mooc-analytics-guide/SKILL.md +206 -0
- package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
- package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
- package/skills/domains/finance/portfolio-optimization-guide/SKILL.md +279 -0
- package/skills/domains/finance/risk-modeling-guide/SKILL.md +260 -0
- package/skills/domains/finance/stata-accounting-research/SKILL.md +372 -0
- package/skills/domains/geoscience/climate-modeling-guide/SKILL.md +215 -0
- package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
- package/skills/domains/geoscience/satellite-remote-sensing/SKILL.md +193 -0
- package/skills/domains/geoscience/seismology-data-guide/SKILL.md +208 -0
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
- package/skills/domains/humanities/ethical-philosophy-guide/SKILL.md +244 -0
- package/skills/domains/humanities/history-research-guide/SKILL.md +260 -0
- package/skills/domains/humanities/political-history-guide/SKILL.md +241 -0
- package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
- package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
- package/skills/domains/law/legal-nlp-guide/SKILL.md +236 -0
- package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
- package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
- package/skills/domains/law/patent-analysis-guide/SKILL.md +257 -0
- package/skills/domains/law/regulatory-compliance-guide/SKILL.md +267 -0
- package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
- package/skills/domains/math/symbolic-computation-guide/SKILL.md +263 -0
- package/skills/domains/math/topology-data-analysis/SKILL.md +305 -0
- package/skills/domains/pharma/clinical-trial-design-guide/SKILL.md +271 -0
- package/skills/domains/pharma/drug-target-interaction/SKILL.md +242 -0
- package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
- package/skills/domains/pharma/pharmacovigilance-guide/SKILL.md +216 -0
- package/skills/domains/physics/astrophysics-data-guide/SKILL.md +305 -0
- package/skills/domains/physics/particle-physics-guide/SKILL.md +287 -0
- package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
- package/skills/domains/social-science/network-analysis-guide/SKILL.md +310 -0
- package/skills/domains/social-science/psychology-research-guide/SKILL.md +270 -0
- package/skills/domains/social-science/sociology-research-guide/SKILL.md +238 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
- package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +120 -0
- package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
- package/skills/literature/discovery/semantic-paper-radar/SKILL.md +144 -0
- package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +94 -0
- package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
- package/skills/literature/fulltext/core-api-guide/SKILL.md +144 -0
- package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
- package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
- package/skills/literature/fulltext/institutional-repository-guide/SKILL.md +212 -0
- package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +341 -0
- package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
- package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
- package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
- package/skills/literature/metadata/academic-paper-summarizer/SKILL.md +101 -0
- package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
- package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
- package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
- package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
- package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
- package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
- package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
- package/skills/literature/metadata/wikidata-api-guide/SKILL.md +156 -0
- package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
- package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
- package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
- package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
- package/skills/literature/search/arxiv-batch-reporting/SKILL.md +133 -0
- package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
- package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
- package/skills/literature/search/arxiv-paper-processor/SKILL.md +141 -0
- package/skills/literature/search/baidu-scholar-guide/SKILL.md +110 -0
- package/skills/literature/search/base-academic-search/SKILL.md +196 -0
- package/skills/literature/search/chatpaper-guide/SKILL.md +122 -0
- package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
- package/skills/literature/search/deep-literature-search/SKILL.md +149 -0
- package/skills/literature/search/deepgit-search-guide/SKILL.md +147 -0
- package/skills/literature/search/eric-education-api/SKILL.md +199 -0
- package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
- package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
- package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
- package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
- package/skills/literature/search/open-library-api/SKILL.md +196 -0
- package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
- package/skills/literature/search/openaire-api/SKILL.md +141 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
- package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +138 -0
- package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
- package/skills/literature/search/scielo-api/SKILL.md +182 -0
- package/skills/literature/search/share-research-api/SKILL.md +129 -0
- package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
- package/skills/research/automation/ai-scientist-v2-guide/SKILL.md +284 -0
- package/skills/research/automation/aim-experiment-guide/SKILL.md +234 -0
- package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
- package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
- package/skills/research/automation/datagen-research-guide/SKILL.md +131 -0
- package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
- package/skills/research/automation/kedro-pipeline-guide/SKILL.md +216 -0
- package/skills/research/automation/mle-agent-guide/SKILL.md +139 -0
- package/skills/research/automation/paper-to-agent-guide/SKILL.md +116 -0
- package/skills/research/automation/rd-agent-guide/SKILL.md +246 -0
- package/skills/research/automation/research-paper-orchestrator/SKILL.md +254 -0
- package/skills/research/deep-research/academic-deep-research/SKILL.md +190 -0
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +141 -0
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
- package/skills/research/deep-research/deep-research-pro/SKILL.md +213 -0
- package/skills/research/deep-research/deep-research-work/SKILL.md +204 -0
- package/skills/research/deep-research/deep-searcher-guide/SKILL.md +253 -0
- package/skills/research/deep-research/gpt-researcher-guide/SKILL.md +191 -0
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
- package/skills/research/deep-research/khoj-research-guide/SKILL.md +200 -0
- package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
- package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
- package/skills/research/deep-research/local-deep-research-guide/SKILL.md +253 -0
- package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
- package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +217 -0
- package/skills/research/funding/eu-horizon-guide/SKILL.md +244 -0
- package/skills/research/funding/grant-budget-guide/SKILL.md +284 -0
- package/skills/research/funding/nih-reporter-api-guide/SKILL.md +166 -0
- package/skills/research/funding/nsf-award-api-guide/SKILL.md +133 -0
- package/skills/research/methodology/academic-mentor-guide/SKILL.md +169 -0
- package/skills/research/methodology/claude-scientific-guide/SKILL.md +122 -0
- package/skills/research/methodology/deep-innovator-guide/SKILL.md +242 -0
- package/skills/research/methodology/osf-api-guide/SKILL.md +165 -0
- package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
- package/skills/research/methodology/research-paper-kb/SKILL.md +263 -0
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
- package/skills/research/methodology/research-town-guide/SKILL.md +263 -0
- package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
- package/skills/research/paper-review/automated-review-guide/SKILL.md +281 -0
- package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
- package/skills/research/paper-review/paper-compare-guide/SKILL.md +238 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
- package/skills/research/paper-review/paper-digest-guide/SKILL.md +240 -0
- package/skills/research/paper-review/paper-research-assistant/SKILL.md +231 -0
- package/skills/research/paper-review/research-quality-filter/SKILL.md +261 -0
- package/skills/research/paper-review/review-response-guide/SKILL.md +275 -0
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
- package/skills/tools/code-exec/google-colab-guide/SKILL.md +276 -0
- package/skills/tools/code-exec/kaggle-api-guide/SKILL.md +216 -0
- package/skills/tools/code-exec/overleaf-cli-guide/SKILL.md +279 -0
- package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
- package/skills/tools/diagram/code-flow-visualizer/SKILL.md +197 -0
- package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +170 -0
- package/skills/tools/diagram/json-data-visualizer/SKILL.md +270 -0
- package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
- package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +219 -0
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
- package/skills/tools/diagram/tldraw-whiteboard-guide/SKILL.md +397 -0
- package/skills/tools/document/docsgpt-guide/SKILL.md +130 -0
- package/skills/tools/document/large-document-reader/SKILL.md +202 -0
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
- package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
- package/skills/tools/document/paper-parse-guide/SKILL.md +243 -0
- package/skills/tools/document/weknora-guide/SKILL.md +216 -0
- package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
- package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
- package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
- package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +244 -0
- package/skills/tools/knowledge-graph/concept-map-generator/SKILL.md +284 -0
- package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +219 -0
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
- package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
- package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
- package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
- package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
- package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
- package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +141 -0
- package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +95 -0
- package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +143 -0
- package/skills/tools/scraping/dataset-finder-guide/SKILL.md +253 -0
- package/skills/tools/scraping/easy-spider-guide/SKILL.md +250 -0
- package/skills/tools/scraping/google-scholar-scraper/SKILL.md +255 -0
- package/skills/tools/scraping/repository-harvesting-guide/SKILL.md +310 -0
- package/skills/writing/citation/academic-citation-manager/SKILL.md +314 -0
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
- package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
- package/skills/writing/citation/jabref-reference-guide/SKILL.md +127 -0
- package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +103 -0
- package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
- package/skills/writing/citation/obsidian-citation-guide/SKILL.md +164 -0
- package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +137 -0
- package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
- package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +132 -0
- package/skills/writing/citation/papis-cli-guide/SKILL.md +213 -0
- package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +107 -0
- package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +121 -0
- package/skills/writing/citation/zotero-gpt-guide/SKILL.md +111 -0
- package/skills/writing/citation/zotero-mcp-guide/SKILL.md +164 -0
- package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +162 -0
- package/skills/writing/citation/zotero-reference-guide/SKILL.md +139 -0
- package/skills/writing/citation/zotero-scholar-guide/SKILL.md +294 -0
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +140 -0
- package/skills/writing/composition/ml-paper-writing/SKILL.md +163 -0
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +143 -0
- package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
- package/skills/writing/composition/scientific-writing-resources/SKILL.md +151 -0
- package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +153 -0
- package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
- package/skills/writing/latex/latex-drawing-collection/SKILL.md +154 -0
- package/skills/writing/latex/latex-templates-collection/SKILL.md +159 -0
- package/skills/writing/latex/md-to-pdf-academic/SKILL.md +230 -0
- package/skills/writing/latex/tex-render-guide/SKILL.md +243 -0
- package/skills/writing/polish/academic-tone-guide/SKILL.md +209 -0
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
- package/skills/writing/polish/conciseness-editing-guide/SKILL.md +225 -0
- package/skills/writing/polish/paper-polish-guide/SKILL.md +160 -0
- package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
- package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
- package/skills/writing/templates/graphical-abstract-guide/SKILL.md +183 -0
- package/skills/writing/templates/novathesis-guide/SKILL.md +152 -0
- package/skills/writing/templates/scientific-article-pdf/SKILL.md +261 -0
- package/skills/writing/templates/sjtuthesis-guide/SKILL.md +197 -0
- package/skills/writing/templates/thuthesis-guide/SKILL.md +181 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +0 -207
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zotero-scholar-guide
|
|
3
|
+
description: "Save papers with metadata to Zotero via its API programmatically"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "📚"
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "citation"
|
|
9
|
+
keywords: ["zotero", "reference manager", "citation management", "API", "metadata", "bibliography", "paper organization"]
|
|
10
|
+
source: "https://github.com/zotero/zotero"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Zotero Scholar Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Zotero is the most widely used open-source reference manager in academia, offering a powerful combination of local storage, cloud sync, browser integration, and a comprehensive API. While most researchers use Zotero through its desktop application and browser connector, the Zotero API enables programmatic access that is essential for automated research workflows—saving papers from scripts, batch-importing search results, organizing libraries algorithmically, and integrating reference management into custom research pipelines.
|
|
18
|
+
|
|
19
|
+
This skill covers using the Zotero Web API to create, read, update, and organize library items programmatically. It is designed for researchers who want to automate parts of their reference management workflow: importing papers from arXiv or Semantic Scholar searches directly into Zotero, auto-tagging papers based on content analysis, organizing collections programmatically, and exporting citations in various formats.
|
|
20
|
+
|
|
21
|
+
The skill complements the existing `zotero-api` skill by focusing specifically on practical scholar workflows—the common patterns a researcher uses when integrating Zotero into their daily literature management.
|
|
22
|
+
|
|
23
|
+
## Authentication and Setup
|
|
24
|
+
|
|
25
|
+
### Obtaining API Credentials
|
|
26
|
+
|
|
27
|
+
1. Log in to your Zotero account at https://www.zotero.org
|
|
28
|
+
2. Navigate to Settings > Feeds/API (https://www.zotero.org/settings/keys)
|
|
29
|
+
3. Click "Create new private key"
|
|
30
|
+
4. Set permissions:
|
|
31
|
+
- Personal Library: Read/Write access
|
|
32
|
+
- Default Group Permissions: Read/Write (if you use group libraries)
|
|
33
|
+
- Allow access to notes (recommended)
|
|
34
|
+
5. Save the API key securely
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Store your credentials as environment variables
|
|
38
|
+
export ZOTERO_API_KEY=your-zotero-key # from zotero.org/settings/keys
|
|
39
|
+
export ZOTERO_USER_ID="your_user_id" # Found on the API keys page
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Testing Your Connection
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Verify API access
|
|
46
|
+
curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
|
|
47
|
+
"https://api.zotero.org/users/$ZOTERO_USER_ID/items?limit=5&format=json" \
|
|
48
|
+
| python3 -m json.tool | head -20
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
If you see your recent library items, authentication is working correctly.
|
|
52
|
+
|
|
53
|
+
## Saving Papers to Zotero
|
|
54
|
+
|
|
55
|
+
### Adding a Single Paper by DOI
|
|
56
|
+
|
|
57
|
+
The simplest way to add a well-cataloged paper is by DOI. Zotero can resolve DOI metadata automatically:
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
import requests
|
|
61
|
+
import os
|
|
62
|
+
|
|
63
|
+
API_KEY = os.environ["ZOTERO_API_KEY"]
|
|
64
|
+
USER_ID = os.environ["ZOTERO_USER_ID"]
|
|
65
|
+
BASE_URL = f"https://api.zotero.org/users/{USER_ID}"
|
|
66
|
+
HEADERS = {
|
|
67
|
+
"Zotero-API-Key": API_KEY,
|
|
68
|
+
"Content-Type": "application/json"
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
def add_paper_by_doi(doi):
|
|
72
|
+
"""Resolve DOI metadata and add to Zotero."""
|
|
73
|
+
# Step 1: Get metadata from DOI via Crossref
|
|
74
|
+
cr_resp = requests.get(
|
|
75
|
+
f"https://api.crossref.org/works/{doi}",
|
|
76
|
+
headers={"User-Agent": "ResearchClaw/1.0 (mailto:you@example.edu)"}
|
|
77
|
+
)
|
|
78
|
+
cr_data = cr_resp.json()["message"]
|
|
79
|
+
|
|
80
|
+
# Step 2: Build Zotero item
|
|
81
|
+
item = {
|
|
82
|
+
"itemType": "journalArticle",
|
|
83
|
+
"title": cr_data.get("title", [""])[0],
|
|
84
|
+
"creators": [
|
|
85
|
+
{"creatorType": "author", "firstName": a.get("given", ""),
|
|
86
|
+
"lastName": a.get("family", "")}
|
|
87
|
+
for a in cr_data.get("author", [])
|
|
88
|
+
],
|
|
89
|
+
"abstractNote": cr_data.get("abstract", ""),
|
|
90
|
+
"DOI": doi,
|
|
91
|
+
"url": f"https://doi.org/{doi}",
|
|
92
|
+
"date": cr_data.get("published-print", {}).get("date-parts", [[""]])[0][0],
|
|
93
|
+
"publicationTitle": cr_data.get("container-title", [""])[0],
|
|
94
|
+
"volume": cr_data.get("volume", ""),
|
|
95
|
+
"issue": cr_data.get("issue", ""),
|
|
96
|
+
"pages": cr_data.get("page", ""),
|
|
97
|
+
"tags": [{"tag": "auto-imported"}]
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
# Step 3: POST to Zotero
|
|
101
|
+
resp = requests.post(
|
|
102
|
+
f"{BASE_URL}/items",
|
|
103
|
+
headers=HEADERS,
|
|
104
|
+
json=[item]
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
if resp.status_code == 200:
|
|
108
|
+
print(f"Added: {item['title']}")
|
|
109
|
+
return resp.json()
|
|
110
|
+
else:
|
|
111
|
+
print(f"Error: {resp.status_code} - {resp.text}")
|
|
112
|
+
return None
|
|
113
|
+
|
|
114
|
+
# Usage
|
|
115
|
+
add_paper_by_doi("10.1038/s41586-023-06747-5")
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Adding arXiv Papers
|
|
119
|
+
|
|
120
|
+
arXiv papers often lack DOIs. Use the arXiv API to fetch metadata:
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
import feedparser
|
|
124
|
+
|
|
125
|
+
def add_arxiv_paper(arxiv_id):
|
|
126
|
+
"""Fetch arXiv metadata and add to Zotero."""
|
|
127
|
+
feed = feedparser.parse(
|
|
128
|
+
f"http://export.arxiv.org/api/query?id_list={arxiv_id}"
|
|
129
|
+
)
|
|
130
|
+
entry = feed.entries[0]
|
|
131
|
+
|
|
132
|
+
item = {
|
|
133
|
+
"itemType": "preprint",
|
|
134
|
+
"title": entry.title.replace("\n", " "),
|
|
135
|
+
"creators": [
|
|
136
|
+
{"creatorType": "author",
|
|
137
|
+
"firstName": name.rsplit(" ", 1)[0] if " " in name else "",
|
|
138
|
+
"lastName": name.rsplit(" ", 1)[-1]}
|
|
139
|
+
for name in [a.name for a in entry.authors]
|
|
140
|
+
],
|
|
141
|
+
"abstractNote": entry.summary.replace("\n", " "),
|
|
142
|
+
"url": entry.link,
|
|
143
|
+
"date": entry.published[:10],
|
|
144
|
+
"repository": "arXiv",
|
|
145
|
+
"archiveID": f"arXiv:{arxiv_id}",
|
|
146
|
+
"tags": [
|
|
147
|
+
{"tag": "arxiv"},
|
|
148
|
+
{"tag": entry.arxiv_primary_category["term"]}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
resp = requests.post(
|
|
153
|
+
f"{BASE_URL}/items",
|
|
154
|
+
headers=HEADERS,
|
|
155
|
+
json=[item]
|
|
156
|
+
)
|
|
157
|
+
if resp.status_code == 200:
|
|
158
|
+
print(f"Added arXiv paper: {item['title'][:80]}")
|
|
159
|
+
return resp
|
|
160
|
+
|
|
161
|
+
# Usage
|
|
162
|
+
add_arxiv_paper("2301.07041")
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Batch Import from Search Results
|
|
166
|
+
|
|
167
|
+
When you run a literature search and want to import all results into Zotero:
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
def batch_import(papers, collection_key=None):
|
|
171
|
+
"""Import a list of paper dicts into Zotero.
|
|
172
|
+
Zotero API accepts up to 50 items per request.
|
|
173
|
+
"""
|
|
174
|
+
batch_size = 50
|
|
175
|
+
for i in range(0, len(papers), batch_size):
|
|
176
|
+
batch = papers[i:i + batch_size]
|
|
177
|
+
items = [build_zotero_item(p) for p in batch]
|
|
178
|
+
|
|
179
|
+
# Add to specific collection if provided
|
|
180
|
+
if collection_key:
|
|
181
|
+
for item in items:
|
|
182
|
+
item["collections"] = [collection_key]
|
|
183
|
+
|
|
184
|
+
resp = requests.post(
|
|
185
|
+
f"{BASE_URL}/items",
|
|
186
|
+
headers=HEADERS,
|
|
187
|
+
json=items
|
|
188
|
+
)
|
|
189
|
+
print(f"Batch {i//batch_size + 1}: {resp.status_code}")
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Organizing with Collections and Tags
|
|
193
|
+
|
|
194
|
+
### Creating Collections Programmatically
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
def create_collection(name, parent_key=None):
|
|
198
|
+
"""Create a new Zotero collection."""
|
|
199
|
+
collection = {
|
|
200
|
+
"name": name,
|
|
201
|
+
"parentCollection": parent_key or False
|
|
202
|
+
}
|
|
203
|
+
resp = requests.post(
|
|
204
|
+
f"{BASE_URL}/collections",
|
|
205
|
+
headers=HEADERS,
|
|
206
|
+
json=[collection]
|
|
207
|
+
)
|
|
208
|
+
if resp.status_code == 200:
|
|
209
|
+
key = resp.json()["successful"]["0"]["key"]
|
|
210
|
+
print(f"Created collection '{name}' with key: {key}")
|
|
211
|
+
return key
|
|
212
|
+
return None
|
|
213
|
+
|
|
214
|
+
# Create a hierarchical structure
|
|
215
|
+
lit_review = create_collection("Literature Review 2026")
|
|
216
|
+
methods = create_collection("Methods Papers", parent_key=lit_review)
|
|
217
|
+
results = create_collection("Results Papers", parent_key=lit_review)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Auto-Tagging Based on Content
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
def auto_tag_items(keyword_map):
|
|
224
|
+
"""Tag existing items based on abstract content.
|
|
225
|
+
keyword_map: dict of {tag: [keywords]}
|
|
226
|
+
"""
|
|
227
|
+
# Fetch all items
|
|
228
|
+
items = requests.get(
|
|
229
|
+
f"{BASE_URL}/items?limit=100&format=json",
|
|
230
|
+
headers=HEADERS
|
|
231
|
+
).json()
|
|
232
|
+
|
|
233
|
+
for item in items:
|
|
234
|
+
abstract = item["data"].get("abstractNote", "").lower()
|
|
235
|
+
new_tags = list(item["data"].get("tags", []))
|
|
236
|
+
existing_tag_names = {t["tag"] for t in new_tags}
|
|
237
|
+
|
|
238
|
+
for tag, keywords in keyword_map.items():
|
|
239
|
+
if tag not in existing_tag_names:
|
|
240
|
+
if any(kw.lower() in abstract for kw in keywords):
|
|
241
|
+
new_tags.append({"tag": tag})
|
|
242
|
+
|
|
243
|
+
if len(new_tags) > len(item["data"].get("tags", [])):
|
|
244
|
+
requests.patch(
|
|
245
|
+
f"{BASE_URL}/items/{item['key']}",
|
|
246
|
+
headers={**HEADERS, "If-Unmodified-Since-Version": str(item["version"])},
|
|
247
|
+
json={"tags": new_tags}
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
# Usage
|
|
251
|
+
auto_tag_items({
|
|
252
|
+
"deep-learning": ["deep learning", "neural network", "CNN", "transformer"],
|
|
253
|
+
"nlp": ["natural language", "text classification", "language model"],
|
|
254
|
+
"computer-vision": ["image classification", "object detection", "segmentation"]
|
|
255
|
+
})
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Exporting Citations
|
|
259
|
+
|
|
260
|
+
### Export in Various Formats
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Export entire library as BibTeX
|
|
264
|
+
curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
|
|
265
|
+
"https://api.zotero.org/users/$ZOTERO_USER_ID/items?format=bibtex&limit=100" \
|
|
266
|
+
> library.bib
|
|
267
|
+
|
|
268
|
+
# Export a specific collection as CSL-JSON
|
|
269
|
+
curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
|
|
270
|
+
"https://api.zotero.org/users/$ZOTERO_USER_ID/collections/ABCD1234/items?format=csljson" \
|
|
271
|
+
> collection.json
|
|
272
|
+
|
|
273
|
+
# Export as RIS (for import into other tools)
|
|
274
|
+
curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
|
|
275
|
+
"https://api.zotero.org/users/$ZOTERO_USER_ID/items?format=ris&limit=100" \
|
|
276
|
+
> library.ris
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Generating a Bibliography
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Generate formatted bibliography in APA style
|
|
283
|
+
curl -H "Zotero-API-Key: $ZOTERO_API_KEY" \
|
|
284
|
+
-H "Content-Type: application/json" \
|
|
285
|
+
"https://api.zotero.org/users/$ZOTERO_USER_ID/items?format=bib&style=apa&limit=50"
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## References
|
|
289
|
+
|
|
290
|
+
- Zotero Web API v3 documentation: https://www.zotero.org/support/dev/web_api/v3/start
|
|
291
|
+
- Zotero source code: https://github.com/zotero/zotero
|
|
292
|
+
- pyzotero (Python library): https://github.com/urschrei/pyzotero
|
|
293
|
+
- Crossref API: https://api.crossref.org
|
|
294
|
+
- Zotero Better BibTeX plugin: https://retorque.re/zotero-better-bibtex/
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zotfile-attachment-guide
|
|
3
|
+
description: "Guide to ZotFile for Zotero attachment management, renaming, and syncing"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "📂"
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "citation"
|
|
9
|
+
keywords: ["zotero", "zotfile", "attachment", "pdf-management", "file-organization", "sync"]
|
|
10
|
+
source: "https://github.com/jlegewie/zotfile"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ZotFile Attachment Management Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
ZotFile is one of the most established Zotero plugins with over 4,000 GitHub stars, providing advanced file management capabilities for PDF attachments and other documents linked to your Zotero library. It handles the critical but often neglected task of organizing, renaming, and synchronizing the actual files that make up a research library.
|
|
18
|
+
|
|
19
|
+
Without ZotFile, researchers often end up with a chaotic collection of PDFs named with meaningless publisher-generated identifiers, scattered across different directories, and difficult to manage outside of Zotero itself. ZotFile brings order to this chaos by automatically renaming files according to customizable patterns based on bibliographic metadata, moving them to organized directory structures, and managing tablet-based reading workflows.
|
|
20
|
+
|
|
21
|
+
The plugin is especially valuable for researchers with large libraries who need their PDFs accessible outside Zotero, whether for backup, sharing, or use with other tools. By maintaining a predictable, human-readable file naming and directory structure, ZotFile ensures that your research documents remain organized and accessible regardless of how you access them.
|
|
22
|
+
|
|
23
|
+
## Installation and Setup
|
|
24
|
+
|
|
25
|
+
Install ZotFile through the Zotero add-on mechanism:
|
|
26
|
+
|
|
27
|
+
1. Download the latest `.xpi` file from https://github.com/jlegewie/zotfile/releases
|
|
28
|
+
2. In Zotero, navigate to Tools > Add-ons > gear icon > Install Add-on From File
|
|
29
|
+
3. Select the `.xpi` file and restart Zotero
|
|
30
|
+
|
|
31
|
+
Configure ZotFile after installation:
|
|
32
|
+
|
|
33
|
+
- Open Tools > ZotFile Preferences
|
|
34
|
+
- **General Settings**:
|
|
35
|
+
- Set the source folder for new files (where your browser downloads PDFs)
|
|
36
|
+
- Set the custom location for linked attachments (e.g., `~/Documents/Research/Papers`)
|
|
37
|
+
- Choose between "Attach stored copy" (files in Zotero data directory) or "Linked file" (files in custom location)
|
|
38
|
+
|
|
39
|
+
- **Renaming Rules**:
|
|
40
|
+
- Configure the filename pattern using wildcards:
|
|
41
|
+
- `{%a}` - Author last name
|
|
42
|
+
- `{%y}` - Year
|
|
43
|
+
- `{%t}` - Title
|
|
44
|
+
- `{%j}` - Journal abbreviation
|
|
45
|
+
- Example pattern: `{%a}_{%y}_{%t}` produces `Smith_2024_Deep_Learning_for_Protein.pdf`
|
|
46
|
+
- Set maximum title length to prevent overly long filenames
|
|
47
|
+
- Configure treatment of special characters and spaces
|
|
48
|
+
|
|
49
|
+
- **Tablet Settings** (if using a tablet for reading):
|
|
50
|
+
- Set the tablet files directory (e.g., a cloud-synced folder)
|
|
51
|
+
- Configure background file handling
|
|
52
|
+
- Enable automatic extraction of annotations from returned tablet PDFs
|
|
53
|
+
|
|
54
|
+
## Core Features
|
|
55
|
+
|
|
56
|
+
**Automatic File Renaming**: When you add a new item with an attachment to Zotero, ZotFile can automatically rename the PDF based on the item's metadata. This transforms `10.1038_s41586-024-07487-w.pdf` into `Smith_2024_Title_of_Paper.pdf` without any manual intervention.
|
|
57
|
+
|
|
58
|
+
Renaming patterns support rich formatting:
|
|
59
|
+
|
|
60
|
+
| Pattern | Output Example | Description |
|
|
61
|
+
|---------|---------------|-------------|
|
|
62
|
+
| `{%a}_{%y}_{%t}` | `Smith_2024_Deep_Learning` | Author, year, title |
|
|
63
|
+
| `{%a}_{%y}_{%j}` | `Smith_2024_Nature` | Author, year, journal |
|
|
64
|
+
| `{%y}/{%a}_{%t}` | `2024/Smith_Deep_Learning` | Year subfolder, author, title |
|
|
65
|
+
| `{%a_zotero}_{%y}` | `SmithAndJones_2024` | Multiple authors |
|
|
66
|
+
|
|
67
|
+
**Custom File Location**: Move attachments from Zotero's internal storage to a custom directory structure. This is essential for researchers who:
|
|
68
|
+
- Want PDFs accessible from file managers and other applications
|
|
69
|
+
- Need to store files on specific drives with more storage capacity
|
|
70
|
+
- Want a predictable directory structure for scripting and automation
|
|
71
|
+
- Prefer linked files over Zotero-managed storage for portability
|
|
72
|
+
|
|
73
|
+
**Subfolder Organization**: Create automatic subfolder structures based on metadata:
|
|
74
|
+
- Organize by year: `{%y}/` creates `2024/`, `2023/`, etc.
|
|
75
|
+
- Organize by author: `{%a}/` creates `Smith/`, `Jones/`, etc.
|
|
76
|
+
- Organize by collection: mirror your Zotero collection hierarchy
|
|
77
|
+
- Combine patterns: `{%y}/{%j}/` creates `2024/Nature/`, `2024/Science/`
|
|
78
|
+
|
|
79
|
+
**Tablet Reading Workflow**: ZotFile manages a bidirectional sync between your Zotero library and a tablet reading folder:
|
|
80
|
+
|
|
81
|
+
1. Select papers you want to read on your tablet
|
|
82
|
+
2. Right-click > Manage Attachments > Send to Tablet
|
|
83
|
+
3. ZotFile copies PDFs to your configured tablet directory (typically a cloud-synced folder)
|
|
84
|
+
4. Read and annotate on your tablet using your preferred PDF reader
|
|
85
|
+
5. When finished, right-click > Manage Attachments > Get from Tablet
|
|
86
|
+
6. ZotFile retrieves the annotated PDFs and extracts new annotations into Zotero notes
|
|
87
|
+
|
|
88
|
+
**PDF Annotation Extraction**: ZotFile can extract highlights and text annotations from PDFs and convert them into Zotero notes. This works with annotations made in any PDF reader, not just Zotero's built-in reader. Each annotation includes:
|
|
89
|
+
- The highlighted or annotated text
|
|
90
|
+
- The page number for reference
|
|
91
|
+
- Color coding information
|
|
92
|
+
- Any comments you added
|
|
93
|
+
|
|
94
|
+
**Batch Operations**: Process your entire library or selected collections at once:
|
|
95
|
+
- Rename all attachments according to current rules
|
|
96
|
+
- Move all files to the custom location
|
|
97
|
+
- Extract annotations from all PDFs
|
|
98
|
+
- Update file links after moving directories
|
|
99
|
+
|
|
100
|
+
## Research Workflow Best Practices
|
|
101
|
+
|
|
102
|
+
**Setting Up a New Library**:
|
|
103
|
+
1. Configure ZotFile with your preferred naming pattern and directory
|
|
104
|
+
2. Import your existing PDFs into Zotero with metadata
|
|
105
|
+
3. Select all items and run "Rename and Move Attachments" to normalize everything
|
|
106
|
+
4. Verify the resulting file structure meets your needs
|
|
107
|
+
|
|
108
|
+
**Daily Workflow**:
|
|
109
|
+
1. Download new papers through your browser
|
|
110
|
+
2. Add them to Zotero (drag and drop or browser connector)
|
|
111
|
+
3. ZotFile automatically renames and moves the PDF
|
|
112
|
+
4. The file appears in your organized directory with a readable name
|
|
113
|
+
|
|
114
|
+
**Backup Strategy**: With ZotFile managing files in a known directory:
|
|
115
|
+
- Use Time Machine, rsync, or cloud storage to back up the PDF directory
|
|
116
|
+
- Back up the Zotero database separately
|
|
117
|
+
- The combination ensures full recoverability
|
|
118
|
+
|
|
119
|
+
**Collaboration**: Share your organized PDF directory with collaborators:
|
|
120
|
+
- The human-readable filenames make it easy to find specific papers
|
|
121
|
+
- The directory structure provides intuitive browsing
|
|
122
|
+
- Pair with a shared BibTeX file for complete reference sharing
|
|
123
|
+
|
|
124
|
+
**Migration from Other Managers**: When switching from Mendeley, EndNote, or other tools:
|
|
125
|
+
1. Export your library to a standard format (BibTeX or RIS)
|
|
126
|
+
2. Import into Zotero
|
|
127
|
+
3. Add your existing PDFs
|
|
128
|
+
4. Run ZotFile renaming to normalize all filenames to your chosen convention
|
|
129
|
+
5. Verify all file links are correct
|
|
130
|
+
|
|
131
|
+
## Compatibility Notes
|
|
132
|
+
|
|
133
|
+
ZotFile was originally developed for Zotero 5 and earlier versions. For Zotero 7 users, check the GitHub repository for the latest compatibility information. Some features may be handled natively in newer Zotero versions, while others may require the updated plugin. The Zotero community actively maintains compatibility guides for major plugin migrations.
|
|
134
|
+
|
|
135
|
+
## References
|
|
136
|
+
|
|
137
|
+
- GitHub Repository: https://github.com/jlegewie/zotfile
|
|
138
|
+
- ZotFile Documentation: http://zotfile.com
|
|
139
|
+
- Zotero Plugin Directory: https://www.zotero.org/support/plugins
|
|
140
|
+
- Zotero File Management Guide: https://www.zotero.org/support/attaching_files
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ml-paper-writing
|
|
3
|
+
description: "Write ML/AI research papers targeting NeurIPS, ICML, and ICLR venues"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🧠"
|
|
7
|
+
category: "writing"
|
|
8
|
+
subcategory: "composition"
|
|
9
|
+
keywords: ["machine learning", "NeurIPS", "ICML", "ICLR", "AI paper", "deep learning", "conference paper"]
|
|
10
|
+
source: "https://github.com/karpathy/arxiv-sanity-lite"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ML Paper Writing
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Publishing at top machine learning venues—NeurIPS, ICML, ICLR, AAAI, and similar conferences—requires not only strong technical contributions but also clear, persuasive writing that follows community conventions. The reviewing process at these venues is highly competitive (acceptance rates of 15-30%), and the difference between a borderline accept and a borderline reject often comes down to how well the paper communicates its contributions.
|
|
18
|
+
|
|
19
|
+
This skill provides a comprehensive guide to writing ML/AI research papers that meet the expectations of reviewers at top venues. It covers paper structure, the specific writing conventions of the ML community, common reviewer complaints to avoid, and practical templates for each section.
|
|
20
|
+
|
|
21
|
+
The guidance here is based on published reviewer guidelines from NeurIPS, ICML, and ICLR, as well as widely-cited advice from established researchers in the field.
|
|
22
|
+
|
|
23
|
+
## Paper Structure and Section Guide
|
|
24
|
+
|
|
25
|
+
### Title
|
|
26
|
+
|
|
27
|
+
Your title should be specific and informative. Avoid generic titles like "A Novel Approach to X." Include:
|
|
28
|
+
- The key technical contribution or method name
|
|
29
|
+
- The problem domain or task
|
|
30
|
+
- Optionally, a hint at the result
|
|
31
|
+
|
|
32
|
+
**Good examples:**
|
|
33
|
+
- "Attention Is All You Need"
|
|
34
|
+
- "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"
|
|
35
|
+
- "Scaling Laws for Neural Language Models"
|
|
36
|
+
|
|
37
|
+
**Avoid:**
|
|
38
|
+
- "A Deep Learning Approach for Better Results" (too vague)
|
|
39
|
+
- "On Some Properties of Neural Networks" (uninformative)
|
|
40
|
+
|
|
41
|
+
### Abstract (150-250 words)
|
|
42
|
+
|
|
43
|
+
Structure your abstract as four implicit paragraphs, even if written as a single block:
|
|
44
|
+
|
|
45
|
+
1. **Context** (1-2 sentences): What problem area are you working in? Why does it matter?
|
|
46
|
+
2. **Gap/Problem** (1-2 sentences): What specific limitation or open question does your work address?
|
|
47
|
+
3. **Approach** (2-3 sentences): What is your method? What is the key insight?
|
|
48
|
+
4. **Results** (2-3 sentences): What are your main empirical results? Include specific numbers (accuracy, speedup, etc.).
|
|
49
|
+
|
|
50
|
+
### Introduction (1-1.5 pages)
|
|
51
|
+
|
|
52
|
+
The introduction expands the abstract with more context and should accomplish:
|
|
53
|
+
|
|
54
|
+
1. Motivate the problem with a concrete example or real-world impact
|
|
55
|
+
2. Summarize the current state of the art and its limitations
|
|
56
|
+
3. State your contributions as a numbered or bulleted list (typically 3-4 points)
|
|
57
|
+
4. Briefly describe the paper's organization
|
|
58
|
+
|
|
59
|
+
**The contribution list is critical.** Reviewers often decide their initial impression from the contribution bullets. Each contribution should be specific and falsifiable, not vague ("We propose a novel method" is weak; "We propose X, which achieves Y% improvement on Z benchmark" is strong).
|
|
60
|
+
|
|
61
|
+
### Related Work (0.5-1.5 pages)
|
|
62
|
+
|
|
63
|
+
In ML papers, Related Work can appear after the Introduction or before the Conclusion. Position it after the Introduction if your method is best understood in the context of prior work; put it near the end if it would interrupt the flow of your technical exposition.
|
|
64
|
+
|
|
65
|
+
- Organize by theme, not chronologically
|
|
66
|
+
- Explicitly state how your work differs from each group of related methods
|
|
67
|
+
- Be fair and generous—reviewers may be the authors of cited papers
|
|
68
|
+
- Cover the most recent work (last 2 years); missing recent papers is a common reviewer complaint
|
|
69
|
+
|
|
70
|
+
### Method (2-3 pages)
|
|
71
|
+
|
|
72
|
+
This is the core of your paper. Structure it as:
|
|
73
|
+
|
|
74
|
+
1. **Problem formulation**: Define notation, input/output, and the objective mathematically
|
|
75
|
+
2. **Method overview**: A high-level description (ideally with a figure showing the architecture or pipeline)
|
|
76
|
+
3. **Detailed description**: Each component of your method in its own subsection
|
|
77
|
+
4. **Training procedure**: Loss functions, optimization details, any tricks
|
|
78
|
+
|
|
79
|
+
**Tips:**
|
|
80
|
+
- Use a method figure (architecture diagram) early in this section
|
|
81
|
+
- Define all notation before first use
|
|
82
|
+
- Use consistent notation throughout (common complaint: variable names change between sections)
|
|
83
|
+
- If your method has multiple components, use an algorithm box (Algorithm 1) to summarize
|
|
84
|
+
|
|
85
|
+
### Experiments (2-3 pages)
|
|
86
|
+
|
|
87
|
+
This section must answer: "Does the proposed method work, and why?"
|
|
88
|
+
|
|
89
|
+
Structure:
|
|
90
|
+
1. **Experimental setup**: Datasets, baselines, evaluation metrics, implementation details
|
|
91
|
+
2. **Main results**: Comparison tables against baselines on standard benchmarks
|
|
92
|
+
3. **Ablation study**: Remove or modify each component of your method to show each one matters
|
|
93
|
+
4. **Analysis**: Qualitative examples, visualization of learned representations, failure cases
|
|
94
|
+
|
|
95
|
+
**Common reviewer complaints to preempt:**
|
|
96
|
+
- "The baselines are weak/outdated" — Include SOTA methods from the last 1-2 years
|
|
97
|
+
- "Missing ablation study" — Always include one
|
|
98
|
+
- "No error bars/confidence intervals" — Report mean and standard deviation over 3-5 runs
|
|
99
|
+
- "No computational cost comparison" — Report FLOPs, wall-clock time, or parameter counts
|
|
100
|
+
|
|
101
|
+
### Conclusion
|
|
102
|
+
|
|
103
|
+
Keep it short (0.5 pages). Summarize contributions, state limitations honestly (reviewers appreciate this), and suggest future directions.
|
|
104
|
+
|
|
105
|
+
## Writing Style for ML Papers
|
|
106
|
+
|
|
107
|
+
### Clarity and Precision
|
|
108
|
+
|
|
109
|
+
- Use active voice: "We propose" not "It is proposed"
|
|
110
|
+
- Define acronyms at first use
|
|
111
|
+
- Keep sentences short—aim for one idea per sentence
|
|
112
|
+
- Use mathematical notation consistently
|
|
113
|
+
- Avoid hedge words unless truly uncertain ("Our method achieves" not "Our method seems to achieve")
|
|
114
|
+
|
|
115
|
+
### Figures and Tables
|
|
116
|
+
|
|
117
|
+
- Every figure and table must be referenced in the text
|
|
118
|
+
- Use vector graphics (PDF/SVG) for plots, not rasterized PNG
|
|
119
|
+
- Tables should have clear column headers and the best result should be **bolded**
|
|
120
|
+
- Include a descriptive caption that lets the figure/table stand alone
|
|
121
|
+
|
|
122
|
+
### Reproducibility Checklist
|
|
123
|
+
|
|
124
|
+
NeurIPS and ICML now require a reproducibility checklist. Address these in your paper:
|
|
125
|
+
|
|
126
|
+
- Exact hyperparameters and how they were selected
|
|
127
|
+
- Random seeds used
|
|
128
|
+
- Computational resources (GPU type, training time)
|
|
129
|
+
- Dataset splits and preprocessing details
|
|
130
|
+
- Code availability (link to anonymized repository for review)
|
|
131
|
+
|
|
132
|
+
## Submission Logistics
|
|
133
|
+
|
|
134
|
+
### Formatting
|
|
135
|
+
|
|
136
|
+
- Use the official LaTeX template for your target venue (NeurIPS, ICML, ICLR each have their own)
|
|
137
|
+
- Do not exceed the page limit (typically 8-9 pages for main content, unlimited for references and appendix)
|
|
138
|
+
- Anonymous submission: remove author names, avoid self-identifying references ("In our prior work [Author, 2024]" should be "In prior work [Anonymous, 2024]")
|
|
139
|
+
|
|
140
|
+
### Supplementary Material
|
|
141
|
+
|
|
142
|
+
Use the appendix for:
|
|
143
|
+
- Extended proofs
|
|
144
|
+
- Additional experimental results
|
|
145
|
+
- Implementation details and pseudocode
|
|
146
|
+
- Dataset details and preprocessing steps
|
|
147
|
+
|
|
148
|
+
Reviewers are not required to read the appendix, so the main paper must be self-contained.
|
|
149
|
+
|
|
150
|
+
### Rebuttal Preparation
|
|
151
|
+
|
|
152
|
+
After reviews come in, you typically have 1 week for a rebuttal. Prepare by:
|
|
153
|
+
- Running additional experiments that reviewers might request (start before reviews arrive)
|
|
154
|
+
- Having a collaborator re-read the paper to anticipate potential criticisms
|
|
155
|
+
- Drafting template responses for common concerns (computational cost, additional baselines, etc.)
|
|
156
|
+
|
|
157
|
+
## References
|
|
158
|
+
|
|
159
|
+
- NeurIPS 2025 Call for Papers and Reviewer Guidelines: https://neurips.cc
|
|
160
|
+
- ICML Author Instructions: https://icml.cc
|
|
161
|
+
- ICLR Submission Guidelines: https://iclr.cc
|
|
162
|
+
- Karpathy's arXiv Sanity: https://github.com/karpathy/arxiv-sanity-lite
|
|
163
|
+
- Liang, P. "How to Write a Good ML Paper" (Stanford CS229 handout)
|