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,674 @@
1
+ ---
2
+ name: seaborn
3
+ description: Statistical visualization with pandas integration. Use for quick exploration of distributions, relationships, and categorical comparisons with attractive defaults. Best for box plots, violin plots, pair plots, heatmaps. Built on matplotlib. For interactive plots use plotly; for publication styling use scientific-visualization.
4
+ category: Visualization
5
+ depends: [matplotlib]
6
+ tags: [science, visualization]
7
+ triggers: [seaborn, sns.plot, box plot, violin plot, pair plot, heatmap, statistical plot]
8
+ license: BSD-3-Clause license
9
+ metadata:
10
+ skill-author: K-Dense Inc.
11
+ ---
12
+
13
+ # Seaborn Statistical Visualization
14
+
15
+ ## Overview
16
+
17
+ Seaborn is a Python visualization library for creating publication-quality statistical graphics. Use this skill for dataset-oriented plotting, multivariate analysis, automatic statistical estimation, and complex multi-panel figures with minimal code.
18
+
19
+ ## Design Philosophy
20
+
21
+ Seaborn follows these core principles:
22
+
23
+ 1. **Dataset-oriented**: Work directly with DataFrames and named variables rather than abstract coordinates
24
+ 2. **Semantic mapping**: Automatically translate data values into visual properties (colors, sizes, styles)
25
+ 3. **Statistical awareness**: Built-in aggregation, error estimation, and confidence intervals
26
+ 4. **Aesthetic defaults**: Publication-ready themes and color palettes out of the box
27
+ 5. **Matplotlib integration**: Full compatibility with matplotlib customization when needed
28
+
29
+ ## Quick Start
30
+
31
+ ```python
32
+ import seaborn as sns
33
+ import matplotlib.pyplot as plt
34
+ import pandas as pd
35
+
36
+ # Load example dataset
37
+ df = sns.load_dataset('tips')
38
+
39
+ # Create a simple visualization
40
+ sns.scatterplot(data=df, x='total_bill', y='tip', hue='day')
41
+ plt.show()
42
+ ```
43
+
44
+ ## Core Plotting Interfaces
45
+
46
+ ### Function Interface (Traditional)
47
+
48
+ The function interface provides specialized plotting functions organized by visualization type. Each category has **axes-level** functions (plot to single axes) and **figure-level** functions (manage entire figure with faceting).
49
+
50
+ **When to use:**
51
+ - Quick exploratory analysis
52
+ - Single-purpose visualizations
53
+ - When you need a specific plot type
54
+
55
+ ### Objects Interface (Modern)
56
+
57
+ The `seaborn.objects` interface provides a declarative, composable API similar to ggplot2. Build visualizations by chaining methods to specify data mappings, marks, transformations, and scales.
58
+
59
+ **When to use:**
60
+ - Complex layered visualizations
61
+ - When you need fine-grained control over transformations
62
+ - Building custom plot types
63
+ - Programmatic plot generation
64
+
65
+ ```python
66
+ from seaborn import objects as so
67
+
68
+ # Declarative syntax
69
+ (
70
+ so.Plot(data=df, x='total_bill', y='tip')
71
+ .add(so.Dot(), color='day')
72
+ .add(so.Line(), so.PolyFit())
73
+ )
74
+ ```
75
+
76
+ ## Plotting Functions by Category
77
+
78
+ ### Relational Plots (Relationships Between Variables)
79
+
80
+ **Use for:** Exploring how two or more variables relate to each other
81
+
82
+ - `scatterplot()` - Display individual observations as points
83
+ - `lineplot()` - Show trends and changes (automatically aggregates and computes CI)
84
+ - `relplot()` - Figure-level interface with automatic faceting
85
+
86
+ **Key parameters:**
87
+ - `x`, `y` - Primary variables
88
+ - `hue` - Color encoding for additional categorical/continuous variable
89
+ - `size` - Point/line size encoding
90
+ - `style` - Marker/line style encoding
91
+ - `col`, `row` - Facet into multiple subplots (figure-level only)
92
+
93
+ ```python
94
+ # Scatter with multiple semantic mappings
95
+ sns.scatterplot(data=df, x='total_bill', y='tip',
96
+ hue='time', size='size', style='sex')
97
+
98
+ # Line plot with confidence intervals
99
+ sns.lineplot(data=timeseries, x='date', y='value', hue='category')
100
+
101
+ # Faceted relational plot
102
+ sns.relplot(data=df, x='total_bill', y='tip',
103
+ col='time', row='sex', hue='smoker', kind='scatter')
104
+ ```
105
+
106
+ ### Distribution Plots (Single and Bivariate Distributions)
107
+
108
+ **Use for:** Understanding data spread, shape, and probability density
109
+
110
+ - `histplot()` - Bar-based frequency distributions with flexible binning
111
+ - `kdeplot()` - Smooth density estimates using Gaussian kernels
112
+ - `ecdfplot()` - Empirical cumulative distribution (no parameters to tune)
113
+ - `rugplot()` - Individual observation tick marks
114
+ - `displot()` - Figure-level interface for univariate and bivariate distributions
115
+ - `jointplot()` - Bivariate plot with marginal distributions
116
+ - `pairplot()` - Matrix of pairwise relationships across dataset
117
+
118
+ **Key parameters:**
119
+ - `x`, `y` - Variables (y optional for univariate)
120
+ - `hue` - Separate distributions by category
121
+ - `stat` - Normalization: "count", "frequency", "probability", "density"
122
+ - `bins` / `binwidth` - Histogram binning control
123
+ - `bw_adjust` - KDE bandwidth multiplier (higher = smoother)
124
+ - `fill` - Fill area under curve
125
+ - `multiple` - How to handle hue: "layer", "stack", "dodge", "fill"
126
+
127
+ ```python
128
+ # Histogram with density normalization
129
+ sns.histplot(data=df, x='total_bill', hue='time',
130
+ stat='density', multiple='stack')
131
+
132
+ # Bivariate KDE with contours
133
+ sns.kdeplot(data=df, x='total_bill', y='tip',
134
+ fill=True, levels=5, thresh=0.1)
135
+
136
+ # Joint plot with marginals
137
+ sns.jointplot(data=df, x='total_bill', y='tip',
138
+ kind='scatter', hue='time')
139
+
140
+ # Pairwise relationships
141
+ sns.pairplot(data=df, hue='species', corner=True)
142
+ ```
143
+
144
+ ### Categorical Plots (Comparisons Across Categories)
145
+
146
+ **Use for:** Comparing distributions or statistics across discrete categories
147
+
148
+ **Categorical scatterplots:**
149
+ - `stripplot()` - Points with jitter to show all observations
150
+ - `swarmplot()` - Non-overlapping points (beeswarm algorithm)
151
+
152
+ **Distribution comparisons:**
153
+ - `boxplot()` - Quartiles and outliers
154
+ - `violinplot()` - KDE + quartile information
155
+ - `boxenplot()` - Enhanced boxplot for larger datasets
156
+
157
+ **Statistical estimates:**
158
+ - `barplot()` - Mean/aggregate with confidence intervals
159
+ - `pointplot()` - Point estimates with connecting lines
160
+ - `countplot()` - Count of observations per category
161
+
162
+ **Figure-level:**
163
+ - `catplot()` - Faceted categorical plots (set `kind` parameter)
164
+
165
+ **Key parameters:**
166
+ - `x`, `y` - Variables (one typically categorical)
167
+ - `hue` - Additional categorical grouping
168
+ - `order`, `hue_order` - Control category ordering
169
+ - `dodge` - Separate hue levels side-by-side
170
+ - `orient` - "v" (vertical) or "h" (horizontal)
171
+ - `kind` - Plot type for catplot: "strip", "swarm", "box", "violin", "bar", "point"
172
+
173
+ ```python
174
+ # Swarm plot showing all points
175
+ sns.swarmplot(data=df, x='day', y='total_bill', hue='sex')
176
+
177
+ # Violin plot with split for comparison
178
+ sns.violinplot(data=df, x='day', y='total_bill',
179
+ hue='sex', split=True)
180
+
181
+ # Bar plot with error bars
182
+ sns.barplot(data=df, x='day', y='total_bill',
183
+ hue='sex', estimator='mean', errorbar='ci')
184
+
185
+ # Faceted categorical plot
186
+ sns.catplot(data=df, x='day', y='total_bill',
187
+ col='time', kind='box')
188
+ ```
189
+
190
+ ### Regression Plots (Linear Relationships)
191
+
192
+ **Use for:** Visualizing linear regressions and residuals
193
+
194
+ - `regplot()` - Axes-level regression plot with scatter + fit line
195
+ - `lmplot()` - Figure-level with faceting support
196
+ - `residplot()` - Residual plot for assessing model fit
197
+
198
+ **Key parameters:**
199
+ - `x`, `y` - Variables to regress
200
+ - `order` - Polynomial regression order
201
+ - `logistic` - Fit logistic regression
202
+ - `robust` - Use robust regression (less sensitive to outliers)
203
+ - `ci` - Confidence interval width (default 95)
204
+ - `scatter_kws`, `line_kws` - Customize scatter and line properties
205
+
206
+ ```python
207
+ # Simple linear regression
208
+ sns.regplot(data=df, x='total_bill', y='tip')
209
+
210
+ # Polynomial regression with faceting
211
+ sns.lmplot(data=df, x='total_bill', y='tip',
212
+ col='time', order=2, ci=95)
213
+
214
+ # Check residuals
215
+ sns.residplot(data=df, x='total_bill', y='tip')
216
+ ```
217
+
218
+ ### Matrix Plots (Rectangular Data)
219
+
220
+ **Use for:** Visualizing matrices, correlations, and grid-structured data
221
+
222
+ - `heatmap()` - Color-encoded matrix with annotations
223
+ - `clustermap()` - Hierarchically-clustered heatmap
224
+
225
+ **Key parameters:**
226
+ - `data` - 2D rectangular dataset (DataFrame or array)
227
+ - `annot` - Display values in cells
228
+ - `fmt` - Format string for annotations (e.g., ".2f")
229
+ - `cmap` - Colormap name
230
+ - `center` - Value at colormap center (for diverging colormaps)
231
+ - `vmin`, `vmax` - Color scale limits
232
+ - `square` - Force square cells
233
+ - `linewidths` - Gap between cells
234
+
235
+ ```python
236
+ # Correlation heatmap
237
+ corr = df.corr()
238
+ sns.heatmap(corr, annot=True, fmt='.2f',
239
+ cmap='coolwarm', center=0, square=True)
240
+
241
+ # Clustered heatmap
242
+ sns.clustermap(data, cmap='viridis',
243
+ standard_scale=1, figsize=(10, 10))
244
+ ```
245
+
246
+ ## Multi-Plot Grids
247
+
248
+ Seaborn provides grid objects for creating complex multi-panel figures:
249
+
250
+ ### FacetGrid
251
+
252
+ Create subplots based on categorical variables. Most useful when called through figure-level functions (`relplot`, `displot`, `catplot`), but can be used directly for custom plots.
253
+
254
+ ```python
255
+ g = sns.FacetGrid(df, col='time', row='sex', hue='smoker')
256
+ g.map(sns.scatterplot, 'total_bill', 'tip')
257
+ g.add_legend()
258
+ ```
259
+
260
+ ### PairGrid
261
+
262
+ Show pairwise relationships between all variables in a dataset.
263
+
264
+ ```python
265
+ g = sns.PairGrid(df, hue='species')
266
+ g.map_upper(sns.scatterplot)
267
+ g.map_lower(sns.kdeplot)
268
+ g.map_diag(sns.histplot)
269
+ g.add_legend()
270
+ ```
271
+
272
+ ### JointGrid
273
+
274
+ Combine bivariate plot with marginal distributions.
275
+
276
+ ```python
277
+ g = sns.JointGrid(data=df, x='total_bill', y='tip')
278
+ g.plot_joint(sns.scatterplot)
279
+ g.plot_marginals(sns.histplot)
280
+ ```
281
+
282
+ ## Figure-Level vs Axes-Level Functions
283
+
284
+ Understanding this distinction is crucial for effective seaborn usage:
285
+
286
+ ### Axes-Level Functions
287
+ - Plot to a single matplotlib `Axes` object
288
+ - Integrate easily into complex matplotlib figures
289
+ - Accept `ax=` parameter for precise placement
290
+ - Return `Axes` object
291
+ - Examples: `scatterplot`, `histplot`, `boxplot`, `regplot`, `heatmap`
292
+
293
+ **When to use:**
294
+ - Building custom multi-plot layouts
295
+ - Combining different plot types
296
+ - Need matplotlib-level control
297
+ - Integrating with existing matplotlib code
298
+
299
+ ```python
300
+ fig, axes = plt.subplots(2, 2, figsize=(10, 10))
301
+ sns.scatterplot(data=df, x='x', y='y', ax=axes[0, 0])
302
+ sns.histplot(data=df, x='x', ax=axes[0, 1])
303
+ sns.boxplot(data=df, x='cat', y='y', ax=axes[1, 0])
304
+ sns.kdeplot(data=df, x='x', y='y', ax=axes[1, 1])
305
+ ```
306
+
307
+ ### Figure-Level Functions
308
+ - Manage entire figure including all subplots
309
+ - Built-in faceting via `col` and `row` parameters
310
+ - Return `FacetGrid`, `JointGrid`, or `PairGrid` objects
311
+ - Use `height` and `aspect` for sizing (per subplot)
312
+ - Cannot be placed in existing figure
313
+ - Examples: `relplot`, `displot`, `catplot`, `lmplot`, `jointplot`, `pairplot`
314
+
315
+ **When to use:**
316
+ - Faceted visualizations (small multiples)
317
+ - Quick exploratory analysis
318
+ - Consistent multi-panel layouts
319
+ - Don't need to combine with other plot types
320
+
321
+ ```python
322
+ # Automatic faceting
323
+ sns.relplot(data=df, x='x', y='y', col='category', row='group',
324
+ hue='type', height=3, aspect=1.2)
325
+ ```
326
+
327
+ ## Data Structure Requirements
328
+
329
+ ### Long-Form Data (Preferred)
330
+
331
+ Each variable is a column, each observation is a row. This "tidy" format provides maximum flexibility:
332
+
333
+ ```python
334
+ # Long-form structure
335
+ subject condition measurement
336
+ 0 1 control 10.5
337
+ 1 1 treatment 12.3
338
+ 2 2 control 9.8
339
+ 3 2 treatment 13.1
340
+ ```
341
+
342
+ **Advantages:**
343
+ - Works with all seaborn functions
344
+ - Easy to remap variables to visual properties
345
+ - Supports arbitrary complexity
346
+ - Natural for DataFrame operations
347
+
348
+ ### Wide-Form Data
349
+
350
+ Variables are spread across columns. Useful for simple rectangular data:
351
+
352
+ ```python
353
+ # Wide-form structure
354
+ control treatment
355
+ 0 10.5 12.3
356
+ 1 9.8 13.1
357
+ ```
358
+
359
+ **Use cases:**
360
+ - Simple time series
361
+ - Correlation matrices
362
+ - Heatmaps
363
+ - Quick plots of array data
364
+
365
+ **Converting wide to long:**
366
+ ```python
367
+ df_long = df.melt(var_name='condition', value_name='measurement')
368
+ ```
369
+
370
+ ## Color Palettes
371
+
372
+ Seaborn provides carefully designed color palettes for different data types:
373
+
374
+ ### Qualitative Palettes (Categorical Data)
375
+
376
+ Distinguish categories through hue variation:
377
+ - `"deep"` - Default, vivid colors
378
+ - `"muted"` - Softer, less saturated
379
+ - `"pastel"` - Light, desaturated
380
+ - `"bright"` - Highly saturated
381
+ - `"dark"` - Dark values
382
+ - `"colorblind"` - Safe for color vision deficiency
383
+
384
+ ```python
385
+ sns.set_palette("colorblind")
386
+ sns.color_palette("Set2")
387
+ ```
388
+
389
+ ### Sequential Palettes (Ordered Data)
390
+
391
+ Show progression from low to high values:
392
+ - `"rocket"`, `"mako"` - Wide luminance range (good for heatmaps)
393
+ - `"flare"`, `"crest"` - Restricted luminance (good for points/lines)
394
+ - `"viridis"`, `"magma"`, `"plasma"` - Matplotlib perceptually uniform
395
+
396
+ ```python
397
+ sns.heatmap(data, cmap='rocket')
398
+ sns.kdeplot(data=df, x='x', y='y', cmap='mako', fill=True)
399
+ ```
400
+
401
+ ### Diverging Palettes (Centered Data)
402
+
403
+ Emphasize deviations from a midpoint:
404
+ - `"vlag"` - Blue to red
405
+ - `"icefire"` - Blue to orange
406
+ - `"coolwarm"` - Cool to warm
407
+ - `"Spectral"` - Rainbow diverging
408
+
409
+ ```python
410
+ sns.heatmap(correlation_matrix, cmap='vlag', center=0)
411
+ ```
412
+
413
+ ### Custom Palettes
414
+
415
+ ```python
416
+ # Create custom palette
417
+ custom = sns.color_palette("husl", 8)
418
+
419
+ # Light to dark gradient
420
+ palette = sns.light_palette("seagreen", as_cmap=True)
421
+
422
+ # Diverging palette from hues
423
+ palette = sns.diverging_palette(250, 10, as_cmap=True)
424
+ ```
425
+
426
+ ## Theming and Aesthetics
427
+
428
+ ### Set Theme
429
+
430
+ `set_theme()` controls overall appearance:
431
+
432
+ ```python
433
+ # Set complete theme
434
+ sns.set_theme(style='whitegrid', palette='pastel', font='sans-serif')
435
+
436
+ # Reset to defaults
437
+ sns.set_theme()
438
+ ```
439
+
440
+ ### Styles
441
+
442
+ Control background and grid appearance:
443
+ - `"darkgrid"` - Gray background with white grid (default)
444
+ - `"whitegrid"` - White background with gray grid
445
+ - `"dark"` - Gray background, no grid
446
+ - `"white"` - White background, no grid
447
+ - `"ticks"` - White background with axis ticks
448
+
449
+ ```python
450
+ sns.set_style("whitegrid")
451
+
452
+ # Remove spines
453
+ sns.despine(left=False, bottom=False, offset=10, trim=True)
454
+
455
+ # Temporary style
456
+ with sns.axes_style("white"):
457
+ sns.scatterplot(data=df, x='x', y='y')
458
+ ```
459
+
460
+ ### Contexts
461
+
462
+ Scale elements for different use cases:
463
+ - `"paper"` - Smallest (default)
464
+ - `"notebook"` - Slightly larger
465
+ - `"talk"` - Presentation slides
466
+ - `"poster"` - Large format
467
+
468
+ ```python
469
+ sns.set_context("talk", font_scale=1.2)
470
+
471
+ # Temporary context
472
+ with sns.plotting_context("poster"):
473
+ sns.barplot(data=df, x='category', y='value')
474
+ ```
475
+
476
+ ## Best Practices
477
+
478
+ ### 1. Data Preparation
479
+
480
+ Always use well-structured DataFrames with meaningful column names:
481
+
482
+ ```python
483
+ # Good: Named columns in DataFrame
484
+ df = pd.DataFrame({'bill': bills, 'tip': tips, 'day': days})
485
+ sns.scatterplot(data=df, x='bill', y='tip', hue='day')
486
+
487
+ # Avoid: Unnamed arrays
488
+ sns.scatterplot(x=x_array, y=y_array) # Loses axis labels
489
+ ```
490
+
491
+ ### 2. Choose the Right Plot Type
492
+
493
+ **Continuous x, continuous y:** `scatterplot`, `lineplot`, `kdeplot`, `regplot`
494
+ **Continuous x, categorical y:** `violinplot`, `boxplot`, `stripplot`, `swarmplot`
495
+ **One continuous variable:** `histplot`, `kdeplot`, `ecdfplot`
496
+ **Correlations/matrices:** `heatmap`, `clustermap`
497
+ **Pairwise relationships:** `pairplot`, `jointplot`
498
+
499
+ ### 3. Use Figure-Level Functions for Faceting
500
+
501
+ ```python
502
+ # Instead of manual subplot creation
503
+ sns.relplot(data=df, x='x', y='y', col='category', col_wrap=3)
504
+
505
+ # Not: Creating subplots manually for simple faceting
506
+ ```
507
+
508
+ ### 4. Leverage Semantic Mappings
509
+
510
+ Use `hue`, `size`, and `style` to encode additional dimensions:
511
+
512
+ ```python
513
+ sns.scatterplot(data=df, x='x', y='y',
514
+ hue='category', # Color by category
515
+ size='importance', # Size by continuous variable
516
+ style='type') # Marker style by type
517
+ ```
518
+
519
+ ### 5. Control Statistical Estimation
520
+
521
+ Many functions compute statistics automatically. Understand and customize:
522
+
523
+ ```python
524
+ # Lineplot computes mean and 95% CI by default
525
+ sns.lineplot(data=df, x='time', y='value',
526
+ errorbar='sd') # Use standard deviation instead
527
+
528
+ # Barplot computes mean by default
529
+ sns.barplot(data=df, x='category', y='value',
530
+ estimator='median', # Use median instead
531
+ errorbar=('ci', 95)) # Bootstrapped CI
532
+ ```
533
+
534
+ ### 6. Combine with Matplotlib
535
+
536
+ Seaborn integrates seamlessly with matplotlib for fine-tuning:
537
+
538
+ ```python
539
+ ax = sns.scatterplot(data=df, x='x', y='y')
540
+ ax.set(xlabel='Custom X Label', ylabel='Custom Y Label',
541
+ title='Custom Title')
542
+ ax.axhline(y=0, color='r', linestyle='--')
543
+ plt.tight_layout()
544
+ ```
545
+
546
+ ### 7. Save High-Quality Figures
547
+
548
+ ```python
549
+ fig = sns.relplot(data=df, x='x', y='y', col='group')
550
+ fig.savefig('figure.png', dpi=300, bbox_inches='tight')
551
+ fig.savefig('figure.pdf') # Vector format for publications
552
+ ```
553
+
554
+ ## Common Patterns
555
+
556
+ ### Exploratory Data Analysis
557
+
558
+ ```python
559
+ # Quick overview of all relationships
560
+ sns.pairplot(data=df, hue='target', corner=True)
561
+
562
+ # Distribution exploration
563
+ sns.displot(data=df, x='variable', hue='group',
564
+ kind='kde', fill=True, col='category')
565
+
566
+ # Correlation analysis
567
+ corr = df.corr()
568
+ sns.heatmap(corr, annot=True, cmap='coolwarm', center=0)
569
+ ```
570
+
571
+ ### Publication-Quality Figures
572
+
573
+ ```python
574
+ sns.set_theme(style='ticks', context='paper', font_scale=1.1)
575
+
576
+ g = sns.catplot(data=df, x='treatment', y='response',
577
+ col='cell_line', kind='box', height=3, aspect=1.2)
578
+ g.set_axis_labels('Treatment Condition', 'Response (μM)')
579
+ g.set_titles('{col_name}')
580
+ sns.despine(trim=True)
581
+
582
+ g.savefig('figure.pdf', dpi=300, bbox_inches='tight')
583
+ ```
584
+
585
+ ### Complex Multi-Panel Figures
586
+
587
+ ```python
588
+ # Using matplotlib subplots with seaborn
589
+ fig, axes = plt.subplots(2, 2, figsize=(12, 10))
590
+
591
+ sns.scatterplot(data=df, x='x1', y='y', hue='group', ax=axes[0, 0])
592
+ sns.histplot(data=df, x='x1', hue='group', ax=axes[0, 1])
593
+ sns.violinplot(data=df, x='group', y='y', ax=axes[1, 0])
594
+ sns.heatmap(df.pivot_table(values='y', index='x1', columns='x2'),
595
+ ax=axes[1, 1], cmap='viridis')
596
+
597
+ plt.tight_layout()
598
+ ```
599
+
600
+ ### Time Series with Confidence Bands
601
+
602
+ ```python
603
+ # Lineplot automatically aggregates and shows CI
604
+ sns.lineplot(data=timeseries, x='date', y='measurement',
605
+ hue='sensor', style='location', errorbar='sd')
606
+
607
+ # For more control
608
+ g = sns.relplot(data=timeseries, x='date', y='measurement',
609
+ col='location', hue='sensor', kind='line',
610
+ height=4, aspect=1.5, errorbar=('ci', 95))
611
+ g.set_axis_labels('Date', 'Measurement (units)')
612
+ ```
613
+
614
+ ## Troubleshooting
615
+
616
+ ### Issue: Legend Outside Plot Area
617
+
618
+ Figure-level functions place legends outside by default. To move inside:
619
+
620
+ ```python
621
+ g = sns.relplot(data=df, x='x', y='y', hue='category')
622
+ g._legend.set_bbox_to_anchor((0.9, 0.5)) # Adjust position
623
+ ```
624
+
625
+ ### Issue: Overlapping Labels
626
+
627
+ ```python
628
+ plt.xticks(rotation=45, ha='right')
629
+ plt.tight_layout()
630
+ ```
631
+
632
+ ### Issue: Figure Too Small
633
+
634
+ For figure-level functions:
635
+ ```python
636
+ sns.relplot(data=df, x='x', y='y', height=6, aspect=1.5)
637
+ ```
638
+
639
+ For axes-level functions:
640
+ ```python
641
+ fig, ax = plt.subplots(figsize=(10, 6))
642
+ sns.scatterplot(data=df, x='x', y='y', ax=ax)
643
+ ```
644
+
645
+ ### Issue: Colors Not Distinct Enough
646
+
647
+ ```python
648
+ # Use a different palette
649
+ sns.set_palette("bright")
650
+
651
+ # Or specify number of colors
652
+ palette = sns.color_palette("husl", n_colors=len(df['category'].unique()))
653
+ sns.scatterplot(data=df, x='x', y='y', hue='category', palette=palette)
654
+ ```
655
+
656
+ ### Issue: KDE Too Smooth or Jagged
657
+
658
+ ```python
659
+ # Adjust bandwidth
660
+ sns.kdeplot(data=df, x='x', bw_adjust=0.5) # Less smooth
661
+ sns.kdeplot(data=df, x='x', bw_adjust=2) # More smooth
662
+ ```
663
+
664
+ ## Resources
665
+
666
+ This skill includes reference materials for deeper exploration:
667
+
668
+ ### `@skill/references/`
669
+
670
+ - `@skill/references/function_reference.md` - Comprehensive listing of all seaborn functions with parameters and examples
671
+ - `@skill/references/objects_interface.md` - Detailed guide to the modern seaborn.objects API
672
+ - `@skill/references/examples.md` - Common use cases and code patterns for different analysis scenarios
673
+
674
+ Load reference files as needed for detailed function signatures, advanced parameters, or specific examples.