@wentorai/research-plugins 1.0.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 (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -0
  3. package/curated/analysis/README.md +64 -0
  4. package/curated/domains/README.md +104 -0
  5. package/curated/literature/README.md +53 -0
  6. package/curated/research/README.md +62 -0
  7. package/curated/tools/README.md +87 -0
  8. package/curated/writing/README.md +61 -0
  9. package/index.ts +39 -0
  10. package/mcp-configs/academic-db/ChatSpatial.json +17 -0
  11. package/mcp-configs/academic-db/academia-mcp.json +17 -0
  12. package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
  13. package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
  14. package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
  15. package/mcp-configs/academic-db/all-in-mcp.json +17 -0
  16. package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
  17. package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
  18. package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
  19. package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
  20. package/mcp-configs/academic-db/biomcp.json +17 -0
  21. package/mcp-configs/academic-db/biothings-mcp.json +17 -0
  22. package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
  23. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
  24. package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
  25. package/mcp-configs/academic-db/dicom-mcp.json +17 -0
  26. package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
  27. package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
  28. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
  29. package/mcp-configs/academic-db/fhir-mcp.json +19 -0
  30. package/mcp-configs/academic-db/gget-mcp.json +17 -0
  31. package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
  32. package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
  33. package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
  34. package/mcp-configs/academic-db/lex.json +17 -0
  35. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
  36. package/mcp-configs/ai-platform/ai-counsel.json +17 -0
  37. package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
  38. package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
  39. package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
  40. package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
  41. package/mcp-configs/browser/decipher-research-agent.json +17 -0
  42. package/mcp-configs/browser/deep-research.json +17 -0
  43. package/mcp-configs/browser/everything-claude-code.json +17 -0
  44. package/mcp-configs/browser/gpt-researcher.json +17 -0
  45. package/mcp-configs/browser/heurist-agent-framework.json +17 -0
  46. package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
  47. package/mcp-configs/data-platform/context-keeper.json +17 -0
  48. package/mcp-configs/data-platform/context7.json +19 -0
  49. package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
  50. package/mcp-configs/data-platform/email-mcp.json +17 -0
  51. package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
  52. package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
  53. package/mcp-configs/note-knowledge/agent-memory.json +17 -0
  54. package/mcp-configs/note-knowledge/aimemo.json +17 -0
  55. package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
  56. package/mcp-configs/note-knowledge/cognee.json +17 -0
  57. package/mcp-configs/note-knowledge/context-awesome.json +17 -0
  58. package/mcp-configs/note-knowledge/context-mcp.json +17 -0
  59. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
  60. package/mcp-configs/note-knowledge/cortex.json +17 -0
  61. package/mcp-configs/note-knowledge/devrag.json +17 -0
  62. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
  63. package/mcp-configs/note-knowledge/engram.json +17 -0
  64. package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
  65. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
  66. package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
  67. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
  68. package/mcp-configs/reference-mgr/chiken.json +17 -0
  69. package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
  70. package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
  71. package/mcp-configs/registry.json +447 -0
  72. package/openclaw.plugin.json +21 -0
  73. package/package.json +61 -0
  74. package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
  75. package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
  76. package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
  77. package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
  78. package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
  79. package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
  80. package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
  81. package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
  82. package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
  83. package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
  84. package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
  85. package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
  86. package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
  87. package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
  88. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
  89. package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
  90. package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
  91. package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
  92. package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
  93. package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
  94. package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
  95. package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
  96. package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
  97. package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
  98. package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
  99. package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
  100. package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
  101. package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
  102. package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
  103. package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
  104. package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
  105. package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
  106. package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
  107. package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
  108. package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
  109. package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
  110. package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
  111. package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
  112. package/skills/domains/cs/dblp-api/SKILL.md +129 -0
  113. package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
  114. package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
  115. package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
  116. package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
  117. package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
  118. package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
  119. package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
  120. package/skills/domains/economics/fred-api/SKILL.md +189 -0
  121. package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
  122. package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
  123. package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
  124. package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
  125. package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
  126. package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
  127. package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
  128. package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
  129. package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
  130. package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
  131. package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
  132. package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
  133. package/skills/domains/math/oeis-api/SKILL.md +158 -0
  134. package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
  135. package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
  136. package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
  137. package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
  138. package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
  139. package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
  140. package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
  141. package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
  142. package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
  143. package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
  144. package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
  145. package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
  146. package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
  147. package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
  148. package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
  149. package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
  150. package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
  151. package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
  152. package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
  153. package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
  154. package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
  155. package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
  156. package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
  157. package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
  158. package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
  159. package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
  160. package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
  161. package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
  162. package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
  163. package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
  164. package/skills/literature/search/arxiv-api/SKILL.md +95 -0
  165. package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
  166. package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
  167. package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
  168. package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
  169. package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
  170. package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
  171. package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
  172. package/skills/literature/search/openalex-api/SKILL.md +134 -0
  173. package/skills/literature/search/pubmed-api/SKILL.md +130 -0
  174. package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
  175. package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
  176. package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
  177. package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
  178. package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
  179. package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
  180. package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
  181. package/skills/research/deep-research/research-cog/SKILL.md +153 -0
  182. package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
  183. package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
  184. package/skills/research/funding/figshare-api/SKILL.md +163 -0
  185. package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
  186. package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
  187. package/skills/research/funding/open-science-guide/SKILL.md +255 -0
  188. package/skills/research/funding/zenodo-api/SKILL.md +174 -0
  189. package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
  190. package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
  191. package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
  192. package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
  193. package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
  194. package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
  195. package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
  196. package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
  197. package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
  198. package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
  199. package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
  200. package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
  201. package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
  202. package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
  203. package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
  204. package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
  205. package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
  206. package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
  207. package/skills/tools/document/anystyle-api/SKILL.md +199 -0
  208. package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
  209. package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
  210. package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
  211. package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
  212. package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
  213. package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
  214. package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
  215. package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
  216. package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
  217. package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
  218. package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
  219. package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
  220. package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
  221. package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
  222. package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
  223. package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
  224. package/skills/writing/citation/zotero-api/SKILL.md +188 -0
  225. package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
  226. package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
  227. package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
  228. package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
  229. package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
  230. package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
  231. package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
  232. package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
  233. package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
  234. package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
  235. package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
  236. package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
  237. package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
  238. package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
  239. package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
  240. package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
  241. package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
  242. package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
  243. package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
  244. package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
  245. package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
  246. package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
  247. package/src/tools/arxiv.ts +131 -0
  248. package/src/tools/crossref.ts +112 -0
  249. package/src/tools/openalex.ts +174 -0
  250. package/src/tools/pubmed.ts +166 -0
  251. package/src/tools/semantic-scholar.ts +108 -0
  252. package/src/tools/unpaywall.ts +58 -0
@@ -0,0 +1,397 @@
1
+ ---
2
+ name: plantuml-guide
3
+ description: "Create UML diagrams and architecture visualizations with PlantUML"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "diagram"
7
+ category: "tools"
8
+ subcategory: "diagram"
9
+ keywords: ["UML diagram", "PlantUML", "architecture diagram", "flow chart"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # PlantUML Guide
14
+
15
+ Create UML diagrams, architecture visualizations, flowcharts, and other technical diagrams using PlantUML's text-based notation for reproducible, version-controllable diagrams.
16
+
17
+ ## Getting Started
18
+
19
+ PlantUML generates diagrams from plain text descriptions. Diagrams are defined in `.puml` files and rendered to PNG, SVG, or PDF.
20
+
21
+ ### Installation Options
22
+
23
+ | Method | Command / URL | Best For |
24
+ |--------|--------------|----------|
25
+ | VS Code extension | Install "PlantUML" by jebbs | IDE integration |
26
+ | CLI (Java JAR) | `java -jar plantuml.jar diagram.puml` | Batch processing |
27
+ | Online server | plantuml.com/plantuml | Quick prototyping |
28
+ | Docker | `docker run plantuml/plantuml-server` | Self-hosted server |
29
+ | Python | `pip install plantuml` | Python integration |
30
+ | Jupyter | `pip install iplantuml` | Notebook integration |
31
+
32
+ ### Basic Syntax
33
+
34
+ ```plantuml
35
+ @startuml
36
+ title My First Diagram
37
+
38
+ Alice -> Bob: Hello
39
+ Bob --> Alice: Hi there!
40
+
41
+ @enduml
42
+ ```
43
+
44
+ ## Sequence Diagrams
45
+
46
+ Model interactions between components over time:
47
+
48
+ ```plantuml
49
+ @startuml
50
+ title Research Paper Submission Workflow
51
+
52
+ actor Author
53
+ participant "Submission\nSystem" as SS
54
+ participant "Editor" as Ed
55
+ participant "Reviewer 1" as R1
56
+ participant "Reviewer 2" as R2
57
+
58
+ Author -> SS: Submit manuscript
59
+ activate SS
60
+ SS -> Ed: Notify new submission
61
+ activate Ed
62
+
63
+ Ed -> SS: Assign reviewers
64
+ SS -> R1: Review request
65
+ SS -> R2: Review request
66
+
67
+ activate R1
68
+ activate R2
69
+
70
+ R1 -> SS: Submit review (Accept)
71
+ deactivate R1
72
+ R2 -> SS: Submit review (Minor revision)
73
+ deactivate R2
74
+
75
+ Ed -> SS: Decision: Minor revision
76
+ SS -> Author: Revision request
77
+ deactivate Ed
78
+ deactivate SS
79
+
80
+ Author -> SS: Submit revised manuscript
81
+ activate SS
82
+ SS -> Ed: Notify revision
83
+ Ed -> SS: Accept
84
+ SS -> Author: Acceptance notification
85
+ deactivate SS
86
+
87
+ @enduml
88
+ ```
89
+
90
+ ## Class Diagrams
91
+
92
+ Model system structure and relationships:
93
+
94
+ ```plantuml
95
+ @startuml
96
+ title Research Data Model
97
+
98
+ class Paper {
99
+ +id: UUID
100
+ +title: String
101
+ +abstract: String
102
+ +doi: String
103
+ +year: Integer
104
+ +venue: String
105
+ --
106
+ +getCitations(): List<Paper>
107
+ +getAuthors(): List<Author>
108
+ +getBibTeX(): String
109
+ }
110
+
111
+ class Author {
112
+ +id: UUID
113
+ +name: String
114
+ +orcid: String
115
+ +affiliation: String
116
+ +h_index: Integer
117
+ --
118
+ +getPapers(): List<Paper>
119
+ +getCoauthors(): List<Author>
120
+ }
121
+
122
+ class Dataset {
123
+ +id: UUID
124
+ +name: String
125
+ +doi: String
126
+ +license: String
127
+ +size_bytes: Long
128
+ --
129
+ +download(): File
130
+ +getCitation(): String
131
+ }
132
+
133
+ class Experiment {
134
+ +id: UUID
135
+ +description: String
136
+ +date: Date
137
+ +config: JSON
138
+ --
139
+ +run(): Results
140
+ +getMetrics(): Map
141
+ }
142
+
143
+ Paper "1" -- "*" Author : authored by >
144
+ Paper "1" -- "*" Dataset : uses >
145
+ Paper "1" -- "*" Experiment : contains >
146
+ Dataset "1" -- "*" Experiment : used in >
147
+ Paper "1" -- "*" Paper : cites >
148
+
149
+ @enduml
150
+ ```
151
+
152
+ ## Activity Diagrams (Flowcharts)
153
+
154
+ Model workflows and decision processes:
155
+
156
+ ```plantuml
157
+ @startuml
158
+ title Systematic Review Screening Process
159
+
160
+ start
161
+
162
+ :Import records from databases;
163
+ :Remove duplicates;
164
+
165
+ :Screen title and abstract;
166
+
167
+ if (Meets inclusion criteria?) then (yes)
168
+ :Retrieve full text;
169
+ if (Full text available?) then (yes)
170
+ :Screen full text;
171
+ if (Meets all criteria?) then (yes)
172
+ :Include in review;
173
+ :Extract data;
174
+ if (Suitable for meta-analysis?) then (yes)
175
+ :Include in meta-analysis;
176
+ else (no)
177
+ :Include in narrative synthesis;
178
+ endif
179
+ else (no)
180
+ :Exclude with reason;
181
+ endif
182
+ else (no)
183
+ :Mark as unavailable;
184
+ endif
185
+ else (no)
186
+ :Exclude;
187
+ endif
188
+
189
+ :Compile PRISMA flow diagram;
190
+ stop
191
+
192
+ @enduml
193
+ ```
194
+
195
+ ## Component Diagrams
196
+
197
+ Model system architecture:
198
+
199
+ ```plantuml
200
+ @startuml
201
+ title Research Platform Architecture
202
+
203
+ package "Web Frontend" {
204
+ [React SPA] as SPA
205
+ [Dashboard] as Dash
206
+ [Skills Browser] as Skills
207
+ }
208
+
209
+ package "API Gateway" {
210
+ [FastAPI Server] as API
211
+ [Auth Service] as Auth
212
+ [Rate Limiter] as RL
213
+ }
214
+
215
+ package "Backend Services" {
216
+ [Paper Search] as PS
217
+ [Citation Graph] as CG
218
+ [Skill Registry] as SR
219
+ }
220
+
221
+ package "Data Layer" {
222
+ database "PostgreSQL" as PG
223
+ database "Redis Cache" as Redis
224
+ database "Elasticsearch" as ES
225
+ }
226
+
227
+ package "External APIs" {
228
+ [Semantic Scholar] as S2
229
+ [CrossRef] as CR
230
+ [OpenAlex] as OA
231
+ }
232
+
233
+ SPA --> API : HTTPS
234
+ Dash --> API : HTTPS
235
+ Skills --> API : HTTPS
236
+
237
+ API --> Auth : validate token
238
+ API --> RL : check rate limit
239
+ API --> PS : search request
240
+ API --> CG : graph query
241
+ API --> SR : skill lookup
242
+
243
+ PS --> ES : full-text search
244
+ PS --> S2 : paper metadata
245
+ PS --> CR : DOI resolution
246
+
247
+ CG --> PG : citation data
248
+ CG --> OA : citation graph
249
+
250
+ SR --> PG : skill metadata
251
+ SR --> Redis : cache
252
+
253
+ @enduml
254
+ ```
255
+
256
+ ## State Diagrams
257
+
258
+ Model system states and transitions:
259
+
260
+ ```plantuml
261
+ @startuml
262
+ title Paper Lifecycle States
263
+
264
+ [*] --> Draft
265
+
266
+ Draft --> Submitted : Author submits
267
+ Submitted --> UnderReview : Editor assigns reviewers
268
+ Submitted --> DeskRejected : Editor rejects
269
+
270
+ UnderReview --> RevisionRequired : Minor/Major revision
271
+ UnderReview --> Accepted : Accept as is
272
+ UnderReview --> Rejected : Reject
273
+
274
+ RevisionRequired --> UnderReview : Author resubmits
275
+ RevisionRequired --> Withdrawn : Author withdraws
276
+
277
+ Accepted --> InProduction : Copy editing
278
+ InProduction --> Published : Online first
279
+ Published --> [*]
280
+
281
+ DeskRejected --> [*]
282
+ Rejected --> [*]
283
+ Withdrawn --> [*]
284
+
285
+ @enduml
286
+ ```
287
+
288
+ ## Gantt Charts
289
+
290
+ Plan research timelines:
291
+
292
+ ```plantuml
293
+ @startuml
294
+ title Research Project Timeline
295
+
296
+ Project starts 2025-01-01
297
+
298
+ [Literature Review] starts 2025-01-01 and lasts 8 weeks
299
+ [Research Design] starts at [Literature Review]'s end and lasts 4 weeks
300
+ [IRB Approval] starts at [Research Design]'s end and lasts 6 weeks
301
+ [Data Collection] starts at [IRB Approval]'s end and lasts 12 weeks
302
+ [Data Analysis] starts at [Data Collection]'s end and lasts 8 weeks
303
+ [Paper Writing] starts at [Data Analysis]'s end and lasts 10 weeks
304
+ [Peer Review] starts at [Paper Writing]'s end and lasts 12 weeks
305
+ [Revision] starts at [Peer Review]'s end and lasts 6 weeks
306
+
307
+ -- Milestones --
308
+ [Proposal Defense] happens at [Research Design]'s end
309
+ [Conference Presentation] happens at [Data Analysis]'s end
310
+ [Submission] happens at [Paper Writing]'s end
311
+
312
+ @enduml
313
+ ```
314
+
315
+ ## Mind Maps
316
+
317
+ Organize research topics:
318
+
319
+ ```plantuml
320
+ @startmindmap
321
+ title Machine Learning Research Landscape
322
+
323
+ * Machine Learning
324
+ ** Supervised Learning
325
+ *** Classification
326
+ **** SVM
327
+ **** Decision Trees
328
+ **** Neural Networks
329
+ *** Regression
330
+ **** Linear Regression
331
+ **** Gradient Boosting
332
+ ** Unsupervised Learning
333
+ *** Clustering
334
+ **** K-Means
335
+ **** DBSCAN
336
+ *** Dimensionality Reduction
337
+ **** PCA
338
+ **** t-SNE
339
+ **** UMAP
340
+ ** Reinforcement Learning
341
+ *** Model-Free
342
+ **** DQN
343
+ **** PPO
344
+ *** Model-Based
345
+ **** Dreamer
346
+ **** MuZero
347
+ ** Deep Learning
348
+ *** CNNs
349
+ *** Transformers
350
+ *** GANs
351
+ *** Diffusion Models
352
+
353
+ @endmindmap
354
+ ```
355
+
356
+ ## Integration with LaTeX
357
+
358
+ ```latex
359
+ \usepackage{plantuml}
360
+
361
+ \begin{plantuml}
362
+ @startuml
363
+ Alice -> Bob: Hello
364
+ Bob --> Alice: Hi
365
+ @enduml
366
+ \end{plantuml}
367
+
368
+ % Compile with: pdflatex -shell-escape paper.tex
369
+ ```
370
+
371
+ ## Integration with Markdown (Mermaid Alternative)
372
+
373
+ Many Markdown renderers (GitHub, GitLab, Notion) support Mermaid natively. PlantUML can be used via plugins or pre-rendering:
374
+
375
+ ```python
376
+ # Pre-render PlantUML to SVG for Markdown embedding
377
+ import plantuml
378
+
379
+ server = plantuml.PlantUML(url="http://www.plantuml.com/plantuml/svg/")
380
+ svg_content = server.processes("""
381
+ @startuml
382
+ Alice -> Bob: Hello
383
+ @enduml
384
+ """)
385
+
386
+ with open("diagram.svg", "wb") as f:
387
+ f.write(svg_content)
388
+ ```
389
+
390
+ ## Best Practices
391
+
392
+ 1. **Version control your diagrams**: Store `.puml` files alongside code/documentation in git.
393
+ 2. **Use consistent styling**: Define skinparams at the top of each file for consistent colors and fonts.
394
+ 3. **Keep diagrams focused**: One diagram per concept; split complex architectures into multiple views.
395
+ 4. **Add legends and notes**: Use `note left of`, `note right of`, or `legend` blocks to clarify semantics.
396
+ 5. **Automate rendering**: Include PlantUML rendering in CI/CD pipelines to keep documentation current.
397
+ 6. **Export as SVG**: Prefer SVG over PNG for scalable diagrams in papers and presentations.
@@ -0,0 +1,225 @@
1
+ ---
2
+ name: scientific-illustration-guide
3
+ description: "Create graphical abstracts, schematic diagrams, and scientific illustrations"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "crayon"
7
+ category: "tools"
8
+ subcategory: "diagram"
9
+ keywords: ["scientific illustration", "graphical abstract", "schematic diagram", "architecture diagram", "vector graphics"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Scientific Illustration Guide
14
+
15
+ A skill for creating clear, professional scientific illustrations including graphical abstracts, schematic diagrams, workflow visualizations, and architecture diagrams. Covers both programmatic and design tool approaches.
16
+
17
+ ## Graphical Abstract Design
18
+
19
+ ### Composition Principles
20
+
21
+ ```
22
+ Layout Guidelines for Graphical Abstracts:
23
+ - Dimensions: typically 500x300px to 1200x800px (check journal spec)
24
+ - Flow direction: left-to-right or top-to-bottom
25
+ - Maximum 5-7 visual elements
26
+ - Use arrows to show process flow
27
+ - Include 1-2 key data points or results
28
+ - Minimal text (30-50 words maximum)
29
+ - Consistent color scheme (3-4 colors)
30
+
31
+ Structure:
32
+ [Input/Problem] --> [Method/Process] --> [Output/Finding]
33
+ ```
34
+
35
+ ### Programmatic Diagrams with Python
36
+
37
+ ```python
38
+ import matplotlib.pyplot as plt
39
+ import matplotlib.patches as patches
40
+ from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
41
+
42
+ def create_workflow_diagram(steps: list[dict], output: str = 'workflow.pdf'):
43
+ """
44
+ Create a horizontal workflow diagram.
45
+
46
+ Args:
47
+ steps: List of dicts with 'label', 'color', and optional 'sublabel'
48
+ output: Output file path
49
+ """
50
+ fig, ax = plt.subplots(figsize=(12, 3))
51
+ n = len(steps)
52
+ box_width = 0.12
53
+ gap = (1 - n * box_width) / (n + 1)
54
+
55
+ for i, step in enumerate(steps):
56
+ x = gap + i * (box_width + gap)
57
+ y = 0.3
58
+
59
+ # Draw box
60
+ box = FancyBboxPatch(
61
+ (x, y), box_width, 0.4,
62
+ boxstyle="round,pad=0.01",
63
+ facecolor=step.get('color', '#3B82F6'),
64
+ edgecolor='#1E293B',
65
+ linewidth=1.5,
66
+ alpha=0.9
67
+ )
68
+ ax.add_patch(box)
69
+
70
+ # Add label
71
+ ax.text(x + box_width/2, y + 0.2, step['label'],
72
+ ha='center', va='center', fontsize=9,
73
+ fontweight='bold', color='white')
74
+
75
+ if 'sublabel' in step:
76
+ ax.text(x + box_width/2, y - 0.08, step['sublabel'],
77
+ ha='center', va='center', fontsize=7, color='#475569')
78
+
79
+ # Draw arrow to next step
80
+ if i < n - 1:
81
+ ax.annotate('', xy=(x + box_width + gap*0.2, 0.5),
82
+ xytext=(x + box_width + gap*0.8, 0.5),
83
+ arrowprops=dict(arrowstyle='->', color='#64748B',
84
+ lw=1.5))
85
+
86
+ ax.set_xlim(0, 1)
87
+ ax.set_ylim(0, 1)
88
+ ax.axis('off')
89
+ fig.savefig(output, dpi=300, bbox_inches='tight',
90
+ facecolor='white', edgecolor='none')
91
+ plt.close()
92
+ return output
93
+
94
+ # Example: research pipeline
95
+ steps = [
96
+ {'label': 'Data\nCollection', 'color': '#3B82F6', 'sublabel': 'N=1,200'},
97
+ {'label': 'Preprocessing', 'color': '#6366F1', 'sublabel': 'QC + Filtering'},
98
+ {'label': 'Analysis', 'color': '#8B5CF6', 'sublabel': 'ML Pipeline'},
99
+ {'label': 'Validation', 'color': '#A855F7', 'sublabel': 'Cross-validation'},
100
+ {'label': 'Results', 'color': '#EC4899', 'sublabel': 'AUC = 0.92'}
101
+ ]
102
+ create_workflow_diagram(steps, 'research_pipeline.pdf')
103
+ ```
104
+
105
+ ## Schematic Diagrams
106
+
107
+ ### System Architecture Diagrams
108
+
109
+ ```python
110
+ import matplotlib.pyplot as plt
111
+ from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
112
+
113
+ def create_architecture_diagram(components: list[dict],
114
+ connections: list[tuple],
115
+ output: str = 'architecture.pdf'):
116
+ """
117
+ Create a system architecture diagram.
118
+
119
+ Args:
120
+ components: List of {'name', 'x', 'y', 'width', 'height', 'color', 'type'}
121
+ connections: List of (source_name, target_name, label) tuples
122
+ """
123
+ fig, ax = plt.subplots(figsize=(10, 7))
124
+
125
+ # Draw components
126
+ comp_positions = {}
127
+ for comp in components:
128
+ x, y = comp['x'], comp['y']
129
+ w, h = comp.get('width', 1.5), comp.get('height', 0.8)
130
+ color = comp.get('color', '#3B82F6')
131
+
132
+ if comp.get('type') == 'database':
133
+ # Cylinder shape for databases
134
+ ellipse_h = 0.15
135
+ ax.add_patch(patches.Rectangle((x, y), w, h-ellipse_h,
136
+ facecolor=color, edgecolor='#1E293B', linewidth=1.2))
137
+ ax.add_patch(patches.Ellipse((x+w/2, y+h-ellipse_h), w, ellipse_h*2,
138
+ facecolor=color, edgecolor='#1E293B', linewidth=1.2))
139
+ ax.add_patch(patches.Ellipse((x+w/2, y), w, ellipse_h*2,
140
+ facecolor=color, edgecolor='#1E293B', linewidth=1.2))
141
+ else:
142
+ box = FancyBboxPatch((x, y), w, h,
143
+ boxstyle="round,pad=0.05",
144
+ facecolor=color, edgecolor='#1E293B',
145
+ linewidth=1.2, alpha=0.9)
146
+ ax.add_patch(box)
147
+
148
+ ax.text(x + w/2, y + h/2, comp['name'],
149
+ ha='center', va='center', fontsize=10,
150
+ fontweight='bold', color='white')
151
+
152
+ comp_positions[comp['name']] = (x + w/2, y + h/2, w, h)
153
+
154
+ # Draw connections
155
+ for src, tgt, label in connections:
156
+ sx, sy, sw, sh = comp_positions[src]
157
+ tx, ty, tw, th = comp_positions[tgt]
158
+
159
+ ax.annotate('', xy=(tx, ty + th/2 if sy > ty else ty - th/2),
160
+ xytext=(sx, sy - sh/2 if sy > ty else sy + sh/2),
161
+ arrowprops=dict(arrowstyle='->', color='#64748B',
162
+ lw=1.5, connectionstyle='arc3,rad=0.1'))
163
+
164
+ mid_x = (sx + tx) / 2
165
+ mid_y = (sy + ty) / 2
166
+ if label:
167
+ ax.text(mid_x + 0.1, mid_y, label, fontsize=7, color='#475569')
168
+
169
+ ax.set_xlim(-0.5, 10)
170
+ ax.set_ylim(-0.5, 8)
171
+ ax.set_aspect('equal')
172
+ ax.axis('off')
173
+ fig.savefig(output, dpi=300, bbox_inches='tight',
174
+ facecolor='white')
175
+ plt.close()
176
+ ```
177
+
178
+ ## Vector Graphics with Drawio
179
+
180
+ For complex diagrams, use draw.io (diagrams.net) which exports to SVG, PDF, and PNG:
181
+
182
+ ```xml
183
+ <!-- Example draw.io XML structure -->
184
+ <mxGraphModel>
185
+ <root>
186
+ <mxCell id="0"/>
187
+ <mxCell id="1" parent="0"/>
188
+ <mxCell id="2" value="Data Source" style="rounded=1;fillColor=#3B82F6;
189
+ fontColor=#FFFFFF;strokeColor=#1E40AF;" vertex="1" parent="1">
190
+ <mxGeometry x="80" y="80" width="120" height="60" as="geometry"/>
191
+ </mxCell>
192
+ </root>
193
+ </mxGraphModel>
194
+ ```
195
+
196
+ ### Recommended Tools by Diagram Type
197
+
198
+ | Diagram Type | Best Tool | Output Format | Learning Curve |
199
+ |-------------|-----------|---------------|----------------|
200
+ | Flowcharts | draw.io / Mermaid | SVG, PDF | Low |
201
+ | Molecular structures | ChemDraw / RDKit | SVG, PNG | Medium |
202
+ | Biological pathways | BioRender / KEGG | PNG, SVG | Low |
203
+ | Network graphs | Cytoscape / NetworkX | SVG, PDF | Medium |
204
+ | 3D protein structures | PyMOL / ChimeraX | PNG, TIFF | High |
205
+ | Circuit diagrams | KiCad / CircuiTikZ | PDF, SVG | Medium |
206
+ | Math diagrams | TikZ/PGF | PDF | High |
207
+ | UML diagrams | PlantUML / Mermaid | SVG, PNG | Low |
208
+
209
+ ## Color and Accessibility
210
+
211
+ Use colorblind-safe palettes consistently. The key rules:
212
+
213
+ 1. Never use red and green together to encode different categories
214
+ 2. Use both color and shape/pattern to distinguish elements
215
+ 3. Ensure sufficient contrast (WCAG AA: 4.5:1 ratio for text)
216
+ 4. Test your diagram in grayscale to verify it remains interpretable
217
+ 5. Label elements directly rather than relying solely on a color legend
218
+
219
+ ## Export and Journal Compliance
220
+
221
+ - Export vector formats (SVG, PDF, EPS) for line art and diagrams
222
+ - Minimum 300 DPI for raster elements within diagrams
223
+ - Embed fonts or convert text to paths in final SVG/PDF
224
+ - Check journal-specific requirements for graphical abstract dimensions and file size
225
+ - Name files following journal convention (e.g., "Figure_1.pdf", "graphical_abstract.tiff")