@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,140 @@
1
+ ---
2
+ name: lean-theorem-proving-guide
3
+ description: "LLM agent for formal theorem proving in Lean 4"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📐"
7
+ category: "domains"
8
+ subcategory: "math"
9
+ keywords: ["Lean 4", "theorem proving", "formal verification", "LLM math", "proof assistant", "LeanAgent"]
10
+ source: "https://github.com/lean-dojo/LeanAgent"
11
+ ---
12
+
13
+ # Lean Theorem Proving Agent Guide
14
+
15
+ ## Overview
16
+
17
+ LeanAgent is an LLM-based agent for automated theorem proving in Lean 4, a modern proof assistant. It combines LLM reasoning with formal verification — proposing proof steps that are verified by Lean's type checker. Can prove novel theorems, not just benchmarks, by exploring proof strategies, backtracking on failures, and learning from successful proofs.
18
+
19
+ ## Architecture
20
+
21
+ ```
22
+ Theorem Statement (Lean 4)
23
+
24
+ Goal Analysis Agent (understand proof obligations)
25
+
26
+ Tactic Suggestion Agent (propose proof steps)
27
+
28
+ Lean 4 Verification (check tactic correctness)
29
+
30
+ Backtracking (if tactic fails, try alternatives)
31
+
32
+ Proof or timeout
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ ```python
38
+ from lean_agent import LeanAgent
39
+
40
+ agent = LeanAgent(
41
+ llm_provider="anthropic",
42
+ lean_path="/path/to/lean4",
43
+ )
44
+
45
+ # Prove a theorem
46
+ result = agent.prove(
47
+ theorem="""
48
+ theorem add_comm (m n : Nat) : m + n = n + m := by
49
+ sorry
50
+ """,
51
+ max_attempts=50,
52
+ timeout=120,
53
+ )
54
+
55
+ if result.proved:
56
+ print("Proof found!")
57
+ print(result.proof)
58
+ else:
59
+ print(f"Failed. Best attempt:\n{result.best_attempt}")
60
+ print(f"Remaining goals: {result.remaining_goals}")
61
+ ```
62
+
63
+ ## Proof Search Strategies
64
+
65
+ ```python
66
+ # Configure search strategy
67
+ agent = LeanAgent(
68
+ search_config={
69
+ "strategy": "best_first", # best_first, bfs, dfs
70
+ "max_depth": 20, # Max proof steps
71
+ "beam_width": 5, # Tactics to try per step
72
+ "temperature": 0.7, # LLM sampling temp
73
+ "backtrack_on_fail": True,
74
+ },
75
+ )
76
+
77
+ # Interactive proof mode
78
+ session = agent.interactive_prove(
79
+ theorem="theorem my_thm : ∀ n : Nat, n + 0 = n := by"
80
+ )
81
+
82
+ while not session.done:
83
+ print(f"Current goals:\n{session.goals}")
84
+ tactics = session.suggest_tactics(k=5)
85
+ for i, t in enumerate(tactics):
86
+ print(f" {i}: {t.tactic} (confidence: {t.score:.2f})")
87
+ # Agent automatically picks best tactic
88
+ session.step()
89
+ ```
90
+
91
+ ## Lean 4 Tactic Library
92
+
93
+ ```lean
94
+ -- Common tactics LeanAgent uses:
95
+ -- intro, apply, exact, rfl, simp, omega
96
+ -- induction, cases, constructor, ext
97
+ -- rw, calc, have, let, show
98
+
99
+ -- Example theorem + proof
100
+ theorem list_append_nil (l : List α) : l ++ [] = l := by
101
+ induction l with
102
+ | nil => simp
103
+ | cons h t ih => simp [ih]
104
+ ```
105
+
106
+ ## Batch Proving
107
+
108
+ ```python
109
+ # Prove multiple theorems
110
+ theorems = [
111
+ "theorem t1 : 1 + 1 = 2 := by sorry",
112
+ "theorem t2 (n : Nat) : n + 0 = n := by sorry",
113
+ "theorem t3 (n m : Nat) : n + m = m + n := by sorry",
114
+ ]
115
+
116
+ results = agent.prove_batch(
117
+ theorems=theorems,
118
+ parallel=True,
119
+ timeout_per=60,
120
+ )
121
+
122
+ for thm, result in zip(theorems, results):
123
+ status = "PROVED" if result.proved else "FAILED"
124
+ print(f"[{status}] {thm[:50]}...")
125
+ ```
126
+
127
+ ## Use Cases
128
+
129
+ 1. **Automated proving**: Prove mathematical theorems formally
130
+ 2. **Proof assistance**: Suggest tactics during manual proving
131
+ 3. **Verification**: Formally verify mathematical claims
132
+ 4. **Education**: Learn Lean 4 tactics with AI guidance
133
+ 5. **Research**: Explore new proof techniques
134
+
135
+ ## References
136
+
137
+ - [LeanAgent GitHub](https://github.com/lean-dojo/LeanAgent)
138
+ - [Lean 4](https://lean-lang.org/)
139
+ - [Mathlib4](https://leanprover-community.github.io/mathlib4_docs/)
140
+ - [LeanDojo](https://leandojo.org/)
@@ -0,0 +1,263 @@
1
+ ---
2
+ name: symbolic-computation-guide
3
+ description: "Computer algebra systems: SymPy, SageMath, and Mathematica for research"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "abacus"
7
+ category: "domains"
8
+ subcategory: "math"
9
+ keywords: ["symbolic-computation", "computer-algebra", "sympy", "sagemath", "mathematica", "calculus"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Symbolic Computation Guide
14
+
15
+ A skill for using computer algebra systems (CAS) in mathematical research. Covers symbolic differentiation, integration, equation solving, series expansion, linear algebra, and polynomial arithmetic using SymPy, SageMath, and Mathematica, with practical workflows for research mathematics.
16
+
17
+ ## SymPy Fundamentals
18
+
19
+ ### Symbolic Expressions and Manipulation
20
+
21
+ ```python
22
+ from sympy import (
23
+ symbols, expand, factor, simplify, cancel, apart,
24
+ sin, cos, exp, log, sqrt, pi, oo, I,
25
+ Rational, Eq, solve, solveset, S
26
+ )
27
+
28
+ x, y, z, t, n, k = symbols("x y z t n k")
29
+ a, b, c = symbols("a b c", real=True)
30
+
31
+ # Expression manipulation
32
+ expr = (x + 1) ** 3
33
+ expanded = expand(expr) # x**3 + 3*x**2 + 3*x + 1
34
+ factored = factor(expanded) # (x + 1)**3
35
+
36
+ # Trigonometric simplification
37
+ from sympy import trigsimp
38
+ trig_expr = sin(x)**2 + cos(x)**2
39
+ simplified = trigsimp(trig_expr) # 1
40
+
41
+ # Partial fraction decomposition
42
+ rational = (x**2 + 2*x + 3) / ((x + 1) * (x + 2) * (x + 3))
43
+ partial = apart(rational, x)
44
+ # 3/(2*(x + 3)) - 2/(x + 2) + 1/(2*(x + 1))
45
+ ```
46
+
47
+ ### Calculus
48
+
49
+ ```python
50
+ from sympy import diff, integrate, limit, series, Sum, Product
51
+
52
+ # Differentiation
53
+ f = x**3 * exp(-x) * sin(x)
54
+ f_prime = diff(f, x)
55
+ f_double_prime = diff(f, x, 2)
56
+
57
+ # Integration
58
+ # Definite integral
59
+ area = integrate(exp(-x**2), (x, -oo, oo)) # sqrt(pi)
60
+
61
+ # Indefinite integral
62
+ antideriv = integrate(x * sin(x), x) # -x*cos(x) + sin(x)
63
+
64
+ # Limits
65
+ lim_result = limit(sin(x) / x, x, 0) # 1
66
+ lim_inf = limit((1 + 1/n)**n, n, oo) # E (Euler's number)
67
+
68
+ # Taylor series
69
+ taylor = series(exp(x) * cos(x), x, 0, n=6)
70
+ # 1 + x - x**3/3 - x**4/6 + ...
71
+
72
+ # Summation
73
+ harmonic = Sum(1/k, (k, 1, n))
74
+ partial_sum = harmonic.doit() # harmonic(n) -- returns harmonic number
75
+
76
+ geometric = Sum(x**k, (k, 0, oo))
77
+ closed_form = geometric.doit() # Piecewise(1/(1 - x), Abs(x) < 1)
78
+ ```
79
+
80
+ ### Equation Solving
81
+
82
+ ```python
83
+ # Algebraic equations
84
+ solutions = solve(x**3 - 6*x**2 + 11*x - 6, x) # [1, 2, 3]
85
+
86
+ # System of equations
87
+ system_sol = solve([
88
+ 2*x + 3*y - 7,
89
+ x - y + 1
90
+ ], [x, y]) # {x: 4/5, y: 9/5}
91
+
92
+ # Differential equations
93
+ from sympy import Function, dsolve, Derivative
94
+ f = Function("f")
95
+
96
+ # f''(x) + f(x) = 0 (simple harmonic oscillator)
97
+ ode = Eq(f(x).diff(x, 2) + f(x), 0)
98
+ general_solution = dsolve(ode, f(x))
99
+ # f(x) = C1*sin(x) + C2*cos(x)
100
+
101
+ # With initial conditions
102
+ particular = dsolve(ode, f(x), ics={f(0): 1, f(x).diff(x).subs(x, 0): 0})
103
+ # f(x) = cos(x)
104
+ ```
105
+
106
+ ## Linear Algebra
107
+
108
+ ### Symbolic Matrix Operations
109
+
110
+ ```python
111
+ from sympy import Matrix, eye, zeros, det, Rational
112
+
113
+ # Define a symbolic matrix
114
+ A = Matrix([
115
+ [1, 2, 3],
116
+ [4, 5, 6],
117
+ [7, 8, 10]
118
+ ])
119
+
120
+ # Basic operations
121
+ print(f"Determinant: {det(A)}") # -3
122
+ print(f"Inverse:\n{A.inv()}")
123
+ print(f"Eigenvalues: {A.eigenvals()}")
124
+ print(f"Rank: {A.rank()}")
125
+
126
+ # Characteristic polynomial
127
+ lam = symbols("lambda")
128
+ char_poly = (A - lam * eye(3)).det()
129
+ char_poly = expand(char_poly)
130
+
131
+ # Jordan normal form
132
+ P, J = A.jordan_form()
133
+
134
+ # Null space and column space
135
+ null = A.nullspace()
136
+ col_space = A.columnspace()
137
+
138
+ # Symbolic matrix with parameters
139
+ M = Matrix([
140
+ [a, b],
141
+ [c, a]
142
+ ])
143
+ eigenvals = M.eigenvals() # {a - sqrt(b*c): 1, a + sqrt(b*c): 1}
144
+ ```
145
+
146
+ ## SageMath for Research
147
+
148
+ ### Number Theory
149
+
150
+ ```python
151
+ # SageMath syntax (Python-based, but with enhanced number theory)
152
+ # Run in SageMath environment or via sage -python
153
+
154
+ """
155
+ # Prime factorization
156
+ factor(2024) # 2^3 * 11 * 23
157
+
158
+ # Modular arithmetic
159
+ R = IntegerModRing(17)
160
+ R(3)^(-1) # multiplicative inverse of 3 mod 17
161
+
162
+ # Elliptic curves
163
+ E = EllipticCurve(QQ, [-1, 0])
164
+ E.rank()
165
+ E.torsion_subgroup()
166
+ E.gens()
167
+
168
+ # Polynomial rings
169
+ R.<x,y> = PolynomialRing(QQ)
170
+ I = R.ideal(x^2 + y^2 - 1, x - y)
171
+ I.groebner_basis() # [y^2 - 1/2, x - y]
172
+
173
+ # Group theory
174
+ G = SymmetricGroup(4)
175
+ G.order() # 24
176
+ G.center()
177
+ G.normal_subgroups()
178
+ """
179
+ ```
180
+
181
+ ### Combinatorics and Graph Theory
182
+
183
+ ```python
184
+ """
185
+ # SageMath combinatorics
186
+ Partitions(10).cardinality() # 42
187
+
188
+ # Graph theory
189
+ G = graphs.PetersenGraph()
190
+ G.chromatic_number() # 3
191
+ G.is_vertex_transitive() # True
192
+ G.automorphism_group().order() # 120
193
+
194
+ # Posets and lattices
195
+ P = posets.BooleanLattice(3)
196
+ P.is_lattice()
197
+ P.mobius_function(P.bottom(), P.top())
198
+ """
199
+ ```
200
+
201
+ ## Mathematica / Wolfram Language
202
+
203
+ ### Common Research Patterns
204
+
205
+ ```mathematica
206
+ (* Symbolic integration *)
207
+ Integrate[x^n * Exp[-x], {x, 0, Infinity}, Assumptions -> n > -1]
208
+ (* Result: Gamma[1 + n] *)
209
+
210
+ (* Solve a PDE *)
211
+ DSolve[D[u[x, t], t] == k * D[u[x, t], {x, 2}], u[x, t], {x, t}]
212
+
213
+ (* Asymptotic expansion *)
214
+ Series[Gamma[n + 1], {n, Infinity, 3}]
215
+
216
+ (* Minimize with constraints *)
217
+ NMinimize[{x^2 + y^2, x + y >= 1}, {x, y}]
218
+
219
+ (* Compute a sum in closed form *)
220
+ Sum[1/k^2, {k, 1, Infinity}] (* Pi^2/6 *)
221
+ ```
222
+
223
+ ## Practical Workflows
224
+
225
+ ### Verifying Research Computations
226
+
227
+ Common CAS workflow in mathematical research:
228
+
229
+ 1. **Conjecture formulation**: Test conjectures for small cases programmatically
230
+ 2. **Identity verification**: Verify algebraic identities symbolically
231
+ 3. **Closed-form discovery**: Use pattern matching and OEIS lookup
232
+ 4. **Proof assistance**: Compute bounds, verify inequalities
233
+ 5. **Counterexample search**: Systematically search parameter spaces
234
+
235
+ ```python
236
+ from sympy import simplify, Abs
237
+
238
+ def verify_identity(lhs, rhs):
239
+ """Verify a proposed mathematical identity symbolically."""
240
+ diff = simplify(lhs - rhs)
241
+ if diff == 0:
242
+ return "VERIFIED: identity holds symbolically"
243
+ else:
244
+ return f"NOT VERIFIED: difference = {diff}"
245
+
246
+ # Example: verify Cauchy-Schwarz for 2D
247
+ a1, a2, b1, b2 = symbols("a1 a2 b1 b2", real=True)
248
+ lhs = (a1*b1 + a2*b2)**2
249
+ rhs = (a1**2 + a2**2) * (b1**2 + b2**2)
250
+ diff = expand(rhs - lhs)
251
+ # (a1*b2 - a2*b1)**2 >= 0, confirming Cauchy-Schwarz
252
+ ```
253
+
254
+ ## Tools and Resources
255
+
256
+ - **SymPy**: Pure Python CAS, integrates with Jupyter and NumPy
257
+ - **SageMath**: Comprehensive open-source math system (wraps GAP, PARI, Singular, etc.)
258
+ - **Mathematica / Wolfram Alpha**: Commercial CAS with unmatched integration database
259
+ - **Maxima**: Free CAS (Lisp-based), used in wxMaxima GUI
260
+ - **PARI/GP**: Specialized in number theory computations
261
+ - **Macaulay2**: Commutative algebra and algebraic geometry
262
+ - **GAP**: Computational group theory
263
+ - **OEIS (oeis.org)**: Online Encyclopedia of Integer Sequences for pattern identification
@@ -0,0 +1,305 @@
1
+ ---
2
+ name: topology-data-analysis
3
+ description: "Topological data analysis: persistent homology, Mapper, and TDA tools"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "linked-paperclips"
7
+ category: "domains"
8
+ subcategory: "math"
9
+ keywords: ["topology", "persistent-homology", "tda", "mapper", "betti-numbers", "point-cloud"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Topological Data Analysis
14
+
15
+ A skill for applying topological data analysis (TDA) methods to research data. Covers persistent homology, Vietoris-Rips complexes, persistence diagrams, the Mapper algorithm, and vectorization methods for integrating topological features into machine learning pipelines.
16
+
17
+ ## Core Concepts
18
+
19
+ ### Simplicial Complexes from Data
20
+
21
+ TDA extracts topological features (connected components, loops, voids) from data by building simplicial complexes at multiple scales:
22
+
23
+ | Complex | Construction | Computational Cost |
24
+ |---------|-------------|-------------------|
25
+ | Vietoris-Rips | Edge if distance < epsilon | O(n^d) for d-simplices |
26
+ | Cech | Ball intersection (exact) | Computationally expensive |
27
+ | Alpha | Delaunay-based (exact in low dim) | Efficient in R^2, R^3 |
28
+ | Cubical | Grid-based (for images) | Linear in pixels |
29
+
30
+ ### Filtration and Persistence
31
+
32
+ ```
33
+ Scale epsilon: 0.1 0.3 0.5 0.7 1.0
34
+ |------|------|------|------|------|
35
+ Components: 10 6 3 2 1
36
+ (H0 features born at 0, die at merging scale)
37
+
38
+ Loops: 0 0 1 2 0
39
+ (H1 features born when loop forms, die when filled)
40
+ ```
41
+
42
+ A feature that persists across many scales is a genuine topological signal; short-lived features are noise.
43
+
44
+ ## Persistent Homology with Ripser
45
+
46
+ ### Computing Persistence Diagrams
47
+
48
+ ```python
49
+ import numpy as np
50
+ from ripser import ripser
51
+ from persim import plot_diagrams
52
+
53
+ def compute_persistence(point_cloud: np.ndarray,
54
+ max_dim: int = 2,
55
+ max_edge: float = 2.0) -> dict:
56
+ """
57
+ Compute persistent homology of a point cloud.
58
+ point_cloud: (n_points, n_dimensions) array
59
+ max_dim: maximum homology dimension to compute
60
+ max_edge: maximum edge length in Rips complex
61
+ Returns persistence diagrams for each dimension.
62
+ """
63
+ result = ripser(
64
+ point_cloud,
65
+ maxdim=max_dim,
66
+ thresh=max_edge,
67
+ )
68
+
69
+ diagrams = result["dgms"]
70
+ summary = {}
71
+
72
+ for dim, dgm in enumerate(diagrams):
73
+ # Filter out infinite death times for H0
74
+ finite = dgm[dgm[:, 1] < np.inf] if len(dgm) > 0 else dgm
75
+ lifetimes = finite[:, 1] - finite[:, 0] if len(finite) > 0 else np.array([])
76
+
77
+ summary[f"H{dim}"] = {
78
+ "n_features": len(finite),
79
+ "max_persistence": float(lifetimes.max()) if len(lifetimes) > 0 else 0,
80
+ "mean_persistence": float(lifetimes.mean()) if len(lifetimes) > 0 else 0,
81
+ "birth_death_pairs": finite.tolist(),
82
+ }
83
+
84
+ return summary
85
+
86
+ # Example: torus point cloud
87
+ def sample_torus(n=1000, R=3.0, r=1.0, noise=0.1):
88
+ """Sample points from a torus in R^3."""
89
+ theta = np.random.uniform(0, 2 * np.pi, n)
90
+ phi = np.random.uniform(0, 2 * np.pi, n)
91
+ x = (R + r * np.cos(phi)) * np.cos(theta) + np.random.normal(0, noise, n)
92
+ y = (R + r * np.cos(phi)) * np.sin(theta) + np.random.normal(0, noise, n)
93
+ z = r * np.sin(phi) + np.random.normal(0, noise, n)
94
+ return np.column_stack([x, y, z])
95
+
96
+ torus = sample_torus(500)
97
+ persistence = compute_persistence(torus, max_dim=2)
98
+ # Expected: H0 has 1 long-lived component,
99
+ # H1 has 2 prominent loops (the two fundamental cycles),
100
+ # H2 has 1 prominent void (the cavity)
101
+ ```
102
+
103
+ ## Persistence Vectorization
104
+
105
+ ### Converting Persistence to Feature Vectors
106
+
107
+ To use topological features in machine learning, persistence diagrams must be vectorized:
108
+
109
+ ```python
110
+ from sklearn.base import BaseEstimator, TransformerMixin
111
+
112
+ class PersistenceStatistics(BaseEstimator, TransformerMixin):
113
+ """
114
+ Extract statistical features from persistence diagrams.
115
+ Produces a fixed-length feature vector from variable-length diagrams.
116
+ """
117
+
118
+ def __init__(self, max_dim: int = 1):
119
+ self.max_dim = max_dim
120
+
121
+ def fit(self, X, y=None):
122
+ return self
123
+
124
+ def transform(self, diagrams_list: list) -> np.ndarray:
125
+ features = []
126
+ for diagrams in diagrams_list:
127
+ row = []
128
+ for dim in range(self.max_dim + 1):
129
+ dgm = diagrams[dim]
130
+ lifetimes = dgm[:, 1] - dgm[:, 0]
131
+ lifetimes = lifetimes[np.isfinite(lifetimes)]
132
+
133
+ if len(lifetimes) == 0:
134
+ row.extend([0, 0, 0, 0, 0, 0])
135
+ else:
136
+ row.extend([
137
+ len(lifetimes), # count
138
+ np.sum(lifetimes), # total persistence
139
+ np.max(lifetimes), # max persistence
140
+ np.mean(lifetimes), # mean persistence
141
+ np.std(lifetimes), # std persistence
142
+ np.sum(lifetimes ** 2), # persistence entropy proxy
143
+ ])
144
+ features.append(row)
145
+ return np.array(features)
146
+ ```
147
+
148
+ ### Persistence Images
149
+
150
+ ```python
151
+ def persistence_image(diagram: np.ndarray, resolution: int = 20,
152
+ sigma: float = 0.1,
153
+ weight_fn=None) -> np.ndarray:
154
+ """
155
+ Compute a persistence image from a persistence diagram.
156
+ Transforms birth-death pairs into a stable, fixed-size representation.
157
+ """
158
+ if weight_fn is None:
159
+ weight_fn = lambda birth, persistence: persistence
160
+
161
+ # Transform to birth-persistence coordinates
162
+ births = diagram[:, 0]
163
+ persistences = diagram[:, 1] - diagram[:, 0]
164
+
165
+ # Create grid
166
+ x_range = np.linspace(births.min() - sigma, births.max() + sigma, resolution)
167
+ y_range = np.linspace(0, persistences.max() + sigma, resolution)
168
+ xx, yy = np.meshgrid(x_range, y_range)
169
+
170
+ image = np.zeros((resolution, resolution))
171
+
172
+ for b, p in zip(births, persistences):
173
+ if not np.isfinite(p):
174
+ continue
175
+ w = weight_fn(b, p)
176
+ gaussian = w * np.exp(-((xx - b)**2 + (yy - p)**2) / (2 * sigma**2))
177
+ image += gaussian
178
+
179
+ return image
180
+ ```
181
+
182
+ ## The Mapper Algorithm
183
+
184
+ ### Constructing Mapper Graphs
185
+
186
+ Mapper provides a compressed topological summary of high-dimensional data:
187
+
188
+ ```python
189
+ import kmapper as km
190
+ from sklearn.cluster import DBSCAN
191
+
192
+ def run_mapper(data: np.ndarray, lens_fn=None, n_cubes: int = 10,
193
+ overlap: float = 0.3) -> dict:
194
+ """
195
+ Run the Mapper algorithm to produce a simplicial complex
196
+ summarizing the shape of the data.
197
+ data: (n_samples, n_features) array
198
+ lens_fn: filter function (default: first two PCA components)
199
+ """
200
+ mapper = km.KeplerMapper(verbose=0)
201
+
202
+ # Compute lens (filter function)
203
+ if lens_fn is None:
204
+ from sklearn.decomposition import PCA
205
+ lens = mapper.fit_transform(data, projection=PCA(n_components=2))
206
+ else:
207
+ lens = lens_fn(data)
208
+
209
+ # Build the Mapper graph
210
+ graph = mapper.map(
211
+ lens, data,
212
+ cover=km.Cover(n_cubes=n_cubes, perc_overlap=overlap),
213
+ clusterer=DBSCAN(eps=0.5, min_samples=3),
214
+ )
215
+
216
+ # Summary statistics
217
+ n_nodes = len(graph["nodes"])
218
+ n_edges = sum(len(v) for v in graph["links"].values()) // 2
219
+
220
+ return {
221
+ "n_nodes": n_nodes,
222
+ "n_edges": n_edges,
223
+ "node_sizes": [len(v) for v in graph["nodes"].values()],
224
+ "graph": graph,
225
+ }
226
+ ```
227
+
228
+ ### Mapper Parameters
229
+
230
+ | Parameter | Effect | Guidance |
231
+ |-----------|--------|---------|
232
+ | Filter function | Projects data to low dimensions | PCA, eccentricity, density |
233
+ | Number of intervals | Controls resolution of cover | 10-30 typical |
234
+ | Overlap percentage | Controls connectivity | 20-50%, higher = more edges |
235
+ | Clustering algorithm | Groups points within intervals | DBSCAN, single-linkage |
236
+
237
+ ## Stability and Statistical Significance
238
+
239
+ ### Bottleneck and Wasserstein Distances
240
+
241
+ ```python
242
+ from persim import bottleneck, wasserstein
243
+
244
+ def compare_persistence_diagrams(dgm1: np.ndarray,
245
+ dgm2: np.ndarray) -> dict:
246
+ """
247
+ Compare two persistence diagrams using standard TDA distances.
248
+ """
249
+ bn_dist = bottleneck(dgm1, dgm2)
250
+ ws_dist = wasserstein(dgm1, dgm2, order=2)
251
+
252
+ return {
253
+ "bottleneck_distance": round(bn_dist, 6),
254
+ "wasserstein_2_distance": round(ws_dist, 6),
255
+ }
256
+ ```
257
+
258
+ ### Permutation Test for Topological Features
259
+
260
+ ```python
261
+ def permutation_test_persistence(data1: np.ndarray, data2: np.ndarray,
262
+ n_permutations: int = 1000,
263
+ dim: int = 1) -> dict:
264
+ """
265
+ Test whether two point clouds have significantly different
266
+ topological features using a permutation test on Wasserstein distance.
267
+ """
268
+ from persim import wasserstein
269
+
270
+ # Observed distance
271
+ dgm1 = ripser(data1, maxdim=dim)["dgms"][dim]
272
+ dgm2 = ripser(data2, maxdim=dim)["dgms"][dim]
273
+ observed = wasserstein(dgm1, dgm2)
274
+
275
+ # Permutation distribution
276
+ combined = np.vstack([data1, data2])
277
+ n1 = len(data1)
278
+ perm_distances = []
279
+
280
+ for _ in range(n_permutations):
281
+ perm = np.random.permutation(len(combined))
282
+ perm_d1 = combined[perm[:n1]]
283
+ perm_d2 = combined[perm[n1:]]
284
+ perm_dgm1 = ripser(perm_d1, maxdim=dim)["dgms"][dim]
285
+ perm_dgm2 = ripser(perm_d2, maxdim=dim)["dgms"][dim]
286
+ perm_distances.append(wasserstein(perm_dgm1, perm_dgm2))
287
+
288
+ p_value = np.mean(np.array(perm_distances) >= observed)
289
+
290
+ return {
291
+ "observed_distance": round(observed, 6),
292
+ "p_value": round(p_value, 4),
293
+ "significant_at_005": p_value < 0.05,
294
+ }
295
+ ```
296
+
297
+ ## Tools and Libraries
298
+
299
+ - **Ripser / ripser.py**: Fast Vietoris-Rips persistence computation
300
+ - **GUDHI**: Comprehensive TDA library (C++ with Python bindings)
301
+ - **persim**: Persistence diagram distances and visualization
302
+ - **KeplerMapper**: Python Mapper algorithm implementation
303
+ - **giotto-tda**: TDA integrated with scikit-learn API
304
+ - **Dionysus 2**: Persistent homology and cohomology
305
+ - **scikit-tda**: Meta-package bundling ripser, persim, kepler-mapper, tadasets