@wentorai/research-plugins 1.3.2 → 1.4.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 (229) hide show
  1. package/README.md +32 -56
  2. package/curated/analysis/README.md +1 -13
  3. package/curated/domains/README.md +1 -5
  4. package/curated/literature/README.md +1 -10
  5. package/curated/research/README.md +1 -18
  6. package/curated/tools/README.md +1 -12
  7. package/curated/writing/README.md +1 -5
  8. package/index.ts +88 -5
  9. package/openclaw.plugin.json +3 -12
  10. package/package.json +3 -5
  11. package/skills/analysis/statistics/SKILL.md +1 -1
  12. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +1 -1
  13. package/skills/domains/ai-ml/SKILL.md +3 -2
  14. package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +1 -0
  15. package/skills/domains/ai-ml/huggingface-api/SKILL.md +251 -0
  16. package/skills/domains/biomedical/SKILL.md +9 -2
  17. package/skills/domains/biomedical/alphafold-api/SKILL.md +227 -0
  18. package/skills/domains/biomedical/biothings-api/SKILL.md +296 -0
  19. package/skills/domains/biomedical/clinicaltrials-api-v2/SKILL.md +216 -0
  20. package/skills/domains/biomedical/enrichr-api/SKILL.md +264 -0
  21. package/skills/domains/biomedical/ensembl-rest-api/SKILL.md +204 -0
  22. package/skills/domains/biomedical/medical-data-api/SKILL.md +197 -0
  23. package/skills/domains/biomedical/pdb-structure-api/SKILL.md +219 -0
  24. package/skills/domains/business/SKILL.md +2 -3
  25. package/skills/domains/chemistry/SKILL.md +3 -2
  26. package/skills/domains/chemistry/catalysis-hub-api/SKILL.md +171 -0
  27. package/skills/domains/education/SKILL.md +2 -3
  28. package/skills/domains/law/SKILL.md +3 -2
  29. package/skills/domains/law/uk-legislation-api/SKILL.md +179 -0
  30. package/skills/literature/fulltext/SKILL.md +3 -2
  31. package/skills/literature/fulltext/arxiv-latex-source/SKILL.md +195 -0
  32. package/skills/literature/search/SKILL.md +2 -3
  33. package/skills/research/automation/SKILL.md +2 -3
  34. package/skills/research/automation/datagen-research-guide/SKILL.md +1 -0
  35. package/skills/research/automation/mle-agent-guide/SKILL.md +1 -0
  36. package/skills/research/automation/paper-to-agent-guide/SKILL.md +1 -0
  37. package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +1 -0
  38. package/skills/research/methodology/SKILL.md +1 -1
  39. package/skills/research/methodology/claude-scientific-guide/SKILL.md +1 -0
  40. package/skills/research/methodology/qualitative-research-guide/SKILL.md +1 -1
  41. package/skills/research/paper-review/SKILL.md +1 -1
  42. package/skills/research/paper-review/peer-review-guide/SKILL.md +1 -1
  43. package/skills/tools/knowledge-graph/SKILL.md +2 -3
  44. package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +1 -0
  45. package/skills/writing/citation/obsidian-citation-guide/SKILL.md +1 -0
  46. package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +1 -0
  47. package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +1 -0
  48. package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +1 -0
  49. package/skills/writing/citation/zotero-reference-guide/SKILL.md +1 -0
  50. package/skills/writing/composition/scientific-writing-resources/SKILL.md +1 -0
  51. package/skills/writing/latex/latex-drawing-collection/SKILL.md +1 -0
  52. package/skills/writing/latex/latex-templates-collection/SKILL.md +1 -0
  53. package/skills/writing/templates/novathesis-guide/SKILL.md +1 -0
  54. package/src/tools/arxiv.ts +78 -30
  55. package/src/tools/biorxiv.ts +142 -0
  56. package/src/tools/crossref.ts +60 -22
  57. package/src/tools/datacite.ts +188 -0
  58. package/src/tools/dblp.ts +125 -0
  59. package/src/tools/doaj.ts +82 -0
  60. package/src/tools/europe-pmc.ts +159 -0
  61. package/src/tools/hal.ts +118 -0
  62. package/src/tools/inspire-hep.ts +165 -0
  63. package/src/tools/openaire.ts +158 -0
  64. package/src/tools/openalex.ts +20 -15
  65. package/src/tools/opencitations.ts +103 -0
  66. package/src/tools/orcid.ts +136 -0
  67. package/src/tools/osf-preprints.ts +104 -0
  68. package/src/tools/pubmed.ts +19 -13
  69. package/src/tools/ror.ts +118 -0
  70. package/src/tools/unpaywall.ts +12 -6
  71. package/src/tools/util.ts +141 -0
  72. package/src/tools/zenodo.ts +154 -0
  73. package/mcp-configs/academic-db/ChatSpatial.json +0 -17
  74. package/mcp-configs/academic-db/academia-mcp.json +0 -17
  75. package/mcp-configs/academic-db/academic-paper-explorer.json +0 -17
  76. package/mcp-configs/academic-db/academic-search-mcp-server.json +0 -17
  77. package/mcp-configs/academic-db/agentinterviews-mcp.json +0 -17
  78. package/mcp-configs/academic-db/all-in-mcp.json +0 -17
  79. package/mcp-configs/academic-db/alphafold-mcp.json +0 -20
  80. package/mcp-configs/academic-db/apple-health-mcp.json +0 -17
  81. package/mcp-configs/academic-db/arxiv-latex-mcp.json +0 -17
  82. package/mcp-configs/academic-db/arxiv-mcp-server.json +0 -17
  83. package/mcp-configs/academic-db/bgpt-mcp.json +0 -17
  84. package/mcp-configs/academic-db/biomcp.json +0 -17
  85. package/mcp-configs/academic-db/biothings-mcp.json +0 -17
  86. package/mcp-configs/academic-db/brightspace-mcp.json +0 -21
  87. package/mcp-configs/academic-db/catalysishub-mcp-server.json +0 -17
  88. package/mcp-configs/academic-db/climatiq-mcp.json +0 -20
  89. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +0 -17
  90. package/mcp-configs/academic-db/deep-research-mcp.json +0 -17
  91. package/mcp-configs/academic-db/dicom-mcp.json +0 -17
  92. package/mcp-configs/academic-db/enrichr-mcp-server.json +0 -17
  93. package/mcp-configs/academic-db/fec-mcp-server.json +0 -17
  94. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +0 -17
  95. package/mcp-configs/academic-db/fhir-mcp.json +0 -19
  96. package/mcp-configs/academic-db/gget-mcp.json +0 -17
  97. package/mcp-configs/academic-db/gibs-mcp.json +0 -20
  98. package/mcp-configs/academic-db/gis-mcp-server.json +0 -22
  99. package/mcp-configs/academic-db/google-earth-engine-mcp.json +0 -21
  100. package/mcp-configs/academic-db/google-researcher-mcp.json +0 -17
  101. package/mcp-configs/academic-db/idea-reality-mcp.json +0 -17
  102. package/mcp-configs/academic-db/legiscan-mcp.json +0 -19
  103. package/mcp-configs/academic-db/lex.json +0 -17
  104. package/mcp-configs/academic-db/m4-clinical-mcp.json +0 -21
  105. package/mcp-configs/academic-db/medical-mcp.json +0 -21
  106. package/mcp-configs/academic-db/nexonco-mcp.json +0 -20
  107. package/mcp-configs/academic-db/omop-mcp.json +0 -20
  108. package/mcp-configs/academic-db/onekgpd-mcp.json +0 -20
  109. package/mcp-configs/academic-db/openedu-mcp.json +0 -20
  110. package/mcp-configs/academic-db/opengenes-mcp.json +0 -20
  111. package/mcp-configs/academic-db/openstax-mcp.json +0 -21
  112. package/mcp-configs/academic-db/openstreetmap-mcp.json +0 -21
  113. package/mcp-configs/academic-db/opentargets-mcp.json +0 -21
  114. package/mcp-configs/academic-db/pdb-mcp.json +0 -21
  115. package/mcp-configs/academic-db/smithsonian-mcp.json +0 -20
  116. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +0 -17
  117. package/mcp-configs/ai-platform/ai-counsel.json +0 -17
  118. package/mcp-configs/ai-platform/atlas-mcp-server.json +0 -17
  119. package/mcp-configs/ai-platform/counsel-mcp.json +0 -17
  120. package/mcp-configs/ai-platform/cross-llm-mcp.json +0 -17
  121. package/mcp-configs/ai-platform/gptr-mcp.json +0 -17
  122. package/mcp-configs/ai-platform/magi-researchers.json +0 -21
  123. package/mcp-configs/ai-platform/mcp-academic-researcher.json +0 -22
  124. package/mcp-configs/ai-platform/open-paper-machine.json +0 -21
  125. package/mcp-configs/ai-platform/paper-intelligence.json +0 -21
  126. package/mcp-configs/ai-platform/paper-reader.json +0 -21
  127. package/mcp-configs/ai-platform/paperdebugger.json +0 -21
  128. package/mcp-configs/browser/decipher-research-agent.json +0 -17
  129. package/mcp-configs/browser/deep-research.json +0 -17
  130. package/mcp-configs/browser/everything-claude-code.json +0 -17
  131. package/mcp-configs/browser/exa-mcp.json +0 -20
  132. package/mcp-configs/browser/gpt-researcher.json +0 -17
  133. package/mcp-configs/browser/heurist-agent-framework.json +0 -17
  134. package/mcp-configs/browser/mcp-searxng.json +0 -21
  135. package/mcp-configs/browser/mcp-webresearch.json +0 -20
  136. package/mcp-configs/cloud-docs/confluence-mcp.json +0 -37
  137. package/mcp-configs/cloud-docs/google-drive-mcp.json +0 -35
  138. package/mcp-configs/cloud-docs/notion-mcp.json +0 -29
  139. package/mcp-configs/communication/discord-mcp.json +0 -29
  140. package/mcp-configs/communication/discourse-mcp.json +0 -21
  141. package/mcp-configs/communication/slack-mcp.json +0 -29
  142. package/mcp-configs/communication/telegram-mcp.json +0 -28
  143. package/mcp-configs/data-platform/4everland-hosting-mcp.json +0 -17
  144. package/mcp-configs/data-platform/automl-stat-mcp.json +0 -21
  145. package/mcp-configs/data-platform/context-keeper.json +0 -17
  146. package/mcp-configs/data-platform/context7.json +0 -19
  147. package/mcp-configs/data-platform/contextstream-mcp.json +0 -17
  148. package/mcp-configs/data-platform/email-mcp.json +0 -17
  149. package/mcp-configs/data-platform/jefferson-stats-mcp.json +0 -22
  150. package/mcp-configs/data-platform/mcp-excel-server.json +0 -21
  151. package/mcp-configs/data-platform/mcp-stata.json +0 -21
  152. package/mcp-configs/data-platform/mcpstack-jupyter.json +0 -21
  153. package/mcp-configs/data-platform/ml-mcp.json +0 -21
  154. package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +0 -20
  155. package/mcp-configs/data-platform/numpy-mcp.json +0 -21
  156. package/mcp-configs/database/neo4j-mcp.json +0 -37
  157. package/mcp-configs/database/postgres-mcp.json +0 -28
  158. package/mcp-configs/database/sqlite-mcp.json +0 -29
  159. package/mcp-configs/dev-platform/geogebra-mcp.json +0 -21
  160. package/mcp-configs/dev-platform/github-mcp.json +0 -31
  161. package/mcp-configs/dev-platform/gitlab-mcp.json +0 -34
  162. package/mcp-configs/dev-platform/latex-mcp-server.json +0 -21
  163. package/mcp-configs/dev-platform/manim-mcp.json +0 -20
  164. package/mcp-configs/dev-platform/mcp-echarts.json +0 -20
  165. package/mcp-configs/dev-platform/panel-viz-mcp.json +0 -20
  166. package/mcp-configs/dev-platform/paperbanana.json +0 -20
  167. package/mcp-configs/dev-platform/texflow-mcp.json +0 -20
  168. package/mcp-configs/dev-platform/texmcp.json +0 -20
  169. package/mcp-configs/dev-platform/typst-mcp.json +0 -21
  170. package/mcp-configs/dev-platform/vizro-mcp.json +0 -20
  171. package/mcp-configs/email/email-mcp.json +0 -40
  172. package/mcp-configs/email/gmail-mcp.json +0 -37
  173. package/mcp-configs/note-knowledge/ApeRAG.json +0 -17
  174. package/mcp-configs/note-knowledge/In-Memoria.json +0 -17
  175. package/mcp-configs/note-knowledge/agent-memory.json +0 -17
  176. package/mcp-configs/note-knowledge/aimemo.json +0 -17
  177. package/mcp-configs/note-knowledge/biel-mcp.json +0 -19
  178. package/mcp-configs/note-knowledge/cognee.json +0 -17
  179. package/mcp-configs/note-knowledge/context-awesome.json +0 -17
  180. package/mcp-configs/note-knowledge/context-mcp.json +0 -17
  181. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +0 -17
  182. package/mcp-configs/note-knowledge/cortex.json +0 -17
  183. package/mcp-configs/note-knowledge/devrag.json +0 -17
  184. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +0 -17
  185. package/mcp-configs/note-knowledge/engram.json +0 -17
  186. package/mcp-configs/note-knowledge/gnosis-mcp.json +0 -17
  187. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +0 -19
  188. package/mcp-configs/note-knowledge/local-faiss-mcp.json +0 -21
  189. package/mcp-configs/note-knowledge/mcp-memory-service.json +0 -21
  190. package/mcp-configs/note-knowledge/mcp-obsidian.json +0 -23
  191. package/mcp-configs/note-knowledge/mcp-ragdocs.json +0 -20
  192. package/mcp-configs/note-knowledge/mcp-summarizer.json +0 -21
  193. package/mcp-configs/note-knowledge/mediawiki-mcp.json +0 -21
  194. package/mcp-configs/note-knowledge/openzim-mcp.json +0 -20
  195. package/mcp-configs/note-knowledge/zettelkasten-mcp.json +0 -21
  196. package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +0 -20
  197. package/mcp-configs/reference-mgr/academix.json +0 -20
  198. package/mcp-configs/reference-mgr/arxiv-cli.json +0 -17
  199. package/mcp-configs/reference-mgr/arxiv-research-mcp.json +0 -21
  200. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +0 -17
  201. package/mcp-configs/reference-mgr/chiken.json +0 -17
  202. package/mcp-configs/reference-mgr/claude-scholar.json +0 -17
  203. package/mcp-configs/reference-mgr/devonthink-mcp.json +0 -17
  204. package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +0 -19
  205. package/mcp-configs/reference-mgr/google-scholar-mcp.json +0 -20
  206. package/mcp-configs/reference-mgr/mcp-paperswithcode.json +0 -21
  207. package/mcp-configs/reference-mgr/mcp-scholarly.json +0 -20
  208. package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +0 -20
  209. package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +0 -20
  210. package/mcp-configs/reference-mgr/mcp-zotero.json +0 -21
  211. package/mcp-configs/reference-mgr/mendeley-mcp.json +0 -20
  212. package/mcp-configs/reference-mgr/ncbi-mcp-server.json +0 -22
  213. package/mcp-configs/reference-mgr/onecite.json +0 -21
  214. package/mcp-configs/reference-mgr/paper-search-mcp.json +0 -21
  215. package/mcp-configs/reference-mgr/pubmed-search-mcp.json +0 -21
  216. package/mcp-configs/reference-mgr/scholar-mcp.json +0 -21
  217. package/mcp-configs/reference-mgr/scholar-multi-mcp.json +0 -21
  218. package/mcp-configs/reference-mgr/seerai.json +0 -21
  219. package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +0 -21
  220. package/mcp-configs/reference-mgr/sourcelibrary.json +0 -20
  221. package/mcp-configs/registry.json +0 -476
  222. package/mcp-configs/repository/dataverse-mcp.json +0 -33
  223. package/mcp-configs/repository/huggingface-mcp.json +0 -29
  224. package/skills/domains/business/xpert-bi-guide/SKILL.md +0 -84
  225. package/skills/domains/education/edumcp-guide/SKILL.md +0 -74
  226. package/skills/literature/search/paper-search-mcp-guide/SKILL.md +0 -107
  227. package/skills/research/automation/mcp-server-guide/SKILL.md +0 -211
  228. package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +0 -84
  229. package/src/tools/semantic-scholar.ts +0 -66
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: uk-legislation-api
3
+ description: "Access UK laws and statutory instruments via the Legislation.gov.uk API"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "⚖️"
7
+ category: "domains"
8
+ subcategory: "law"
9
+ keywords: ["UK law", "legislation", "statutory instruments", "legal research", "Parliament", "regulatory analysis"]
10
+ source: "https://www.legislation.gov.uk"
11
+ ---
12
+
13
+ # UK Legislation API (legislation.gov.uk)
14
+
15
+ ## Overview
16
+
17
+ The Legislation.gov.uk API, maintained by The National Archives, provides open access to the full text of UK legislation from 1267 to the present day. The database covers over 100,000 items including Acts of Parliament, Statutory Instruments, Scottish and Welsh legislation, and Northern Ireland statutes. All data is available as structured XML with Dublin Core metadata, Atom feeds, and HTML. The API supports point-in-time versions showing how legislation read at any given date, plus amendment tracking.
18
+
19
+ ## Authentication
20
+
21
+ No authentication or API key is required. The API is fully open. Respect rate limits by adding reasonable delays between bulk requests.
22
+
23
+ ## URL Structure
24
+
25
+ All legislation follows the pattern:
26
+
27
+ ```
28
+ https://www.legislation.gov.uk/{type}/{year}/{number}
29
+ ```
30
+
31
+ ### Legislation Types
32
+
33
+ | Type Code | Description | Example |
34
+ |-----------|-------------|---------|
35
+ | `ukpga` | UK Public General Act | `/ukpga/2010/15` (Equality Act 2010) |
36
+ | `uksi` | UK Statutory Instrument | `/uksi/2020/1374` |
37
+ | `asp` | Act of Scottish Parliament | `/asp/2020/13` |
38
+ | `asc` | Act of Senedd Cymru (Wales) | `/asc/2021/4` |
39
+ | `nia` | Northern Ireland Act | `/nia/2022/2` |
40
+ | `ukla` | UK Local Act | `/ukla/2008/1` |
41
+ | `ukdsi` | UK Draft Statutory Instrument | `/ukdsi/2023/123` |
42
+ | `eur` | Retained EU Legislation | `/eur/2016/679` (GDPR) |
43
+
44
+ ## Core Endpoints
45
+
46
+ ### Full Legislation Text (XML)
47
+
48
+ ```bash
49
+ # Fetch the Equality Act 2010 — returns structured XML with Dublin Core metadata
50
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/data.xml"
51
+ # Response: <Legislation DocumentURI="http://www.legislation.gov.uk/ukpga/2010/15"
52
+ # NumberOfProvisions="564">
53
+ # <dc:title>Equality Act 2010</dc:title>
54
+ # <dc:description>An Act to make provision to require Ministers...</dc:description>
55
+
56
+ # Fetch Data Protection Act 2018
57
+ curl "https://www.legislation.gov.uk/ukpga/2018/12/data.xml"
58
+ # Response: <dc:title>Data Protection Act 2018</dc:title>
59
+ # NumberOfProvisions="1181"
60
+
61
+ # Fetch a Statutory Instrument
62
+ curl "https://www.legislation.gov.uk/uksi/2020/1374/data.xml"
63
+ # Response: <dc:title>The Health Protection (Coronavirus, Restric...</dc:title>
64
+ ```
65
+
66
+ ### Specific Sections
67
+
68
+ ```bash
69
+ # Fetch a single section
70
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/section/1/data.xml"
71
+
72
+ # Fetch table of contents
73
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/contents/data.xml"
74
+
75
+ # Fetch a specific Part
76
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/part/1/data.xml"
77
+
78
+ # Fetch a Schedule
79
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/schedule/1/data.xml"
80
+ ```
81
+
82
+ ### Search and Discovery
83
+
84
+ ```bash
85
+ # Search by title — returns HTTP 300 with multiple matches
86
+ curl "https://www.legislation.gov.uk/id?title=equality+act"
87
+
88
+ # Browse by type, title keyword, and year
89
+ curl "https://www.legislation.gov.uk/ukpga?title=data+protection&year=2018"
90
+
91
+ # List recent Acts via Atom feed
92
+ curl "https://www.legislation.gov.uk/new/ukpga/data.feed"
93
+ # Response: <openSearch:totalResults> with <entry> elements per Act
94
+ ```
95
+
96
+ ### Amendment Tracking
97
+
98
+ ```bash
99
+ # Changes affecting a specific Act (Atom feed, paginated)
100
+ curl "https://www.legislation.gov.uk/changes/affected/ukpga/2010/15/data.feed"
101
+ # Response: <title>Changes to Legislation</title>
102
+ # <leg:totalPages>25</leg:totalPages>
103
+ # Each <entry> describes one amendment with source and target provisions
104
+
105
+ # Changes made BY a specific Act
106
+ curl "https://www.legislation.gov.uk/changes/affecting/ukpga/2010/15/data.feed"
107
+ ```
108
+
109
+ ### Point-in-Time Versions
110
+
111
+ ```bash
112
+ # Legislation as it stood on a specific date
113
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/2015-01-01/data.xml"
114
+
115
+ # Enacted (original) version
116
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/enacted/data.xml"
117
+ ```
118
+
119
+ ## Data Formats
120
+
121
+ | Suffix | Format | Content-Type |
122
+ |--------|--------|-------------|
123
+ | `/data.xml` | Legislation XML (CLML) | `application/xml` |
124
+ | `/data.feed` | Atom feed | `application/atom+xml` |
125
+ | `/data.csv` | CSV export | `text/csv` |
126
+ | (none) | HTML rendering | `text/html` |
127
+
128
+ The primary XML format uses the Crown Legislation Markup Language (CLML) schema with namespaces for `legislation`, `ukm:Metadata`, and Dublin Core (`dc:`, `dct:`) elements. Each document includes `NumberOfProvisions`, `RestrictExtent` (geographic applicability like `E+W+S+N.I.`), and `RestrictStartDate`.
129
+
130
+ ## Academic Use Cases
131
+
132
+ - **Legislative history**: Track how a statute has evolved using point-in-time versions and amendment feeds
133
+ - **Policy analysis**: Compare regulatory regimes across UK jurisdictions (England, Scotland, Wales, NI)
134
+ - **Corpus linguistics**: Build legislative text corpora from XML for NLP analysis of legal language
135
+ - **Regulatory impact studies**: Use the changes feed to measure legislative amendment frequency
136
+ - **Comparative law**: Contrast UK statutory instruments with primary legislation structure
137
+ - **Brexit research**: Analyse retained EU legislation (type `eur`) and its UK modifications
138
+
139
+ ## Python Usage
140
+
141
+ ```python
142
+ import requests
143
+ from xml.etree import ElementTree as ET
144
+
145
+ BASE = "https://www.legislation.gov.uk"
146
+ NS = {"leg": "http://www.legislation.gov.uk/namespaces/legislation",
147
+ "ukm": "http://www.legislation.gov.uk/namespaces/metadata",
148
+ "dc": "http://purl.org/dc/elements/1.1/",
149
+ "atom": "http://www.w3.org/2005/Atom"}
150
+
151
+ def get_legislation(leg_type: str, year: int, number: int) -> dict:
152
+ """Fetch UK legislation metadata and full XML."""
153
+ url = f"{BASE}/{leg_type}/{year}/{number}/data.xml"
154
+ resp = requests.get(url)
155
+ resp.raise_for_status()
156
+ root = ET.fromstring(resp.content)
157
+ meta = root.find(".//ukm:Metadata", NS)
158
+ return {
159
+ "title": meta.findtext("dc:title", namespaces=NS),
160
+ "description": meta.findtext("dc:description", namespaces=NS),
161
+ "provisions": root.attrib.get("NumberOfProvisions"),
162
+ "extent": root.attrib.get("RestrictExtent"),
163
+ "uri": root.attrib.get("DocumentURI"),
164
+ "xml": resp.content
165
+ }
166
+
167
+ # Example: fetch the Equality Act 2010
168
+ act = get_legislation("ukpga", 2010, 15)
169
+ print(f"{act['title']} — {act['provisions']} provisions, extent: {act['extent']}")
170
+ # Output: Equality Act 2010 — 564 provisions, extent: E+W+S+N.I.
171
+ ```
172
+
173
+ ## References
174
+
175
+ - [Legislation.gov.uk API Documentation](https://www.legislation.gov.uk/developer)
176
+ - [CLML Schema Documentation](https://legislation.github.io/clml-schema/)
177
+ - [Legislation.gov.uk URI Scheme](https://www.legislation.gov.uk/developer/uris)
178
+ - [The National Archives](https://www.nationalarchives.gov.uk/)
179
+ - [Atom Feed Specification](https://www.legislation.gov.uk/developer/formats/atom)
@@ -1,14 +1,15 @@
1
1
  ---
2
2
  name: fulltext-skills
3
- description: "15 full-text access skills. Trigger: accessing paper PDFs, bulk downloading, open access, text mining. Design: legal full-text retrieval from open repositories, archives, and preprint servers."
3
+ description: "16 full-text access skills. Trigger: accessing paper PDFs, bulk downloading, open access, text mining. Design: legal full-text retrieval from open repositories, archives, and preprint servers."
4
4
  ---
5
5
 
6
- # Full-Text Access — 15 Skills
6
+ # Full-Text Access — 16 Skills
7
7
 
8
8
  Select the skill matching the user's need, then `read` its SKILL.md.
9
9
 
10
10
  | Skill | Description |
11
11
  |-------|-------------|
12
+ | [arxiv-latex-source](./arxiv-latex-source/SKILL.md) | Download and parse LaTeX source files from arXiv preprints |
12
13
  | [bioc-pmc-api](./bioc-pmc-api/SKILL.md) | Access PMC Open Access articles in BioC format for text mining |
13
14
  | [core-api-guide](./core-api-guide/SKILL.md) | Search and retrieve open access research papers via CORE aggregator |
14
15
  | [dataverse-api](./dataverse-api/SKILL.md) | Deposit and discover research datasets via Harvard Dataverse API |
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: arxiv-latex-source
3
+ description: "Download and parse LaTeX source files from arXiv preprints"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📜"
7
+ category: "literature"
8
+ subcategory: "fulltext"
9
+ keywords: ["arXiv", "LaTeX source", "paper parsing", "formula extraction", "full text", "preprint"]
10
+ source: "https://info.arxiv.org/help/bulk_data_s3.html"
11
+ ---
12
+
13
+ # arXiv LaTeX Source Access Guide
14
+
15
+ ## Overview
16
+
17
+ arXiv stores the original LaTeX source files for the vast majority of its 2.4 million+ preprints. Accessing LaTeX source provides major advantages over PDF parsing: exact mathematical notation as written by the author, structured sections and labels, machine-readable bibliography entries, and intact figure captions, table data, and cross-references.
18
+
19
+ For formula extraction, citation graph construction, section-level text analysis, or training data curation for scientific language models, LaTeX source is the gold standard. PDF parsing introduces OCR errors in equations, loses structural hierarchy, and mangles complex tables.
20
+
21
+ The e-print endpoint serves source bundles as gzip-compressed tarballs (`.tar.gz`) containing `.tex` files, figures, `.bib`/`.bbl` bibliography files, style files, and supplementary materials. No authentication is required.
22
+
23
+ ## Authentication
24
+
25
+ No authentication or API key is required. The e-print endpoint is publicly accessible. However, arXiv asks that automated tools set a descriptive `User-Agent` header and comply with rate limits.
26
+
27
+ ## Core Endpoints
28
+
29
+ ### Download LaTeX Source
30
+
31
+ - **URL**: `GET https://arxiv.org/e-print/{arxiv_id}`
32
+ - **Response**: `application/gzip` — a `.tar.gz` archive containing the source files
33
+ - **Parameters**:
34
+ | Param | Type | Required | Description |
35
+ |-------|------|----------|-------------|
36
+ | arxiv_id | string | Yes | arXiv identifier, e.g. `2301.00001` or `2301.00001v2` for a specific version |
37
+
38
+ - **Example**:
39
+ ```bash
40
+ # Download source archive (response: 200, application/gzip, ~1.3 MB)
41
+ curl -sL -o source.tar.gz "https://arxiv.org/e-print/2301.00001"
42
+
43
+ # List archive contents
44
+ tar tz -f source.tar.gz | head -10
45
+ # ACM-Reference-Format.bbx
46
+ # ACM-Reference-Format.bst
47
+ # Image_1.jpg
48
+ # README.txt
49
+ # acmart.cls
50
+ ```
51
+
52
+ - **Content-Disposition header**: `attachment; filename="arXiv-2301.00001v1.tar.gz"`
53
+ - **ETag**: SHA-256 hash provided for caching: `sha256:f1ffe8ec...`
54
+
55
+ ### Format Detection
56
+
57
+ The endpoint almost always returns a gzip-compressed tar archive. Rare cases (very old or single-file submissions) may return a single gzip-compressed `.tex` file without tar wrapper. Always verify format before extracting:
58
+
59
+ ```bash
60
+ curl -sL "https://arxiv.org/e-print/{arxiv_id}" -o source.gz
61
+ file source.gz # "gzip compressed data, was 'XXXX.tar', ..."
62
+ ```
63
+
64
+ ### Metadata API (Companion)
65
+
66
+ Pair source downloads with the arXiv Atom API for structured metadata:
67
+
68
+ - **URL**: `GET https://export.arxiv.org/api/query?id_list={arxiv_id}`
69
+ - **Response**: Atom XML with `<title>`, `<author>`, `<summary>`, `<category>`, `<published>`
70
+ - **Example**: `curl -s "https://export.arxiv.org/api/query?id_list=2301.00001"`
71
+
72
+ ## LaTeX Source Parsing Guide
73
+
74
+ ### Locating the Main .tex File
75
+
76
+ A source archive typically contains multiple files. To find the main document:
77
+
78
+ 1. Look for `\documentclass` in `.tex` files — this marks the root document
79
+ 2. Check for a `README.txt` that may specify the main file
80
+ 3. If multiple `.tex` files contain `\documentclass`, prefer the one with `\begin{document}`
81
+
82
+ ```python
83
+ import tarfile, re
84
+
85
+ def find_main_tex(tar_path):
86
+ with tarfile.open(tar_path, 'r:gz') as tar:
87
+ tex_files = [m for m in tar.getmembers() if m.name.endswith('.tex')]
88
+ for member in tex_files:
89
+ content = tar.extractfile(member).read().decode('utf-8', errors='ignore')
90
+ if r'\documentclass' in content and r'\begin{document}' in content:
91
+ return member.name, content
92
+ return None, None
93
+ ```
94
+
95
+ ### Extracting Sections
96
+
97
+ LaTeX sections follow a predictable hierarchy:
98
+
99
+ ```python
100
+ import re
101
+
102
+ def extract_sections(tex_content):
103
+ pattern = r'\\(section|subsection|subsubsection)\{([^}]+)\}'
104
+ sections = re.findall(pattern, tex_content)
105
+ return [(level, title) for level, title in sections]
106
+ # [('section', 'Introduction'), ('section', 'Related Work'), ...]
107
+ ```
108
+
109
+ ### Extracting Equations
110
+
111
+ ```python
112
+ def extract_equations(tex_content):
113
+ patterns = [
114
+ r'\\\[(.+?)\\\]',
115
+ r'\\begin\{equation\}(.+?)\\end\{equation\}',
116
+ r'\\begin\{align\*?\}(.+?)\\end\{align\*?\}',
117
+ ]
118
+ equations = []
119
+ for pat in patterns:
120
+ equations.extend(re.findall(pat, tex_content, re.DOTALL))
121
+ return equations
122
+ ```
123
+
124
+ ### Extracting Bibliography
125
+
126
+ Parse `.bib` files (BibTeX entries) or `.bbl` files (compiled `\bibitem` commands):
127
+
128
+ ```python
129
+ def extract_bibliography(tar_path):
130
+ refs = []
131
+ with tarfile.open(tar_path, 'r:gz') as tar:
132
+ for member in tar.getmembers():
133
+ if member.name.endswith('.bib'):
134
+ content = tar.extractfile(member).read().decode('utf-8', errors='ignore')
135
+ refs.extend(re.findall(r'@\w+\{([^,]+),(.+?)\n\}', content, re.DOTALL))
136
+ elif member.name.endswith('.bbl'):
137
+ content = tar.extractfile(member).read().decode('utf-8', errors='ignore')
138
+ refs.extend(re.findall(r'\\bibitem.*?\{(.+?)\}', content))
139
+ return refs
140
+ ```
141
+
142
+ ## Rate Limits
143
+
144
+ - **Maximum**: 4 requests per second for automated access
145
+ - **Recommended**: 1 request/second with delays between sequential downloads
146
+ - **Bulk access**: For 1000+ papers, use the arXiv S3 bulk data mirror instead
147
+ - **HTTP 429**: Rate limit exceeded; implement exponential backoff
148
+ - **User-Agent**: Required — set a descriptive string: `MyTool/1.0 (mailto:user@university.edu)`
149
+ - Persistent abuse may result in IP-level blocks
150
+
151
+ ## Academic Use Cases
152
+
153
+ - **Formula extraction for ML training** — Build equation datasets with ground-truth LaTeX notation, free of OCR noise from PDF parsing
154
+ - **Citation network analysis** — Parse `.bib`/`.bbl` files for exact reference keys to construct citation graphs
155
+ - **Section-level text analysis** — Extract specific sections (e.g., all "Related Work" across a subfield) for systematic reviews
156
+ - **Reproducibility auditing** — Examine algorithm environments, hyperparameter tables, and methodology sections
157
+ - **Cross-paper notation alignment** — Compare and normalize equation environments across papers in a subfield
158
+
159
+ ## Complete Python Example
160
+
161
+ ```python
162
+ import requests, tarfile, io, re, time, gzip
163
+
164
+ def download_arxiv_source(arxiv_id, delay=1.0):
165
+ """Download and extract all .tex files from an arXiv paper's source."""
166
+ url = f"https://arxiv.org/e-print/{arxiv_id}"
167
+ headers = {"User-Agent": "ResearchTool/1.0 (mailto:user@example.com)"}
168
+ resp = requests.get(url, headers=headers)
169
+ resp.raise_for_status()
170
+ time.sleep(delay)
171
+
172
+ buf = io.BytesIO(resp.content)
173
+ try:
174
+ with tarfile.open(fileobj=buf, mode='r:gz') as tar:
175
+ return {m.name: tar.extractfile(m).read().decode('utf-8', errors='ignore')
176
+ for m in tar.getmembers() if m.name.endswith('.tex') and m.isfile()}
177
+ except tarfile.ReadError:
178
+ buf.seek(0)
179
+ return {"main.tex": gzip.decompress(buf.read()).decode('utf-8', errors='ignore')}
180
+
181
+ # Usage
182
+ sources = download_arxiv_source("2301.00001")
183
+ for fname, content in sources.items():
184
+ if r'\documentclass' in content:
185
+ sections = re.findall(r'\\section\{([^}]+)\}', content)
186
+ equations = re.findall(r'\\begin\{equation\}(.+?)\\end\{equation\}', content, re.DOTALL)
187
+ print(f"{fname}: {len(sections)} sections, {len(equations)} equations")
188
+ ```
189
+
190
+ ## References
191
+
192
+ - arXiv e-print access: https://info.arxiv.org/help/bulk_data_s3.html
193
+ - arXiv API documentation: https://info.arxiv.org/help/api/index.html
194
+ - arXiv terms of use: https://info.arxiv.org/help/api/tou.html
195
+ - arXiv S3 bulk data: https://info.arxiv.org/help/bulk_data_s3.html
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: search-skills
3
- description: "32 database search skills. Trigger: finding papers, search strategies, querying academic databases. Design: one skill per database/tool with API details, query syntax, and rate limits."
3
+ description: "31 database search skills. Trigger: finding papers, search strategies, querying academic databases. Design: one skill per database/tool with API details, query syntax, and rate limits."
4
4
  ---
5
5
 
6
- # Database Search — 32 Skills
6
+ # Database Search — 31 Skills
7
7
 
8
8
  Select the skill matching the user's need, then `read` its SKILL.md.
9
9
 
@@ -33,7 +33,6 @@ Select the skill matching the user's need, then `read` its SKILL.md.
33
33
  | [open-semantic-search-guide](./open-semantic-search-guide/SKILL.md) | Self-hosted semantic search and text mining platform |
34
34
  | [openaire-api](./openaire-api/SKILL.md) | Search EU-funded research outputs via the OpenAIRE Graph API |
35
35
  | [openalex-api](./openalex-api/SKILL.md) | Query the OpenAlex catalog of scholarly works, authors, and institutions |
36
- | [paper-search-mcp-guide](./paper-search-mcp-guide/SKILL.md) | MCP server for searching papers across arXiv, PubMed, bioRxiv |
37
36
  | [plos-open-access-api](./plos-open-access-api/SKILL.md) | Search PLOS open access journals with full-text Solr-powered API |
38
37
  | [pubmed-api](./pubmed-api/SKILL.md) | Search biomedical literature and retrieve records via PubMed E-utilities |
39
38
  | [scielo-api](./scielo-api/SKILL.md) | Access Latin American and developing world research via SciELO API |
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: automation-skills
3
- description: "11 research automation skills. Trigger: automating experiments, tracking results, reproducible pipelines. Design: ML experiment management, workflow orchestration, and lab automation tools."
3
+ description: "10 research automation skills. Trigger: automating experiments, tracking results, reproducible pipelines. Design: ML experiment management, workflow orchestration, and lab automation tools."
4
4
  ---
5
5
 
6
- # Research Automation — 11 Skills
6
+ # Research Automation — 10 Skills
7
7
 
8
8
  Select the skill matching the user's need, then `read` its SKILL.md.
9
9
 
@@ -15,7 +15,6 @@ Select the skill matching the user's need, then `read` its SKILL.md.
15
15
  | [data-collection-automation](./data-collection-automation/SKILL.md) | Automate survey deployment, data collection, and pipeline management |
16
16
  | [datagen-research-guide](./datagen-research-guide/SKILL.md) | AI-driven multi-agent research assistant for end-to-end studies |
17
17
  | [kedro-pipeline-guide](./kedro-pipeline-guide/SKILL.md) | Build reproducible data science pipelines with Kedro for research projects |
18
- | [mcp-server-guide](./mcp-server-guide/SKILL.md) | Index of 150 MCP server configs bundled with research-plugins |
19
18
  | [mle-agent-guide](./mle-agent-guide/SKILL.md) | Intelligent companion for ML engineering with arXiv integration |
20
19
  | [paper-to-agent-guide](./paper-to-agent-guide/SKILL.md) | Transform research papers into interactive AI agents for exploration |
21
20
  | [rd-agent-guide](./rd-agent-guide/SKILL.md) | Microsoft AI-driven R&D agent for automated data and model development |
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "research"
10
10
  subcategory: "automation"
11
+ emoji: "⚙️"
11
12
  keywords:
12
13
  - multi-agent
13
14
  - research-assistant
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "research"
10
10
  subcategory: "automation"
11
+ emoji: "🔬"
11
12
  keywords:
12
13
  - machine-learning
13
14
  - ml-engineering
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "research"
10
10
  subcategory: "automation"
11
+ emoji: "📄"
11
12
  keywords:
12
13
  - paper-parsing
13
14
  - agent-generation
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "research"
10
10
  subcategory: "deep-research"
11
+ emoji: "🔍"
11
12
  keywords:
12
13
  - deep-research
13
14
  - automated-investigation
@@ -17,7 +17,7 @@ Select the skill matching the user's need, then `read` its SKILL.md.
17
17
  | [mixed-methods-guide](./mixed-methods-guide/SKILL.md) | Guide to designing and conducting mixed methods research |
18
18
  | [osf-api-guide](./osf-api-guide/SKILL.md) | Access Open Science Framework for preregistrations, preprints, and data |
19
19
  | [parsifal-slr-guide](./parsifal-slr-guide/SKILL.md) | Plan and manage systematic literature reviews with Parsifal platform |
20
- | [qualitative-research-guide](./qualitative-research-guide/SKILL.md) | Design and conduct qualitative research using grounded theory, case studies, ... |
20
+ | [qualitative-research-guide](./qualitative-research-guide/SKILL.md) | Design and conduct qualitative research using grounded theory and case studies |
21
21
  | [research-paper-kb](./research-paper-kb/SKILL.md) | Build a persistent cross-session knowledge base from academic papers |
22
22
  | [research-town-guide](./research-town-guide/SKILL.md) | Simulate human research communities with multi-agent AI collaboration |
23
23
  | [scientify-idea-generation](./scientify-idea-generation/SKILL.md) | Generate research ideas from collected papers with gap analysis |
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "research"
10
10
  subcategory: "methodology"
11
+ emoji: "🧪"
11
12
  keywords:
12
13
  - scientific-method
13
14
  - research-skills
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: qualitative-research-guide
3
- description: "Design and conduct qualitative research using grounded theory, case studies, ..."
3
+ description: "Design and conduct qualitative research using grounded theory and case studies"
4
4
  metadata:
5
5
  openclaw:
6
6
  emoji: "🔍"
@@ -13,7 +13,7 @@ Select the skill matching the user's need, then `read` its SKILL.md.
13
13
  | [latte-review-guide](./latte-review-guide/SKILL.md) | Automate systematic literature reviews with LatteReview AI agents |
14
14
  | [paper-critique-framework](./paper-critique-framework/SKILL.md) | Structured framework for writing peer review reports and paper critiques |
15
15
  | [paper-reading-assistant](./paper-reading-assistant/SKILL.md) | AI-assisted paper reading, PDF Q&A, and summarization workflows |
16
- | [peer-review-guide](./peer-review-guide/SKILL.md) | Conduct thorough, constructive peer reviews and evaluate research papers crit... |
16
+ | [peer-review-guide](./peer-review-guide/SKILL.md) | Conduct thorough, constructive peer reviews and evaluate research papers |
17
17
  | [rebuttal-writing-guide](./rebuttal-writing-guide/SKILL.md) | Write effective rebuttals to reviewer comments for journal submissions |
18
18
  | [review-response-guide](./review-response-guide/SKILL.md) | Craft effective point-by-point reviewer response letters |
19
19
  | [scientify-write-review-paper](./scientify-write-review-paper/SKILL.md) | Write literature reviews and survey papers from collected papers |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: peer-review-guide
3
- description: "Conduct thorough, constructive peer reviews and evaluate research papers crit..."
3
+ description: "Conduct thorough, constructive peer reviews and evaluate research papers"
4
4
  metadata:
5
5
  openclaw:
6
6
  emoji: "🕵️"
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: knowledge-graph-skills
3
- description: "10 knowledge graphs skills. Trigger: building knowledge graphs, connecting concepts, ontology design. Design: graph construction, traversal, and visualization for research knowledge."
3
+ description: "9 knowledge graphs skills. Trigger: building knowledge graphs, connecting concepts, ontology design. Design: graph construction, traversal, and visualization for research knowledge."
4
4
  ---
5
5
 
6
- # Knowledge Graphs — 10 Skills
6
+ # Knowledge Graphs — 9 Skills
7
7
 
8
8
  Select the skill matching the user's need, then `read` its SKILL.md.
9
9
 
@@ -16,6 +16,5 @@ Select the skill matching the user's need, then `read` its SKILL.md.
16
16
  | [notero-zotero-notion-guide](./notero-zotero-notion-guide/SKILL.md) | Sync Zotero references and annotations to Notion databases |
17
17
  | [ontology-design-guide](./ontology-design-guide/SKILL.md) | Design ontologies and knowledge graphs for research data modeling |
18
18
  | [openspg-guide](./openspg-guide/SKILL.md) | Ant Group knowledge graph engine with SPG and KAG framework |
19
- | [paperpile-notion-guide](./paperpile-notion-guide/SKILL.md) | Sync Paperpile references and annotations to Notion |
20
19
  | [rag-methodology-guide](./rag-methodology-guide/SKILL.md) | RAG architecture for academic knowledge retrieval and synthesis |
21
20
  | [zotero-markdb-connect-guide](./zotero-markdb-connect-guide/SKILL.md) | Sync Zotero references to Obsidian and Logseq markdown |
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "tools"
10
10
  subcategory: "ocr-translate"
11
+ emoji: "🌐"
11
12
  keywords:
12
13
  - pdf-translation
13
14
  - zotero-plugin
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "citation"
11
+ emoji: "📚"
11
12
  keywords:
12
13
  - obsidian
13
14
  - citations
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "citation"
11
+ emoji: "🔗"
11
12
  keywords:
12
13
  - obsidian
13
14
  - zotero
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "citation"
11
+ emoji: "📑"
11
12
  keywords:
12
13
  - zotero
13
14
  - ai-assistant
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "citation"
11
+ emoji: "📝"
11
12
  keywords:
12
13
  - zotero
13
14
  - markdown
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "citation"
11
+ emoji: "📖"
11
12
  keywords:
12
13
  - zotero
13
14
  - references
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "composition"
11
+ emoji: "✍️"
11
12
  keywords:
12
13
  - scientific-writing
13
14
  - writing-tools
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "latex"
11
+ emoji: "🎨"
11
12
  keywords:
12
13
  - latex-drawing
13
14
  - tikz
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "latex"
11
+ emoji: "📋"
11
12
  keywords:
12
13
  - latex-templates
13
14
  - paper-templates
@@ -8,6 +8,7 @@ metadata:
8
8
  openclaw:
9
9
  category: "writing"
10
10
  subcategory: "templates"
11
+ emoji: "🎓"
11
12
  keywords:
12
13
  - thesis-template
13
14
  - latex-thesis