@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.
Files changed (415) hide show
  1. package/README.md +22 -22
  2. package/curated/analysis/README.md +82 -56
  3. package/curated/domains/README.md +225 -69
  4. package/curated/literature/README.md +115 -46
  5. package/curated/research/README.md +106 -58
  6. package/curated/tools/README.md +107 -87
  7. package/curated/writing/README.md +92 -45
  8. package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
  9. package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
  10. package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
  11. package/mcp-configs/academic-db/gibs-mcp.json +20 -0
  12. package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
  13. package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
  14. package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
  15. package/mcp-configs/academic-db/medical-mcp.json +21 -0
  16. package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
  17. package/mcp-configs/academic-db/omop-mcp.json +20 -0
  18. package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
  19. package/mcp-configs/academic-db/openedu-mcp.json +20 -0
  20. package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
  21. package/mcp-configs/academic-db/openstax-mcp.json +21 -0
  22. package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
  23. package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
  24. package/mcp-configs/academic-db/pdb-mcp.json +21 -0
  25. package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
  26. package/mcp-configs/ai-platform/magi-researchers.json +21 -0
  27. package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
  28. package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
  29. package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
  30. package/mcp-configs/ai-platform/paper-reader.json +21 -0
  31. package/mcp-configs/ai-platform/paperdebugger.json +21 -0
  32. package/mcp-configs/browser/exa-mcp.json +20 -0
  33. package/mcp-configs/browser/mcp-searxng.json +21 -0
  34. package/mcp-configs/browser/mcp-webresearch.json +20 -0
  35. package/mcp-configs/cloud-docs/confluence-mcp.json +37 -0
  36. package/mcp-configs/cloud-docs/google-drive-mcp.json +35 -0
  37. package/mcp-configs/cloud-docs/notion-mcp.json +29 -0
  38. package/mcp-configs/communication/discord-mcp.json +29 -0
  39. package/mcp-configs/communication/discourse-mcp.json +21 -0
  40. package/mcp-configs/communication/slack-mcp.json +29 -0
  41. package/mcp-configs/communication/telegram-mcp.json +28 -0
  42. package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
  43. package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
  44. package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
  45. package/mcp-configs/data-platform/mcp-stata.json +21 -0
  46. package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
  47. package/mcp-configs/data-platform/ml-mcp.json +21 -0
  48. package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
  49. package/mcp-configs/data-platform/numpy-mcp.json +21 -0
  50. package/mcp-configs/database/neo4j-mcp.json +37 -0
  51. package/mcp-configs/database/postgres-mcp.json +28 -0
  52. package/mcp-configs/database/sqlite-mcp.json +29 -0
  53. package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
  54. package/mcp-configs/dev-platform/github-mcp.json +31 -0
  55. package/mcp-configs/dev-platform/gitlab-mcp.json +34 -0
  56. package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
  57. package/mcp-configs/dev-platform/manim-mcp.json +20 -0
  58. package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
  59. package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
  60. package/mcp-configs/dev-platform/paperbanana.json +20 -0
  61. package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
  62. package/mcp-configs/dev-platform/texmcp.json +20 -0
  63. package/mcp-configs/dev-platform/typst-mcp.json +21 -0
  64. package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
  65. package/mcp-configs/email/email-mcp.json +40 -0
  66. package/mcp-configs/email/gmail-mcp.json +37 -0
  67. package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
  68. package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
  69. package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
  70. package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
  71. package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
  72. package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
  73. package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
  74. package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
  75. package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
  76. package/mcp-configs/reference-mgr/academix.json +20 -0
  77. package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
  78. package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
  79. package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
  80. package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
  81. package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
  82. package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
  83. package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
  84. package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
  85. package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
  86. package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
  87. package/mcp-configs/reference-mgr/onecite.json +21 -0
  88. package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
  89. package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
  90. package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
  91. package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
  92. package/mcp-configs/reference-mgr/seerai.json +21 -0
  93. package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
  94. package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
  95. package/mcp-configs/registry.json +178 -149
  96. package/mcp-configs/repository/dataverse-mcp.json +33 -0
  97. package/mcp-configs/repository/huggingface-mcp.json +29 -0
  98. package/openclaw.plugin.json +2 -2
  99. package/package.json +2 -2
  100. package/skills/analysis/dataviz/algorithm-visualizer-guide/SKILL.md +259 -0
  101. package/skills/analysis/dataviz/bokeh-visualization-guide/SKILL.md +270 -0
  102. package/skills/analysis/dataviz/chart-image-generator/SKILL.md +229 -0
  103. package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
  104. package/skills/analysis/dataviz/d3-visualization-guide/SKILL.md +281 -0
  105. package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
  106. package/skills/analysis/dataviz/echarts-visualization-guide/SKILL.md +250 -0
  107. package/skills/analysis/dataviz/metabase-analytics-guide/SKILL.md +242 -0
  108. package/skills/analysis/dataviz/plotly-interactive-guide/SKILL.md +266 -0
  109. package/skills/analysis/dataviz/redash-analytics-guide/SKILL.md +284 -0
  110. package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +163 -0
  111. package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
  112. package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +139 -0
  113. package/skills/analysis/econometrics/panel-data-analyst/SKILL.md +259 -0
  114. package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
  115. package/skills/analysis/econometrics/python-causality-guide/SKILL.md +134 -0
  116. package/skills/analysis/econometrics/stata-accounting-guide/SKILL.md +269 -0
  117. package/skills/analysis/econometrics/stata-analyst-guide/SKILL.md +245 -0
  118. package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
  119. package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +157 -0
  120. package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
  121. package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
  122. package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +212 -0
  123. package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +192 -0
  124. package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +193 -0
  125. package/skills/analysis/statistics/senior-data-scientist-guide/SKILL.md +223 -0
  126. package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
  127. package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +170 -0
  128. package/skills/analysis/wrangling/data-cleaning-pipeline/SKILL.md +266 -0
  129. package/skills/analysis/wrangling/data-cog-guide/SKILL.md +178 -0
  130. package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
  131. package/skills/analysis/wrangling/stata-data-cleaning/SKILL.md +276 -0
  132. package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
  133. package/skills/analysis/wrangling/survey-data-processing/SKILL.md +298 -0
  134. package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
  135. package/skills/domains/ai-ml/ai-model-benchmarking/SKILL.md +209 -0
  136. package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +159 -0
  137. package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
  138. package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
  139. package/skills/domains/ai-ml/dl-transformer-finetune/SKILL.md +239 -0
  140. package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
  141. package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +146 -0
  142. package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
  143. package/skills/domains/ai-ml/huggingface-inference-guide/SKILL.md +196 -0
  144. package/skills/domains/ai-ml/keras-deep-learning/SKILL.md +210 -0
  145. package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
  146. package/skills/domains/ai-ml/llm-from-scratch-guide/SKILL.md +124 -0
  147. package/skills/domains/ai-ml/ml-pipeline-guide/SKILL.md +295 -0
  148. package/skills/domains/ai-ml/nlp-toolkit-guide/SKILL.md +247 -0
  149. package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
  150. package/skills/domains/ai-ml/pytorch-guide/SKILL.md +281 -0
  151. package/skills/domains/ai-ml/pytorch-lightning-guide/SKILL.md +244 -0
  152. package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
  153. package/skills/domains/ai-ml/tensorflow-guide/SKILL.md +241 -0
  154. package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
  155. package/skills/domains/biomedical/bioagents-guide/SKILL.md +308 -0
  156. package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
  157. package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
  158. package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
  159. package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
  160. package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
  161. package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
  162. package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
  163. package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +345 -0
  164. package/skills/domains/biomedical/medical-imaging-guide/SKILL.md +305 -0
  165. package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
  166. package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
  167. package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
  168. package/skills/domains/business/architecture-design-guide/SKILL.md +279 -0
  169. package/skills/domains/business/innovation-management-guide/SKILL.md +257 -0
  170. package/skills/domains/business/operations-research-guide/SKILL.md +258 -0
  171. package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
  172. package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
  173. package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
  174. package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
  175. package/skills/domains/chemistry/molecular-dynamics-guide/SKILL.md +237 -0
  176. package/skills/domains/chemistry/pubchem-api-guide/SKILL.md +180 -0
  177. package/skills/domains/chemistry/spectroscopy-analysis-guide/SKILL.md +290 -0
  178. package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
  179. package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
  180. package/skills/domains/cs/distributed-systems-guide/SKILL.md +268 -0
  181. package/skills/domains/cs/formal-verification-guide/SKILL.md +298 -0
  182. package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
  183. package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
  184. package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
  185. package/skills/domains/ecology/species-distribution-guide/SKILL.md +343 -0
  186. package/skills/domains/economics/imf-data-api-guide/SKILL.md +174 -0
  187. package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
  188. package/skills/domains/economics/post-labor-economics/SKILL.md +254 -0
  189. package/skills/domains/economics/pricing-psychology-guide/SKILL.md +273 -0
  190. package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
  191. package/skills/domains/economics/world-bank-data-guide/SKILL.md +179 -0
  192. package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
  193. package/skills/domains/education/assessment-design-guide/SKILL.md +213 -0
  194. package/skills/domains/education/educational-research-methods/SKILL.md +179 -0
  195. package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
  196. package/skills/domains/education/mooc-analytics-guide/SKILL.md +206 -0
  197. package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
  198. package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
  199. package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
  200. package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
  201. package/skills/domains/finance/portfolio-optimization-guide/SKILL.md +279 -0
  202. package/skills/domains/finance/risk-modeling-guide/SKILL.md +260 -0
  203. package/skills/domains/finance/stata-accounting-research/SKILL.md +372 -0
  204. package/skills/domains/geoscience/climate-modeling-guide/SKILL.md +215 -0
  205. package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
  206. package/skills/domains/geoscience/satellite-remote-sensing/SKILL.md +193 -0
  207. package/skills/domains/geoscience/seismology-data-guide/SKILL.md +208 -0
  208. package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
  209. package/skills/domains/humanities/ethical-philosophy-guide/SKILL.md +244 -0
  210. package/skills/domains/humanities/history-research-guide/SKILL.md +260 -0
  211. package/skills/domains/humanities/political-history-guide/SKILL.md +241 -0
  212. package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
  213. package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
  214. package/skills/domains/law/legal-nlp-guide/SKILL.md +236 -0
  215. package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
  216. package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
  217. package/skills/domains/law/patent-analysis-guide/SKILL.md +257 -0
  218. package/skills/domains/law/regulatory-compliance-guide/SKILL.md +267 -0
  219. package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
  220. package/skills/domains/math/symbolic-computation-guide/SKILL.md +263 -0
  221. package/skills/domains/math/topology-data-analysis/SKILL.md +305 -0
  222. package/skills/domains/pharma/clinical-trial-design-guide/SKILL.md +271 -0
  223. package/skills/domains/pharma/drug-target-interaction/SKILL.md +242 -0
  224. package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
  225. package/skills/domains/pharma/pharmacovigilance-guide/SKILL.md +216 -0
  226. package/skills/domains/physics/astrophysics-data-guide/SKILL.md +305 -0
  227. package/skills/domains/physics/particle-physics-guide/SKILL.md +287 -0
  228. package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
  229. package/skills/domains/social-science/network-analysis-guide/SKILL.md +310 -0
  230. package/skills/domains/social-science/psychology-research-guide/SKILL.md +270 -0
  231. package/skills/domains/social-science/sociology-research-guide/SKILL.md +238 -0
  232. package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
  233. package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
  234. package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +120 -0
  235. package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
  236. package/skills/literature/discovery/semantic-paper-radar/SKILL.md +144 -0
  237. package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +94 -0
  238. package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
  239. package/skills/literature/fulltext/core-api-guide/SKILL.md +144 -0
  240. package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
  241. package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
  242. package/skills/literature/fulltext/institutional-repository-guide/SKILL.md +212 -0
  243. package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +341 -0
  244. package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
  245. package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
  246. package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
  247. package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
  248. package/skills/literature/metadata/academic-paper-summarizer/SKILL.md +101 -0
  249. package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
  250. package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
  251. package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
  252. package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
  253. package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
  254. package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
  255. package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
  256. package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
  257. package/skills/literature/metadata/wikidata-api-guide/SKILL.md +156 -0
  258. package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
  259. package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
  260. package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
  261. package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
  262. package/skills/literature/search/arxiv-batch-reporting/SKILL.md +133 -0
  263. package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
  264. package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
  265. package/skills/literature/search/arxiv-paper-processor/SKILL.md +141 -0
  266. package/skills/literature/search/baidu-scholar-guide/SKILL.md +110 -0
  267. package/skills/literature/search/base-academic-search/SKILL.md +196 -0
  268. package/skills/literature/search/chatpaper-guide/SKILL.md +122 -0
  269. package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
  270. package/skills/literature/search/deep-literature-search/SKILL.md +149 -0
  271. package/skills/literature/search/deepgit-search-guide/SKILL.md +147 -0
  272. package/skills/literature/search/eric-education-api/SKILL.md +199 -0
  273. package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
  274. package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
  275. package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
  276. package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
  277. package/skills/literature/search/open-library-api/SKILL.md +196 -0
  278. package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
  279. package/skills/literature/search/openaire-api/SKILL.md +141 -0
  280. package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
  281. package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
  282. package/skills/literature/search/pasa-paper-search-guide/SKILL.md +138 -0
  283. package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
  284. package/skills/literature/search/scielo-api/SKILL.md +182 -0
  285. package/skills/literature/search/share-research-api/SKILL.md +129 -0
  286. package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
  287. package/skills/research/automation/ai-scientist-v2-guide/SKILL.md +284 -0
  288. package/skills/research/automation/aim-experiment-guide/SKILL.md +234 -0
  289. package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
  290. package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
  291. package/skills/research/automation/datagen-research-guide/SKILL.md +131 -0
  292. package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
  293. package/skills/research/automation/kedro-pipeline-guide/SKILL.md +216 -0
  294. package/skills/research/automation/mle-agent-guide/SKILL.md +139 -0
  295. package/skills/research/automation/paper-to-agent-guide/SKILL.md +116 -0
  296. package/skills/research/automation/rd-agent-guide/SKILL.md +246 -0
  297. package/skills/research/automation/research-paper-orchestrator/SKILL.md +254 -0
  298. package/skills/research/deep-research/academic-deep-research/SKILL.md +190 -0
  299. package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +141 -0
  300. package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
  301. package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
  302. package/skills/research/deep-research/deep-research-pro/SKILL.md +213 -0
  303. package/skills/research/deep-research/deep-research-work/SKILL.md +204 -0
  304. package/skills/research/deep-research/deep-searcher-guide/SKILL.md +253 -0
  305. package/skills/research/deep-research/gpt-researcher-guide/SKILL.md +191 -0
  306. package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
  307. package/skills/research/deep-research/khoj-research-guide/SKILL.md +200 -0
  308. package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
  309. package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
  310. package/skills/research/deep-research/local-deep-research-guide/SKILL.md +253 -0
  311. package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
  312. package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +217 -0
  313. package/skills/research/funding/eu-horizon-guide/SKILL.md +244 -0
  314. package/skills/research/funding/grant-budget-guide/SKILL.md +284 -0
  315. package/skills/research/funding/nih-reporter-api-guide/SKILL.md +166 -0
  316. package/skills/research/funding/nsf-award-api-guide/SKILL.md +133 -0
  317. package/skills/research/methodology/academic-mentor-guide/SKILL.md +169 -0
  318. package/skills/research/methodology/claude-scientific-guide/SKILL.md +122 -0
  319. package/skills/research/methodology/deep-innovator-guide/SKILL.md +242 -0
  320. package/skills/research/methodology/osf-api-guide/SKILL.md +165 -0
  321. package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
  322. package/skills/research/methodology/research-paper-kb/SKILL.md +263 -0
  323. package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
  324. package/skills/research/methodology/research-town-guide/SKILL.md +263 -0
  325. package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
  326. package/skills/research/paper-review/automated-review-guide/SKILL.md +281 -0
  327. package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
  328. package/skills/research/paper-review/paper-compare-guide/SKILL.md +238 -0
  329. package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
  330. package/skills/research/paper-review/paper-digest-guide/SKILL.md +240 -0
  331. package/skills/research/paper-review/paper-research-assistant/SKILL.md +231 -0
  332. package/skills/research/paper-review/research-quality-filter/SKILL.md +261 -0
  333. package/skills/research/paper-review/review-response-guide/SKILL.md +275 -0
  334. package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
  335. package/skills/tools/code-exec/google-colab-guide/SKILL.md +276 -0
  336. package/skills/tools/code-exec/kaggle-api-guide/SKILL.md +216 -0
  337. package/skills/tools/code-exec/overleaf-cli-guide/SKILL.md +279 -0
  338. package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
  339. package/skills/tools/diagram/code-flow-visualizer/SKILL.md +197 -0
  340. package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +170 -0
  341. package/skills/tools/diagram/json-data-visualizer/SKILL.md +270 -0
  342. package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
  343. package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +219 -0
  344. package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
  345. package/skills/tools/diagram/tldraw-whiteboard-guide/SKILL.md +397 -0
  346. package/skills/tools/document/docsgpt-guide/SKILL.md +130 -0
  347. package/skills/tools/document/large-document-reader/SKILL.md +202 -0
  348. package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
  349. package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
  350. package/skills/tools/document/paper-parse-guide/SKILL.md +243 -0
  351. package/skills/tools/document/weknora-guide/SKILL.md +216 -0
  352. package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
  353. package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
  354. package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
  355. package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +244 -0
  356. package/skills/tools/knowledge-graph/concept-map-generator/SKILL.md +284 -0
  357. package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +219 -0
  358. package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
  359. package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
  360. package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
  361. package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
  362. package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
  363. package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
  364. package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
  365. package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
  366. package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +141 -0
  367. package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +95 -0
  368. package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +143 -0
  369. package/skills/tools/scraping/dataset-finder-guide/SKILL.md +253 -0
  370. package/skills/tools/scraping/easy-spider-guide/SKILL.md +250 -0
  371. package/skills/tools/scraping/google-scholar-scraper/SKILL.md +255 -0
  372. package/skills/tools/scraping/repository-harvesting-guide/SKILL.md +310 -0
  373. package/skills/writing/citation/academic-citation-manager/SKILL.md +314 -0
  374. package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
  375. package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
  376. package/skills/writing/citation/jabref-reference-guide/SKILL.md +127 -0
  377. package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +103 -0
  378. package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
  379. package/skills/writing/citation/obsidian-citation-guide/SKILL.md +164 -0
  380. package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +137 -0
  381. package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
  382. package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +132 -0
  383. package/skills/writing/citation/papis-cli-guide/SKILL.md +213 -0
  384. package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +107 -0
  385. package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +121 -0
  386. package/skills/writing/citation/zotero-gpt-guide/SKILL.md +111 -0
  387. package/skills/writing/citation/zotero-mcp-guide/SKILL.md +164 -0
  388. package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +162 -0
  389. package/skills/writing/citation/zotero-reference-guide/SKILL.md +139 -0
  390. package/skills/writing/citation/zotero-scholar-guide/SKILL.md +294 -0
  391. package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +140 -0
  392. package/skills/writing/composition/ml-paper-writing/SKILL.md +163 -0
  393. package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
  394. package/skills/writing/composition/paper-debugger-guide/SKILL.md +143 -0
  395. package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
  396. package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
  397. package/skills/writing/composition/scientific-writing-resources/SKILL.md +151 -0
  398. package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +153 -0
  399. package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
  400. package/skills/writing/latex/latex-drawing-collection/SKILL.md +154 -0
  401. package/skills/writing/latex/latex-templates-collection/SKILL.md +159 -0
  402. package/skills/writing/latex/md-to-pdf-academic/SKILL.md +230 -0
  403. package/skills/writing/latex/tex-render-guide/SKILL.md +243 -0
  404. package/skills/writing/polish/academic-tone-guide/SKILL.md +209 -0
  405. package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
  406. package/skills/writing/polish/conciseness-editing-guide/SKILL.md +225 -0
  407. package/skills/writing/polish/paper-polish-guide/SKILL.md +160 -0
  408. package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
  409. package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
  410. package/skills/writing/templates/graphical-abstract-guide/SKILL.md +183 -0
  411. package/skills/writing/templates/novathesis-guide/SKILL.md +152 -0
  412. package/skills/writing/templates/scientific-article-pdf/SKILL.md +261 -0
  413. package/skills/writing/templates/sjtuthesis-guide/SKILL.md +197 -0
  414. package/skills/writing/templates/thuthesis-guide/SKILL.md +181 -0
  415. package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +0 -207
@@ -0,0 +1,343 @@
1
+ ---
2
+ name: species-distribution-guide
3
+ description: "Species distribution modeling with MaxEnt, SDM methods, and GBIF data"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "paw-prints"
7
+ category: "domains"
8
+ subcategory: "ecology"
9
+ keywords: ["species-distribution", "maxent", "sdm", "gbif", "ecological-niche", "biodiversity", "habitat"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Species Distribution Modeling Guide
14
+
15
+ A skill for building and evaluating species distribution models (SDMs), covering occurrence data acquisition from biodiversity databases, environmental predictor preparation, model fitting with MaxEnt and ensemble methods, model evaluation, and projection under climate change scenarios.
16
+
17
+ ## Occurrence Data
18
+
19
+ ### Accessing GBIF Data
20
+
21
+ The Global Biodiversity Information Facility (GBIF) is the primary source of species occurrence records:
22
+
23
+ ```python
24
+ from pygbif import occurrences, species
25
+
26
+ def download_occurrences(species_name: str, country: str = None,
27
+ limit: int = 5000,
28
+ has_coordinate: bool = True) -> dict:
29
+ """
30
+ Download species occurrence records from GBIF.
31
+ species_name: scientific name (e.g., 'Panthera tigris')
32
+ Returns cleaned occurrence records with coordinates.
33
+ """
34
+ # Get GBIF species key
35
+ name_result = species.name_backbone(name=species_name)
36
+ if "usageKey" not in name_result:
37
+ return {"error": f"Species not found: {species_name}"}
38
+
39
+ species_key = name_result["usageKey"]
40
+
41
+ # Search occurrences
42
+ params = {
43
+ "taxonKey": species_key,
44
+ "hasCoordinate": has_coordinate,
45
+ "hasGeospatialIssue": False,
46
+ "limit": limit,
47
+ }
48
+ if country:
49
+ params["country"] = country
50
+
51
+ results = occurrences.search(**params)
52
+
53
+ # Clean records
54
+ records = []
55
+ seen_coords = set()
56
+ for rec in results.get("results", []):
57
+ lat = rec.get("decimalLatitude")
58
+ lon = rec.get("decimalLongitude")
59
+ if lat is None or lon is None:
60
+ continue
61
+
62
+ # Remove exact duplicates
63
+ coord_key = (round(lat, 4), round(lon, 4))
64
+ if coord_key in seen_coords:
65
+ continue
66
+ seen_coords.add(coord_key)
67
+
68
+ records.append({
69
+ "species": rec.get("species", species_name),
70
+ "latitude": lat,
71
+ "longitude": lon,
72
+ "year": rec.get("year"),
73
+ "basis_of_record": rec.get("basisOfRecord"),
74
+ "institution": rec.get("institutionCode"),
75
+ "country": rec.get("country"),
76
+ })
77
+
78
+ return {
79
+ "species": species_name,
80
+ "gbif_key": species_key,
81
+ "n_records": len(records),
82
+ "records": records,
83
+ }
84
+ ```
85
+
86
+ ### Data Cleaning for SDM
87
+
88
+ ```python
89
+ import pandas as pd
90
+ import numpy as np
91
+
92
+ def clean_occurrences(records: pd.DataFrame,
93
+ study_extent: dict = None,
94
+ thin_distance_km: float = 10.0) -> pd.DataFrame:
95
+ """
96
+ Clean occurrence records for species distribution modeling.
97
+ Removes outliers, duplicates, and applies spatial thinning.
98
+
99
+ study_extent: {min_lon, max_lon, min_lat, max_lat}
100
+ thin_distance_km: minimum distance between retained points
101
+ """
102
+ df = records.copy()
103
+
104
+ # Remove records with missing coordinates
105
+ df = df.dropna(subset=["latitude", "longitude"])
106
+
107
+ # Remove records at (0,0) -- common data error
108
+ df = df[~((df.latitude == 0) & (df.longitude == 0))]
109
+
110
+ # Clip to study extent
111
+ if study_extent:
112
+ df = df[
113
+ (df.longitude >= study_extent["min_lon"]) &
114
+ (df.longitude <= study_extent["max_lon"]) &
115
+ (df.latitude >= study_extent["min_lat"]) &
116
+ (df.latitude <= study_extent["max_lat"])
117
+ ]
118
+
119
+ # Spatial thinning (grid-based)
120
+ # Convert thinning distance to approximate degrees
121
+ thin_deg = thin_distance_km / 111.0
122
+ df["grid_x"] = (df.longitude / thin_deg).astype(int)
123
+ df["grid_y"] = (df.latitude / thin_deg).astype(int)
124
+ df = df.drop_duplicates(subset=["grid_x", "grid_y"])
125
+ df = df.drop(columns=["grid_x", "grid_y"])
126
+
127
+ return df.reset_index(drop=True)
128
+ ```
129
+
130
+ ## Environmental Predictors
131
+
132
+ ### WorldClim Bioclimatic Variables
133
+
134
+ The standard predictor set for SDMs:
135
+
136
+ | Variable | Description | Unit |
137
+ |----------|-------------|------|
138
+ | BIO1 | Annual Mean Temperature | C x 10 |
139
+ | BIO2 | Mean Diurnal Range | C x 10 |
140
+ | BIO4 | Temperature Seasonality | SD x 100 |
141
+ | BIO5 | Max Temperature of Warmest Month | C x 10 |
142
+ | BIO6 | Min Temperature of Coldest Month | C x 10 |
143
+ | BIO12 | Annual Precipitation | mm |
144
+ | BIO13 | Precipitation of Wettest Month | mm |
145
+ | BIO14 | Precipitation of Driest Month | mm |
146
+ | BIO15 | Precipitation Seasonality | CV |
147
+
148
+ ### Extracting Environmental Values
149
+
150
+ ```python
151
+ import rasterio
152
+ from rasterio.sample import sample_gen
153
+
154
+ def extract_environmental_values(occurrence_coords: np.ndarray,
155
+ raster_paths: dict) -> pd.DataFrame:
156
+ """
157
+ Extract environmental variable values at occurrence locations.
158
+ occurrence_coords: array of (longitude, latitude) pairs
159
+ raster_paths: {variable_name: filepath} for each predictor raster
160
+ """
161
+ env_data = {}
162
+
163
+ for var_name, raster_path in raster_paths.items():
164
+ with rasterio.open(raster_path) as src:
165
+ values = []
166
+ for lon, lat in occurrence_coords:
167
+ row, col = src.index(lon, lat)
168
+ if 0 <= row < src.height and 0 <= col < src.width:
169
+ values.append(float(src.read(1)[row, col]))
170
+ else:
171
+ values.append(np.nan)
172
+ env_data[var_name] = values
173
+
174
+ df = pd.DataFrame(env_data)
175
+ df["longitude"] = occurrence_coords[:, 0]
176
+ df["latitude"] = occurrence_coords[:, 1]
177
+
178
+ # Remove points with nodata values
179
+ df = df.replace(src.nodata, np.nan).dropna()
180
+ return df
181
+ ```
182
+
183
+ ## Model Fitting
184
+
185
+ ### MaxEnt (Maximum Entropy)
186
+
187
+ MaxEnt is the most widely used SDM algorithm for presence-only data:
188
+
189
+ ```python
190
+ import subprocess
191
+
192
+ def run_maxent(samples_csv: str, env_layers_dir: str,
193
+ output_dir: str, features: str = "auto",
194
+ regularization: float = 1.0,
195
+ n_background: int = 10000) -> dict:
196
+ """
197
+ Run MaxEnt species distribution model.
198
+ samples_csv: CSV with columns species, longitude, latitude
199
+ env_layers_dir: directory containing .asc raster files
200
+ output_dir: directory for model outputs
201
+ """
202
+ cmd = [
203
+ "java", "-jar", "maxent.jar",
204
+ "-s", samples_csv,
205
+ "-e", env_layers_dir,
206
+ "-o", output_dir,
207
+ f"betamultiplier={regularization}",
208
+ f"maximumbackground={n_background}",
209
+ "responsecurves=true",
210
+ "jackknife=true",
211
+ "writeplotdata=true",
212
+ "autorun=true",
213
+ ]
214
+
215
+ result = subprocess.run(cmd, capture_output=True, text=True)
216
+
217
+ # Parse results from maxentResults.csv
218
+ import csv
219
+ results_file = f"{output_dir}/maxentResults.csv"
220
+ with open(results_file) as f:
221
+ reader = csv.DictReader(f)
222
+ row = next(reader)
223
+
224
+ return {
225
+ "training_auc": float(row.get("Training AUC", 0)),
226
+ "test_auc": float(row.get("Test AUC", 0)),
227
+ "n_training": int(row.get("X Training samples", 0)),
228
+ "regularized_gain": float(row.get("Regularized training gain", 0)),
229
+ "important_variables": row.get("Percent contribution", ""),
230
+ }
231
+ ```
232
+
233
+ ### Ensemble SDM with Python
234
+
235
+ ```python
236
+ from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
237
+ from sklearn.linear_model import LogisticRegression
238
+ from sklearn.model_selection import cross_val_predict
239
+ from sklearn.metrics import roc_auc_score
240
+
241
+ def ensemble_sdm(presence_env: pd.DataFrame,
242
+ background_env: pd.DataFrame,
243
+ predictor_cols: list[str]) -> dict:
244
+ """
245
+ Build an ensemble SDM from multiple algorithms.
246
+ presence_env: environmental values at presence points
247
+ background_env: environmental values at background/pseudo-absence points
248
+ """
249
+ # Prepare data
250
+ X_pres = presence_env[predictor_cols].values
251
+ X_bg = background_env[predictor_cols].values
252
+ X = np.vstack([X_pres, X_bg])
253
+ y = np.concatenate([np.ones(len(X_pres)), np.zeros(len(X_bg))])
254
+
255
+ models = {
256
+ "random_forest": RandomForestClassifier(n_estimators=500, max_depth=10),
257
+ "gbm": GradientBoostingClassifier(n_estimators=300, max_depth=5,
258
+ learning_rate=0.05),
259
+ "logistic": LogisticRegression(max_iter=1000),
260
+ }
261
+
262
+ results = {}
263
+ predictions = {}
264
+
265
+ for name, model in models.items():
266
+ # Cross-validated predictions
267
+ cv_pred = cross_val_predict(model, X, y, cv=5, method="predict_proba")[:, 1]
268
+ auc = roc_auc_score(y, cv_pred)
269
+
270
+ model.fit(X, y)
271
+ results[name] = {"auc": round(auc, 4), "model": model}
272
+ predictions[name] = cv_pred
273
+
274
+ # Weighted ensemble (weight by AUC)
275
+ total_auc = sum(r["auc"] for r in results.values())
276
+ ensemble_pred = sum(
277
+ predictions[name] * results[name]["auc"] / total_auc
278
+ for name in models
279
+ )
280
+ ensemble_auc = roc_auc_score(y, ensemble_pred)
281
+
282
+ results["ensemble"] = {"auc": round(ensemble_auc, 4)}
283
+ return results
284
+ ```
285
+
286
+ ## Model Evaluation
287
+
288
+ ### Evaluation Metrics for SDMs
289
+
290
+ | Metric | Range | Interpretation |
291
+ |--------|-------|---------------|
292
+ | AUC | 0-1 | Discrimination ability (>0.7 useful, >0.8 good) |
293
+ | TSS (True Skill Statistic) | -1 to 1 | Sensitivity + Specificity - 1 |
294
+ | Boyce Index | -1 to 1 | Predicted-to-expected ratio consistency |
295
+ | Kappa | -1 to 1 | Agreement beyond chance |
296
+
297
+ ```python
298
+ def compute_tss(y_true: np.ndarray, y_pred_proba: np.ndarray) -> dict:
299
+ """
300
+ Compute TSS (True Skill Statistic) at the optimal threshold.
301
+ TSS = Sensitivity + Specificity - 1
302
+ """
303
+ from sklearn.metrics import roc_curve
304
+
305
+ fpr, tpr, thresholds = roc_curve(y_true, y_pred_proba)
306
+ specificity = 1 - fpr
307
+ tss_values = tpr + specificity - 1
308
+
309
+ optimal_idx = np.argmax(tss_values)
310
+ return {
311
+ "tss": round(tss_values[optimal_idx], 4),
312
+ "optimal_threshold": round(thresholds[optimal_idx], 4),
313
+ "sensitivity": round(tpr[optimal_idx], 4),
314
+ "specificity": round(specificity[optimal_idx], 4),
315
+ }
316
+ ```
317
+
318
+ ## Climate Change Projections
319
+
320
+ ### Projecting Habitat Shifts
321
+
322
+ SDMs can project future suitable habitat under climate scenarios:
323
+
324
+ 1. Fit model on current climate + occurrences
325
+ 2. Obtain future climate rasters (CMIP6 SSP scenarios)
326
+ 3. Predict suitability on future climate surfaces
327
+ 4. Compare current vs future range to quantify shifts
328
+
329
+ Key considerations:
330
+ - Use multiple GCMs to capture model uncertainty
331
+ - Apply clamping for novel climate combinations
332
+ - Report range change metrics: area gained, area lost, centroid shift
333
+
334
+ ## Tools and Resources
335
+
336
+ - **MaxEnt**: Maximum entropy SDM (Java, most cited SDM software)
337
+ - **biomod2 (R)**: Ensemble SDM framework with 10+ algorithms
338
+ - **Wallace (R Shiny)**: Interactive SDM workflow application
339
+ - **pygbif / rgbif**: GBIF data access from Python/R
340
+ - **rasterio / terra**: Raster data handling
341
+ - **WorldClim (worldclim.org)**: Global climate data at 1km resolution
342
+ - **CHELSA**: High-resolution climate data (better for mountainous regions)
343
+ - **eBird**: Citizen science bird occurrence data (Cornell Lab)
@@ -0,0 +1,174 @@
1
+ ---
2
+ name: imf-data-api-guide
3
+ description: "Retrieve IMF economic indicators, exchange rates, and country data"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📊"
7
+ category: "domains"
8
+ subcategory: "economics"
9
+ keywords: ["imf", "economics", "macroeconomics", "indicators", "exchange-rates", "gdp"]
10
+ source: "https://datahelp.imf.org/knowledgebase/articles/667681-using-json-restful-web-service"
11
+ ---
12
+
13
+ # IMF Data API Guide
14
+
15
+ ## Overview
16
+
17
+ The International Monetary Fund (IMF) provides a free JSON-based REST API for accessing its extensive collection of macroeconomic and financial datasets. The API covers data from virtually every country and territory, spanning indicators such as GDP, inflation, trade balances, exchange rates, government finance statistics, and balance of payments.
18
+
19
+ For economics researchers, the IMF API is an essential tool for accessing authoritative international economic data without manual downloads. The data powers research in macroeconomics, development economics, international finance, and policy analysis. The API provides access to key datasets including the World Economic Outlook (WEO), International Financial Statistics (IFS), Balance of Payments Statistics (BOP), and the Direction of Trade Statistics (DOTS).
20
+
21
+ The API requires no authentication and returns JSON data. It uses a hierarchical structure of datasets, indicators, and country/time dimensions.
22
+
23
+ ## Authentication
24
+
25
+ No authentication is required. The IMF Data API is completely free and open.
26
+
27
+ ```bash
28
+ # No API key needed
29
+ curl "https://www.imf.org/external/datamapper/api/v1/NGDP_RPCH?periods=2024"
30
+ ```
31
+
32
+ ## Core Endpoints
33
+
34
+ ### List Available Datasets
35
+
36
+ ```
37
+ GET https://www.imf.org/external/datamapper/api/v1
38
+ ```
39
+
40
+ ```bash
41
+ curl -s "https://www.imf.org/external/datamapper/api/v1" | python3 -m json.tool
42
+ ```
43
+
44
+ ### List Indicators in a Dataset
45
+
46
+ ```
47
+ GET https://www.imf.org/external/datamapper/api/v1/indicators
48
+ ```
49
+
50
+ ### Get Data for an Indicator
51
+
52
+ ```
53
+ GET https://www.imf.org/external/datamapper/api/v1/{indicator}?periods={year}
54
+ ```
55
+
56
+ **Common Indicators:**
57
+ - `NGDP_RPCH`: Real GDP growth (annual percent change)
58
+ - `PCPIPCH`: Inflation, consumer prices (annual percent change)
59
+ - `BCA_NGDPD`: Current account balance (percent of GDP)
60
+ - `GGXWDG_NGDP`: Government gross debt (percent of GDP)
61
+ - `LUR`: Unemployment rate
62
+
63
+ **Example: Get real GDP growth for all countries in 2024:**
64
+
65
+ ```bash
66
+ curl -s "https://www.imf.org/external/datamapper/api/v1/NGDP_RPCH?periods=2024" \
67
+ | python3 -m json.tool
68
+ ```
69
+
70
+ ### JSON RESTful Web Service (IFS and other databases)
71
+
72
+ For more granular data, use the Dataflow-based API:
73
+
74
+ ```
75
+ GET http://dataservices.imf.org/REST/SDMX_JSON.svc/CompactData/{database}/{dimensions}?startPeriod={start}&endPeriod={end}
76
+ ```
77
+
78
+ **Example: Monthly CPI data for the US and China:**
79
+
80
+ ```bash
81
+ curl -s "http://dataservices.imf.org/REST/SDMX_JSON.svc/CompactData/IFS/M.US+CN.PCPI_IX?startPeriod=2020&endPeriod=2025" \
82
+ | python3 -m json.tool
83
+ ```
84
+
85
+ ### Python Example: Compare GDP Growth Across Countries
86
+
87
+ ```python
88
+ import requests
89
+
90
+ DATAMAPPER_URL = "https://www.imf.org/external/datamapper/api/v1"
91
+
92
+ def get_indicator_data(indicator, periods=None):
93
+ """Fetch IMF indicator data for all countries."""
94
+ url = f"{DATAMAPPER_URL}/{indicator}"
95
+ params = {}
96
+ if periods:
97
+ params["periods"] = ",".join(str(p) for p in periods)
98
+ resp = requests.get(url, params=params)
99
+ resp.raise_for_status()
100
+ return resp.json()
101
+
102
+ # Compare real GDP growth across G7 countries
103
+ data = get_indicator_data("NGDP_RPCH", periods=[2022, 2023, 2024])
104
+ values = data.get("values", {}).get("NGDP_RPCH", {})
105
+
106
+ g7_codes = ["USA", "GBR", "FRA", "DEU", "JPN", "CAN", "ITA"]
107
+ print("Country | 2022 | 2023 | 2024")
108
+ print("--------|--------|--------|-------")
109
+ for code in g7_codes:
110
+ country_data = values.get(code, {})
111
+ row = f"{code:7s}"
112
+ for year in ["2022", "2023", "2024"]:
113
+ val = country_data.get(year, "N/A")
114
+ if isinstance(val, (int, float)):
115
+ row += f" | {val:5.1f}%"
116
+ else:
117
+ row += f" | {str(val):>6s}"
118
+ print(row)
119
+ ```
120
+
121
+ ### Python Example: Exchange Rate Time Series
122
+
123
+ ```python
124
+ import requests
125
+
126
+ def get_exchange_rates(country_codes, start_year, end_year):
127
+ """Fetch exchange rate data from IFS database."""
128
+ codes = "+".join(country_codes)
129
+ url = (
130
+ f"http://dataservices.imf.org/REST/SDMX_JSON.svc/"
131
+ f"CompactData/IFS/A.{codes}.ENDA_XDC_USD_RATE"
132
+ f"?startPeriod={start_year}&endPeriod={end_year}"
133
+ )
134
+ resp = requests.get(url)
135
+ resp.raise_for_status()
136
+ return resp.json()
137
+
138
+ data = get_exchange_rates(["BR", "IN", "ZA"], 2015, 2024)
139
+ series = data.get("CompactData", {}).get("DataSet", {}).get("Series", [])
140
+ for s in series:
141
+ country = s.get("@REF_AREA", "Unknown")
142
+ obs = s.get("Obs", [])
143
+ if isinstance(obs, dict):
144
+ obs = [obs]
145
+ print(f"\n{country} exchange rate (LCU per USD):")
146
+ for o in obs:
147
+ print(f" {o.get('@TIME_PERIOD')}: {o.get('@OBS_VALUE')}")
148
+ ```
149
+
150
+ ## Common Research Patterns
151
+
152
+ **Cross-Country Panel Analysis:** Retrieve indicator data for multiple countries and years to construct panel datasets for econometric analysis. Combine GDP growth, inflation, and trade data for gravity models or growth regressions.
153
+
154
+ **Policy Impact Assessment:** Track economic indicators before and after major policy changes or economic shocks. Compare indicator trajectories across treatment and control country groups.
155
+
156
+ **Forecasting Benchmarks:** Use IMF WEO projections as baseline forecasts to compare against model predictions. The IMF publishes projections for most indicators several years forward.
157
+
158
+ **Development Economics:** Access poverty, inequality, and structural indicators for developing economies to study convergence, aid effectiveness, and institutional quality.
159
+
160
+ ## Rate Limits and Best Practices
161
+
162
+ - **No formal rate limit** published, but limit requests to 1 per second for sustained use
163
+ - **Caching:** IMF data updates infrequently (quarterly/annually); cache aggressively
164
+ - **DataMapper vs SDMX:** The DataMapper API is simpler; the SDMX JSON service is more granular with monthly/quarterly frequency
165
+ - **Country codes:** Use ISO 3-letter codes (USA, GBR, CHN) for the DataMapper API and ISO 2-letter codes (US, GB, CN) for the SDMX service
166
+ - **Large queries:** Fetch data for all countries at once rather than making per-country requests
167
+ - **Error handling:** The API may return empty objects for unavailable country-indicator combinations rather than errors
168
+
169
+ ## References
170
+
171
+ - IMF Data API Documentation: https://datahelp.imf.org/knowledgebase/articles/667681-using-json-restful-web-service
172
+ - IMF DataMapper: https://www.imf.org/external/datamapper
173
+ - IMF Data Portal: https://data.imf.org/
174
+ - IMF World Economic Outlook: https://www.imf.org/en/Publications/WEO
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: nber-working-papers-api
3
+ description: "Access NBER working papers and economic research datasets"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📈"
7
+ category: "domains"
8
+ subcategory: "economics"
9
+ keywords: ["NBER", "working papers", "economics research", "macroeconomics", "economic policy", "recession dating"]
10
+ source: "https://www.nber.org/"
11
+ ---
12
+
13
+ # NBER Working Papers and Data API
14
+
15
+ ## Overview
16
+
17
+ The National Bureau of Economic Research (NBER) is the leading U.S. economics research organization, publishing 1,200+ working papers annually by top economists. NBER papers are among the most cited in economics. The website provides structured access to working papers, researcher profiles, and macroeconomic datasets. Free metadata access; some full text requires subscription.
18
+
19
+ ## Working Papers Access
20
+
21
+ ### RSS/Atom Feeds
22
+
23
+ ```bash
24
+ # Latest working papers feed
25
+ curl "https://www.nber.org/papers.rss"
26
+
27
+ # Papers by program
28
+ curl "https://www.nber.org/programs/ef/papers.rss" # Economic Fluctuations
29
+ curl "https://www.nber.org/programs/ls/papers.rss" # Labor Studies
30
+ curl "https://www.nber.org/programs/io/papers.rss" # Industrial Organization
31
+ ```
32
+
33
+ ### Working Paper Search
34
+
35
+ ```bash
36
+ # Search via NBER website (HTML scraping needed)
37
+ curl "https://www.nber.org/api/v1/working_page_listing/contentType/working_paper/?page=1&perPage=20&q=inflation+expectations"
38
+
39
+ # Get specific paper metadata
40
+ curl "https://www.nber.org/api/v1/working_page_listing/contentType/working_paper/?page=1&perPage=1&q=w28104"
41
+ ```
42
+
43
+ ### NBER Data Portal
44
+
45
+ ```bash
46
+ # Macroeconomic history data
47
+ # Available at: https://data.nber.org/
48
+
49
+ # Business cycle dates
50
+ curl "https://data.nber.org/data/cycles/business_cycle_dates.json"
51
+
52
+ # CPS labor data extracts
53
+ # https://data.nber.org/cps/
54
+ ```
55
+
56
+ ## NBER Programs
57
+
58
+ | Code | Program | Focus |
59
+ |------|---------|-------|
60
+ | `ef` | Economic Fluctuations and Growth | Macro, business cycles |
61
+ | `ls` | Labor Studies | Employment, wages |
62
+ | `io` | Industrial Organization | Markets, competition |
63
+ | `pe` | Public Economics | Taxation, spending |
64
+ | `he` | Health Economics | Healthcare markets |
65
+ | `de` | Development Economics | Developing countries |
66
+ | `if` | International Finance | Exchange rates, capital flows |
67
+ | `it` | International Trade | Trade policy |
68
+ | `me` | Monetary Economics | Central banking |
69
+ | `cf` | Corporate Finance | Firm finance |
70
+ | `ap` | Asset Pricing | Financial markets |
71
+ | `ed` | Education | Education economics |
72
+ | `ag` | Aging | Demographics |
73
+ | `ch` | Children | Child welfare |
74
+ | `le` | Law and Economics | Legal institutions |
75
+ | `env` | Environment and Energy | Environmental policy |
76
+ | `pol` | Political Economy | Political institutions |
77
+
78
+ ## Python Usage
79
+
80
+ ```python
81
+ import requests
82
+ from xml.etree import ElementTree
83
+
84
+
85
+ def get_latest_papers(program: str = None,
86
+ count: int = 20) -> list:
87
+ """Get latest NBER working papers via RSS."""
88
+ if program:
89
+ url = f"https://www.nber.org/programs/{program}/papers.rss"
90
+ else:
91
+ url = "https://www.nber.org/papers.rss"
92
+
93
+ resp = requests.get(url, timeout=30)
94
+ resp.raise_for_status()
95
+
96
+ root = ElementTree.fromstring(resp.content)
97
+ papers = []
98
+ for item in root.findall(".//item")[:count]:
99
+ papers.append({
100
+ "title": item.findtext("title", ""),
101
+ "link": item.findtext("link", ""),
102
+ "description": item.findtext("description", "")[:300],
103
+ "pub_date": item.findtext("pubDate", ""),
104
+ })
105
+ return papers
106
+
107
+
108
+ def search_papers(query: str, page: int = 1,
109
+ per_page: int = 20) -> list:
110
+ """Search NBER working papers."""
111
+ resp = requests.get(
112
+ "https://www.nber.org/api/v1/working_page_listing/"
113
+ "contentType/working_paper/",
114
+ params={"q": query, "page": page, "perPage": per_page},
115
+ timeout=30,
116
+ )
117
+ resp.raise_for_status()
118
+ data = resp.json()
119
+
120
+ results = []
121
+ for item in data.get("results", []):
122
+ results.append({
123
+ "title": item.get("title"),
124
+ "authors": item.get("authors", ""),
125
+ "number": item.get("wp_number", ""),
126
+ "date": item.get("date", ""),
127
+ "url": f"https://www.nber.org/papers/{item.get('wp_number', '')}",
128
+ "abstract": item.get("description", "")[:300],
129
+ "program": item.get("programs", []),
130
+ })
131
+ return results
132
+
133
+
134
+ def get_business_cycle_dates() -> list:
135
+ """Get NBER official business cycle dates."""
136
+ resp = requests.get(
137
+ "https://data.nber.org/data/cycles/business_cycle_dates.json",
138
+ timeout=30,
139
+ )
140
+ resp.raise_for_status()
141
+ return resp.json()
142
+
143
+
144
+ # Example: latest macro working papers
145
+ papers = get_latest_papers(program="ef", count=5)
146
+ for p in papers:
147
+ print(f"{p['title']}")
148
+ print(f" {p['link']}")
149
+
150
+ # Example: search for AI economics papers
151
+ results = search_papers("artificial intelligence labor market")
152
+ for r in results:
153
+ print(f"[{r['number']}] {r['title']}")
154
+ print(f" Authors: {r['authors']}")
155
+
156
+ # Example: recession dates
157
+ cycles = get_business_cycle_dates()
158
+ for c in cycles[-3:]:
159
+ print(f"Peak: {c.get('peak')} → Trough: {c.get('trough')}")
160
+ ```
161
+
162
+ ## Key Datasets
163
+
164
+ | Dataset | Description |
165
+ |---------|-------------|
166
+ | Business Cycle Dates | Official US recession start/end dates |
167
+ | CPS Extracts | Current Population Survey labor data |
168
+ | Macrohistory Database | 150 years of macro indicators |
169
+ | Patent Data | Patent citation and classification |
170
+ | Trade Data | Bilateral trade statistics |
171
+
172
+ ## References
173
+
174
+ - [NBER](https://www.nber.org/)
175
+ - [NBER Working Papers](https://www.nber.org/papers)
176
+ - [NBER Data](https://data.nber.org/)
177
+ - [NBER Programs](https://www.nber.org/programs-projects/programs)