research-copilot 0.1.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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +190 -0
  3. package/app/build/icon.icns +0 -0
  4. package/app/build/icon.ico +0 -0
  5. package/app/build/icon.png +0 -0
  6. package/app/out/main/index.mjs +6719 -0
  7. package/app/out/preload/index.js +141 -0
  8. package/app/out/renderer/assets/Inter-Variable-Latin-8kRkwJBP.woff2 +0 -0
  9. package/app/out/renderer/assets/Inter-Variable-LatinExt-B_-bZUTo.woff2 +0 -0
  10. package/app/out/renderer/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  11. package/app/out/renderer/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  12. package/app/out/renderer/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  13. package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  14. package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  15. package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  16. package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  17. package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  18. package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  19. package/app/out/renderer/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  20. package/app/out/renderer/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  21. package/app/out/renderer/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  22. package/app/out/renderer/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  23. package/app/out/renderer/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  24. package/app/out/renderer/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  25. package/app/out/renderer/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  26. package/app/out/renderer/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  27. package/app/out/renderer/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  28. package/app/out/renderer/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  29. package/app/out/renderer/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  30. package/app/out/renderer/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  31. package/app/out/renderer/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  32. package/app/out/renderer/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  33. package/app/out/renderer/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  34. package/app/out/renderer/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  35. package/app/out/renderer/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  36. package/app/out/renderer/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  37. package/app/out/renderer/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  38. package/app/out/renderer/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  39. package/app/out/renderer/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  40. package/app/out/renderer/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  41. package/app/out/renderer/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  42. package/app/out/renderer/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  43. package/app/out/renderer/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  44. package/app/out/renderer/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  45. package/app/out/renderer/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  46. package/app/out/renderer/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  47. package/app/out/renderer/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  48. package/app/out/renderer/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  49. package/app/out/renderer/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  50. package/app/out/renderer/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  51. package/app/out/renderer/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  52. package/app/out/renderer/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  53. package/app/out/renderer/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  54. package/app/out/renderer/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  55. package/app/out/renderer/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  56. package/app/out/renderer/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  57. package/app/out/renderer/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  58. package/app/out/renderer/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  59. package/app/out/renderer/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  60. package/app/out/renderer/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  61. package/app/out/renderer/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  62. package/app/out/renderer/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  63. package/app/out/renderer/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  64. package/app/out/renderer/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  65. package/app/out/renderer/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  66. package/app/out/renderer/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  67. package/app/out/renderer/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  68. package/app/out/renderer/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  69. package/app/out/renderer/assets/MilkdownMarkdownEditor-bLPxrCVb.js +89821 -0
  70. package/app/out/renderer/assets/MilkdownMarkdownEditor-tTNRIB2K.css +2555 -0
  71. package/app/out/renderer/assets/Tableau10-BqnYsPR6.js +9 -0
  72. package/app/out/renderer/assets/apl-fqmucPXA.js +140 -0
  73. package/app/out/renderer/assets/arc-J47ePHZ2.js +132 -0
  74. package/app/out/renderer/assets/array-DgktLKBx.js +6 -0
  75. package/app/out/renderer/assets/asciiarmor-DucZyvP0.js +56 -0
  76. package/app/out/renderer/assets/asn1-BnOEsgAm.js +144 -0
  77. package/app/out/renderer/assets/asterisk-QAlztEwS.js +345 -0
  78. package/app/out/renderer/assets/blockDiagram-c4efeb88-5uRQXgQJ.js +1817 -0
  79. package/app/out/renderer/assets/brainfuck-DZVCuF_t.js +53 -0
  80. package/app/out/renderer/assets/c4Diagram-c83219d4-C4iCTPEL.js +2464 -0
  81. package/app/out/renderer/assets/channel-ZAmhHE3g.js +7 -0
  82. package/app/out/renderer/assets/classDiagram-beda092f-7NOZxq_W.js +357 -0
  83. package/app/out/renderer/assets/classDiagram-v2-2358418a-5fPT-cUH.js +291 -0
  84. package/app/out/renderer/assets/clike-xqXYL6ge.js +805 -0
  85. package/app/out/renderer/assets/clojure-BhXMqnxz.js +849 -0
  86. package/app/out/renderer/assets/clone-CsnzsYXQ.js +8 -0
  87. package/app/out/renderer/assets/cmake-BGaNd9E7.js +71 -0
  88. package/app/out/renderer/assets/cobol-4yqQntpt.js +120 -0
  89. package/app/out/renderer/assets/coffeescript-D2dXvhEc.js +308 -0
  90. package/app/out/renderer/assets/commonlisp-CF_VNHQR.js +130 -0
  91. package/app/out/renderer/assets/createText-1719965b-Cji7KN4K.js +4904 -0
  92. package/app/out/renderer/assets/crystal-DyuLTqLs.js +398 -0
  93. package/app/out/renderer/assets/css-c-jst79C.js +1783 -0
  94. package/app/out/renderer/assets/cypher-Dlu_3r4V.js +121 -0
  95. package/app/out/renderer/assets/d-UURgV0Ux.js +179 -0
  96. package/app/out/renderer/assets/diff-B_Bi2Crb.js +25 -0
  97. package/app/out/renderer/assets/dockerfile-Bvk733Ga.js +201 -0
  98. package/app/out/renderer/assets/dtd-Dy74G54E.js +114 -0
  99. package/app/out/renderer/assets/dylan-TSb-Nfix.js +314 -0
  100. package/app/out/renderer/assets/ebnf-DAomQUbD.js +139 -0
  101. package/app/out/renderer/assets/ecl-B59qGGVg.js +178 -0
  102. package/app/out/renderer/assets/edges-96097737-CD0EvAZQ.js +1844 -0
  103. package/app/out/renderer/assets/eiffel-Dze7nlu3.js +134 -0
  104. package/app/out/renderer/assets/elm-DG7jkhNZ.js +176 -0
  105. package/app/out/renderer/assets/erDiagram-0228fc6a-DRYXBpi7.js +1321 -0
  106. package/app/out/renderer/assets/erlang-BO6gOnGA.js +674 -0
  107. package/app/out/renderer/assets/factor-CMxFHDqz.js +65 -0
  108. package/app/out/renderer/assets/fcl-CDDUNjTj.js +141 -0
  109. package/app/out/renderer/assets/flowDb-c6c81e3f-CuoIN-Cy.js +1713 -0
  110. package/app/out/renderer/assets/flowDiagram-50d868cf-CPWPLOml.js +1272 -0
  111. package/app/out/renderer/assets/flowDiagram-v2-4f6560a1-C_R12s4S.js +33 -0
  112. package/app/out/renderer/assets/flowchart-elk-definition-6af322e1-BdKUSFpi.js +92921 -0
  113. package/app/out/renderer/assets/forth-B9D2JCeE.js +116 -0
  114. package/app/out/renderer/assets/fortran-CAG2BFbe.js +467 -0
  115. package/app/out/renderer/assets/ganttDiagram-a2739b55-ygqT5HlG.js +3399 -0
  116. package/app/out/renderer/assets/gas-d3KEcW3x.js +294 -0
  117. package/app/out/renderer/assets/gherkin-DhZlEZiy.js +115 -0
  118. package/app/out/renderer/assets/gitGraphDiagram-82fe8481-D97GT4iA.js +1791 -0
  119. package/app/out/renderer/assets/graph-DpC13d95.js +1237 -0
  120. package/app/out/renderer/assets/groovy-CpwJiBl7.js +223 -0
  121. package/app/out/renderer/assets/haskell-BlGBCCe3.js +459 -0
  122. package/app/out/renderer/assets/haxe-7MlzfeYV.js +514 -0
  123. package/app/out/renderer/assets/http-BqypyemW.js +79 -0
  124. package/app/out/renderer/assets/idl-4HIGJlDI.js +985 -0
  125. package/app/out/renderer/assets/index-4-ziknCv.js +292 -0
  126. package/app/out/renderer/assets/index-5325376f-Bbs7Fbqr.js +663 -0
  127. package/app/out/renderer/assets/index-B2jip-rk.js +2489 -0
  128. package/app/out/renderer/assets/index-BKTVfokE.js +312 -0
  129. package/app/out/renderer/assets/index-BiJbFgVG.js +118 -0
  130. package/app/out/renderer/assets/index-Bn433Fat.js +83 -0
  131. package/app/out/renderer/assets/index-BqDyyRCx.js +39679 -0
  132. package/app/out/renderer/assets/index-BzFMeMPn.js +158 -0
  133. package/app/out/renderer/assets/index-C-_uCjZJ.css +2701 -0
  134. package/app/out/renderer/assets/index-C1ithNW1.js +1765 -0
  135. package/app/out/renderer/assets/index-CAJkRYkO.js +407 -0
  136. package/app/out/renderer/assets/index-CleO0-yj.js +690 -0
  137. package/app/out/renderer/assets/index-Cq4MH3sY.js +1020 -0
  138. package/app/out/renderer/assets/index-CtA0Xj22.js +705 -0
  139. package/app/out/renderer/assets/index-CvAZkqBZ.js +83 -0
  140. package/app/out/renderer/assets/index-D3UDN-5c.js +152 -0
  141. package/app/out/renderer/assets/index-D4F9R5ao.js +179 -0
  142. package/app/out/renderer/assets/index-D6RguhZ5.js +328 -0
  143. package/app/out/renderer/assets/index-DnEowqXv.js +386 -0
  144. package/app/out/renderer/assets/index-K8c8Mqdy.js +98 -0
  145. package/app/out/renderer/assets/index-Kh14gO6K.js +62 -0
  146. package/app/out/renderer/assets/index-WFd2jRnA.js +333 -0
  147. package/app/out/renderer/assets/index-WgMfkRFp.js +313 -0
  148. package/app/out/renderer/assets/index-Y4lKyF6t.js +1042 -0
  149. package/app/out/renderer/assets/index-fx307_f1.js +643 -0
  150. package/app/out/renderer/assets/infoDiagram-8eee0895-ptaVSwzq.js +511 -0
  151. package/app/out/renderer/assets/init-ZxktEp_H.js +16 -0
  152. package/app/out/renderer/assets/javascript-C3MnDRiU.js +994 -0
  153. package/app/out/renderer/assets/journeyDiagram-c64418c1-aloEGOQp.js +1184 -0
  154. package/app/out/renderer/assets/julia-Bs6JJhYG.js +407 -0
  155. package/app/out/renderer/assets/layout-ZeuHE_aY.js +2217 -0
  156. package/app/out/renderer/assets/line-CAgaGl-S.js +45 -0
  157. package/app/out/renderer/assets/linear-DIg7lTe1.js +539 -0
  158. package/app/out/renderer/assets/livescript-DmzgM3Yt.js +296 -0
  159. package/app/out/renderer/assets/lua-8cJgIlqe.js +256 -0
  160. package/app/out/renderer/assets/mathematica-DNLOL9PQ.js +110 -0
  161. package/app/out/renderer/assets/mbox-Ga7d4MMN.js +117 -0
  162. package/app/out/renderer/assets/mindmap-definition-8da855dc-B8XVoUxz.js +36054 -0
  163. package/app/out/renderer/assets/mirc-Dma3B8rS.js +107 -0
  164. package/app/out/renderer/assets/mllike-DHn7xckP.js +334 -0
  165. package/app/out/renderer/assets/modelica-0d55jYY0.js +147 -0
  166. package/app/out/renderer/assets/mscgen-DdqZYINH.js +135 -0
  167. package/app/out/renderer/assets/mumps-Btr8VblO.js +93 -0
  168. package/app/out/renderer/assets/nginx-DTDtBDVN.js +141 -0
  169. package/app/out/renderer/assets/nsis-3zG7tgur.js +62 -0
  170. package/app/out/renderer/assets/ntriples-CvgOYMpL.js +153 -0
  171. package/app/out/renderer/assets/octave-DYBj3-tl.js +200 -0
  172. package/app/out/renderer/assets/ordinal-DSZU4PqD.js +76 -0
  173. package/app/out/renderer/assets/oz-R_e8WMIi.js +231 -0
  174. package/app/out/renderer/assets/pascal-GD8iposT.js +105 -0
  175. package/app/out/renderer/assets/path-Cp2qmpkd.js +109 -0
  176. package/app/out/renderer/assets/perl-DL9mHpoi.js +1105 -0
  177. package/app/out/renderer/assets/pieDiagram-a8764435-DlwoeBU2.js +770 -0
  178. package/app/out/renderer/assets/pig-C_4T4YIV.js +101 -0
  179. package/app/out/renderer/assets/powershell-B0suO7Vd.js +328 -0
  180. package/app/out/renderer/assets/properties-BR-vP1aU.js +58 -0
  181. package/app/out/renderer/assets/protobuf-BxgpyhoW.js +77 -0
  182. package/app/out/renderer/assets/pug-By0kVCfm.js +405 -0
  183. package/app/out/renderer/assets/puppet-Bdao66PW.js +137 -0
  184. package/app/out/renderer/assets/python-CvWbmiX4.js +427 -0
  185. package/app/out/renderer/assets/q-CrbCVq4a.js +131 -0
  186. package/app/out/renderer/assets/quadrantDiagram-1e28029f-BaSi1XB4.js +1200 -0
  187. package/app/out/renderer/assets/r-V7nswm59.js +170 -0
  188. package/app/out/renderer/assets/requirementDiagram-08caed73-D3EFyegZ.js +1092 -0
  189. package/app/out/renderer/assets/rpm-C-DLY-If.js +109 -0
  190. package/app/out/renderer/assets/ruby-JDKLJNK0.js +330 -0
  191. package/app/out/renderer/assets/sankeyDiagram-a04cb91d-Cv44AsnM.js +1174 -0
  192. package/app/out/renderer/assets/sas-D2UG-yhZ.js +207 -0
  193. package/app/out/renderer/assets/scheme-BKzrkGJD.js +222 -0
  194. package/app/out/renderer/assets/sequenceDiagram-c5b8d532-CuUBu-x4.js +3337 -0
  195. package/app/out/renderer/assets/shell-BlsXDxCn.js +222 -0
  196. package/app/out/renderer/assets/sieve-CjwBwOY5.js +135 -0
  197. package/app/out/renderer/assets/simple-mode-DMneyfDu.js +130 -0
  198. package/app/out/renderer/assets/smalltalk-BOIGQuhN.js +121 -0
  199. package/app/out/renderer/assets/solr-CwD7U71z.js +69 -0
  200. package/app/out/renderer/assets/sparql-DYskk2vE.js +249 -0
  201. package/app/out/renderer/assets/spreadsheet-Bgtt3oLP.js +87 -0
  202. package/app/out/renderer/assets/sql-BSrOzCRI.js +354 -0
  203. package/app/out/renderer/assets/stateDiagram-1ecb1508-BOU34Zp4.js +454 -0
  204. package/app/out/renderer/assets/stateDiagram-v2-c2b004d7-BgRoffou.js +326 -0
  205. package/app/out/renderer/assets/stex-B6LNC55o.js +231 -0
  206. package/app/out/renderer/assets/styles-b4e223ce-BMr9TPuj.js +1483 -0
  207. package/app/out/renderer/assets/styles-ca3715f6-DgbNw99p.js +1363 -0
  208. package/app/out/renderer/assets/styles-d45a18b0-DtRYKYKf.js +574 -0
  209. package/app/out/renderer/assets/stylus-BkS-boTH.js +565 -0
  210. package/app/out/renderer/assets/svgDrawCommon-b86b1483-Bein03PD.js +100 -0
  211. package/app/out/renderer/assets/swift-FRZi1uvB.js +291 -0
  212. package/app/out/renderer/assets/tcl-CUcaCdmq.js +114 -0
  213. package/app/out/renderer/assets/textile-BnFpjsrl.js +414 -0
  214. package/app/out/renderer/assets/tiddlywiki-CjprD-Qp.js +218 -0
  215. package/app/out/renderer/assets/tiki-B4EPSQ1G.js +265 -0
  216. package/app/out/renderer/assets/timeline-definition-faaaa080-BlWpLE_4.js +1212 -0
  217. package/app/out/renderer/assets/toml-BOuWGMcf.js +76 -0
  218. package/app/out/renderer/assets/troff-E1bJ0PPL.js +61 -0
  219. package/app/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +133 -0
  220. package/app/out/renderer/assets/ttcn-tKd4HLu4.js +192 -0
  221. package/app/out/renderer/assets/turtle-Dq7-1WAf.js +124 -0
  222. package/app/out/renderer/assets/vb-Dp90gtsv.js +196 -0
  223. package/app/out/renderer/assets/vbscript-CI6_mxxU.js +479 -0
  224. package/app/out/renderer/assets/velocity-BwIZK1TH.js +149 -0
  225. package/app/out/renderer/assets/verilog-DDCYnHN8.js +430 -0
  226. package/app/out/renderer/assets/vhdl-DCkMIyT9.js +158 -0
  227. package/app/out/renderer/assets/webidl-BTLTThCm.js +204 -0
  228. package/app/out/renderer/assets/xquery-BgiOC5Ce.js +525 -0
  229. package/app/out/renderer/assets/xychartDiagram-f5964ef8-Bhga-YXm.js +1799 -0
  230. package/app/out/renderer/assets/yacas-b5lAVEIl.js +130 -0
  231. package/app/out/renderer/assets/z80-BZV19vqv.js +93 -0
  232. package/app/out/renderer/index.html +13 -0
  233. package/app/out/skills/community-builtin/README.md +29 -0
  234. package/app/out/skills/community-builtin/document-docx/SKILL.md +44 -0
  235. package/app/out/skills/community-builtin/document-docx/scripts/docx-to-markdown.sh +20 -0
  236. package/app/out/skills/community-builtin/document-docx/scripts/extract-docx-text.sh +28 -0
  237. package/app/out/skills/community-builtin/document-docx/scripts/init-docx-template.sh +32 -0
  238. package/app/out/skills/community-builtin/document-docx/scripts/setup-docx-tools.sh +10 -0
  239. package/app/out/skills/community-builtin/markitdown/SKILL.md +105 -0
  240. package/app/out/skills/community-builtin/markitdown/scripts/batch-convert.sh +40 -0
  241. package/app/out/skills/community-builtin/markitdown/scripts/convert-file.sh +24 -0
  242. package/app/out/skills/community-builtin/markitdown/scripts/setup-markitdown.sh +10 -0
  243. package/app/out/skills/community-builtin/repo-quick-audit/SKILL.md +27 -0
  244. package/app/out/skills/community-builtin/repo-quick-audit/scripts/audit-basics.sh +19 -0
  245. package/app/out/skills/research-pilot-default-project-skills/README.md +23 -0
  246. package/app/out/skills/research-pilot-default-project-skills/citation-management/SKILL.md +39 -0
  247. package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/doi-to-bibtex.sh +25 -0
  248. package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/normalize-bibtex-keys.sh +51 -0
  249. package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/setup-citation-tools.sh +10 -0
  250. package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/validate-bib.sh +31 -0
  251. package/app/out/skills/research-pilot-default-project-skills/matplotlib/SKILL.md +34 -0
  252. package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/api_reference.md +412 -0
  253. package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/common_issues.md +563 -0
  254. package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/plot_types.md +476 -0
  255. package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/styling_guide.md +589 -0
  256. package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/subagent_quickstart.md +30 -0
  257. package/app/out/skills/research-pilot-default-project-skills/matplotlib/scripts/plot_template.py +401 -0
  258. package/app/out/skills/research-pilot-default-project-skills/matplotlib/scripts/style_configurator.py +409 -0
  259. package/app/out/skills/research-pilot-default-project-skills/research-grants/SKILL.md +38 -0
  260. package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/check-grant-compliance.sh +40 -0
  261. package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/grant-summary-card.sh +32 -0
  262. package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/init-grant-structure.sh +70 -0
  263. package/app/package.json +77 -0
  264. package/bin/cli.mjs +56 -0
  265. package/lib/README.md +145 -0
  266. package/lib/skills/_generated.ts +13 -0
  267. package/lib/skills/builtin/brainstorming-research-ideas/SKILL.md +280 -0
  268. package/lib/skills/builtin/coding/SKILL.md +114 -0
  269. package/lib/skills/builtin/creative-thinking-for-research/SKILL.md +273 -0
  270. package/lib/skills/builtin/matplotlib/SKILL.md +361 -0
  271. package/lib/skills/builtin/matplotlib/references/api_reference.md +412 -0
  272. package/lib/skills/builtin/matplotlib/references/common_issues.md +563 -0
  273. package/lib/skills/builtin/matplotlib/references/plot_types.md +476 -0
  274. package/lib/skills/builtin/matplotlib/references/styling_guide.md +589 -0
  275. package/lib/skills/builtin/matplotlib/scripts/plot_template.py +401 -0
  276. package/lib/skills/builtin/matplotlib/scripts/style_configurator.py +409 -0
  277. package/lib/skills/builtin/paper-writing/SKILL.md +554 -0
  278. package/lib/skills/builtin/paper-writing/references/checklists.md +524 -0
  279. package/lib/skills/builtin/paper-writing/references/citation-workflow.md +562 -0
  280. package/lib/skills/builtin/paper-writing/references/reviewer-guidelines.md +462 -0
  281. package/lib/skills/builtin/paper-writing/references/sources.md +189 -0
  282. package/lib/skills/builtin/paper-writing/references/systems-conferences.md +260 -0
  283. package/lib/skills/builtin/paper-writing/references/writing-guide.md +476 -0
  284. package/lib/skills/builtin/paper-writing/templates/README.md +408 -0
  285. package/lib/skills/builtin/paper-writing/templates/aaai2026/README.md +534 -0
  286. package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  287. package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  288. package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.bib +111 -0
  289. package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
  290. package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.sty +315 -0
  291. package/lib/skills/builtin/paper-writing/templates/acl/README.md +50 -0
  292. package/lib/skills/builtin/paper-writing/templates/acl/acl.sty +312 -0
  293. package/lib/skills/builtin/paper-writing/templates/acl/acl_latex.tex +377 -0
  294. package/lib/skills/builtin/paper-writing/templates/acl/acl_lualatex.tex +101 -0
  295. package/lib/skills/builtin/paper-writing/templates/acl/acl_natbib.bst +1940 -0
  296. package/lib/skills/builtin/paper-writing/templates/acl/anthology.bib.txt +26 -0
  297. package/lib/skills/builtin/paper-writing/templates/acl/custom.bib +70 -0
  298. package/lib/skills/builtin/paper-writing/templates/acl/formatting.md +326 -0
  299. package/lib/skills/builtin/paper-writing/templates/asplos2027/main.tex +459 -0
  300. package/lib/skills/builtin/paper-writing/templates/asplos2027/references.bib +135 -0
  301. package/lib/skills/builtin/paper-writing/templates/colm2025/README.md +3 -0
  302. package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
  303. package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
  304. package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
  305. package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
  306. package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
  307. package/lib/skills/builtin/paper-writing/templates/colm2025/fancyhdr.sty +485 -0
  308. package/lib/skills/builtin/paper-writing/templates/colm2025/math_commands.tex +508 -0
  309. package/lib/skills/builtin/paper-writing/templates/colm2025/natbib.sty +1246 -0
  310. package/lib/skills/builtin/paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
  311. package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
  312. package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
  313. package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
  314. package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
  315. package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
  316. package/lib/skills/builtin/paper-writing/templates/iclr2026/math_commands.tex +508 -0
  317. package/lib/skills/builtin/paper-writing/templates/iclr2026/natbib.sty +1246 -0
  318. package/lib/skills/builtin/paper-writing/templates/icml2026/algorithm.sty +79 -0
  319. package/lib/skills/builtin/paper-writing/templates/icml2026/algorithmic.sty +201 -0
  320. package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.bib +75 -0
  321. package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.pdf +0 -0
  322. package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.tex +662 -0
  323. package/lib/skills/builtin/paper-writing/templates/icml2026/fancyhdr.sty +864 -0
  324. package/lib/skills/builtin/paper-writing/templates/icml2026/icml2026.bst +1443 -0
  325. package/lib/skills/builtin/paper-writing/templates/icml2026/icml2026.sty +767 -0
  326. package/lib/skills/builtin/paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
  327. package/lib/skills/builtin/paper-writing/templates/neurips2025/Makefile +36 -0
  328. package/lib/skills/builtin/paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
  329. package/lib/skills/builtin/paper-writing/templates/neurips2025/main.tex +38 -0
  330. package/lib/skills/builtin/paper-writing/templates/neurips2025/neurips.sty +382 -0
  331. package/lib/skills/builtin/paper-writing/templates/nsdi2027/main.tex +426 -0
  332. package/lib/skills/builtin/paper-writing/templates/nsdi2027/references.bib +151 -0
  333. package/lib/skills/builtin/paper-writing/templates/nsdi2027/usenix-2020-09.sty +83 -0
  334. package/lib/skills/builtin/paper-writing/templates/osdi2026/main.tex +429 -0
  335. package/lib/skills/builtin/paper-writing/templates/osdi2026/references.bib +150 -0
  336. package/lib/skills/builtin/paper-writing/templates/osdi2026/usenix-2020-09.sty +83 -0
  337. package/lib/skills/builtin/paper-writing/templates/sosp2026/main.tex +532 -0
  338. package/lib/skills/builtin/paper-writing/templates/sosp2026/references.bib +148 -0
  339. package/lib/skills/builtin/research-grants/SKILL.md +958 -0
  340. package/lib/skills/builtin/research-grants/assets/budget_justification_template.md +453 -0
  341. package/lib/skills/builtin/research-grants/assets/nih_specific_aims_template.md +166 -0
  342. package/lib/skills/builtin/research-grants/assets/nsf_project_summary_template.md +92 -0
  343. package/lib/skills/builtin/research-grants/references/README.md +285 -0
  344. package/lib/skills/builtin/research-grants/references/broader_impacts.md +392 -0
  345. package/lib/skills/builtin/research-grants/references/darpa_guidelines.md +636 -0
  346. package/lib/skills/builtin/research-grants/references/doe_guidelines.md +586 -0
  347. package/lib/skills/builtin/research-grants/references/nih_guidelines.md +851 -0
  348. package/lib/skills/builtin/research-grants/references/nsf_guidelines.md +570 -0
  349. package/lib/skills/builtin/research-grants/references/nstc_guidelines.md +733 -0
  350. package/lib/skills/builtin/research-grants/references/specific_aims_guide.md +458 -0
  351. package/lib/skills/builtin/rewrite-humanize/SKILL.md +116 -0
  352. package/lib/skills/builtin/rewrite-humanize/references/cs-venue-tone.md +57 -0
  353. package/lib/skills/builtin/rewrite-humanize/references/lexicon.md +50 -0
  354. package/lib/skills/builtin/scholar-evaluation/SKILL.md +300 -0
  355. package/lib/skills/builtin/scholar-evaluation/references/evaluation_framework.md +663 -0
  356. package/lib/skills/builtin/scholar-evaluation/scripts/calculate_scores.py +379 -0
  357. package/lib/skills/builtin/scientific-schematics/SKILL.md +603 -0
  358. package/lib/skills/builtin/scientific-schematics/references/QUICK_REFERENCE.md +182 -0
  359. package/lib/skills/builtin/scientific-schematics/references/README.md +292 -0
  360. package/lib/skills/builtin/scientific-schematics/references/best_practices.md +560 -0
  361. package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic.cpython-312.pyc +0 -0
  362. package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic_ai.cpython-312.pyc +0 -0
  363. package/lib/skills/builtin/scientific-schematics/scripts/example_usage.sh +85 -0
  364. package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic.py +141 -0
  365. package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic_ai.py +910 -0
  366. package/lib/skills/builtin/scientific-visualization/SKILL.md +749 -0
  367. package/lib/skills/builtin/scientific-visualization/assets/color_palettes.py +197 -0
  368. package/lib/skills/builtin/scientific-visualization/assets/nature.mplstyle +63 -0
  369. package/lib/skills/builtin/scientific-visualization/assets/presentation.mplstyle +61 -0
  370. package/lib/skills/builtin/scientific-visualization/assets/publication.mplstyle +68 -0
  371. package/lib/skills/builtin/scientific-visualization/references/color_palettes.md +348 -0
  372. package/lib/skills/builtin/scientific-visualization/references/journal_requirements.md +320 -0
  373. package/lib/skills/builtin/scientific-visualization/references/matplotlib_examples.md +620 -0
  374. package/lib/skills/builtin/scientific-visualization/references/publication_guidelines.md +205 -0
  375. package/lib/skills/builtin/scientific-visualization/scripts/figure_export.py +343 -0
  376. package/lib/skills/builtin/scientific-visualization/scripts/style_presets.py +416 -0
  377. package/lib/skills/builtin/scientific-writing/SKILL.md +745 -0
  378. package/lib/skills/builtin/scientific-writing/assets/REPORT_FORMATTING_GUIDE.md +574 -0
  379. package/lib/skills/builtin/scientific-writing/assets/scientific_report.sty +606 -0
  380. package/lib/skills/builtin/scientific-writing/assets/scientific_report_template.tex +449 -0
  381. package/lib/skills/builtin/scientific-writing/references/citation_styles.md +720 -0
  382. package/lib/skills/builtin/scientific-writing/references/figures_tables.md +806 -0
  383. package/lib/skills/builtin/scientific-writing/references/imrad_structure.md +686 -0
  384. package/lib/skills/builtin/scientific-writing/references/professional_report_formatting.md +664 -0
  385. package/lib/skills/builtin/scientific-writing/references/reporting_guidelines.md +748 -0
  386. package/lib/skills/builtin/scientific-writing/references/writing_principles.md +824 -0
  387. package/lib/skills/builtin/seaborn/SKILL.md +674 -0
  388. package/lib/skills/builtin/seaborn/references/examples.md +822 -0
  389. package/lib/skills/builtin/seaborn/references/function_reference.md +770 -0
  390. package/lib/skills/builtin/seaborn/references/objects_interface.md +964 -0
  391. package/lib/skills/data-analysis/SKILL.md +285 -0
  392. package/lib/skills/generate-skill-content.mjs +58 -0
  393. package/lib/skills/index.ts +34 -0
  394. package/lib/skills/loader.ts +452 -0
  395. package/package.json +62 -0
@@ -0,0 +1,603 @@
1
+ ---
2
+ name: scientific-schematics
3
+ description: Create publication-quality scientific diagrams using OpenRouter API with smart iterative refinement. The skill defaults to Gemini 3 Pro Image for generation plus Gemini 3 Pro for review, and only regenerates if quality is below threshold for your document type.
4
+ category: Visualization
5
+ tags: [science, visualization, diagrams]
6
+ triggers: [diagram, schematic, flowchart, architecture diagram, system diagram, 示意图, 流程图, generate diagram]
7
+ allowed-tools: [Read, Write, Edit, Bash]
8
+ license: MIT license
9
+ metadata:
10
+ skill-author: K-Dense Inc.
11
+ ---
12
+
13
+ # Scientific Schematics and Diagrams
14
+
15
+ ## Overview
16
+
17
+ Scientific schematics and diagrams transform complex concepts into clear visual representations for publication. We want the diagram a textbook style. **This skill uses OpenRouter API for image generation with Gemini quality review.**
18
+
19
+ **How it works:**
20
+ - Describe your diagram in natural language
21
+ - Gemini image model generates publication-quality diagrams via OpenRouter
22
+ - **Gemini reviews quality** against document-type thresholds
23
+ - **Smart iteration**: Only regenerates if quality is below threshold
24
+ - Publication-ready output in minutes
25
+ - No coding, templates, or manual drawing required
26
+
27
+ **Quality Thresholds by Document Type:**
28
+ | Document Type | Threshold | Description |
29
+ |---------------|-----------|-------------|
30
+ | journal | 8.5/10 | Nature, Science, peer-reviewed journals |
31
+ | conference | 8.0/10 | Conference papers |
32
+ | thesis | 8.0/10 | Dissertations, theses |
33
+ | grant | 8.0/10 | Grant proposals |
34
+ | preprint | 7.5/10 | arXiv, bioRxiv, etc. |
35
+ | report | 7.5/10 | Technical reports |
36
+ | poster | 7.0/10 | Academic posters |
37
+ | presentation | 6.5/10 | Slides, talks |
38
+ | default | 7.5/10 | General purpose |
39
+
40
+ **Simply describe what you want, and AI generates it.** All diagrams are stored in the @ws/figures/ subfolder and referenced in papers/posters.
41
+
42
+ ### Embedding Figures in Documents (MANDATORY)
43
+
44
+ **After generating every figure, you MUST embed it in the document using markdown image syntax.**
45
+
46
+ The image path must be **relative to the markdown file you are writing**, not the workspace root. This ensures the renderer resolves the path correctly regardless of where the markdown file lives.
47
+
48
+ **Example — markdown at workspace root (`paper.md`):**
49
+ ```bash
50
+ python @skill/scripts/generate_schematic.py "CONSORT flowchart..." -o @ws/figures/consort.png
51
+ ```
52
+ Embed in `paper.md`:
53
+ ```markdown
54
+ ![Figure 2: CONSORT participant flow diagram](figures/consort.png)
55
+ ```
56
+
57
+ **Example — markdown in a subdirectory (`workspace/paper_draft.md`):**
58
+ ```bash
59
+ python @skill/scripts/generate_schematic.py "CONSORT flowchart..." -o @ws/figures/consort.png
60
+ ```
61
+ Embed in `workspace/paper_draft.md` — use `../` to go up:
62
+ ```markdown
63
+ ![Figure 2: CONSORT participant flow diagram](../figures/consort.png)
64
+ ```
65
+
66
+ **Rule of thumb:** count how many directories deep your markdown file is from the workspace root, and prepend that many `../` segments to `figures/filename.png`.
67
+
68
+ Alternatively, you can generate the image alongside the markdown file:
69
+ ```bash
70
+ # If markdown is at workspace/paper_draft.md, save figures next to it:
71
+ python @skill/scripts/generate_schematic.py "CONSORT flowchart..." -o @ws/workspace/figures/consort.png
72
+ ```
73
+ Then embed simply as:
74
+ ```markdown
75
+ ![Figure 2: CONSORT participant flow diagram](figures/consort.png)
76
+ ```
77
+
78
+ Do NOT only cite figures as text ("see Figure 1"). Always include the `![...](...)` embed so the figure renders visually in the output.
79
+
80
+ **Default model path:** this skill intentionally uses one default generation model, `google/gemini-3-pro-image-preview`, with Gemini review via `google/gemini-3-pro-preview`. Agents should not pick among multiple image backends during normal operation.
81
+
82
+ ### Path Conventions
83
+
84
+ - Shell command examples use scoped paths:
85
+ - `@skill/...` for files shipped with this skill (for example scripts)
86
+ - `@ws/...` for workspace files (inputs/outputs)
87
+ - Python API and JSON log examples show raw filesystem paths (typically workspace-relative, such as `figures/...`).
88
+
89
+ ## Quick Start: Generate Any Diagram
90
+
91
+ Create any scientific diagram by simply describing it. AI handles everything automatically with **smart iteration**:
92
+
93
+ ```bash
94
+ # Generate for journal paper (highest quality threshold: 8.5/10)
95
+ python @skill/scripts/generate_schematic.py "CONSORT participant flow diagram with 500 screened, 150 excluded, 350 randomized" -o @ws/figures/consort.png --doc-type journal
96
+
97
+ # Generate for presentation (lower threshold: 6.5/10 - faster)
98
+ python @skill/scripts/generate_schematic.py "Transformer encoder-decoder architecture showing multi-head attention" -o @ws/figures/transformer.png --doc-type presentation
99
+
100
+ # Generate for poster (moderate threshold: 7.0/10)
101
+ python @skill/scripts/generate_schematic.py "MAPK signaling pathway from EGFR to gene transcription" -o @ws/figures/mapk_pathway.png --doc-type poster
102
+
103
+ # Custom max iterations (max 2)
104
+ python @skill/scripts/generate_schematic.py "Complex circuit diagram with op-amp, resistors, and capacitors" -o @ws/figures/circuit.png --iterations 2 --doc-type journal
105
+ ```
106
+
107
+ **What happens behind the scenes:**
108
+ 1. **Generation 1**: Gemini image model creates an initial image following scientific diagram best practices
109
+ 2. **Review 1**: **Gemini** evaluates quality against the document-type threshold
110
+ 3. **Decision**: If quality >= threshold → **DONE** (no more iterations needed!)
111
+ 4. **If below threshold**: Improved prompt based on critique, regenerate
112
+ 5. **Repeat**: Until quality meets threshold OR max iterations reached
113
+
114
+ **Smart Iteration Benefits:**
115
+ - Saves API calls if first generation is good enough
116
+ - Higher quality standards for journal papers
117
+ - Faster turnaround for presentations/posters
118
+ - Appropriate quality for each use case
119
+
120
+ **Output**: Versioned images plus a detailed review log with quality scores, critiques, and early-stop information.
121
+
122
+ ### Configuration
123
+
124
+ Set your OpenRouter API key:
125
+ ```bash
126
+ export OPENROUTER_API_KEY='your-openrouter-api-key'
127
+ ```
128
+
129
+ Optional model overrides:
130
+ ```bash
131
+ export SCHEMATIC_IMAGE_MODEL='google/gemini-3-pro-image-preview' # default
132
+ export SCHEMATIC_REVIEW_MODEL='google/gemini-3-pro-preview' # default
133
+ ```
134
+
135
+ ### AI Generation Best Practices
136
+
137
+ **Effective Prompts for Scientific Diagrams:**
138
+
139
+ ✓ **Good prompts** (specific, detailed):
140
+ - "CONSORT flowchart showing participant flow from screening (n=500) through randomization to final analysis"
141
+ - "Transformer neural network architecture with encoder stack on left, decoder stack on right, showing multi-head attention and cross-attention connections"
142
+ - "Biological signaling cascade: EGFR receptor → RAS → RAF → MEK → ERK → nucleus, with phosphorylation steps labeled"
143
+ - "Block diagram of IoT system: sensors → microcontroller → WiFi module → cloud server → mobile app"
144
+
145
+ ✗ **Avoid vague prompts**:
146
+ - "Make a flowchart" (too generic)
147
+ - "Neural network" (which type? what components?)
148
+ - "Pathway diagram" (which pathway? what molecules?)
149
+
150
+ **Key elements to include:**
151
+ - **Type**: Flowchart, architecture diagram, pathway, circuit, etc.
152
+ - **Components**: Specific elements to include
153
+ - **Flow/Direction**: How elements connect (left-to-right, top-to-bottom)
154
+ - **Labels**: Key annotations or text to include
155
+ - **Style**: A textbook style plus Any specific visual requirements
156
+
157
+ **Scientific Quality Guidelines** (automatically applied):
158
+ - Clean white/light background
159
+ - High contrast for readability
160
+ - Clear, readable labels (minimum 10pt)
161
+ - Professional typography (sans-serif fonts)
162
+ - Colorblind-friendly colors (Okabe-Ito palette)
163
+ - Proper spacing to prevent crowding
164
+ - Scale bars, legends, axes where appropriate
165
+
166
+ ## When to Use This Skill
167
+
168
+ This skill should be used when:
169
+ - Creating neural network architecture diagrams (Transformers, CNNs, RNNs, etc.)
170
+ - Illustrating system architectures and data flow diagrams
171
+ - Drawing methodology flowcharts for study design (CONSORT, PRISMA)
172
+ - Visualizing algorithm workflows and processing pipelines
173
+ - Creating circuit diagrams and electrical schematics
174
+ - Depicting biological pathways and molecular interactions
175
+ - Generating network topologies and hierarchical structures
176
+ - Illustrating conceptual frameworks and theoretical models
177
+ - Designing block diagrams for technical papers
178
+
179
+ ## How to Use This Skill
180
+
181
+ **Simply describe your diagram in natural language.** AI generates it automatically:
182
+
183
+ ```bash
184
+ python @skill/scripts/generate_schematic.py "your diagram description" -o @ws/output.png
185
+ ```
186
+
187
+ **That's it!** The AI handles:
188
+ - Layout and composition
189
+ - Labels and annotations
190
+ - Colors and styling
191
+ - Quality review and refinement
192
+ - Publication-ready output
193
+
194
+ **Works for all diagram types:**
195
+ - Flowcharts (CONSORT, PRISMA, etc.)
196
+ - Neural network architectures
197
+ - Biological pathways
198
+ - Circuit diagrams
199
+ - System architectures
200
+ - Block diagrams
201
+ - Any scientific visualization
202
+
203
+ **No coding, no templates, no manual drawing required.**
204
+
205
+ ---
206
+
207
+ # AI Generation Mode (OpenRouter + Gemini Review)
208
+
209
+ ## Smart Iterative Refinement Workflow
210
+
211
+ The AI generation system uses **smart iteration** - it only regenerates if quality is below the threshold for your document type:
212
+
213
+ ### How Smart Iteration Works
214
+
215
+ ```
216
+ ┌─────────────────────────────────────────────────────┐
217
+ │ 1. Generate image with Gemini via OpenRouter │
218
+ │ ↓ │
219
+ │ 2. Review quality with Gemini │
220
+ │ ↓ │
221
+ │ 3. Score >= threshold? │
222
+ │ YES → DONE! (early stop) │
223
+ │ NO → Improve prompt, go to step 1 │
224
+ │ ↓ │
225
+ │ 4. Repeat until quality met OR max iterations │
226
+ └─────────────────────────────────────────────────────┘
227
+ ```
228
+
229
+ ### Iteration 1: Initial Generation
230
+ **Prompt Construction:**
231
+ ```
232
+ Scientific diagram guidelines + User request
233
+ ```
234
+
235
+ **Output:** `diagram_v1.png`
236
+
237
+ ### Quality Review by Gemini
238
+
239
+ Gemini evaluates the diagram on:
240
+ 1. **Scientific Accuracy** (0-2 points) - Correct concepts, notation, relationships
241
+ 2. **Clarity and Readability** (0-2 points) - Easy to understand, clear hierarchy
242
+ 3. **Label Quality** (0-2 points) - Complete, readable, consistent labels
243
+ 4. **Layout and Composition** (0-2 points) - Logical flow, balanced, no overlaps
244
+ 5. **Professional Appearance** (0-2 points) - Publication-ready quality
245
+
246
+ **Example Review Output:**
247
+ ```
248
+ SCORE: 8.0
249
+
250
+ STRENGTHS:
251
+ - Clear flow from top to bottom
252
+ - All phases properly labeled
253
+ - Professional typography
254
+
255
+ ISSUES:
256
+ - Participant counts slightly small
257
+ - Minor overlap on exclusion box
258
+
259
+ VERDICT: ACCEPTABLE (for poster, threshold 7.0)
260
+ ```
261
+
262
+ ### Decision Point: Continue or Stop?
263
+
264
+ | If Score... | Action |
265
+ |-------------|--------|
266
+ | >= threshold | **STOP** - Quality is good enough for this document type |
267
+ | < threshold | Continue to next iteration with improved prompt |
268
+
269
+ **Example:**
270
+ - For a **poster** (threshold 7.0): Score of 7.5 → **DONE after 1 iteration!**
271
+ - For a **journal** (threshold 8.5): Score of 7.5 → Continue improving
272
+
273
+ ### Subsequent Iterations (Only If Needed)
274
+
275
+ If quality is below threshold, the system:
276
+ 1. Extracts specific issues from Gemini's review
277
+ 2. Enhances the prompt with improvement instructions
278
+ 3. Regenerates via OpenRouter
279
+ 4. Reviews again with Gemini
280
+ 5. Repeats until threshold met or max iterations reached
281
+
282
+ ### Review Log
283
+ All iterations are saved with a JSON review log that includes early-stop information:
284
+ ```json
285
+ {
286
+ "user_prompt": "CONSORT participant flow diagram...",
287
+ "doc_type": "poster",
288
+ "quality_threshold": 7.0,
289
+ "iterations": [
290
+ {
291
+ "iteration": 1,
292
+ "image_path": "figures/consort_v1.png",
293
+ "score": 7.5,
294
+ "needs_improvement": false,
295
+ "critique": "SCORE: 7.5\nSTRENGTHS:..."
296
+ }
297
+ ],
298
+ "final_score": 7.5,
299
+ "early_stop": true,
300
+ "early_stop_reason": "Quality score 7.5 meets threshold 7.0 for poster"
301
+ }
302
+ ```
303
+
304
+ **Note:** With smart iteration, you may see only 1 iteration instead of the full 2 if quality is achieved early!
305
+
306
+ ## Advanced AI Generation Usage
307
+
308
+ ### Supported Automation Interface
309
+
310
+ Use the CLI wrapper as the stable interface:
311
+
312
+ ```bash
313
+ python @skill/scripts/generate_schematic.py \
314
+ "Transformer architecture diagram" \
315
+ -o @ws/figures/transformer.png \
316
+ --iterations 2
317
+ ```
318
+
319
+ Do not rely on importing private skill modules directly from Python; this skill ships as
320
+ scripts and references, not as an installable Python package.
321
+
322
+ ### Command-Line Options
323
+
324
+ ```bash
325
+ # Basic usage (default threshold 7.5/10)
326
+ python @skill/scripts/generate_schematic.py "diagram description" -o @ws/output.png
327
+
328
+ # Specify document type for appropriate quality threshold
329
+ python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type journal # 8.5/10
330
+ python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type conference # 8.0/10
331
+ python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type poster # 7.0/10
332
+ python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type presentation # 6.5/10
333
+
334
+ # Custom max iterations (1-2)
335
+ python @skill/scripts/generate_schematic.py "complex diagram" -o @ws/diagram.png --iterations 2
336
+
337
+ # Verbose output (see all API calls and reviews)
338
+ python @skill/scripts/generate_schematic.py "flowchart" -o @ws/flow.png -v
339
+
340
+ # Combine options
341
+ python @skill/scripts/generate_schematic.py "neural network" -o @ws/nn.png --doc-type journal --iterations 2 -v
342
+ ```
343
+
344
+ ### Prompt Engineering Tips
345
+
346
+ **1. Be Specific About Layout:**
347
+ ```
348
+ ✓ "Flowchart with vertical flow, top to bottom"
349
+ ✓ "Architecture diagram with encoder on left, decoder on right"
350
+ ✓ "Circular pathway diagram with clockwise flow"
351
+ ```
352
+
353
+ **2. Include Quantitative Details:**
354
+ ```
355
+ ✓ "Neural network with input layer (784 nodes), hidden layer (128 nodes), output (10 nodes)"
356
+ ✓ "Flowchart showing n=500 screened, n=150 excluded, n=350 randomized"
357
+ ✓ "Circuit with 1kΩ resistor, 10µF capacitor, 5V source"
358
+ ```
359
+
360
+ **3. Specify Visual Style:**
361
+ ```
362
+ ✓ "Minimalist block diagram with clean lines"
363
+ ✓ "Detailed biological pathway with protein structures"
364
+ ✓ "Technical schematic with engineering notation"
365
+ ```
366
+
367
+ **4. Request Specific Labels:**
368
+ ```
369
+ ✓ "Label all arrows with activation/inhibition"
370
+ ✓ "Include layer dimensions in each box"
371
+ ✓ "Show time progression with timestamps"
372
+ ```
373
+
374
+ **5. Mention Color Requirements:**
375
+ ```
376
+ ✓ "Use colorblind-friendly colors"
377
+ ✓ "Grayscale-compatible design"
378
+ ✓ "Color-code by function: blue for input, green for processing, red for output"
379
+ ```
380
+
381
+ ## AI Generation Examples
382
+
383
+ ### Example 1: CONSORT Flowchart
384
+ ```bash
385
+ python @skill/scripts/generate_schematic.py \
386
+ "CONSORT participant flow diagram for randomized controlled trial. \
387
+ Start with 'Assessed for eligibility (n=500)' at top. \
388
+ Show 'Excluded (n=150)' with reasons: age<18 (n=80), declined (n=50), other (n=20). \
389
+ Then 'Randomized (n=350)' splits into two arms: \
390
+ 'Treatment group (n=175)' and 'Control group (n=175)'. \
391
+ Each arm shows 'Lost to follow-up' (n=15 and n=10). \
392
+ End with 'Analyzed' (n=160 and n=165). \
393
+ Use blue boxes for process steps, orange for exclusion, green for final analysis." \
394
+ -o @ws/figures/consort.png
395
+ ```
396
+
397
+ ### Example 2: Neural Network Architecture
398
+ ```bash
399
+ python @skill/scripts/generate_schematic.py \
400
+ "Transformer encoder-decoder architecture diagram. \
401
+ Left side: Encoder stack with input embedding, positional encoding, \
402
+ multi-head self-attention, add & norm, feed-forward, add & norm. \
403
+ Right side: Decoder stack with output embedding, positional encoding, \
404
+ masked self-attention, add & norm, cross-attention (receiving from encoder), \
405
+ add & norm, feed-forward, add & norm, linear & softmax. \
406
+ Show cross-attention connection from encoder to decoder with dashed line. \
407
+ Use light blue for encoder, light red for decoder. \
408
+ Label all components clearly." \
409
+ -o @ws/figures/transformer.png --iterations 2
410
+ ```
411
+
412
+ ### Example 3: Biological Pathway
413
+ ```bash
414
+ python @skill/scripts/generate_schematic.py \
415
+ "MAPK signaling pathway diagram. \
416
+ Start with EGFR receptor at cell membrane (top). \
417
+ Arrow down to RAS (with GTP label). \
418
+ Arrow to RAF kinase. \
419
+ Arrow to MEK kinase. \
420
+ Arrow to ERK kinase. \
421
+ Final arrow to nucleus showing gene transcription. \
422
+ Label each arrow with 'phosphorylation' or 'activation'. \
423
+ Use rounded rectangles for proteins, different colors for each. \
424
+ Include membrane boundary line at top." \
425
+ -o @ws/figures/mapk_pathway.png
426
+ ```
427
+
428
+ ### Example 4: System Architecture
429
+ ```bash
430
+ python @skill/scripts/generate_schematic.py \
431
+ "IoT system architecture block diagram. \
432
+ Bottom layer: Sensors (temperature, humidity, motion) in green boxes. \
433
+ Middle layer: Microcontroller (ESP32) in blue box. \
434
+ Connections to WiFi module (orange box) and Display (purple box). \
435
+ Top layer: Cloud server (gray box) connected to mobile app (light blue box). \
436
+ Show data flow arrows between all components. \
437
+ Label connections with protocols: I2C, UART, WiFi, HTTPS." \
438
+ -o @ws/figures/iot_architecture.png
439
+ ```
440
+
441
+ ---
442
+
443
+ ## Command-Line Usage
444
+
445
+ The main entry point for generating scientific schematics:
446
+
447
+ ```bash
448
+ # Basic usage
449
+ python @skill/scripts/generate_schematic.py "diagram description" -o @ws/output.png
450
+
451
+ # Custom iterations (max 2)
452
+ python @skill/scripts/generate_schematic.py "complex diagram" -o @ws/diagram.png --iterations 2
453
+
454
+ # Verbose mode
455
+ python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png -v
456
+ ```
457
+
458
+ **Note:** The AI generation system includes automatic quality review in its iterative refinement process. Each iteration is evaluated for scientific accuracy, clarity, and accessibility.
459
+
460
+ ## Best Practices Summary
461
+
462
+ ### Design Principles
463
+
464
+ 1. **Clarity over complexity** - Simplify, remove unnecessary elements
465
+ 2. **Consistent styling** - Use templates and style files
466
+ 3. **Colorblind accessibility** - Use Okabe-Ito palette, redundant encoding
467
+ 4. **Appropriate typography** - Sans-serif fonts, minimum 7-8 pt
468
+ 5. **Vector format** - Always use PDF/SVG for publication
469
+
470
+ ### Technical Requirements
471
+
472
+ 1. **Resolution** - Vector preferred, or 300+ DPI for raster
473
+ 2. **File format** - PDF for LaTeX, SVG for web, PNG as fallback
474
+ 3. **Color space** - RGB for digital, CMYK for print (convert if needed)
475
+ 4. **Line weights** - Minimum 0.5 pt, typical 1-2 pt
476
+ 5. **Text size** - 7-8 pt minimum at final size
477
+
478
+ ### Integration Guidelines
479
+
480
+ 1. **Include in markdown** - Use `![Figure N: caption](path/to/figures/filename.png)` for every generated image (path must be relative to the markdown file, not the workspace root)
481
+ 2. **Include in LaTeX** - Use `\includegraphics{}` for generated images in LaTeX documents
482
+ 3. **Caption thoroughly** - Describe all elements and abbreviations
483
+ 4. **Reference in text** - Explain diagram in narrative flow
484
+ 5. **Maintain consistency** - Same style across all figures in paper
485
+ 6. **Version control** - Keep prompts and generated images in repository
486
+
487
+ ## Troubleshooting Common Issues
488
+
489
+ ### AI Generation Issues
490
+
491
+ **Problem**: Overlapping text or elements
492
+ - **Solution**: AI generation automatically handles spacing
493
+ - **Solution**: Increase iterations: `--iterations 2` for better refinement
494
+
495
+ **Problem**: Elements not connecting properly
496
+ - **Solution**: Make your prompt more specific about connections and layout
497
+ - **Solution**: Increase iterations for better refinement
498
+
499
+ ### Image Quality Issues
500
+
501
+ **Problem**: Export quality poor
502
+ - **Solution**: AI generation produces high-quality images automatically
503
+ - **Solution**: Increase iterations for better results: `--iterations 2`
504
+
505
+ **Problem**: Elements overlap after generation
506
+ - **Solution**: AI generation automatically handles spacing
507
+ - **Solution**: Increase iterations: `--iterations 2` for better refinement
508
+ - **Solution**: Make your prompt more specific about layout and spacing requirements
509
+
510
+ ### API Issues
511
+
512
+ **Problem**: Authentication error
513
+ - **Solution**: Verify `OPENROUTER_API_KEY` is set correctly
514
+ - **Solution**: Check your OpenRouter account has sufficient credits
515
+
516
+ **Problem**: Model not available
517
+ - **Solution**: Check OpenRouter model availability at openrouter.ai/models
518
+ - **Solution**: Try alternative models via `--image-model` or `--review-model`
519
+
520
+ ## Resources and References
521
+
522
+ ### Detailed References
523
+
524
+ Load these files for comprehensive information on specific topics:
525
+
526
+ - **`@skill/references/best_practices.md`** - Publication standards and accessibility guidelines
527
+ - **`@skill/references/README.md`** - Extended usage guide and troubleshooting
528
+ - **`@skill/references/QUICK_REFERENCE.md`** - Condensed command cheat sheet
529
+
530
+ ### External Resources
531
+
532
+ **Python Libraries**
533
+ - Schemdraw Documentation: https://schemdraw.readthedocs.io/
534
+ - NetworkX Documentation: https://networkx.org/documentation/
535
+ - Matplotlib Documentation: https://matplotlib.org/
536
+
537
+ **Publication Standards**
538
+ - Nature Figure Guidelines: https://www.nature.com/nature/for-authors/final-submission
539
+ - Science Figure Guidelines: https://www.science.org/content/page/instructions-preparing-initial-manuscript
540
+ - CONSORT Diagram: http://www.consort-statement.org/consort-statement/flow-diagram
541
+
542
+ ## Integration with Other Skills
543
+
544
+ This skill works synergistically with:
545
+
546
+ - **Scientific Writing** - Diagrams follow figure best practices
547
+ - **Scientific Visualization** - Shares color palettes and styling
548
+ - **Research Grants** - Methodology diagrams for proposals
549
+ - **Scholar Evaluation** - Evaluate clarity, completeness, and communication quality
550
+
551
+ ## Quick Reference Checklist
552
+
553
+ Before submitting diagrams, verify:
554
+
555
+ ### Visual Quality
556
+ - [ ] High-quality image format (PNG from AI generation)
557
+ - [ ] No overlapping elements (AI handles automatically)
558
+ - [ ] Adequate spacing between all components (AI optimizes)
559
+ - [ ] Clean, professional alignment
560
+ - [ ] All arrows connect properly to intended targets
561
+
562
+ ### Accessibility
563
+ - [ ] Colorblind-safe palette (Okabe-Ito) used
564
+ - [ ] Works in grayscale (tested with accessibility checker)
565
+ - [ ] Sufficient contrast between elements (verified)
566
+ - [ ] Redundant encoding where appropriate (shapes + colors)
567
+ - [ ] Colorblind simulation passes all checks
568
+
569
+ ### Typography and Readability
570
+ - [ ] Text minimum 7-8 pt at final size
571
+ - [ ] All elements labeled clearly and completely
572
+ - [ ] Consistent font family and sizing
573
+ - [ ] No text overlaps or cutoffs
574
+ - [ ] Units included where applicable
575
+
576
+ ### Publication Standards
577
+ - [ ] Consistent styling with other figures in manuscript
578
+ - [ ] Comprehensive caption written with all abbreviations defined
579
+ - [ ] Referenced appropriately in manuscript text
580
+ - [ ] Meets journal-specific dimension requirements
581
+ - [ ] Exported in required format for journal (PDF/EPS/TIFF)
582
+
583
+ ## Environment Setup
584
+
585
+ ```bash
586
+ # Required
587
+ export OPENROUTER_API_KEY='your-openrouter-api-key'
588
+
589
+ # Optional model overrides
590
+ export SCHEMATIC_IMAGE_MODEL='google/gemini-3-pro-image-preview'
591
+ export SCHEMATIC_REVIEW_MODEL='google/gemini-3-pro-preview'
592
+ ```
593
+
594
+ ## Getting Started
595
+
596
+ **Simplest possible usage:**
597
+ ```bash
598
+ python @skill/scripts/generate_schematic.py "your diagram description" -o @ws/output.png
599
+ ```
600
+
601
+ ---
602
+
603
+ Use this skill to create clear, accessible, publication-quality diagrams that effectively communicate complex scientific concepts. The AI-powered workflow with iterative refinement ensures diagrams meet professional standards.