@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,168 @@
1
+ ---
2
+ name: opencontracts-guide
3
+ description: "Legal document annotation, versioning, and analysis platform"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📋"
7
+ category: "domains"
8
+ subcategory: "law"
9
+ keywords: ["legal documents", "contract annotation", "document versioning", "legal AI", "NLP legal", "MCP"]
10
+ source: "https://github.com/Open-Source-Legal/OpenContracts"
11
+ ---
12
+
13
+ # OpenContracts Guide
14
+
15
+ ## Overview
16
+
17
+ OpenContracts is an open-source platform for legal document annotation, versioning, and analysis. It provides collaborative annotation tools for legal text, version tracking across document drafts, NLP-powered clause extraction, and integration with AI agents via MCP. Designed for legal researchers, law firms, and teams managing large document collections that need structured annotation and analysis.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ # Docker deployment
23
+ git clone https://github.com/Open-Source-Legal/OpenContracts.git
24
+ cd OpenContracts
25
+ docker-compose up -d
26
+
27
+ # Access at http://localhost:3000
28
+ ```
29
+
30
+ ## Core Features
31
+
32
+ ### Document Management
33
+
34
+ ```python
35
+ from opencontracts import Client
36
+
37
+ client = Client("http://localhost:3000")
38
+
39
+ # Upload documents
40
+ doc = client.upload(
41
+ file="contract.pdf",
42
+ metadata={
43
+ "type": "NDA",
44
+ "parties": ["Company A", "Company B"],
45
+ "date": "2025-01-15",
46
+ "jurisdiction": "Delaware",
47
+ },
48
+ )
49
+
50
+ # Version tracking
51
+ versions = client.get_versions(doc.id)
52
+ for v in versions:
53
+ print(f"v{v.number}: {v.date} — {v.changes_summary}")
54
+
55
+ # Compare versions
56
+ diff = client.compare_versions(doc.id, v1=1, v2=3)
57
+ for change in diff.changes:
58
+ print(f"[{change.type}] Section {change.section}: "
59
+ f"{change.description}")
60
+ ```
61
+
62
+ ### Annotation
63
+
64
+ ```python
65
+ # Create annotation project
66
+ project = client.create_project(
67
+ name="NDA Clause Analysis",
68
+ documents=[doc.id],
69
+ label_set=[
70
+ "confidentiality_scope",
71
+ "term_duration",
72
+ "exclusions",
73
+ "remedies",
74
+ "governing_law",
75
+ "dispute_resolution",
76
+ ],
77
+ )
78
+
79
+ # Add annotations
80
+ client.annotate(
81
+ document_id=doc.id,
82
+ annotations=[
83
+ {
84
+ "start": 1250, "end": 1480,
85
+ "label": "confidentiality_scope",
86
+ "note": "Broad definition including derivatives",
87
+ },
88
+ {
89
+ "start": 2100, "end": 2250,
90
+ "label": "term_duration",
91
+ "note": "5-year term with auto-renewal",
92
+ },
93
+ ],
94
+ )
95
+ ```
96
+
97
+ ### NLP Analysis
98
+
99
+ ```python
100
+ # Automated clause extraction
101
+ clauses = client.extract_clauses(
102
+ doc.id,
103
+ clause_types=[
104
+ "indemnification",
105
+ "limitation_of_liability",
106
+ "termination",
107
+ "force_majeure",
108
+ "assignment",
109
+ ],
110
+ )
111
+
112
+ for clause in clauses:
113
+ print(f"\n[{clause.type}] (confidence: {clause.confidence:.2f})")
114
+ print(f" Location: p.{clause.page}, para {clause.paragraph}")
115
+ print(f" Text: {clause.text[:100]}...")
116
+
117
+ # Risk assessment
118
+ risks = client.assess_risks(doc.id)
119
+ for risk in risks:
120
+ print(f"[{risk.severity}] {risk.clause}: {risk.description}")
121
+ ```
122
+
123
+ ### MCP Integration
124
+
125
+ ```json
126
+ {
127
+ "mcpServers": {
128
+ "opencontracts": {
129
+ "command": "npx",
130
+ "args": ["@opencontracts/mcp-server"],
131
+ "env": {
132
+ "OPENCONTRACTS_URL": "http://localhost:3000"
133
+ }
134
+ }
135
+ }
136
+ }
137
+ ```
138
+
139
+ ## Search and Analytics
140
+
141
+ ```python
142
+ # Full-text search across documents
143
+ results = client.search(
144
+ query="indemnification unlimited liability",
145
+ document_types=["NDA", "MSA"],
146
+ date_range=("2024-01-01", "2025-12-31"),
147
+ )
148
+
149
+ # Analytics
150
+ stats = client.analytics(project_id=project.id)
151
+ print(f"Documents annotated: {stats.docs_complete}")
152
+ print(f"Total annotations: {stats.total_annotations}")
153
+ print(f"Inter-annotator agreement: {stats.agreement:.2f}")
154
+ print(f"Most common clause: {stats.top_clauses[0]}")
155
+ ```
156
+
157
+ ## Use Cases
158
+
159
+ 1. **Contract review**: Systematic clause analysis and risk assessment
160
+ 2. **Legal research**: Annotate case law and legislation
161
+ 3. **Compliance**: Track regulatory document requirements
162
+ 4. **Training data**: Build labeled datasets for legal NLP
163
+ 5. **Due diligence**: Structured review of deal documents
164
+
165
+ ## References
166
+
167
+ - [OpenContracts GitHub](https://github.com/Open-Source-Legal/OpenContracts)
168
+ - [Legal NLP Resources](https://github.com/thunlp/LegalPapers)
@@ -0,0 +1,257 @@
1
+ ---
2
+ name: patent-analysis-guide
3
+ description: "Patent search, classification, landscape analysis, and prior art mining"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "page-with-curl"
7
+ category: "domains"
8
+ subcategory: "law"
9
+ keywords: ["patent", "intellectual-property", "prior-art", "cpc", "patent-landscape", "citation-analysis"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Patent Analysis Guide
14
+
15
+ A skill for conducting patent research, landscape analysis, and prior art searches. Covers patent database APIs, classification systems, citation network analysis, claim parsing, and technology trend mapping for intellectual property research.
16
+
17
+ ## Patent Data Sources
18
+
19
+ ### Major Patent Databases
20
+
21
+ | Database | Coverage | API | Cost |
22
+ |----------|----------|-----|------|
23
+ | USPTO PatentsView | US patents and applications | REST API, bulk download | Free |
24
+ | EPO Open Patent Services | EP, WO, and 100+ offices | REST API (OPS) | Free (throttled) |
25
+ | Google Patents | 120M+ documents worldwide | BigQuery (Google Patents Public) | Free (BigQuery costs) |
26
+ | Lens.org | 130M+ patent records | REST API | Free for researchers |
27
+ | WIPO PATENTSCOPE | PCT applications + national | REST API | Free |
28
+
29
+ ### Programmatic Patent Search
30
+
31
+ ```python
32
+ import requests
33
+ import xml.etree.ElementTree as ET
34
+
35
+ class EPOClient:
36
+ """Client for the EPO Open Patent Services (OPS) API."""
37
+
38
+ BASE_URL = "https://ops.epo.org/3.2/rest-services"
39
+
40
+ def __init__(self, consumer_key: str, consumer_secret: str):
41
+ self.token = self._authenticate(consumer_key, consumer_secret)
42
+
43
+ def _authenticate(self, key: str, secret: str) -> str:
44
+ import base64
45
+ credentials = base64.b64encode(f"{key}:{secret}".encode()).decode()
46
+ resp = requests.post(
47
+ "https://ops.epo.org/3.2/auth/accesstoken",
48
+ headers={"Authorization": f"Basic {credentials}"},
49
+ data={"grant_type": "client_credentials"},
50
+ )
51
+ return resp.json()["access_token"]
52
+
53
+ def search(self, cql_query: str, max_results: int = 25) -> list[dict]:
54
+ """
55
+ Search patents using CQL (Common Query Language).
56
+ Example queries:
57
+ ta="machine learning" AND cl="neural network"
58
+ pa="university" AND pd>=2020
59
+ """
60
+ resp = requests.get(
61
+ f"{self.BASE_URL}/published-data/search",
62
+ headers={"Authorization": f"Bearer {self.token}",
63
+ "Accept": "application/json"},
64
+ params={"q": cql_query, "Range": f"1-{max_results}"},
65
+ )
66
+ return resp.json()
67
+ ```
68
+
69
+ ## Patent Classification Systems
70
+
71
+ ### Cooperative Patent Classification (CPC)
72
+
73
+ The CPC hierarchy has five levels: Section > Class > Subclass > Group > Subgroup.
74
+
75
+ ```
76
+ Example: H04L 9/3247
77
+ H = Electricity (Section)
78
+ H04 = Electric communication technique (Class)
79
+ H04L = Transmission of digital information (Subclass)
80
+ H04L 9/ = Cryptographic mechanisms (Group)
81
+ H04L 9/3247 = Digital signatures (Subgroup)
82
+ ```
83
+
84
+ ### IPC to CPC Mapping
85
+
86
+ ```python
87
+ def parse_cpc_code(code: str) -> dict:
88
+ """Parse a CPC classification code into its hierarchical components."""
89
+ code = code.strip().replace(" ", "")
90
+ return {
91
+ "section": code[0],
92
+ "class": code[:3],
93
+ "subclass": code[:4],
94
+ "group": code.split("/")[0] if "/" in code else code[:4],
95
+ "subgroup": code if "/" in code else None,
96
+ "full": code,
97
+ }
98
+
99
+ # Technology domain mapping (top-level CPC sections)
100
+ CPC_SECTIONS = {
101
+ "A": "Human Necessities",
102
+ "B": "Performing Operations; Transporting",
103
+ "C": "Chemistry; Metallurgy",
104
+ "D": "Textiles; Paper",
105
+ "E": "Fixed Constructions",
106
+ "F": "Mechanical Engineering; Lighting; Heating",
107
+ "G": "Physics",
108
+ "H": "Electricity",
109
+ "Y": "General Tagging of New Technological Developments",
110
+ }
111
+ ```
112
+
113
+ ## Patent Landscape Analysis
114
+
115
+ ### Building a Patent Landscape
116
+
117
+ A patent landscape maps the technology and competitive environment in a domain:
118
+
119
+ ```python
120
+ import pandas as pd
121
+ import numpy as np
122
+ from collections import Counter
123
+
124
+ def patent_landscape_metrics(patents: pd.DataFrame) -> dict:
125
+ """
126
+ Compute patent landscape metrics from a patent dataset.
127
+ Expected columns: patent_id, filing_date, grant_date,
128
+ assignee, cpc_codes (list), claims_count, citations_received
129
+ """
130
+ # Filing trend (annual)
131
+ patents["filing_year"] = pd.to_datetime(patents.filing_date).dt.year
132
+ annual_filings = patents.groupby("filing_year").size()
133
+
134
+ # Top assignees
135
+ top_assignees = patents.assignee.value_counts().head(20)
136
+
137
+ # Technology distribution (CPC subclass level)
138
+ all_cpc = []
139
+ for codes in patents.cpc_codes:
140
+ all_cpc.extend([c[:4] for c in codes])
141
+ cpc_distribution = Counter(all_cpc).most_common(20)
142
+
143
+ # Citation impact
144
+ citation_stats = patents.citations_received.describe()
145
+
146
+ # Geographic distribution (from assignee country)
147
+ geo_dist = patents.assignee_country.value_counts()
148
+
149
+ return {
150
+ "total_patents": len(patents),
151
+ "annual_filings": annual_filings.to_dict(),
152
+ "top_assignees": top_assignees.to_dict(),
153
+ "technology_areas": cpc_distribution,
154
+ "citation_stats": citation_stats.to_dict(),
155
+ "geographic_distribution": geo_dist.head(10).to_dict(),
156
+ }
157
+ ```
158
+
159
+ ### Citation Network Analysis
160
+
161
+ ```python
162
+ import networkx as nx
163
+
164
+ def build_citation_network(patents: pd.DataFrame,
165
+ citations: pd.DataFrame) -> nx.DiGraph:
166
+ """
167
+ Build a patent citation network.
168
+ citations: DataFrame with columns [citing_patent, cited_patent]
169
+ """
170
+ G = nx.DiGraph()
171
+
172
+ # Add patent nodes with attributes
173
+ for _, row in patents.iterrows():
174
+ G.add_node(row.patent_id, assignee=row.assignee,
175
+ year=row.filing_year, cpc=row.cpc_codes[0][:4])
176
+
177
+ # Add citation edges
178
+ for _, row in citations.iterrows():
179
+ if row.citing_patent in G and row.cited_patent in G:
180
+ G.add_edge(row.citing_patent, row.cited_patent)
181
+
182
+ return G
183
+
184
+ def identify_seminal_patents(G: nx.DiGraph, top_n: int = 20) -> list:
185
+ """Find the most influential patents by various centrality measures."""
186
+ in_degree = dict(G.in_degree())
187
+ pagerank = nx.pagerank(G)
188
+
189
+ # Combine metrics
190
+ scores = {}
191
+ for node in G.nodes():
192
+ scores[node] = {
193
+ "citations_received": in_degree[node],
194
+ "pagerank": pagerank[node],
195
+ }
196
+ ranked = sorted(scores.items(), key=lambda x: x[1]["pagerank"], reverse=True)
197
+ return ranked[:top_n]
198
+ ```
199
+
200
+ ## Claim Analysis
201
+
202
+ ### Parsing Patent Claims
203
+
204
+ Patent claims define the legal scope of protection. Independent claims are the broadest; dependent claims narrow them:
205
+
206
+ ```python
207
+ def parse_claims(claims_text: str) -> list[dict]:
208
+ """
209
+ Parse patent claims text into structured claim objects.
210
+ Identifies independent vs dependent claims and extracts dependencies.
211
+ """
212
+ # Split on claim numbers
213
+ claim_pattern = re.compile(r"\n\s*(\d+)\.\s+", re.MULTILINE)
214
+ parts = claim_pattern.split(claims_text)
215
+
216
+ claims = []
217
+ for i in range(1, len(parts), 2):
218
+ claim_num = int(parts[i])
219
+ claim_text = parts[i + 1].strip()
220
+
221
+ # Detect dependency
222
+ dep_match = re.match(
223
+ r"(?:The|A)\s+\w+\s+(?:of|according to)\s+claim\s+(\d+)",
224
+ claim_text, re.IGNORECASE
225
+ )
226
+ is_independent = dep_match is None
227
+ depends_on = int(dep_match.group(1)) if dep_match else None
228
+
229
+ claims.append({
230
+ "number": claim_num,
231
+ "text": claim_text,
232
+ "independent": is_independent,
233
+ "depends_on": depends_on,
234
+ "word_count": len(claim_text.split()),
235
+ })
236
+ return claims
237
+ ```
238
+
239
+ ## Prior Art Search Strategy
240
+
241
+ Systematic prior art search methodology:
242
+
243
+ 1. **Define the invention**: Break the invention into key technical features
244
+ 2. **Keyword search**: Use synonyms, broader terms, and technical variants
245
+ 3. **Classification search**: Identify relevant CPC/IPC codes and search within them
246
+ 4. **Citation search**: Forward and backward citation tracking from known relevant patents
247
+ 5. **Assignee search**: Search patents from known competitors and research groups
248
+ 6. **Non-patent literature**: Check academic papers, standards, product documentation
249
+
250
+ ## Tools and Resources
251
+
252
+ - **PatentsView API**: Free US patent data with assignee disambiguation
253
+ - **Google Patents**: Full-text search with CPC browsing and citation links
254
+ - **Lens.org**: Scholarly and patent search with linking between patents and papers
255
+ - **Derwent Innovation**: Commercial tool for comprehensive patent analytics
256
+ - **PatSnap**: AI-powered patent intelligence platform
257
+ - **WIPO Pearl**: Multilingual patent terminology database
@@ -0,0 +1,267 @@
1
+ ---
2
+ name: regulatory-compliance-guide
3
+ description: "Regulatory text mining, compliance research, and policy analysis tools"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "scroll"
7
+ category: "domains"
8
+ subcategory: "law"
9
+ keywords: ["regulation", "compliance", "policy-analysis", "text-mining", "federal-register", "rulemaking"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Regulatory Compliance Guide
14
+
15
+ A skill for mining regulatory texts, tracking regulatory changes, and conducting compliance research. Covers accessing regulatory databases, parsing regulatory language, change detection in regulations, compliance gap analysis, and computational policy analysis.
16
+
17
+ ## Regulatory Data Sources
18
+
19
+ ### US Federal Regulatory Data
20
+
21
+ | Source | Content | Format | Access |
22
+ |--------|---------|--------|--------|
23
+ | Federal Register API | Proposed and final rules | JSON API | Free (federalregister.gov) |
24
+ | eCFR (Electronic CFR) | Current Code of Federal Regulations | XML + API | Free (ecfr.gov) |
25
+ | Regulations.gov | Public comments on rulemakings | JSON API | Free |
26
+ | Congress.gov | Bills and legislative history | API + bulk | Free |
27
+ | SEC EDGAR | Securities filings and no-action letters | Full-text search + API | Free |
28
+
29
+ ### Accessing Federal Register Data
30
+
31
+ ```python
32
+ import requests
33
+ from datetime import date, timedelta
34
+
35
+ class FederalRegisterClient:
36
+ """Client for the Federal Register API."""
37
+
38
+ BASE_URL = "https://www.federalregister.gov/api/v1"
39
+
40
+ def search_rules(self, query: str, agency: str = None,
41
+ date_from: str = None, per_page: int = 20) -> dict:
42
+ """
43
+ Search for rules and proposed rules in the Federal Register.
44
+ """
45
+ params = {
46
+ "conditions[term]": query,
47
+ "conditions[type][]": ["RULE", "PRORULE"],
48
+ "per_page": per_page,
49
+ "order": "newest",
50
+ }
51
+ if agency:
52
+ params["conditions[agencies][]"] = agency
53
+ if date_from:
54
+ params["conditions[publication_date][gte]"] = date_from
55
+
56
+ resp = requests.get(f"{self.BASE_URL}/documents", params=params)
57
+ data = resp.json()
58
+ return {
59
+ "count": data.get("count", 0),
60
+ "results": [
61
+ {
62
+ "title": r["title"],
63
+ "document_number": r["document_number"],
64
+ "publication_date": r["publication_date"],
65
+ "agency_names": r.get("agency_names", []),
66
+ "type": r["type"],
67
+ "abstract": r.get("abstract", ""),
68
+ "html_url": r["html_url"],
69
+ }
70
+ for r in data.get("results", [])
71
+ ],
72
+ }
73
+
74
+ def get_document(self, document_number: str) -> dict:
75
+ """Retrieve full document details by document number."""
76
+ resp = requests.get(
77
+ f"{self.BASE_URL}/documents/{document_number}.json"
78
+ )
79
+ return resp.json()
80
+ ```
81
+
82
+ ## Regulatory Text Parsing
83
+
84
+ ### Identifying Regulatory Obligations
85
+
86
+ Regulatory language follows predictable patterns that indicate obligation strength:
87
+
88
+ ```python
89
+ import re
90
+ from enum import Enum
91
+
92
+ class ObligationLevel(Enum):
93
+ MANDATORY = "mandatory" # shall, must, required
94
+ PROHIBITIVE = "prohibitive" # shall not, must not, prohibited
95
+ PERMISSIVE = "permissive" # may, is permitted
96
+ RECOMMENDED = "recommended" # should, is recommended
97
+ INFORMATIVE = "informative" # for information, note
98
+
99
+ OBLIGATION_PATTERNS = {
100
+ ObligationLevel.MANDATORY: [
101
+ r"\bshall\b(?!\s+not)", r"\bmust\b(?!\s+not)",
102
+ r"\bis required to\b", r"\bare required to\b",
103
+ ],
104
+ ObligationLevel.PROHIBITIVE: [
105
+ r"\bshall not\b", r"\bmust not\b",
106
+ r"\bis prohibited\b", r"\bmay not\b",
107
+ ],
108
+ ObligationLevel.PERMISSIVE: [
109
+ r"\bmay\b(?!\s+not)", r"\bis permitted\b",
110
+ r"\bis authorized\b",
111
+ ],
112
+ ObligationLevel.RECOMMENDED: [
113
+ r"\bshould\b(?!\s+not)", r"\bis recommended\b",
114
+ r"\bit is advisable\b",
115
+ ],
116
+ }
117
+
118
+ def classify_obligations(text: str) -> list[dict]:
119
+ """
120
+ Extract and classify regulatory obligations from text.
121
+ Returns sentences tagged with their obligation level.
122
+ """
123
+ sentences = re.split(r'(?<=[.!?])\s+', text)
124
+ results = []
125
+ for sent in sentences:
126
+ level = ObligationLevel.INFORMATIVE
127
+ for obl_level, patterns in OBLIGATION_PATTERNS.items():
128
+ if any(re.search(p, sent, re.IGNORECASE) for p in patterns):
129
+ level = obl_level
130
+ break
131
+ results.append({"sentence": sent.strip(), "obligation": level.value})
132
+ return results
133
+ ```
134
+
135
+ ### CFR Section Parsing
136
+
137
+ ```python
138
+ def parse_cfr_section(xml_text: str) -> dict:
139
+ """
140
+ Parse an eCFR XML section into structured components.
141
+ Extracts the section number, heading, paragraphs, and cross-references.
142
+ """
143
+ root = ET.fromstring(xml_text)
144
+ section = {
145
+ "number": root.findtext(".//SECTNO", ""),
146
+ "heading": root.findtext(".//SUBJECT", ""),
147
+ "paragraphs": [],
148
+ "cross_references": [],
149
+ }
150
+
151
+ for para in root.iter("P"):
152
+ text = "".join(para.itertext()).strip()
153
+ if text:
154
+ section["paragraphs"].append(text)
155
+ # Extract cross-references to other CFR sections
156
+ xrefs = re.findall(r"\d+\s+CFR\s+[\d.]+(?:\([a-z]\))?", text)
157
+ section["cross_references"].extend(xrefs)
158
+
159
+ return section
160
+ ```
161
+
162
+ ## Regulatory Change Detection
163
+
164
+ ### Tracking Amendments Over Time
165
+
166
+ ```python
167
+ from difflib import SequenceMatcher, unified_diff
168
+
169
+ def compare_regulation_versions(old_text: str, new_text: str,
170
+ section_id: str) -> dict:
171
+ """
172
+ Compare two versions of a regulation section to identify changes.
173
+ Returns a structured diff with change classification.
174
+ """
175
+ old_lines = old_text.splitlines(keepends=True)
176
+ new_lines = new_text.splitlines(keepends=True)
177
+
178
+ diff = list(unified_diff(old_lines, new_lines,
179
+ fromfile=f"{section_id} (old)",
180
+ tofile=f"{section_id} (new)"))
181
+
182
+ additions = sum(1 for l in diff if l.startswith("+") and not l.startswith("+++"))
183
+ deletions = sum(1 for l in diff if l.startswith("-") and not l.startswith("---"))
184
+
185
+ similarity = SequenceMatcher(None, old_text, new_text).ratio()
186
+
187
+ return {
188
+ "section": section_id,
189
+ "similarity": round(similarity, 4),
190
+ "lines_added": additions,
191
+ "lines_removed": deletions,
192
+ "change_magnitude": "major" if similarity < 0.8 else
193
+ "minor" if similarity < 0.95 else "trivial",
194
+ "diff": "".join(diff),
195
+ }
196
+ ```
197
+
198
+ ## Compliance Gap Analysis
199
+
200
+ ### Mapping Requirements to Controls
201
+
202
+ ```python
203
+ def compliance_gap_analysis(requirements: list[dict],
204
+ controls: list[dict]) -> pd.DataFrame:
205
+ """
206
+ Map regulatory requirements to organizational controls.
207
+ Identify gaps where requirements lack corresponding controls.
208
+
209
+ requirements: [{id, text, obligation_level, cfr_section}]
210
+ controls: [{id, description, implemented, evidence}]
211
+ """
212
+ from sklearn.feature_extraction.text import TfidfVectorizer
213
+ from sklearn.metrics.pairwise import cosine_similarity
214
+
215
+ req_texts = [r["text"] for r in requirements]
216
+ ctrl_texts = [c["description"] for c in controls]
217
+
218
+ vectorizer = TfidfVectorizer(stop_words="english", max_features=5000)
219
+ all_texts = req_texts + ctrl_texts
220
+ tfidf = vectorizer.fit_transform(all_texts)
221
+
222
+ req_vecs = tfidf[:len(req_texts)]
223
+ ctrl_vecs = tfidf[len(req_texts):]
224
+
225
+ similarity_matrix = cosine_similarity(req_vecs, ctrl_vecs)
226
+
227
+ gaps = []
228
+ for i, req in enumerate(requirements):
229
+ best_match_idx = similarity_matrix[i].argmax()
230
+ best_score = similarity_matrix[i][best_match_idx]
231
+ matched_ctrl = controls[best_match_idx] if best_score > 0.3 else None
232
+
233
+ gaps.append({
234
+ "requirement_id": req["id"],
235
+ "cfr_section": req["cfr_section"],
236
+ "obligation": req["obligation_level"],
237
+ "matched_control": matched_ctrl["id"] if matched_ctrl else "NONE",
238
+ "match_score": round(best_score, 3),
239
+ "status": "covered" if matched_ctrl and matched_ctrl["implemented"]
240
+ else "gap" if not matched_ctrl
241
+ else "planned",
242
+ })
243
+
244
+ return pd.DataFrame(gaps)
245
+ ```
246
+
247
+ ## Regulatory Domains
248
+
249
+ Key regulated sectors with their primary frameworks:
250
+
251
+ | Sector | Primary Regulator | Key Regulations |
252
+ |--------|------------------|----------------|
253
+ | Financial services | SEC, CFTC, FINRA | Dodd-Frank, SOX, MiFID II |
254
+ | Healthcare | FDA, HHS | HIPAA, 21 CFR Parts 210-211 |
255
+ | Environment | EPA | Clean Air Act, RCRA, CERCLA |
256
+ | Data privacy | FTC, state AGs | CCPA, GDPR, COPPA |
257
+ | Telecommunications | FCC | Communications Act, net neutrality rules |
258
+ | Energy | FERC, NRC | Federal Power Act, 10 CFR 50 |
259
+
260
+ ## Tools and Resources
261
+
262
+ - **RegInfo.gov**: Unified Agenda of regulatory actions
263
+ - **Regulations.gov API**: Public comments on proposed rules
264
+ - **GovInfo.gov**: Official publications of all branches of government
265
+ - **LexisNexis / Westlaw**: Commercial legal research platforms
266
+ - **RegTech tools**: Ascent, Compliance.ai, Clausematch
267
+ - **spaCy + custom pipelines**: NLP for regulatory text extraction