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,130 @@
1
+ function words(str) {
2
+ var obj = {}, words2 = str.split(" ");
3
+ for (var i = 0; i < words2.length; ++i) obj[words2[i]] = true;
4
+ return obj;
5
+ }
6
+ var bodiedOps = words("Assert BackQuote D Defun Deriv For ForEach FromFile FromString Function Integrate InverseTaylor Limit LocalSymbols Macro MacroRule MacroRulePattern NIntegrate Rule RulePattern Subst TD TExplicitSum TSum Taylor Taylor1 Taylor2 Taylor3 ToFile ToStdout ToString TraceRule Until While");
7
+ var pFloatForm = "(?:(?:\\.\\d+|\\d+\\.\\d*|\\d+)(?:[eE][+-]?\\d+)?)";
8
+ var pIdentifier = "(?:[a-zA-Z\\$'][a-zA-Z0-9\\$']*)";
9
+ var reFloatForm = new RegExp(pFloatForm);
10
+ var reIdentifier = new RegExp(pIdentifier);
11
+ var rePattern = new RegExp(pIdentifier + "?_" + pIdentifier);
12
+ var reFunctionLike = new RegExp(pIdentifier + "\\s*\\(");
13
+ function tokenBase(stream, state) {
14
+ var ch;
15
+ ch = stream.next();
16
+ if (ch === '"') {
17
+ state.tokenize = tokenString;
18
+ return state.tokenize(stream, state);
19
+ }
20
+ if (ch === "/") {
21
+ if (stream.eat("*")) {
22
+ state.tokenize = tokenComment;
23
+ return state.tokenize(stream, state);
24
+ }
25
+ if (stream.eat("/")) {
26
+ stream.skipToEnd();
27
+ return "comment";
28
+ }
29
+ }
30
+ stream.backUp(1);
31
+ var m = stream.match(/^(\w+)\s*\(/, false);
32
+ if (m !== null && bodiedOps.hasOwnProperty(m[1]))
33
+ state.scopes.push("bodied");
34
+ var scope = currentScope(state);
35
+ if (scope === "bodied" && ch === "[")
36
+ state.scopes.pop();
37
+ if (ch === "[" || ch === "{" || ch === "(")
38
+ state.scopes.push(ch);
39
+ scope = currentScope(state);
40
+ if (scope === "[" && ch === "]" || scope === "{" && ch === "}" || scope === "(" && ch === ")")
41
+ state.scopes.pop();
42
+ if (ch === ";") {
43
+ while (scope === "bodied") {
44
+ state.scopes.pop();
45
+ scope = currentScope(state);
46
+ }
47
+ }
48
+ if (stream.match(/\d+ *#/, true, false)) {
49
+ return "qualifier";
50
+ }
51
+ if (stream.match(reFloatForm, true, false)) {
52
+ return "number";
53
+ }
54
+ if (stream.match(rePattern, true, false)) {
55
+ return "variableName.special";
56
+ }
57
+ if (stream.match(/(?:\[|\]|{|}|\(|\))/, true, false)) {
58
+ return "bracket";
59
+ }
60
+ if (stream.match(reFunctionLike, true, false)) {
61
+ stream.backUp(1);
62
+ return "variableName.function";
63
+ }
64
+ if (stream.match(reIdentifier, true, false)) {
65
+ return "variable";
66
+ }
67
+ if (stream.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%|#)/, true, false)) {
68
+ return "operator";
69
+ }
70
+ return "error";
71
+ }
72
+ function tokenString(stream, state) {
73
+ var next, end = false, escaped = false;
74
+ while ((next = stream.next()) != null) {
75
+ if (next === '"' && !escaped) {
76
+ end = true;
77
+ break;
78
+ }
79
+ escaped = !escaped && next === "\\";
80
+ }
81
+ if (end && !escaped) {
82
+ state.tokenize = tokenBase;
83
+ }
84
+ return "string";
85
+ }
86
+ function tokenComment(stream, state) {
87
+ var prev, next;
88
+ while ((next = stream.next()) != null) {
89
+ if (prev === "*" && next === "/") {
90
+ state.tokenize = tokenBase;
91
+ break;
92
+ }
93
+ prev = next;
94
+ }
95
+ return "comment";
96
+ }
97
+ function currentScope(state) {
98
+ var scope = null;
99
+ if (state.scopes.length > 0)
100
+ scope = state.scopes[state.scopes.length - 1];
101
+ return scope;
102
+ }
103
+ const yacas = {
104
+ name: "yacas",
105
+ startState: function() {
106
+ return {
107
+ tokenize: tokenBase,
108
+ scopes: []
109
+ };
110
+ },
111
+ token: function(stream, state) {
112
+ if (stream.eatSpace()) return null;
113
+ return state.tokenize(stream, state);
114
+ },
115
+ indent: function(state, textAfter, cx) {
116
+ if (state.tokenize !== tokenBase && state.tokenize !== null)
117
+ return null;
118
+ var delta = 0;
119
+ if (textAfter === "]" || textAfter === "];" || textAfter === "}" || textAfter === "};" || textAfter === ");")
120
+ delta = -1;
121
+ return (state.scopes.length + delta) * cx.unit;
122
+ },
123
+ languageData: {
124
+ electricInput: /[{}\[\]()\;]/,
125
+ commentTokens: { line: "//", block: { open: "/*", close: "*/" } }
126
+ }
127
+ };
128
+ export {
129
+ yacas
130
+ };
@@ -0,0 +1,93 @@
1
+ function mkZ80(ez802) {
2
+ var keywords1, keywords2;
3
+ if (ez802) {
4
+ keywords1 = /^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i;
5
+ keywords2 = /^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i;
6
+ } else {
7
+ keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i;
8
+ keywords2 = /^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i;
9
+ }
10
+ var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i;
11
+ var variables2 = /^(n?[zc]|p[oe]?|m)\b/i;
12
+ var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i;
13
+ var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;
14
+ return {
15
+ name: "z80",
16
+ startState: function() {
17
+ return {
18
+ context: 0
19
+ };
20
+ },
21
+ token: function(stream, state) {
22
+ if (!stream.column())
23
+ state.context = 0;
24
+ if (stream.eatSpace())
25
+ return null;
26
+ var w;
27
+ if (stream.eatWhile(/\w/)) {
28
+ if (ez802 && stream.eat(".")) {
29
+ stream.eatWhile(/\w/);
30
+ }
31
+ w = stream.current();
32
+ if (stream.indentation()) {
33
+ if ((state.context == 1 || state.context == 4) && variables1.test(w)) {
34
+ state.context = 4;
35
+ return "variable";
36
+ }
37
+ if (state.context == 2 && variables2.test(w)) {
38
+ state.context = 4;
39
+ return "variableName.special";
40
+ }
41
+ if (keywords1.test(w)) {
42
+ state.context = 1;
43
+ return "keyword";
44
+ } else if (keywords2.test(w)) {
45
+ state.context = 2;
46
+ return "keyword";
47
+ } else if (state.context == 4 && numbers.test(w)) {
48
+ return "number";
49
+ }
50
+ if (errors.test(w))
51
+ return "error";
52
+ } else if (stream.match(numbers)) {
53
+ return "number";
54
+ } else {
55
+ return null;
56
+ }
57
+ } else if (stream.eat(";")) {
58
+ stream.skipToEnd();
59
+ return "comment";
60
+ } else if (stream.eat('"')) {
61
+ while (w = stream.next()) {
62
+ if (w == '"')
63
+ break;
64
+ if (w == "\\")
65
+ stream.next();
66
+ }
67
+ return "string";
68
+ } else if (stream.eat("'")) {
69
+ if (stream.match(/\\?.'/))
70
+ return "number";
71
+ } else if (stream.eat(".") || stream.sol() && stream.eat("#")) {
72
+ state.context = 5;
73
+ if (stream.eatWhile(/\w/))
74
+ return "def";
75
+ } else if (stream.eat("$")) {
76
+ if (stream.eatWhile(/[\da-f]/i))
77
+ return "number";
78
+ } else if (stream.eat("%")) {
79
+ if (stream.eatWhile(/[01]/))
80
+ return "number";
81
+ } else {
82
+ stream.next();
83
+ }
84
+ return null;
85
+ }
86
+ };
87
+ }
88
+ const z80 = mkZ80(false);
89
+ const ez80 = mkZ80(true);
90
+ export {
91
+ ez80,
92
+ z80
93
+ };
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Research Pilot</title>
7
+ <script type="module" crossorigin src="./assets/index-BqDyyRCx.js"></script>
8
+ <link rel="stylesheet" crossorigin href="./assets/index-C-_uCjZJ.css">
9
+ </head>
10
+ <body class="overflow-hidden">
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,29 @@
1
+ # Community Built-in Skills
2
+
3
+ This directory contains framework-integrated community skills using open directory format:
4
+
5
+ ```text
6
+ src/skills/community-builtin/<skill-id>/SKILL.md
7
+ src/skills/community-builtin/<skill-id>/scripts/*
8
+ ```
9
+
10
+ Project-local user skills use the same layout under:
11
+
12
+ ```text
13
+ .agentfoundry/skills/<skill-id>/SKILL.md
14
+ .agentfoundry/skills/<skill-id>/scripts/*
15
+ ```
16
+
17
+ Included examples:
18
+ - `repo-quick-audit`
19
+ - `markitdown`
20
+ - `document-docx`
21
+
22
+ Research Pilot-specific default project skills live in:
23
+
24
+ ```text
25
+ examples/research-pilot/skills/default-project-skills
26
+ ```
27
+
28
+ Build note:
29
+ - `npm run build` copies this directory to `dist/skills/community-builtin` so published packages can load community skills without source files.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: document-skills-docx
3
+ description: Read, convert, and structure DOCX documents for drafting workflows.
4
+ allowed-tools:
5
+ - skill-script-run
6
+ id: document-docx
7
+ shortDescription: DOCX extraction and conversion workflow for manuscript drafting
8
+ loadingStrategy: lazy
9
+ tools:
10
+ - skill-script-run
11
+ tags:
12
+ - community
13
+ - docx
14
+ - document-processing
15
+ meta:
16
+ approvedByUser: true
17
+ capabilities:
18
+ convert_to_markdown:
19
+ script: docx-to-markdown
20
+ extensions:
21
+ - docx
22
+ upstream:
23
+ repo: https://github.com/K-Dense-AI/claude-scientific-writer
24
+ path: skills/document-skills/docx
25
+ ---
26
+
27
+ # Summary
28
+ Use this skill for DOCX-first workflows: extract text, convert to markdown, and scaffold structured drafts.
29
+
30
+ ## Procedures
31
+ 1. Prepare DOCX tooling once in the environment.
32
+ 2. Convert `.docx` to markdown for tool-friendly editing.
33
+ 3. Extract raw text when markdown conversion fails or formatting is noisy.
34
+ 4. Create a clean DOCX template for collaborative writing handoff.
35
+
36
+ ## Scripts
37
+ - `setup-docx-tools`: Install conversion dependencies.
38
+ - `docx-to-markdown`: Convert DOCX to Markdown.
39
+ - `extract-docx-text`: Dump plain text from DOCX.
40
+ - `init-docx-template`: Generate a minimal DOCX template file.
41
+
42
+ ## Notes
43
+ - Prefer markdown as intermediate editing format.
44
+ - Keep the original DOCX unchanged; write outputs to new files.
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ "$#" -lt 2 ]; then
5
+ echo "Usage: docx-to-markdown.sh <input.docx> <output.md>" >&2
6
+ exit 1
7
+ fi
8
+
9
+ INPUT_PATH="$1"
10
+ OUTPUT_PATH="$2"
11
+
12
+ if command -v markitdown >/dev/null 2>&1; then
13
+ markitdown "$INPUT_PATH" -o "$OUTPUT_PATH"
14
+ elif command -v pandoc >/dev/null 2>&1; then
15
+ pandoc "$INPUT_PATH" -f docx -t markdown -o "$OUTPUT_PATH"
16
+ else
17
+ uvx --from "markitdown[all]" markitdown "$INPUT_PATH" -o "$OUTPUT_PATH"
18
+ fi
19
+
20
+ echo "converted: $INPUT_PATH -> $OUTPUT_PATH"
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ "$#" -lt 2 ]; then
5
+ echo "Usage: extract-docx-text.sh <input.docx> <output.txt>" >&2
6
+ exit 1
7
+ fi
8
+
9
+ INPUT_PATH="$1"
10
+ OUTPUT_PATH="$2"
11
+
12
+ if ! python3 -c "from docx import Document" >/dev/null 2>&1; then
13
+ echo "python-docx is not installed. Run setup-docx-tools.sh first." >&2
14
+ exit 1
15
+ fi
16
+
17
+ python3 - "$INPUT_PATH" "$OUTPUT_PATH" <<'PY'
18
+ import sys
19
+ from docx import Document
20
+
21
+ src, dst = sys.argv[1], sys.argv[2]
22
+ doc = Document(src)
23
+ lines = [p.text for p in doc.paragraphs]
24
+ with open(dst, "w", encoding="utf-8") as f:
25
+ f.write("\n".join(lines))
26
+ PY
27
+
28
+ echo "extracted text: $INPUT_PATH -> $OUTPUT_PATH"
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ "$#" -lt 1 ]; then
5
+ echo "Usage: init-docx-template.sh <output.docx>" >&2
6
+ exit 1
7
+ fi
8
+
9
+ OUTPUT_PATH="$1"
10
+
11
+ if ! python3 -c "from docx import Document" >/dev/null 2>&1; then
12
+ echo "python-docx is not installed. Run setup-docx-tools.sh first." >&2
13
+ exit 1
14
+ fi
15
+
16
+ python3 - "$OUTPUT_PATH" <<'PY'
17
+ import sys
18
+ from docx import Document
19
+
20
+ dst = sys.argv[1]
21
+ doc = Document()
22
+ doc.add_heading("Document Title", level=1)
23
+ doc.add_paragraph("Author: ")
24
+ doc.add_paragraph("Date: ")
25
+ doc.add_heading("Abstract", level=2)
26
+ doc.add_paragraph("")
27
+ doc.add_heading("Main Content", level=2)
28
+ doc.add_paragraph("")
29
+ doc.save(dst)
30
+ PY
31
+
32
+ echo "template created: $OUTPUT_PATH"
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if command -v uv >/dev/null 2>&1; then
5
+ uv pip install "markitdown[all]" "python-docx>=1.1.0"
6
+ else
7
+ python3 -m pip install --user "markitdown[all]" "python-docx>=1.1.0"
8
+ fi
9
+
10
+ echo "docx tools setup complete"
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: markitdown
3
+ description: Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.
4
+ allowed-tools:
5
+ - skill-script-run
6
+ license: MIT
7
+ source: https://github.com/microsoft/markitdown
8
+ id: markitdown
9
+ shortDescription: Convert local files to Markdown via Microsoft MarkItDown
10
+ loadingStrategy: lazy
11
+ tools:
12
+ - skill-script-run
13
+ tags:
14
+ - community
15
+ - document-conversion
16
+ - markdown
17
+ meta:
18
+ approvedByUser: true
19
+ capabilities:
20
+ convert_to_markdown:
21
+ script: convert-file
22
+ extensions:
23
+ - pdf
24
+ - docx
25
+ - pptx
26
+ - xlsx
27
+ - csv
28
+ - html
29
+ - json
30
+ - xml
31
+ - txt
32
+ - md
33
+ - epub
34
+ upstream:
35
+ repo: https://github.com/K-Dense-AI/claude-scientific-writer
36
+ path: skills/markitdown
37
+ ---
38
+
39
+ # MarkItDown - File to Markdown Conversion
40
+
41
+ ## Overview
42
+
43
+ MarkItDown converts many document and media formats into Markdown optimized for LLM workflows.
44
+
45
+ Use this skill when you need to:
46
+ - Convert research papers and reports into markdown for analysis
47
+ - Extract text from office files or scanned docs
48
+ - Normalize heterogeneous source files before indexing/RAG
49
+
50
+ ## Preferred Workflow in AgentFoundry
51
+
52
+ 1. Ensure tool availability:
53
+ - Use `skill-script-run` and run script `setup-markitdown` once per environment.
54
+
55
+ 2. Convert a single file:
56
+ - Run script `convert-file` with input path and output path.
57
+
58
+ 3. Batch convert:
59
+ - Run script `batch-convert` with input directory and output directory.
60
+
61
+ 4. Validate quality:
62
+ - Read output markdown and check tables, equations, and OCR-heavy sections.
63
+
64
+ ## Script Interface
65
+
66
+ ### `setup-markitdown`
67
+
68
+ Install MarkItDown with broad format support:
69
+
70
+ ```bash
71
+ skill-script-run {
72
+ "skillId": "markitdown",
73
+ "script": "setup-markitdown"
74
+ }
75
+ ```
76
+
77
+ ### `convert-file`
78
+
79
+ Convert one file to markdown:
80
+
81
+ ```bash
82
+ skill-script-run {
83
+ "skillId": "markitdown",
84
+ "script": "convert-file",
85
+ "args": ["input.pdf", "output.md"]
86
+ }
87
+ ```
88
+
89
+ ### `batch-convert`
90
+
91
+ Convert all supported files in a directory:
92
+
93
+ ```bash
94
+ skill-script-run {
95
+ "skillId": "markitdown",
96
+ "script": "batch-convert",
97
+ "args": ["./docs", "./markdown"]
98
+ }
99
+ ```
100
+
101
+ ## Notes
102
+
103
+ - Markdown output quality depends on source file quality.
104
+ - For large batches, convert in chunks and review failures file-by-file.
105
+ - For OCR/transcription workloads, install optional extras (`[all]`) via `setup-markitdown`.
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ "$#" -lt 2 ]; then
5
+ echo "Usage: batch-convert.sh <input-dir> <output-dir>" >&2
6
+ exit 1
7
+ fi
8
+
9
+ INPUT_DIR="$1"
10
+ OUTPUT_DIR="$2"
11
+
12
+ mkdir -p "$OUTPUT_DIR"
13
+
14
+ if command -v markitdown >/dev/null 2>&1; then
15
+ MARKITDOWN_CMD=(markitdown)
16
+ elif python3 -c "import markitdown" >/dev/null 2>&1; then
17
+ MARKITDOWN_CMD=(python3 -m markitdown)
18
+ else
19
+ UV_CACHE_DIR="${UV_CACHE_DIR:-$PWD/.agentfoundry/cache/uv-cache}"
20
+ UV_TOOL_DIR="${UV_TOOL_DIR:-$PWD/.agentfoundry/cache/uv-tools}"
21
+ mkdir -p "$UV_CACHE_DIR" "$UV_TOOL_DIR"
22
+ MARKITDOWN_CMD=(env UV_CACHE_DIR="$UV_CACHE_DIR" UV_TOOL_DIR="$UV_TOOL_DIR" uvx --from "markitdown[all]" markitdown)
23
+ fi
24
+
25
+ find "$INPUT_DIR" -type f | while IFS= read -r source_file; do
26
+ rel_path="${source_file#"$INPUT_DIR"/}"
27
+ file_stem="$(basename "$rel_path")"
28
+ file_stem="${file_stem%.*}"
29
+ out_dir="$OUTPUT_DIR/$(dirname "$rel_path")"
30
+ out_file="$out_dir/$file_stem.md"
31
+
32
+ mkdir -p "$out_dir"
33
+ echo "converting: $source_file -> $out_file"
34
+
35
+ "${MARKITDOWN_CMD[@]}" "$source_file" -o "$out_file" || {
36
+ echo "warning: failed to convert $source_file" >&2
37
+ }
38
+ done
39
+
40
+ echo "batch conversion complete: $INPUT_DIR -> $OUTPUT_DIR"
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if [ "$#" -lt 2 ]; then
5
+ echo "Usage: convert-file.sh <input-file> <output-md>" >&2
6
+ exit 1
7
+ fi
8
+
9
+ INPUT_PATH="$1"
10
+ OUTPUT_PATH="$2"
11
+
12
+ if command -v markitdown >/dev/null 2>&1; then
13
+ markitdown "$INPUT_PATH" -o "$OUTPUT_PATH"
14
+ elif python3 -c "import markitdown" >/dev/null 2>&1; then
15
+ python3 -m markitdown "$INPUT_PATH" -o "$OUTPUT_PATH"
16
+ else
17
+ UV_CACHE_DIR="${UV_CACHE_DIR:-$PWD/.agentfoundry/cache/uv-cache}"
18
+ UV_TOOL_DIR="${UV_TOOL_DIR:-$PWD/.agentfoundry/cache/uv-tools}"
19
+ mkdir -p "$UV_CACHE_DIR" "$UV_TOOL_DIR"
20
+ env UV_CACHE_DIR="$UV_CACHE_DIR" UV_TOOL_DIR="$UV_TOOL_DIR" \
21
+ uvx --from "markitdown[all]" markitdown "$INPUT_PATH" -o "$OUTPUT_PATH"
22
+ fi
23
+
24
+ echo "converted: $INPUT_PATH -> $OUTPUT_PATH"
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ if command -v uv >/dev/null 2>&1; then
5
+ uv pip install "markitdown[all]"
6
+ else
7
+ python3 -m pip install --user "markitdown[all]"
8
+ fi
9
+
10
+ echo "markitdown installation completed"
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: repo-quick-audit
3
+ name: Repo Quick Audit
4
+ shortDescription: Fast local repository sanity checks
5
+ loadingStrategy: lazy
6
+ tools:
7
+ - skill-script-run
8
+ tags:
9
+ - community
10
+ - audit
11
+ meta:
12
+ approvedByUser: true
13
+ ---
14
+
15
+ # Summary
16
+ Run a fast repository audit with `skill-script-run` before deep debugging.
17
+
18
+ ## Procedures
19
+ 1. Run script `audit-basics` to collect quick health signals.
20
+ 2. Review output for dirty git state, TODO count, and unresolved merge markers.
21
+ 3. If warnings exist, prioritize fixes before adding new features.
22
+
23
+ ## Examples
24
+ - `skill-script-run` with `{ "skillId": "repo-quick-audit", "script": "audit-basics" }`
25
+
26
+ ## Troubleshooting
27
+ - If script output is empty, run from project root (`cwd: "."`).
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ echo "[audit] git status"
5
+ git status --short || true
6
+
7
+ echo "[audit] todo count"
8
+ if command -v rg >/dev/null 2>&1; then
9
+ rg --glob '!node_modules/**' --glob '!.git/**' "TODO|FIXME" . | wc -l | awk '{print $1}'
10
+ else
11
+ grep -R --exclude-dir=node_modules --exclude-dir=.git -E "TODO|FIXME" . | wc -l | awk '{print $1}'
12
+ fi
13
+
14
+ echo "[audit] merge markers"
15
+ if command -v rg >/dev/null 2>&1; then
16
+ rg --glob '!node_modules/**' --glob '!.git/**' "^(<<<<<<<|=======|>>>>>>>)" . || true
17
+ else
18
+ grep -R --exclude-dir=node_modules --exclude-dir=.git -E "^(<<<<<<<|=======|>>>>>>>)" . || true
19
+ fi
@@ -0,0 +1,23 @@
1
+ # Research Pilot Default Project Skills
2
+
3
+ These skills are application-specific defaults for Research Pilot.
4
+
5
+ Directory layout:
6
+
7
+ ```text
8
+ examples/research-pilot/skills/default-project-skills/<skill-id>/SKILL.md
9
+ examples/research-pilot/skills/default-project-skills/<skill-id>/scripts/*
10
+ ```
11
+
12
+ Included skills:
13
+ - `citation-management`
14
+ - `research-grants`
15
+ - `matplotlib`
16
+
17
+ Desktop startup seeds these into each opened project at:
18
+
19
+ ```text
20
+ .agentfoundry/skills/<skill-id>
21
+ ```
22
+
23
+ Seeding is non-destructive: existing project-local skills are not overwritten.