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,273 @@
1
+ ---
2
+ name: creative-thinking-for-research
3
+ description: Eight cognitive science frameworks for generating genuinely novel research directions. Use when stuck in a local optimum, when brainstorming-research-ideas alone yields only incremental candidates, or when you need deeper cognitive disruption.
4
+ category: Research Ideation
5
+ depends: [brainstorming-research-ideas]
6
+ tags: [Creative Thinking, Research Ideation, Analogical Reasoning, Problem Reformulation, Cognitive Science]
7
+ triggers: [creative thinking, novel ideas, think outside the box, stuck, local optimum, breakthrough, 创新思维, 跳出框架, 创造性思考]
8
+ ---
9
+
10
+ # Creative Thinking for Research
11
+
12
+ Eight empirically grounded frameworks from cognitive science, applied to CS and AI research. Unlike ad-hoc brainstorming, each framework is backed by decades of creativity research — from Koestler's bisociation to Kauffman's adjacent possible. They target distinct cognitive operations: combining, reformulating, analogizing, constraining, inverting, abstracting, exploring boundaries, and holding contradictions.
13
+
14
+ ## Overview
15
+
16
+ This skill provides deeper cognitive engines for generating truly novel research directions. While `brainstorming-research-ideas` provides operational workflows (diverge → converge → refine) and practical filters, this skill provides the cognitive frameworks that power creative leaps. Use them together: creative-thinking to generate raw insight, brainstorming-research-ideas to structure and evaluate it.
17
+
18
+ ## When to Use This Skill
19
+
20
+ - The `brainstorming-research-ideas` skill produced only incremental candidates — you need deeper cognitive disruption.
21
+ - Multiple sessions of investigation have produced diminishing returns — you may be stuck in a local optimum.
22
+ - The user explicitly asked for "novel" or "creative" directions.
23
+ - You need to justify a significant pivot in research focus.
24
+
25
+ **Do NOT use this skill when**:
26
+ - You need structured project-level brainstorming workflows — use `brainstorming-research-ideas` instead.
27
+ - You have a well-defined research question and need execution guidance — proceed with normal task execution.
28
+ - You need a literature survey — use the `literature-search` tool directly.
29
+
30
+ ---
31
+
32
+ ## Framework 1: Combinatorial Creativity (Bisociation)
33
+
34
+ Novel ideas arise from combining existing concepts in unexpected ways. Arthur Koestler called this **bisociation** — connecting two previously unrelated frames of reference, distinct from routine association within a single frame.
35
+
36
+ **Why it works**: Meta-research consistently shows that breadth of knowledge is a precursor to creative output. The combination itself is the creative act.
37
+
38
+ **Systematic Bisociation Workflow**:
39
+
40
+ 1. **Select two domains** — one from current research, one from an adjacent field
41
+ 2. **List core primitives** in each domain (5-10 fundamental concepts per domain)
42
+ 3. **Create a cross-product matrix**: row = concepts from Domain A, column = concepts from Domain B
43
+ 4. **For each cell**, ask: "What would it mean to apply A's concept to B's problem?"
44
+ 5. **Filter**: Which combinations produce a non-trivial, testable research question?
45
+ 6. **Validate structural depth**: Is the connection mechanistic or merely metaphorical?
46
+
47
+ **Cross-Product Example**:
48
+
49
+ | | Caching | Load Balancing | Fault Tolerance |
50
+ |---|---------|---------------|-----------------|
51
+ | **Natural Selection** | Evict least-fit entries | Adaptive allocation via fitness | Population-level redundancy |
52
+ | **Immune Memory** | Learned threat signatures | Distributed detection | Self/non-self discrimination |
53
+ | **Symbiosis** | Cooperative prefetching | Mutualistic resource sharing | Co-dependent resilience |
54
+
55
+ **Quality Test**: A strong bisociation is not a surface metaphor ("the network is like a brain") but a structural mapping where the mechanism transfers ("attention mechanisms implement selective gating analogous to cognitive attention filtering").
56
+
57
+ ---
58
+
59
+ ## Framework 2: Problem Reformulation (Representational Change)
60
+
61
+ Gestalt psychologists identified that breakthroughs often come not from solving the problem as stated, but from **re-representing the problem itself**. Kaplan and Simon's work on insight shows that changing the problem space is often where creativity lives.
62
+
63
+ **The Key Shift**: From "How do I solve this problem?" to "Am I even thinking about this problem correctly?"
64
+
65
+ **Reformulation Strategies**:
66
+
67
+ | Strategy | Example |
68
+ |----------|---------|
69
+ | **Change the objective** | "Make the algorithm faster" → "Eliminate the need for this computation" |
70
+ | **Change the formalism** | Graph problem → linear algebra problem (spectral methods) |
71
+ | **Change the granularity** | Per-token prediction → per-span prediction |
72
+ | **Change the agent** | "How should the model learn?" → "How should the data teach?" (curriculum learning) |
73
+ | **Change the timescale** | Real-time optimization → amortized inference |
74
+ | **Invert the direction** | Forward simulation → inverse problem (learning from observations) |
75
+
76
+ **Application**: State your current research problem in one sentence. Identify the hidden assumptions — formalism, objective, granularity, agent. For each assumption, generate the alternative: "What if [opposite]?" A reformulation that makes a hard problem easy is often a publishable insight.
77
+
78
+ **Classic CS Examples**:
79
+ - **PageRank**: Reformulated "find important pages" from content analysis to graph eigenvalue problem
80
+ - **Dropout**: Reformulated "prevent overfitting" from regularization to approximate ensemble
81
+ - **Attention**: Reformulated "handle long sequences" from remembering everything to selectively querying
82
+
83
+ ---
84
+
85
+ ## Framework 3: Analogical Reasoning (Structure-Mapping)
86
+
87
+ Dedre Gentner's **structure-mapping theory**: surface-level analogies are common but weak; **structural or relational analogies** — where the deep causal structure maps across domains — produce the most powerful insights.
88
+
89
+ **Levels of Analogical Depth**:
90
+
91
+ | Level | Description | Value | Example |
92
+ |-------|-------------|-------|---------|
93
+ | **Surface** | Things look similar | Low | "A neural network is like a brain" |
94
+ | **Relational** | Relationships between entities match | Medium | "Attention allocation parallels economic resource allocation" |
95
+ | **Structural** | Deep causal mechanisms map | High | "Diffusion models reverse thermodynamic processes; stat-mech math directly applies" |
96
+
97
+ **Structure-Mapping Workflow**:
98
+
99
+ 1. **Describe your problem** using only relational/causal language (strip domain-specific nouns)
100
+ 2. **Search for structural matches**: What other systems solve a structurally similar problem? Use the `literature-search` tool to search the source domain.
101
+ 3. **Pick the most distant match** with genuine structural fidelity
102
+ 4. **Map the solution mechanism**: How does the source domain solve this?
103
+ 5. **Transfer and adapt**: What changes when you bring that mechanism into your domain?
104
+ 6. **Generate predictions**: The analogy should tell you something you didn't already know — formulate as a concrete validation experiment
105
+
106
+ ---
107
+
108
+ ## Framework 4: Constraint Manipulation (Boden's Framework)
109
+
110
+ Margaret Boden's framework distinguishes three forms of creativity:
111
+
112
+ | Type | Operation | CS Example |
113
+ |------|-----------|------------|
114
+ | **Exploratory** | Search within the existing conceptual space | Hyperparameter tuning, architecture search within a fixed paradigm |
115
+ | **Combinational** | Combine elements from different spaces | Multi-task learning, neuro-symbolic methods |
116
+ | **Transformational** | Change the rules of the space itself | Dropping the assumption that training requires labels (self-supervised learning) |
117
+
118
+ **Transformational creativity is the rarest and highest-impact.** It happens when you change what is even considered a valid solution.
119
+
120
+ **Constraint Analysis Workflow**:
121
+
122
+ 1. **List the constraints** of your current approach (5-10):
123
+ - Computational, Methodological, Architectural, Evaluative
124
+ 2. **Classify each**:
125
+ - **Hard**: Physically or logically necessary (cannot violate)
126
+ - **Soft**: Convention or historical accident (can question)
127
+ - **Hidden**: Not stated but implicitly assumed (most fertile for innovation)
128
+ 3. **For each soft/hidden constraint**: What if relaxed? What if tightened? What if replaced entirely?
129
+ 4. **The most productive move** is often exposing and dropping a hidden constraint
130
+
131
+ **Classic Constraint Transformations**:
132
+ - "Data must fit in memory" → dropped → streaming algorithms, external memory
133
+ - "Training requires human labels" → dropped → self-supervised learning
134
+ - "Models must be deterministic" → dropped → variational methods, diffusion
135
+ - "Inference must happen in one pass" → dropped → iterative refinement, chain-of-thought
136
+
137
+ ---
138
+
139
+ ## Framework 5: Negation and Inversion
140
+
141
+ Take a core assumption and negate it. Formalized in De Bono's lateral thinking and the **TRIZ methodology**.
142
+
143
+ **The Pattern**: "What if [widely held assumption] is wrong, unnecessary, or invertible?"
144
+
145
+ **Systematic Negation Workflow**:
146
+
147
+ 1. **List 5-10 core assumptions** in the current research area (the things "everyone knows")
148
+ 2. **Negate each one** and ask: What system would you build?
149
+ 3. **Evaluate each negation**:
150
+ - Incoherent → discard
151
+ - Already explored → use `literature-search` to check if conditions have changed
152
+ - Unexplored and coherent → candidate research direction
153
+
154
+ **Negation Hall of Fame in CS**:
155
+
156
+ | Assumption | Negation | Result |
157
+ |-----------|----------|--------|
158
+ | "We need strong consistency" | What if we don't? | Eventual consistency, CRDTs |
159
+ | "We need exact answers" | What if approximate is fine? | Sketches, LSH, approximate nearest neighbors |
160
+ | "Labels are necessary" | What if we learn without them? | Self-supervised learning, contrastive methods |
161
+ | "More parameters = more compute" | What if we don't use all parameters? | Mixture of Experts, sparse models |
162
+ | "Training and inference are separate" | What if the model keeps learning? | Online learning, test-time training |
163
+ | "Errors must be prevented" | What if we embrace and correct them? | Speculative decoding, self-correction |
164
+
165
+ **TRIZ-Inspired Principles for CS**:
166
+
167
+ | TRIZ Principle | CS Application |
168
+ |---------------|----------------|
169
+ | **Inversion** | Reverse the process (generative vs. discriminative) |
170
+ | **Segmentation** | Break monolithic into modular (microservices, mixture of experts) |
171
+ | **Merging** | Combine separate steps (end-to-end learning) |
172
+ | **Universality** | One component serves multiple functions (multi-task models) |
173
+ | **Nesting** | Place one system inside another (meta-learning) |
174
+ | **Dynamization** | Make static things adaptive (dynamic architectures, adaptive computation) |
175
+
176
+ ---
177
+
178
+ ## Framework 6: Abstraction and Generalization Laddering
179
+
180
+ Moving up and down the abstraction ladder is a fundamental creative act. Polya's heuristics: *"Can you solve a more general problem? A more specific one? An analogous one?"*
181
+
182
+ | Move | Question | Outcome |
183
+ |------|----------|---------|
184
+ | **Generalize** | "Is my solution a special case of something broader?" | Framework papers, unifying theories |
185
+ | **Specialize** | "What happens when I add extreme constraints?" | Niche applications, surprising edge cases |
186
+ | **Analogize** | "Where else does this abstract pattern appear?" | Cross-domain transfer (see Framework 3) |
187
+
188
+ **Application**: For any research finding, replace each specific element with a variable. Ask: under what conditions does this hold? If the general principle is novel → that is the contribution. Specialization under extreme constraints reveals the method's true assumptions — failures become key validation questions.
189
+
190
+ ---
191
+
192
+ ## Framework 7: The Adjacent Possible (Kauffman / Johnson)
193
+
194
+ Stuart Kauffman's concept: innovation happens at the boundary of what is currently reachable — the **adjacent possible**. New ideas become thinkable once their prerequisites exist.
195
+
196
+ **Adjacent Possible Mapping Workflow**:
197
+
198
+ 1. **List recent enablers** (use `literature-search` and `web-search` to surface these):
199
+ - New hardware capabilities (longer context, faster inference, new accelerators)
200
+ - New datasets or benchmarks
201
+ - New open-source tools or frameworks
202
+ - New theoretical results
203
+ - New regulatory or social conditions
204
+ 2. **For each enabler, ask**: "What was previously impossible or impractical that this now permits?"
205
+ 3. **Combine enablers**: The most powerful adjacent possibles arise from the intersection of multiple new enablers
206
+ 4. **Check for competition**: If many groups can see the same adjacent possible, speed or a unique angle matters
207
+
208
+ **Timing Signal**: If the idea requires technology that doesn't exist yet → beyond the adjacent possible, park it. If the idea could have been done 3+ years ago → someone probably did, check the literature. The sweet spot is ideas that became feasible in the last 6-18 months.
209
+
210
+ ---
211
+
212
+ ## Framework 8: Janusian and Dialectical Thinking
213
+
214
+ Albert Rothenberg's studies of eminent creators: **holding two contradictory ideas simultaneously** is a hallmark of creative thinking. This mode doesn't resolve contradictions by choosing a side — it generates new frameworks that transcend the opposition.
215
+
216
+ | Contradiction | Resolution | Impact |
217
+ |--------------|------------|--------|
218
+ | Consistency AND Availability | CAP theorem + practical middle grounds (Raft, CRDTs) | Foundation of distributed systems |
219
+ | Security AND Usability | Zero-knowledge proofs | Enabled private computation |
220
+ | Expressiveness AND Tractability | Probabilistic programming | New programming paradigm |
221
+ | Memorization AND Generalization | Grokking | New understanding of learning dynamics |
222
+ | Compression AND Quality | Neural codecs with learned priors | Redefined compression research |
223
+
224
+ **Dialectical Thinking Workflow**:
225
+
226
+ 1. **Identify a binary** in your research area: A vs. B (two approaches, goals, or paradigms treated as opposites)
227
+ 2. **Resist choosing a side**. Instead ask:
228
+ - "What would a system look like that achieves both A and B?"
229
+ - "Under what conditions is the A-B trade-off not fundamental?"
230
+ - "Is the opposition an artifact of how we formalized the problem?"
231
+ 3. **Seek synthesis**: The resolution often requires a new abstraction that reframes the relationship
232
+ 4. **Test the synthesis**: Formulate as a concrete experiment — can you demonstrate empirically that both goals are achievable?
233
+
234
+ ---
235
+
236
+ ## Combined Creative Thinking Protocol
237
+
238
+ These frameworks are most powerful in combination. Use this protocol for deep creative thinking when individual lenses are insufficient.
239
+
240
+ ### Phase 1: Map the Space
241
+ 1. **Constraint Manipulation** (F4): List all constraints of the current paradigm. Mark which are hard, soft, hidden.
242
+ 2. **Adjacent Possible** (F7): Use `literature-search` and `web-search` to list recent enablers that change the feasibility landscape.
243
+
244
+ Save the constraint map and enabler list as note artifacts.
245
+
246
+ ### Phase 2: Generate Disruptions
247
+ 3. **Negation** (F5): Negate 3 soft/hidden constraints. What systems emerge?
248
+ 4. **Bisociation** (F1): Pick a distant field and create a cross-product matrix with your domain.
249
+ 5. **Problem Reformulation** (F2): Restate your problem 3 different ways (change objective, formalism, agent).
250
+
251
+ ### Phase 3: Deepen Promising Leads
252
+ 6. **Analogical Reasoning** (F3): For each promising idea, find a structural analogy and extract predictions.
253
+ 7. **Abstraction Laddering** (F6): Move each idea up (generalize) and down (specialize).
254
+ 8. **Janusian Thinking** (F8): Identify any tensions. Can you synthesize rather than choose?
255
+
256
+ ### Phase 4: Evaluate
257
+ Apply the two-sentence test (from `brainstorming-research-ideas`, Framework 10):
258
+ > "**[Domain] currently struggles with [problem] because [reason].** We [approach] by [mechanism], which works because [insight]."
259
+
260
+ Any idea that survives all four phases → present to the user as a refined research direction with concrete next steps.
261
+
262
+ ---
263
+
264
+ ## Common Creative Blocks and Unblocking Strategies
265
+
266
+ | Block | Symptom | Framework to Apply |
267
+ |-------|---------|-------------------|
268
+ | **Fixation** | Cannot stop thinking about the problem one way | Problem Reformulation (F2) — force a different representation |
269
+ | **Tunnel vision** | All ideas come from the same literature cluster | Bisociation (F1) or Analogical Reasoning (F3) — import from elsewhere |
270
+ | **Self-censoring** | Dismissing ideas as implausible before exploring | Negation (F5) — implausible is the point; evaluate after generating |
271
+ | **Incrementalism** | Every candidate is "+2% on benchmark X" | Constraint Manipulation (F4) — change the rules, not the parameters |
272
+ | **Analysis paralysis** | Too many options, cannot commit a direction | Adjacent Possible (F7) — what is feasible right now given project constraints? |
273
+ | **False dichotomy** | Stuck choosing between two approaches | Janusian Thinking (F8) — seek synthesis, not selection |
@@ -0,0 +1,361 @@
1
+ ---
2
+ name: matplotlib
3
+ description: Low-level plotting library for full customization. Use when you need fine-grained control over every plot element, creating novel plot types, or integrating with specific scientific workflows. Export to PNG/PDF/SVG for publication. For quick statistical plots use seaborn; for interactive plots use plotly; for publication-ready multi-panel figures with journal styling, use scientific-visualization.
4
+ category: Visualization
5
+ tags: [science, visualization]
6
+ triggers: [matplotlib, plt.plot, custom plot, plot from scratch, fine-grained plot control]
7
+ license: https://github.com/matplotlib/matplotlib/tree/main/LICENSE
8
+ metadata:
9
+ skill-author: K-Dense Inc.
10
+ ---
11
+
12
+ # Matplotlib
13
+
14
+ ## Overview
15
+
16
+ Matplotlib is Python's foundational visualization library for creating static, animated, and interactive plots. This skill provides guidance on using matplotlib effectively, covering both the pyplot interface (MATLAB-style) and the object-oriented API (Figure/Axes), along with best practices for creating publication-quality visualizations.
17
+
18
+ ## When to Use This Skill
19
+
20
+ This skill should be used when:
21
+ - Creating any type of plot or chart (line, scatter, bar, histogram, heatmap, contour, etc.)
22
+ - Generating scientific or statistical visualizations
23
+ - Customizing plot appearance (colors, styles, labels, legends)
24
+ - Creating multi-panel figures with subplots
25
+ - Exporting visualizations to various formats (PNG, PDF, SVG, etc.)
26
+ - Building interactive plots or animations
27
+ - Working with 3D visualizations
28
+ - Integrating plots into Jupyter notebooks or GUI applications
29
+
30
+ ## Core Concepts
31
+
32
+ ### The Matplotlib Hierarchy
33
+
34
+ Matplotlib uses a hierarchical structure of objects:
35
+
36
+ 1. **Figure** - The top-level container for all plot elements
37
+ 2. **Axes** - The actual plotting area where data is displayed (one Figure can contain multiple Axes)
38
+ 3. **Artist** - Everything visible on the figure (lines, text, ticks, etc.)
39
+ 4. **Axis** - The number line objects (x-axis, y-axis) that handle ticks and labels
40
+
41
+ ### Two Interfaces
42
+
43
+ **1. pyplot Interface (Implicit, MATLAB-style)**
44
+ ```python
45
+ import matplotlib.pyplot as plt
46
+
47
+ plt.plot([1, 2, 3, 4])
48
+ plt.ylabel('some numbers')
49
+ plt.show()
50
+ ```
51
+ - Convenient for quick, simple plots
52
+ - Maintains state automatically
53
+ - Good for interactive work and simple scripts
54
+
55
+ **2. Object-Oriented Interface (Explicit)**
56
+ ```python
57
+ import matplotlib.pyplot as plt
58
+
59
+ fig, ax = plt.subplots()
60
+ ax.plot([1, 2, 3, 4])
61
+ ax.set_ylabel('some numbers')
62
+ plt.show()
63
+ ```
64
+ - **Recommended for most use cases**
65
+ - More explicit control over figure and axes
66
+ - Better for complex figures with multiple subplots
67
+ - Easier to maintain and debug
68
+
69
+ ## Common Workflows
70
+
71
+ ### 1. Basic Plot Creation
72
+
73
+ **Single plot workflow:**
74
+ ```python
75
+ import matplotlib.pyplot as plt
76
+ import numpy as np
77
+
78
+ # Create figure and axes (OO interface - RECOMMENDED)
79
+ fig, ax = plt.subplots(figsize=(10, 6))
80
+
81
+ # Generate and plot data
82
+ x = np.linspace(0, 2*np.pi, 100)
83
+ ax.plot(x, np.sin(x), label='sin(x)')
84
+ ax.plot(x, np.cos(x), label='cos(x)')
85
+
86
+ # Customize
87
+ ax.set_xlabel('x')
88
+ ax.set_ylabel('y')
89
+ ax.set_title('Trigonometric Functions')
90
+ ax.legend()
91
+ ax.grid(True, alpha=0.3)
92
+
93
+ # Save and/or display
94
+ plt.savefig('plot.png', dpi=300, bbox_inches='tight')
95
+ plt.show()
96
+ ```
97
+
98
+ ### 2. Multiple Subplots
99
+
100
+ **Creating subplot layouts:**
101
+ ```python
102
+ # Method 1: Regular grid
103
+ fig, axes = plt.subplots(2, 2, figsize=(12, 10))
104
+ axes[0, 0].plot(x, y1)
105
+ axes[0, 1].scatter(x, y2)
106
+ axes[1, 0].bar(categories, values)
107
+ axes[1, 1].hist(data, bins=30)
108
+
109
+ # Method 2: Mosaic layout (more flexible)
110
+ fig, axes = plt.subplot_mosaic([['left', 'right_top'],
111
+ ['left', 'right_bottom']],
112
+ figsize=(10, 8))
113
+ axes['left'].plot(x, y)
114
+ axes['right_top'].scatter(x, y)
115
+ axes['right_bottom'].hist(data)
116
+
117
+ # Method 3: GridSpec (maximum control)
118
+ from matplotlib.gridspec import GridSpec
119
+ fig = plt.figure(figsize=(12, 8))
120
+ gs = GridSpec(3, 3, figure=fig)
121
+ ax1 = fig.add_subplot(gs[0, :]) # Top row, all columns
122
+ ax2 = fig.add_subplot(gs[1:, 0]) # Bottom two rows, first column
123
+ ax3 = fig.add_subplot(gs[1:, 1:]) # Bottom two rows, last two columns
124
+ ```
125
+
126
+ ### 3. Plot Types and Use Cases
127
+
128
+ **Line plots** - Time series, continuous data, trends
129
+ ```python
130
+ ax.plot(x, y, linewidth=2, linestyle='--', marker='o', color='blue')
131
+ ```
132
+
133
+ **Scatter plots** - Relationships between variables, correlations
134
+ ```python
135
+ ax.scatter(x, y, s=sizes, c=colors, alpha=0.6, cmap='viridis')
136
+ ```
137
+
138
+ **Bar charts** - Categorical comparisons
139
+ ```python
140
+ ax.bar(categories, values, color='steelblue', edgecolor='black')
141
+ # For horizontal bars:
142
+ ax.barh(categories, values)
143
+ ```
144
+
145
+ **Histograms** - Distributions
146
+ ```python
147
+ ax.hist(data, bins=30, edgecolor='black', alpha=0.7)
148
+ ```
149
+
150
+ **Heatmaps** - Matrix data, correlations
151
+ ```python
152
+ im = ax.imshow(matrix, cmap='coolwarm', aspect='auto')
153
+ plt.colorbar(im, ax=ax)
154
+ ```
155
+
156
+ **Contour plots** - 3D data on 2D plane
157
+ ```python
158
+ contour = ax.contour(X, Y, Z, levels=10)
159
+ ax.clabel(contour, inline=True, fontsize=8)
160
+ ```
161
+
162
+ **Box plots** - Statistical distributions
163
+ ```python
164
+ ax.boxplot([data1, data2, data3], labels=['A', 'B', 'C'])
165
+ ```
166
+
167
+ **Violin plots** - Distribution densities
168
+ ```python
169
+ ax.violinplot([data1, data2, data3], positions=[1, 2, 3])
170
+ ```
171
+
172
+ For comprehensive plot type examples and variations, refer to `@skill/references/plot_types.md`.
173
+
174
+ ### 4. Styling and Customization
175
+
176
+ **Color specification methods:**
177
+ - Named colors: `'red'`, `'blue'`, `'steelblue'`
178
+ - Hex codes: `'#FF5733'`
179
+ - RGB tuples: `(0.1, 0.2, 0.3)`
180
+ - Colormaps: `cmap='viridis'`, `cmap='plasma'`, `cmap='coolwarm'`
181
+
182
+ **Using style sheets:**
183
+ ```python
184
+ plt.style.use('seaborn-v0_8-darkgrid') # Apply predefined style
185
+ # Available styles: 'ggplot', 'bmh', 'fivethirtyeight', etc.
186
+ print(plt.style.available) # List all available styles
187
+ ```
188
+
189
+ **Customizing with rcParams:**
190
+ ```python
191
+ plt.rcParams['font.size'] = 12
192
+ plt.rcParams['axes.labelsize'] = 14
193
+ plt.rcParams['axes.titlesize'] = 16
194
+ plt.rcParams['xtick.labelsize'] = 10
195
+ plt.rcParams['ytick.labelsize'] = 10
196
+ plt.rcParams['legend.fontsize'] = 12
197
+ plt.rcParams['figure.titlesize'] = 18
198
+ ```
199
+
200
+ **Text and annotations:**
201
+ ```python
202
+ ax.text(x, y, 'annotation', fontsize=12, ha='center')
203
+ ax.annotate('important point', xy=(x, y), xytext=(x+1, y+1),
204
+ arrowprops=dict(arrowstyle='->', color='red'))
205
+ ```
206
+
207
+ For detailed styling options and colormap guidelines, see `@skill/references/styling_guide.md`.
208
+
209
+ ### 5. Saving Figures
210
+
211
+ **Export to various formats:**
212
+ ```python
213
+ # High-resolution PNG for presentations/papers
214
+ plt.savefig('figure.png', dpi=300, bbox_inches='tight', facecolor='white')
215
+
216
+ # Vector format for publications (scalable)
217
+ plt.savefig('figure.pdf', bbox_inches='tight')
218
+ plt.savefig('figure.svg', bbox_inches='tight')
219
+
220
+ # Transparent background
221
+ plt.savefig('figure.png', dpi=300, bbox_inches='tight', transparent=True)
222
+ ```
223
+
224
+ **Important parameters:**
225
+ - `dpi`: Resolution (300 for publications, 150 for web, 72 for screen)
226
+ - `bbox_inches='tight'`: Removes excess whitespace
227
+ - `facecolor='white'`: Ensures white background (useful for transparent themes)
228
+ - `transparent=True`: Transparent background
229
+
230
+ ### 6. Working with 3D Plots
231
+
232
+ ```python
233
+ from mpl_toolkits.mplot3d import Axes3D
234
+
235
+ fig = plt.figure(figsize=(10, 8))
236
+ ax = fig.add_subplot(111, projection='3d')
237
+
238
+ # Surface plot
239
+ ax.plot_surface(X, Y, Z, cmap='viridis')
240
+
241
+ # 3D scatter
242
+ ax.scatter(x, y, z, c=colors, marker='o')
243
+
244
+ # 3D line plot
245
+ ax.plot(x, y, z, linewidth=2)
246
+
247
+ # Labels
248
+ ax.set_xlabel('X Label')
249
+ ax.set_ylabel('Y Label')
250
+ ax.set_zlabel('Z Label')
251
+ ```
252
+
253
+ ## Best Practices
254
+
255
+ ### 1. Interface Selection
256
+ - **Use the object-oriented interface** (fig, ax = plt.subplots()) for production code
257
+ - Reserve pyplot interface for quick interactive exploration only
258
+ - Always create figures explicitly rather than relying on implicit state
259
+
260
+ ### 2. Figure Size and DPI
261
+ - Set figsize at creation: `fig, ax = plt.subplots(figsize=(10, 6))`
262
+ - Use appropriate DPI for output medium:
263
+ - Screen/notebook: 72-100 dpi
264
+ - Web: 150 dpi
265
+ - Print/publications: 300 dpi
266
+
267
+ ### 3. Layout Management
268
+ - Use `constrained_layout=True` or `tight_layout()` to prevent overlapping elements
269
+ - `fig, ax = plt.subplots(constrained_layout=True)` is recommended for automatic spacing
270
+
271
+ ### 4. Colormap Selection
272
+ - **Sequential** (viridis, plasma, inferno): Ordered data with consistent progression
273
+ - **Diverging** (coolwarm, RdBu): Data with meaningful center point (e.g., zero)
274
+ - **Qualitative** (tab10, Set3): Categorical/nominal data
275
+ - Avoid rainbow colormaps (jet) - they are not perceptually uniform
276
+
277
+ ### 5. Accessibility
278
+ - Use colorblind-friendly colormaps (viridis, cividis)
279
+ - Add patterns/hatching for bar charts in addition to colors
280
+ - Ensure sufficient contrast between elements
281
+ - Include descriptive labels and legends
282
+
283
+ ### 6. Performance
284
+ - For large datasets, use `rasterized=True` in plot calls to reduce file size
285
+ - Use appropriate data reduction before plotting (e.g., downsample dense time series)
286
+ - For animations, use blitting for better performance
287
+
288
+ ### 7. Code Organization
289
+ ```python
290
+ # Good practice: Clear structure
291
+ def create_analysis_plot(data, title):
292
+ """Create standardized analysis plot."""
293
+ fig, ax = plt.subplots(figsize=(10, 6), constrained_layout=True)
294
+
295
+ # Plot data
296
+ ax.plot(data['x'], data['y'], linewidth=2)
297
+
298
+ # Customize
299
+ ax.set_xlabel('X Axis Label', fontsize=12)
300
+ ax.set_ylabel('Y Axis Label', fontsize=12)
301
+ ax.set_title(title, fontsize=14, fontweight='bold')
302
+ ax.grid(True, alpha=0.3)
303
+
304
+ return fig, ax
305
+
306
+ # Use the function
307
+ fig, ax = create_analysis_plot(my_data, 'My Analysis')
308
+ plt.savefig('analysis.png', dpi=300, bbox_inches='tight')
309
+ ```
310
+
311
+ ## Quick Reference Scripts
312
+
313
+ This skill includes helper scripts in the `@skill/scripts/` directory:
314
+
315
+ ### `plot_template.py`
316
+ Template script demonstrating various plot types with best practices. Use this as a starting point for creating new visualizations.
317
+
318
+ **Usage:**
319
+ ```bash
320
+ python @skill/scripts/plot_template.py
321
+ ```
322
+
323
+ ### `style_configurator.py`
324
+ Interactive utility to configure matplotlib style preferences and generate custom style sheets.
325
+
326
+ **Usage:**
327
+ ```bash
328
+ python @skill/scripts/style_configurator.py
329
+ ```
330
+
331
+ ## Detailed References
332
+
333
+ For comprehensive information, consult the reference documents:
334
+
335
+ - **`@skill/references/plot_types.md`** - Complete catalog of plot types with code examples and use cases
336
+ - **`@skill/references/styling_guide.md`** - Detailed styling options, colormaps, and customization
337
+ - **`@skill/references/api_reference.md`** - Core classes and methods reference
338
+ - **`@skill/references/common_issues.md`** - Troubleshooting guide for common problems
339
+
340
+ ## Integration with Other Tools
341
+
342
+ Matplotlib integrates well with:
343
+ - **NumPy/Pandas** - Direct plotting from arrays and DataFrames
344
+ - **Seaborn** - High-level statistical visualizations built on matplotlib
345
+ - **Jupyter** - Interactive plotting with `%matplotlib inline` or `%matplotlib widget`
346
+ - **GUI frameworks** - Embedding in Tkinter, Qt, wxPython applications
347
+
348
+ ## Common Gotchas
349
+
350
+ 1. **Overlapping elements**: Use `constrained_layout=True` or `tight_layout()`
351
+ 2. **State confusion**: Use OO interface to avoid pyplot state machine issues
352
+ 3. **Memory issues with many figures**: Close figures explicitly with `plt.close(fig)`
353
+ 4. **Font warnings**: Install fonts or suppress warnings with `plt.rcParams['font.sans-serif']`
354
+ 5. **DPI confusion**: Remember that figsize is in inches, not pixels: `pixels = dpi * inches`
355
+
356
+ ## Additional Resources
357
+
358
+ - Official documentation: https://matplotlib.org/
359
+ - Gallery: https://matplotlib.org/stable/gallery/index.html
360
+ - Cheatsheets: https://matplotlib.org/cheatsheets/
361
+ - Tutorials: https://matplotlib.org/stable/tutorials/index.html