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.
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/app/build/icon.icns +0 -0
- package/app/build/icon.ico +0 -0
- package/app/build/icon.png +0 -0
- package/app/out/main/index.mjs +6719 -0
- package/app/out/preload/index.js +141 -0
- package/app/out/renderer/assets/Inter-Variable-Latin-8kRkwJBP.woff2 +0 -0
- package/app/out/renderer/assets/Inter-Variable-LatinExt-B_-bZUTo.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/app/out/renderer/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/app/out/renderer/assets/MilkdownMarkdownEditor-bLPxrCVb.js +89821 -0
- package/app/out/renderer/assets/MilkdownMarkdownEditor-tTNRIB2K.css +2555 -0
- package/app/out/renderer/assets/Tableau10-BqnYsPR6.js +9 -0
- package/app/out/renderer/assets/apl-fqmucPXA.js +140 -0
- package/app/out/renderer/assets/arc-J47ePHZ2.js +132 -0
- package/app/out/renderer/assets/array-DgktLKBx.js +6 -0
- package/app/out/renderer/assets/asciiarmor-DucZyvP0.js +56 -0
- package/app/out/renderer/assets/asn1-BnOEsgAm.js +144 -0
- package/app/out/renderer/assets/asterisk-QAlztEwS.js +345 -0
- package/app/out/renderer/assets/blockDiagram-c4efeb88-5uRQXgQJ.js +1817 -0
- package/app/out/renderer/assets/brainfuck-DZVCuF_t.js +53 -0
- package/app/out/renderer/assets/c4Diagram-c83219d4-C4iCTPEL.js +2464 -0
- package/app/out/renderer/assets/channel-ZAmhHE3g.js +7 -0
- package/app/out/renderer/assets/classDiagram-beda092f-7NOZxq_W.js +357 -0
- package/app/out/renderer/assets/classDiagram-v2-2358418a-5fPT-cUH.js +291 -0
- package/app/out/renderer/assets/clike-xqXYL6ge.js +805 -0
- package/app/out/renderer/assets/clojure-BhXMqnxz.js +849 -0
- package/app/out/renderer/assets/clone-CsnzsYXQ.js +8 -0
- package/app/out/renderer/assets/cmake-BGaNd9E7.js +71 -0
- package/app/out/renderer/assets/cobol-4yqQntpt.js +120 -0
- package/app/out/renderer/assets/coffeescript-D2dXvhEc.js +308 -0
- package/app/out/renderer/assets/commonlisp-CF_VNHQR.js +130 -0
- package/app/out/renderer/assets/createText-1719965b-Cji7KN4K.js +4904 -0
- package/app/out/renderer/assets/crystal-DyuLTqLs.js +398 -0
- package/app/out/renderer/assets/css-c-jst79C.js +1783 -0
- package/app/out/renderer/assets/cypher-Dlu_3r4V.js +121 -0
- package/app/out/renderer/assets/d-UURgV0Ux.js +179 -0
- package/app/out/renderer/assets/diff-B_Bi2Crb.js +25 -0
- package/app/out/renderer/assets/dockerfile-Bvk733Ga.js +201 -0
- package/app/out/renderer/assets/dtd-Dy74G54E.js +114 -0
- package/app/out/renderer/assets/dylan-TSb-Nfix.js +314 -0
- package/app/out/renderer/assets/ebnf-DAomQUbD.js +139 -0
- package/app/out/renderer/assets/ecl-B59qGGVg.js +178 -0
- package/app/out/renderer/assets/edges-96097737-CD0EvAZQ.js +1844 -0
- package/app/out/renderer/assets/eiffel-Dze7nlu3.js +134 -0
- package/app/out/renderer/assets/elm-DG7jkhNZ.js +176 -0
- package/app/out/renderer/assets/erDiagram-0228fc6a-DRYXBpi7.js +1321 -0
- package/app/out/renderer/assets/erlang-BO6gOnGA.js +674 -0
- package/app/out/renderer/assets/factor-CMxFHDqz.js +65 -0
- package/app/out/renderer/assets/fcl-CDDUNjTj.js +141 -0
- package/app/out/renderer/assets/flowDb-c6c81e3f-CuoIN-Cy.js +1713 -0
- package/app/out/renderer/assets/flowDiagram-50d868cf-CPWPLOml.js +1272 -0
- package/app/out/renderer/assets/flowDiagram-v2-4f6560a1-C_R12s4S.js +33 -0
- package/app/out/renderer/assets/flowchart-elk-definition-6af322e1-BdKUSFpi.js +92921 -0
- package/app/out/renderer/assets/forth-B9D2JCeE.js +116 -0
- package/app/out/renderer/assets/fortran-CAG2BFbe.js +467 -0
- package/app/out/renderer/assets/ganttDiagram-a2739b55-ygqT5HlG.js +3399 -0
- package/app/out/renderer/assets/gas-d3KEcW3x.js +294 -0
- package/app/out/renderer/assets/gherkin-DhZlEZiy.js +115 -0
- package/app/out/renderer/assets/gitGraphDiagram-82fe8481-D97GT4iA.js +1791 -0
- package/app/out/renderer/assets/graph-DpC13d95.js +1237 -0
- package/app/out/renderer/assets/groovy-CpwJiBl7.js +223 -0
- package/app/out/renderer/assets/haskell-BlGBCCe3.js +459 -0
- package/app/out/renderer/assets/haxe-7MlzfeYV.js +514 -0
- package/app/out/renderer/assets/http-BqypyemW.js +79 -0
- package/app/out/renderer/assets/idl-4HIGJlDI.js +985 -0
- package/app/out/renderer/assets/index-4-ziknCv.js +292 -0
- package/app/out/renderer/assets/index-5325376f-Bbs7Fbqr.js +663 -0
- package/app/out/renderer/assets/index-B2jip-rk.js +2489 -0
- package/app/out/renderer/assets/index-BKTVfokE.js +312 -0
- package/app/out/renderer/assets/index-BiJbFgVG.js +118 -0
- package/app/out/renderer/assets/index-Bn433Fat.js +83 -0
- package/app/out/renderer/assets/index-BqDyyRCx.js +39679 -0
- package/app/out/renderer/assets/index-BzFMeMPn.js +158 -0
- package/app/out/renderer/assets/index-C-_uCjZJ.css +2701 -0
- package/app/out/renderer/assets/index-C1ithNW1.js +1765 -0
- package/app/out/renderer/assets/index-CAJkRYkO.js +407 -0
- package/app/out/renderer/assets/index-CleO0-yj.js +690 -0
- package/app/out/renderer/assets/index-Cq4MH3sY.js +1020 -0
- package/app/out/renderer/assets/index-CtA0Xj22.js +705 -0
- package/app/out/renderer/assets/index-CvAZkqBZ.js +83 -0
- package/app/out/renderer/assets/index-D3UDN-5c.js +152 -0
- package/app/out/renderer/assets/index-D4F9R5ao.js +179 -0
- package/app/out/renderer/assets/index-D6RguhZ5.js +328 -0
- package/app/out/renderer/assets/index-DnEowqXv.js +386 -0
- package/app/out/renderer/assets/index-K8c8Mqdy.js +98 -0
- package/app/out/renderer/assets/index-Kh14gO6K.js +62 -0
- package/app/out/renderer/assets/index-WFd2jRnA.js +333 -0
- package/app/out/renderer/assets/index-WgMfkRFp.js +313 -0
- package/app/out/renderer/assets/index-Y4lKyF6t.js +1042 -0
- package/app/out/renderer/assets/index-fx307_f1.js +643 -0
- package/app/out/renderer/assets/infoDiagram-8eee0895-ptaVSwzq.js +511 -0
- package/app/out/renderer/assets/init-ZxktEp_H.js +16 -0
- package/app/out/renderer/assets/javascript-C3MnDRiU.js +994 -0
- package/app/out/renderer/assets/journeyDiagram-c64418c1-aloEGOQp.js +1184 -0
- package/app/out/renderer/assets/julia-Bs6JJhYG.js +407 -0
- package/app/out/renderer/assets/layout-ZeuHE_aY.js +2217 -0
- package/app/out/renderer/assets/line-CAgaGl-S.js +45 -0
- package/app/out/renderer/assets/linear-DIg7lTe1.js +539 -0
- package/app/out/renderer/assets/livescript-DmzgM3Yt.js +296 -0
- package/app/out/renderer/assets/lua-8cJgIlqe.js +256 -0
- package/app/out/renderer/assets/mathematica-DNLOL9PQ.js +110 -0
- package/app/out/renderer/assets/mbox-Ga7d4MMN.js +117 -0
- package/app/out/renderer/assets/mindmap-definition-8da855dc-B8XVoUxz.js +36054 -0
- package/app/out/renderer/assets/mirc-Dma3B8rS.js +107 -0
- package/app/out/renderer/assets/mllike-DHn7xckP.js +334 -0
- package/app/out/renderer/assets/modelica-0d55jYY0.js +147 -0
- package/app/out/renderer/assets/mscgen-DdqZYINH.js +135 -0
- package/app/out/renderer/assets/mumps-Btr8VblO.js +93 -0
- package/app/out/renderer/assets/nginx-DTDtBDVN.js +141 -0
- package/app/out/renderer/assets/nsis-3zG7tgur.js +62 -0
- package/app/out/renderer/assets/ntriples-CvgOYMpL.js +153 -0
- package/app/out/renderer/assets/octave-DYBj3-tl.js +200 -0
- package/app/out/renderer/assets/ordinal-DSZU4PqD.js +76 -0
- package/app/out/renderer/assets/oz-R_e8WMIi.js +231 -0
- package/app/out/renderer/assets/pascal-GD8iposT.js +105 -0
- package/app/out/renderer/assets/path-Cp2qmpkd.js +109 -0
- package/app/out/renderer/assets/perl-DL9mHpoi.js +1105 -0
- package/app/out/renderer/assets/pieDiagram-a8764435-DlwoeBU2.js +770 -0
- package/app/out/renderer/assets/pig-C_4T4YIV.js +101 -0
- package/app/out/renderer/assets/powershell-B0suO7Vd.js +328 -0
- package/app/out/renderer/assets/properties-BR-vP1aU.js +58 -0
- package/app/out/renderer/assets/protobuf-BxgpyhoW.js +77 -0
- package/app/out/renderer/assets/pug-By0kVCfm.js +405 -0
- package/app/out/renderer/assets/puppet-Bdao66PW.js +137 -0
- package/app/out/renderer/assets/python-CvWbmiX4.js +427 -0
- package/app/out/renderer/assets/q-CrbCVq4a.js +131 -0
- package/app/out/renderer/assets/quadrantDiagram-1e28029f-BaSi1XB4.js +1200 -0
- package/app/out/renderer/assets/r-V7nswm59.js +170 -0
- package/app/out/renderer/assets/requirementDiagram-08caed73-D3EFyegZ.js +1092 -0
- package/app/out/renderer/assets/rpm-C-DLY-If.js +109 -0
- package/app/out/renderer/assets/ruby-JDKLJNK0.js +330 -0
- package/app/out/renderer/assets/sankeyDiagram-a04cb91d-Cv44AsnM.js +1174 -0
- package/app/out/renderer/assets/sas-D2UG-yhZ.js +207 -0
- package/app/out/renderer/assets/scheme-BKzrkGJD.js +222 -0
- package/app/out/renderer/assets/sequenceDiagram-c5b8d532-CuUBu-x4.js +3337 -0
- package/app/out/renderer/assets/shell-BlsXDxCn.js +222 -0
- package/app/out/renderer/assets/sieve-CjwBwOY5.js +135 -0
- package/app/out/renderer/assets/simple-mode-DMneyfDu.js +130 -0
- package/app/out/renderer/assets/smalltalk-BOIGQuhN.js +121 -0
- package/app/out/renderer/assets/solr-CwD7U71z.js +69 -0
- package/app/out/renderer/assets/sparql-DYskk2vE.js +249 -0
- package/app/out/renderer/assets/spreadsheet-Bgtt3oLP.js +87 -0
- package/app/out/renderer/assets/sql-BSrOzCRI.js +354 -0
- package/app/out/renderer/assets/stateDiagram-1ecb1508-BOU34Zp4.js +454 -0
- package/app/out/renderer/assets/stateDiagram-v2-c2b004d7-BgRoffou.js +326 -0
- package/app/out/renderer/assets/stex-B6LNC55o.js +231 -0
- package/app/out/renderer/assets/styles-b4e223ce-BMr9TPuj.js +1483 -0
- package/app/out/renderer/assets/styles-ca3715f6-DgbNw99p.js +1363 -0
- package/app/out/renderer/assets/styles-d45a18b0-DtRYKYKf.js +574 -0
- package/app/out/renderer/assets/stylus-BkS-boTH.js +565 -0
- package/app/out/renderer/assets/svgDrawCommon-b86b1483-Bein03PD.js +100 -0
- package/app/out/renderer/assets/swift-FRZi1uvB.js +291 -0
- package/app/out/renderer/assets/tcl-CUcaCdmq.js +114 -0
- package/app/out/renderer/assets/textile-BnFpjsrl.js +414 -0
- package/app/out/renderer/assets/tiddlywiki-CjprD-Qp.js +218 -0
- package/app/out/renderer/assets/tiki-B4EPSQ1G.js +265 -0
- package/app/out/renderer/assets/timeline-definition-faaaa080-BlWpLE_4.js +1212 -0
- package/app/out/renderer/assets/toml-BOuWGMcf.js +76 -0
- package/app/out/renderer/assets/troff-E1bJ0PPL.js +61 -0
- package/app/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +133 -0
- package/app/out/renderer/assets/ttcn-tKd4HLu4.js +192 -0
- package/app/out/renderer/assets/turtle-Dq7-1WAf.js +124 -0
- package/app/out/renderer/assets/vb-Dp90gtsv.js +196 -0
- package/app/out/renderer/assets/vbscript-CI6_mxxU.js +479 -0
- package/app/out/renderer/assets/velocity-BwIZK1TH.js +149 -0
- package/app/out/renderer/assets/verilog-DDCYnHN8.js +430 -0
- package/app/out/renderer/assets/vhdl-DCkMIyT9.js +158 -0
- package/app/out/renderer/assets/webidl-BTLTThCm.js +204 -0
- package/app/out/renderer/assets/xquery-BgiOC5Ce.js +525 -0
- package/app/out/renderer/assets/xychartDiagram-f5964ef8-Bhga-YXm.js +1799 -0
- package/app/out/renderer/assets/yacas-b5lAVEIl.js +130 -0
- package/app/out/renderer/assets/z80-BZV19vqv.js +93 -0
- package/app/out/renderer/index.html +13 -0
- package/app/out/skills/community-builtin/README.md +29 -0
- package/app/out/skills/community-builtin/document-docx/SKILL.md +44 -0
- package/app/out/skills/community-builtin/document-docx/scripts/docx-to-markdown.sh +20 -0
- package/app/out/skills/community-builtin/document-docx/scripts/extract-docx-text.sh +28 -0
- package/app/out/skills/community-builtin/document-docx/scripts/init-docx-template.sh +32 -0
- package/app/out/skills/community-builtin/document-docx/scripts/setup-docx-tools.sh +10 -0
- package/app/out/skills/community-builtin/markitdown/SKILL.md +105 -0
- package/app/out/skills/community-builtin/markitdown/scripts/batch-convert.sh +40 -0
- package/app/out/skills/community-builtin/markitdown/scripts/convert-file.sh +24 -0
- package/app/out/skills/community-builtin/markitdown/scripts/setup-markitdown.sh +10 -0
- package/app/out/skills/community-builtin/repo-quick-audit/SKILL.md +27 -0
- package/app/out/skills/community-builtin/repo-quick-audit/scripts/audit-basics.sh +19 -0
- package/app/out/skills/research-pilot-default-project-skills/README.md +23 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/SKILL.md +39 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/doi-to-bibtex.sh +25 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/normalize-bibtex-keys.sh +51 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/setup-citation-tools.sh +10 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/validate-bib.sh +31 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/SKILL.md +34 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/api_reference.md +412 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/common_issues.md +563 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/plot_types.md +476 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/styling_guide.md +589 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/subagent_quickstart.md +30 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/scripts/plot_template.py +401 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/scripts/style_configurator.py +409 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/SKILL.md +38 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/check-grant-compliance.sh +40 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/grant-summary-card.sh +32 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/init-grant-structure.sh +70 -0
- package/app/package.json +77 -0
- package/bin/cli.mjs +56 -0
- package/lib/README.md +145 -0
- package/lib/skills/_generated.ts +13 -0
- package/lib/skills/builtin/brainstorming-research-ideas/SKILL.md +280 -0
- package/lib/skills/builtin/coding/SKILL.md +114 -0
- package/lib/skills/builtin/creative-thinking-for-research/SKILL.md +273 -0
- package/lib/skills/builtin/matplotlib/SKILL.md +361 -0
- package/lib/skills/builtin/matplotlib/references/api_reference.md +412 -0
- package/lib/skills/builtin/matplotlib/references/common_issues.md +563 -0
- package/lib/skills/builtin/matplotlib/references/plot_types.md +476 -0
- package/lib/skills/builtin/matplotlib/references/styling_guide.md +589 -0
- package/lib/skills/builtin/matplotlib/scripts/plot_template.py +401 -0
- package/lib/skills/builtin/matplotlib/scripts/style_configurator.py +409 -0
- package/lib/skills/builtin/paper-writing/SKILL.md +554 -0
- package/lib/skills/builtin/paper-writing/references/checklists.md +524 -0
- package/lib/skills/builtin/paper-writing/references/citation-workflow.md +562 -0
- package/lib/skills/builtin/paper-writing/references/reviewer-guidelines.md +462 -0
- package/lib/skills/builtin/paper-writing/references/sources.md +189 -0
- package/lib/skills/builtin/paper-writing/references/systems-conferences.md +260 -0
- package/lib/skills/builtin/paper-writing/references/writing-guide.md +476 -0
- package/lib/skills/builtin/paper-writing/templates/README.md +408 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/README.md +534 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.bib +111 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.sty +315 -0
- package/lib/skills/builtin/paper-writing/templates/acl/README.md +50 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl.sty +312 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl_latex.tex +377 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl_lualatex.tex +101 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl_natbib.bst +1940 -0
- package/lib/skills/builtin/paper-writing/templates/acl/anthology.bib.txt +26 -0
- package/lib/skills/builtin/paper-writing/templates/acl/custom.bib +70 -0
- package/lib/skills/builtin/paper-writing/templates/acl/formatting.md +326 -0
- package/lib/skills/builtin/paper-writing/templates/asplos2027/main.tex +459 -0
- package/lib/skills/builtin/paper-writing/templates/asplos2027/references.bib +135 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/README.md +3 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/fancyhdr.sty +485 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/math_commands.tex +508 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/natbib.sty +1246 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/math_commands.tex +508 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/natbib.sty +1246 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/algorithm.sty +79 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/algorithmic.sty +201 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.bib +75 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.tex +662 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/fancyhdr.sty +864 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/icml2026.bst +1443 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/icml2026.sty +767 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/Makefile +36 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/main.tex +38 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/neurips.sty +382 -0
- package/lib/skills/builtin/paper-writing/templates/nsdi2027/main.tex +426 -0
- package/lib/skills/builtin/paper-writing/templates/nsdi2027/references.bib +151 -0
- package/lib/skills/builtin/paper-writing/templates/nsdi2027/usenix-2020-09.sty +83 -0
- package/lib/skills/builtin/paper-writing/templates/osdi2026/main.tex +429 -0
- package/lib/skills/builtin/paper-writing/templates/osdi2026/references.bib +150 -0
- package/lib/skills/builtin/paper-writing/templates/osdi2026/usenix-2020-09.sty +83 -0
- package/lib/skills/builtin/paper-writing/templates/sosp2026/main.tex +532 -0
- package/lib/skills/builtin/paper-writing/templates/sosp2026/references.bib +148 -0
- package/lib/skills/builtin/research-grants/SKILL.md +958 -0
- package/lib/skills/builtin/research-grants/assets/budget_justification_template.md +453 -0
- package/lib/skills/builtin/research-grants/assets/nih_specific_aims_template.md +166 -0
- package/lib/skills/builtin/research-grants/assets/nsf_project_summary_template.md +92 -0
- package/lib/skills/builtin/research-grants/references/README.md +285 -0
- package/lib/skills/builtin/research-grants/references/broader_impacts.md +392 -0
- package/lib/skills/builtin/research-grants/references/darpa_guidelines.md +636 -0
- package/lib/skills/builtin/research-grants/references/doe_guidelines.md +586 -0
- package/lib/skills/builtin/research-grants/references/nih_guidelines.md +851 -0
- package/lib/skills/builtin/research-grants/references/nsf_guidelines.md +570 -0
- package/lib/skills/builtin/research-grants/references/nstc_guidelines.md +733 -0
- package/lib/skills/builtin/research-grants/references/specific_aims_guide.md +458 -0
- package/lib/skills/builtin/rewrite-humanize/SKILL.md +116 -0
- package/lib/skills/builtin/rewrite-humanize/references/cs-venue-tone.md +57 -0
- package/lib/skills/builtin/rewrite-humanize/references/lexicon.md +50 -0
- package/lib/skills/builtin/scholar-evaluation/SKILL.md +300 -0
- package/lib/skills/builtin/scholar-evaluation/references/evaluation_framework.md +663 -0
- package/lib/skills/builtin/scholar-evaluation/scripts/calculate_scores.py +379 -0
- package/lib/skills/builtin/scientific-schematics/SKILL.md +603 -0
- package/lib/skills/builtin/scientific-schematics/references/QUICK_REFERENCE.md +182 -0
- package/lib/skills/builtin/scientific-schematics/references/README.md +292 -0
- package/lib/skills/builtin/scientific-schematics/references/best_practices.md +560 -0
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic_ai.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/example_usage.sh +85 -0
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic.py +141 -0
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic_ai.py +910 -0
- package/lib/skills/builtin/scientific-visualization/SKILL.md +749 -0
- package/lib/skills/builtin/scientific-visualization/assets/color_palettes.py +197 -0
- package/lib/skills/builtin/scientific-visualization/assets/nature.mplstyle +63 -0
- package/lib/skills/builtin/scientific-visualization/assets/presentation.mplstyle +61 -0
- package/lib/skills/builtin/scientific-visualization/assets/publication.mplstyle +68 -0
- package/lib/skills/builtin/scientific-visualization/references/color_palettes.md +348 -0
- package/lib/skills/builtin/scientific-visualization/references/journal_requirements.md +320 -0
- package/lib/skills/builtin/scientific-visualization/references/matplotlib_examples.md +620 -0
- package/lib/skills/builtin/scientific-visualization/references/publication_guidelines.md +205 -0
- package/lib/skills/builtin/scientific-visualization/scripts/figure_export.py +343 -0
- package/lib/skills/builtin/scientific-visualization/scripts/style_presets.py +416 -0
- package/lib/skills/builtin/scientific-writing/SKILL.md +745 -0
- package/lib/skills/builtin/scientific-writing/assets/REPORT_FORMATTING_GUIDE.md +574 -0
- package/lib/skills/builtin/scientific-writing/assets/scientific_report.sty +606 -0
- package/lib/skills/builtin/scientific-writing/assets/scientific_report_template.tex +449 -0
- package/lib/skills/builtin/scientific-writing/references/citation_styles.md +720 -0
- package/lib/skills/builtin/scientific-writing/references/figures_tables.md +806 -0
- package/lib/skills/builtin/scientific-writing/references/imrad_structure.md +686 -0
- package/lib/skills/builtin/scientific-writing/references/professional_report_formatting.md +664 -0
- package/lib/skills/builtin/scientific-writing/references/reporting_guidelines.md +748 -0
- package/lib/skills/builtin/scientific-writing/references/writing_principles.md +824 -0
- package/lib/skills/builtin/seaborn/SKILL.md +674 -0
- package/lib/skills/builtin/seaborn/references/examples.md +822 -0
- package/lib/skills/builtin/seaborn/references/function_reference.md +770 -0
- package/lib/skills/builtin/seaborn/references/objects_interface.md +964 -0
- package/lib/skills/data-analysis/SKILL.md +285 -0
- package/lib/skills/generate-skill-content.mjs +58 -0
- package/lib/skills/index.ts +34 -0
- package/lib/skills/loader.ts +452 -0
- package/package.json +62 -0
|
@@ -0,0 +1,603 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scientific-schematics
|
|
3
|
+
description: Create publication-quality scientific diagrams using OpenRouter API with smart iterative refinement. The skill defaults to Gemini 3 Pro Image for generation plus Gemini 3 Pro for review, and only regenerates if quality is below threshold for your document type.
|
|
4
|
+
category: Visualization
|
|
5
|
+
tags: [science, visualization, diagrams]
|
|
6
|
+
triggers: [diagram, schematic, flowchart, architecture diagram, system diagram, 示意图, 流程图, generate diagram]
|
|
7
|
+
allowed-tools: [Read, Write, Edit, Bash]
|
|
8
|
+
license: MIT license
|
|
9
|
+
metadata:
|
|
10
|
+
skill-author: K-Dense Inc.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Scientific Schematics and Diagrams
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Scientific schematics and diagrams transform complex concepts into clear visual representations for publication. We want the diagram a textbook style. **This skill uses OpenRouter API for image generation with Gemini quality review.**
|
|
18
|
+
|
|
19
|
+
**How it works:**
|
|
20
|
+
- Describe your diagram in natural language
|
|
21
|
+
- Gemini image model generates publication-quality diagrams via OpenRouter
|
|
22
|
+
- **Gemini reviews quality** against document-type thresholds
|
|
23
|
+
- **Smart iteration**: Only regenerates if quality is below threshold
|
|
24
|
+
- Publication-ready output in minutes
|
|
25
|
+
- No coding, templates, or manual drawing required
|
|
26
|
+
|
|
27
|
+
**Quality Thresholds by Document Type:**
|
|
28
|
+
| Document Type | Threshold | Description |
|
|
29
|
+
|---------------|-----------|-------------|
|
|
30
|
+
| journal | 8.5/10 | Nature, Science, peer-reviewed journals |
|
|
31
|
+
| conference | 8.0/10 | Conference papers |
|
|
32
|
+
| thesis | 8.0/10 | Dissertations, theses |
|
|
33
|
+
| grant | 8.0/10 | Grant proposals |
|
|
34
|
+
| preprint | 7.5/10 | arXiv, bioRxiv, etc. |
|
|
35
|
+
| report | 7.5/10 | Technical reports |
|
|
36
|
+
| poster | 7.0/10 | Academic posters |
|
|
37
|
+
| presentation | 6.5/10 | Slides, talks |
|
|
38
|
+
| default | 7.5/10 | General purpose |
|
|
39
|
+
|
|
40
|
+
**Simply describe what you want, and AI generates it.** All diagrams are stored in the @ws/figures/ subfolder and referenced in papers/posters.
|
|
41
|
+
|
|
42
|
+
### Embedding Figures in Documents (MANDATORY)
|
|
43
|
+
|
|
44
|
+
**After generating every figure, you MUST embed it in the document using markdown image syntax.**
|
|
45
|
+
|
|
46
|
+
The image path must be **relative to the markdown file you are writing**, not the workspace root. This ensures the renderer resolves the path correctly regardless of where the markdown file lives.
|
|
47
|
+
|
|
48
|
+
**Example — markdown at workspace root (`paper.md`):**
|
|
49
|
+
```bash
|
|
50
|
+
python @skill/scripts/generate_schematic.py "CONSORT flowchart..." -o @ws/figures/consort.png
|
|
51
|
+
```
|
|
52
|
+
Embed in `paper.md`:
|
|
53
|
+
```markdown
|
|
54
|
+

|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Example — markdown in a subdirectory (`workspace/paper_draft.md`):**
|
|
58
|
+
```bash
|
|
59
|
+
python @skill/scripts/generate_schematic.py "CONSORT flowchart..." -o @ws/figures/consort.png
|
|
60
|
+
```
|
|
61
|
+
Embed in `workspace/paper_draft.md` — use `../` to go up:
|
|
62
|
+
```markdown
|
|
63
|
+

|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Rule of thumb:** count how many directories deep your markdown file is from the workspace root, and prepend that many `../` segments to `figures/filename.png`.
|
|
67
|
+
|
|
68
|
+
Alternatively, you can generate the image alongside the markdown file:
|
|
69
|
+
```bash
|
|
70
|
+
# If markdown is at workspace/paper_draft.md, save figures next to it:
|
|
71
|
+
python @skill/scripts/generate_schematic.py "CONSORT flowchart..." -o @ws/workspace/figures/consort.png
|
|
72
|
+
```
|
|
73
|
+
Then embed simply as:
|
|
74
|
+
```markdown
|
|
75
|
+

|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Do NOT only cite figures as text ("see Figure 1"). Always include the `` embed so the figure renders visually in the output.
|
|
79
|
+
|
|
80
|
+
**Default model path:** this skill intentionally uses one default generation model, `google/gemini-3-pro-image-preview`, with Gemini review via `google/gemini-3-pro-preview`. Agents should not pick among multiple image backends during normal operation.
|
|
81
|
+
|
|
82
|
+
### Path Conventions
|
|
83
|
+
|
|
84
|
+
- Shell command examples use scoped paths:
|
|
85
|
+
- `@skill/...` for files shipped with this skill (for example scripts)
|
|
86
|
+
- `@ws/...` for workspace files (inputs/outputs)
|
|
87
|
+
- Python API and JSON log examples show raw filesystem paths (typically workspace-relative, such as `figures/...`).
|
|
88
|
+
|
|
89
|
+
## Quick Start: Generate Any Diagram
|
|
90
|
+
|
|
91
|
+
Create any scientific diagram by simply describing it. AI handles everything automatically with **smart iteration**:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Generate for journal paper (highest quality threshold: 8.5/10)
|
|
95
|
+
python @skill/scripts/generate_schematic.py "CONSORT participant flow diagram with 500 screened, 150 excluded, 350 randomized" -o @ws/figures/consort.png --doc-type journal
|
|
96
|
+
|
|
97
|
+
# Generate for presentation (lower threshold: 6.5/10 - faster)
|
|
98
|
+
python @skill/scripts/generate_schematic.py "Transformer encoder-decoder architecture showing multi-head attention" -o @ws/figures/transformer.png --doc-type presentation
|
|
99
|
+
|
|
100
|
+
# Generate for poster (moderate threshold: 7.0/10)
|
|
101
|
+
python @skill/scripts/generate_schematic.py "MAPK signaling pathway from EGFR to gene transcription" -o @ws/figures/mapk_pathway.png --doc-type poster
|
|
102
|
+
|
|
103
|
+
# Custom max iterations (max 2)
|
|
104
|
+
python @skill/scripts/generate_schematic.py "Complex circuit diagram with op-amp, resistors, and capacitors" -o @ws/figures/circuit.png --iterations 2 --doc-type journal
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**What happens behind the scenes:**
|
|
108
|
+
1. **Generation 1**: Gemini image model creates an initial image following scientific diagram best practices
|
|
109
|
+
2. **Review 1**: **Gemini** evaluates quality against the document-type threshold
|
|
110
|
+
3. **Decision**: If quality >= threshold → **DONE** (no more iterations needed!)
|
|
111
|
+
4. **If below threshold**: Improved prompt based on critique, regenerate
|
|
112
|
+
5. **Repeat**: Until quality meets threshold OR max iterations reached
|
|
113
|
+
|
|
114
|
+
**Smart Iteration Benefits:**
|
|
115
|
+
- Saves API calls if first generation is good enough
|
|
116
|
+
- Higher quality standards for journal papers
|
|
117
|
+
- Faster turnaround for presentations/posters
|
|
118
|
+
- Appropriate quality for each use case
|
|
119
|
+
|
|
120
|
+
**Output**: Versioned images plus a detailed review log with quality scores, critiques, and early-stop information.
|
|
121
|
+
|
|
122
|
+
### Configuration
|
|
123
|
+
|
|
124
|
+
Set your OpenRouter API key:
|
|
125
|
+
```bash
|
|
126
|
+
export OPENROUTER_API_KEY='your-openrouter-api-key'
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Optional model overrides:
|
|
130
|
+
```bash
|
|
131
|
+
export SCHEMATIC_IMAGE_MODEL='google/gemini-3-pro-image-preview' # default
|
|
132
|
+
export SCHEMATIC_REVIEW_MODEL='google/gemini-3-pro-preview' # default
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### AI Generation Best Practices
|
|
136
|
+
|
|
137
|
+
**Effective Prompts for Scientific Diagrams:**
|
|
138
|
+
|
|
139
|
+
✓ **Good prompts** (specific, detailed):
|
|
140
|
+
- "CONSORT flowchart showing participant flow from screening (n=500) through randomization to final analysis"
|
|
141
|
+
- "Transformer neural network architecture with encoder stack on left, decoder stack on right, showing multi-head attention and cross-attention connections"
|
|
142
|
+
- "Biological signaling cascade: EGFR receptor → RAS → RAF → MEK → ERK → nucleus, with phosphorylation steps labeled"
|
|
143
|
+
- "Block diagram of IoT system: sensors → microcontroller → WiFi module → cloud server → mobile app"
|
|
144
|
+
|
|
145
|
+
✗ **Avoid vague prompts**:
|
|
146
|
+
- "Make a flowchart" (too generic)
|
|
147
|
+
- "Neural network" (which type? what components?)
|
|
148
|
+
- "Pathway diagram" (which pathway? what molecules?)
|
|
149
|
+
|
|
150
|
+
**Key elements to include:**
|
|
151
|
+
- **Type**: Flowchart, architecture diagram, pathway, circuit, etc.
|
|
152
|
+
- **Components**: Specific elements to include
|
|
153
|
+
- **Flow/Direction**: How elements connect (left-to-right, top-to-bottom)
|
|
154
|
+
- **Labels**: Key annotations or text to include
|
|
155
|
+
- **Style**: A textbook style plus Any specific visual requirements
|
|
156
|
+
|
|
157
|
+
**Scientific Quality Guidelines** (automatically applied):
|
|
158
|
+
- Clean white/light background
|
|
159
|
+
- High contrast for readability
|
|
160
|
+
- Clear, readable labels (minimum 10pt)
|
|
161
|
+
- Professional typography (sans-serif fonts)
|
|
162
|
+
- Colorblind-friendly colors (Okabe-Ito palette)
|
|
163
|
+
- Proper spacing to prevent crowding
|
|
164
|
+
- Scale bars, legends, axes where appropriate
|
|
165
|
+
|
|
166
|
+
## When to Use This Skill
|
|
167
|
+
|
|
168
|
+
This skill should be used when:
|
|
169
|
+
- Creating neural network architecture diagrams (Transformers, CNNs, RNNs, etc.)
|
|
170
|
+
- Illustrating system architectures and data flow diagrams
|
|
171
|
+
- Drawing methodology flowcharts for study design (CONSORT, PRISMA)
|
|
172
|
+
- Visualizing algorithm workflows and processing pipelines
|
|
173
|
+
- Creating circuit diagrams and electrical schematics
|
|
174
|
+
- Depicting biological pathways and molecular interactions
|
|
175
|
+
- Generating network topologies and hierarchical structures
|
|
176
|
+
- Illustrating conceptual frameworks and theoretical models
|
|
177
|
+
- Designing block diagrams for technical papers
|
|
178
|
+
|
|
179
|
+
## How to Use This Skill
|
|
180
|
+
|
|
181
|
+
**Simply describe your diagram in natural language.** AI generates it automatically:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
python @skill/scripts/generate_schematic.py "your diagram description" -o @ws/output.png
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**That's it!** The AI handles:
|
|
188
|
+
- Layout and composition
|
|
189
|
+
- Labels and annotations
|
|
190
|
+
- Colors and styling
|
|
191
|
+
- Quality review and refinement
|
|
192
|
+
- Publication-ready output
|
|
193
|
+
|
|
194
|
+
**Works for all diagram types:**
|
|
195
|
+
- Flowcharts (CONSORT, PRISMA, etc.)
|
|
196
|
+
- Neural network architectures
|
|
197
|
+
- Biological pathways
|
|
198
|
+
- Circuit diagrams
|
|
199
|
+
- System architectures
|
|
200
|
+
- Block diagrams
|
|
201
|
+
- Any scientific visualization
|
|
202
|
+
|
|
203
|
+
**No coding, no templates, no manual drawing required.**
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
# AI Generation Mode (OpenRouter + Gemini Review)
|
|
208
|
+
|
|
209
|
+
## Smart Iterative Refinement Workflow
|
|
210
|
+
|
|
211
|
+
The AI generation system uses **smart iteration** - it only regenerates if quality is below the threshold for your document type:
|
|
212
|
+
|
|
213
|
+
### How Smart Iteration Works
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
┌─────────────────────────────────────────────────────┐
|
|
217
|
+
│ 1. Generate image with Gemini via OpenRouter │
|
|
218
|
+
│ ↓ │
|
|
219
|
+
│ 2. Review quality with Gemini │
|
|
220
|
+
│ ↓ │
|
|
221
|
+
│ 3. Score >= threshold? │
|
|
222
|
+
│ YES → DONE! (early stop) │
|
|
223
|
+
│ NO → Improve prompt, go to step 1 │
|
|
224
|
+
│ ↓ │
|
|
225
|
+
│ 4. Repeat until quality met OR max iterations │
|
|
226
|
+
└─────────────────────────────────────────────────────┘
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Iteration 1: Initial Generation
|
|
230
|
+
**Prompt Construction:**
|
|
231
|
+
```
|
|
232
|
+
Scientific diagram guidelines + User request
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Output:** `diagram_v1.png`
|
|
236
|
+
|
|
237
|
+
### Quality Review by Gemini
|
|
238
|
+
|
|
239
|
+
Gemini evaluates the diagram on:
|
|
240
|
+
1. **Scientific Accuracy** (0-2 points) - Correct concepts, notation, relationships
|
|
241
|
+
2. **Clarity and Readability** (0-2 points) - Easy to understand, clear hierarchy
|
|
242
|
+
3. **Label Quality** (0-2 points) - Complete, readable, consistent labels
|
|
243
|
+
4. **Layout and Composition** (0-2 points) - Logical flow, balanced, no overlaps
|
|
244
|
+
5. **Professional Appearance** (0-2 points) - Publication-ready quality
|
|
245
|
+
|
|
246
|
+
**Example Review Output:**
|
|
247
|
+
```
|
|
248
|
+
SCORE: 8.0
|
|
249
|
+
|
|
250
|
+
STRENGTHS:
|
|
251
|
+
- Clear flow from top to bottom
|
|
252
|
+
- All phases properly labeled
|
|
253
|
+
- Professional typography
|
|
254
|
+
|
|
255
|
+
ISSUES:
|
|
256
|
+
- Participant counts slightly small
|
|
257
|
+
- Minor overlap on exclusion box
|
|
258
|
+
|
|
259
|
+
VERDICT: ACCEPTABLE (for poster, threshold 7.0)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Decision Point: Continue or Stop?
|
|
263
|
+
|
|
264
|
+
| If Score... | Action |
|
|
265
|
+
|-------------|--------|
|
|
266
|
+
| >= threshold | **STOP** - Quality is good enough for this document type |
|
|
267
|
+
| < threshold | Continue to next iteration with improved prompt |
|
|
268
|
+
|
|
269
|
+
**Example:**
|
|
270
|
+
- For a **poster** (threshold 7.0): Score of 7.5 → **DONE after 1 iteration!**
|
|
271
|
+
- For a **journal** (threshold 8.5): Score of 7.5 → Continue improving
|
|
272
|
+
|
|
273
|
+
### Subsequent Iterations (Only If Needed)
|
|
274
|
+
|
|
275
|
+
If quality is below threshold, the system:
|
|
276
|
+
1. Extracts specific issues from Gemini's review
|
|
277
|
+
2. Enhances the prompt with improvement instructions
|
|
278
|
+
3. Regenerates via OpenRouter
|
|
279
|
+
4. Reviews again with Gemini
|
|
280
|
+
5. Repeats until threshold met or max iterations reached
|
|
281
|
+
|
|
282
|
+
### Review Log
|
|
283
|
+
All iterations are saved with a JSON review log that includes early-stop information:
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"user_prompt": "CONSORT participant flow diagram...",
|
|
287
|
+
"doc_type": "poster",
|
|
288
|
+
"quality_threshold": 7.0,
|
|
289
|
+
"iterations": [
|
|
290
|
+
{
|
|
291
|
+
"iteration": 1,
|
|
292
|
+
"image_path": "figures/consort_v1.png",
|
|
293
|
+
"score": 7.5,
|
|
294
|
+
"needs_improvement": false,
|
|
295
|
+
"critique": "SCORE: 7.5\nSTRENGTHS:..."
|
|
296
|
+
}
|
|
297
|
+
],
|
|
298
|
+
"final_score": 7.5,
|
|
299
|
+
"early_stop": true,
|
|
300
|
+
"early_stop_reason": "Quality score 7.5 meets threshold 7.0 for poster"
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Note:** With smart iteration, you may see only 1 iteration instead of the full 2 if quality is achieved early!
|
|
305
|
+
|
|
306
|
+
## Advanced AI Generation Usage
|
|
307
|
+
|
|
308
|
+
### Supported Automation Interface
|
|
309
|
+
|
|
310
|
+
Use the CLI wrapper as the stable interface:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
python @skill/scripts/generate_schematic.py \
|
|
314
|
+
"Transformer architecture diagram" \
|
|
315
|
+
-o @ws/figures/transformer.png \
|
|
316
|
+
--iterations 2
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Do not rely on importing private skill modules directly from Python; this skill ships as
|
|
320
|
+
scripts and references, not as an installable Python package.
|
|
321
|
+
|
|
322
|
+
### Command-Line Options
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Basic usage (default threshold 7.5/10)
|
|
326
|
+
python @skill/scripts/generate_schematic.py "diagram description" -o @ws/output.png
|
|
327
|
+
|
|
328
|
+
# Specify document type for appropriate quality threshold
|
|
329
|
+
python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type journal # 8.5/10
|
|
330
|
+
python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type conference # 8.0/10
|
|
331
|
+
python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type poster # 7.0/10
|
|
332
|
+
python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png --doc-type presentation # 6.5/10
|
|
333
|
+
|
|
334
|
+
# Custom max iterations (1-2)
|
|
335
|
+
python @skill/scripts/generate_schematic.py "complex diagram" -o @ws/diagram.png --iterations 2
|
|
336
|
+
|
|
337
|
+
# Verbose output (see all API calls and reviews)
|
|
338
|
+
python @skill/scripts/generate_schematic.py "flowchart" -o @ws/flow.png -v
|
|
339
|
+
|
|
340
|
+
# Combine options
|
|
341
|
+
python @skill/scripts/generate_schematic.py "neural network" -o @ws/nn.png --doc-type journal --iterations 2 -v
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Prompt Engineering Tips
|
|
345
|
+
|
|
346
|
+
**1. Be Specific About Layout:**
|
|
347
|
+
```
|
|
348
|
+
✓ "Flowchart with vertical flow, top to bottom"
|
|
349
|
+
✓ "Architecture diagram with encoder on left, decoder on right"
|
|
350
|
+
✓ "Circular pathway diagram with clockwise flow"
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**2. Include Quantitative Details:**
|
|
354
|
+
```
|
|
355
|
+
✓ "Neural network with input layer (784 nodes), hidden layer (128 nodes), output (10 nodes)"
|
|
356
|
+
✓ "Flowchart showing n=500 screened, n=150 excluded, n=350 randomized"
|
|
357
|
+
✓ "Circuit with 1kΩ resistor, 10µF capacitor, 5V source"
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**3. Specify Visual Style:**
|
|
361
|
+
```
|
|
362
|
+
✓ "Minimalist block diagram with clean lines"
|
|
363
|
+
✓ "Detailed biological pathway with protein structures"
|
|
364
|
+
✓ "Technical schematic with engineering notation"
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
**4. Request Specific Labels:**
|
|
368
|
+
```
|
|
369
|
+
✓ "Label all arrows with activation/inhibition"
|
|
370
|
+
✓ "Include layer dimensions in each box"
|
|
371
|
+
✓ "Show time progression with timestamps"
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**5. Mention Color Requirements:**
|
|
375
|
+
```
|
|
376
|
+
✓ "Use colorblind-friendly colors"
|
|
377
|
+
✓ "Grayscale-compatible design"
|
|
378
|
+
✓ "Color-code by function: blue for input, green for processing, red for output"
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## AI Generation Examples
|
|
382
|
+
|
|
383
|
+
### Example 1: CONSORT Flowchart
|
|
384
|
+
```bash
|
|
385
|
+
python @skill/scripts/generate_schematic.py \
|
|
386
|
+
"CONSORT participant flow diagram for randomized controlled trial. \
|
|
387
|
+
Start with 'Assessed for eligibility (n=500)' at top. \
|
|
388
|
+
Show 'Excluded (n=150)' with reasons: age<18 (n=80), declined (n=50), other (n=20). \
|
|
389
|
+
Then 'Randomized (n=350)' splits into two arms: \
|
|
390
|
+
'Treatment group (n=175)' and 'Control group (n=175)'. \
|
|
391
|
+
Each arm shows 'Lost to follow-up' (n=15 and n=10). \
|
|
392
|
+
End with 'Analyzed' (n=160 and n=165). \
|
|
393
|
+
Use blue boxes for process steps, orange for exclusion, green for final analysis." \
|
|
394
|
+
-o @ws/figures/consort.png
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### Example 2: Neural Network Architecture
|
|
398
|
+
```bash
|
|
399
|
+
python @skill/scripts/generate_schematic.py \
|
|
400
|
+
"Transformer encoder-decoder architecture diagram. \
|
|
401
|
+
Left side: Encoder stack with input embedding, positional encoding, \
|
|
402
|
+
multi-head self-attention, add & norm, feed-forward, add & norm. \
|
|
403
|
+
Right side: Decoder stack with output embedding, positional encoding, \
|
|
404
|
+
masked self-attention, add & norm, cross-attention (receiving from encoder), \
|
|
405
|
+
add & norm, feed-forward, add & norm, linear & softmax. \
|
|
406
|
+
Show cross-attention connection from encoder to decoder with dashed line. \
|
|
407
|
+
Use light blue for encoder, light red for decoder. \
|
|
408
|
+
Label all components clearly." \
|
|
409
|
+
-o @ws/figures/transformer.png --iterations 2
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### Example 3: Biological Pathway
|
|
413
|
+
```bash
|
|
414
|
+
python @skill/scripts/generate_schematic.py \
|
|
415
|
+
"MAPK signaling pathway diagram. \
|
|
416
|
+
Start with EGFR receptor at cell membrane (top). \
|
|
417
|
+
Arrow down to RAS (with GTP label). \
|
|
418
|
+
Arrow to RAF kinase. \
|
|
419
|
+
Arrow to MEK kinase. \
|
|
420
|
+
Arrow to ERK kinase. \
|
|
421
|
+
Final arrow to nucleus showing gene transcription. \
|
|
422
|
+
Label each arrow with 'phosphorylation' or 'activation'. \
|
|
423
|
+
Use rounded rectangles for proteins, different colors for each. \
|
|
424
|
+
Include membrane boundary line at top." \
|
|
425
|
+
-o @ws/figures/mapk_pathway.png
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Example 4: System Architecture
|
|
429
|
+
```bash
|
|
430
|
+
python @skill/scripts/generate_schematic.py \
|
|
431
|
+
"IoT system architecture block diagram. \
|
|
432
|
+
Bottom layer: Sensors (temperature, humidity, motion) in green boxes. \
|
|
433
|
+
Middle layer: Microcontroller (ESP32) in blue box. \
|
|
434
|
+
Connections to WiFi module (orange box) and Display (purple box). \
|
|
435
|
+
Top layer: Cloud server (gray box) connected to mobile app (light blue box). \
|
|
436
|
+
Show data flow arrows between all components. \
|
|
437
|
+
Label connections with protocols: I2C, UART, WiFi, HTTPS." \
|
|
438
|
+
-o @ws/figures/iot_architecture.png
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## Command-Line Usage
|
|
444
|
+
|
|
445
|
+
The main entry point for generating scientific schematics:
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# Basic usage
|
|
449
|
+
python @skill/scripts/generate_schematic.py "diagram description" -o @ws/output.png
|
|
450
|
+
|
|
451
|
+
# Custom iterations (max 2)
|
|
452
|
+
python @skill/scripts/generate_schematic.py "complex diagram" -o @ws/diagram.png --iterations 2
|
|
453
|
+
|
|
454
|
+
# Verbose mode
|
|
455
|
+
python @skill/scripts/generate_schematic.py "diagram" -o @ws/out.png -v
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
**Note:** The AI generation system includes automatic quality review in its iterative refinement process. Each iteration is evaluated for scientific accuracy, clarity, and accessibility.
|
|
459
|
+
|
|
460
|
+
## Best Practices Summary
|
|
461
|
+
|
|
462
|
+
### Design Principles
|
|
463
|
+
|
|
464
|
+
1. **Clarity over complexity** - Simplify, remove unnecessary elements
|
|
465
|
+
2. **Consistent styling** - Use templates and style files
|
|
466
|
+
3. **Colorblind accessibility** - Use Okabe-Ito palette, redundant encoding
|
|
467
|
+
4. **Appropriate typography** - Sans-serif fonts, minimum 7-8 pt
|
|
468
|
+
5. **Vector format** - Always use PDF/SVG for publication
|
|
469
|
+
|
|
470
|
+
### Technical Requirements
|
|
471
|
+
|
|
472
|
+
1. **Resolution** - Vector preferred, or 300+ DPI for raster
|
|
473
|
+
2. **File format** - PDF for LaTeX, SVG for web, PNG as fallback
|
|
474
|
+
3. **Color space** - RGB for digital, CMYK for print (convert if needed)
|
|
475
|
+
4. **Line weights** - Minimum 0.5 pt, typical 1-2 pt
|
|
476
|
+
5. **Text size** - 7-8 pt minimum at final size
|
|
477
|
+
|
|
478
|
+
### Integration Guidelines
|
|
479
|
+
|
|
480
|
+
1. **Include in markdown** - Use `` for every generated image (path must be relative to the markdown file, not the workspace root)
|
|
481
|
+
2. **Include in LaTeX** - Use `\includegraphics{}` for generated images in LaTeX documents
|
|
482
|
+
3. **Caption thoroughly** - Describe all elements and abbreviations
|
|
483
|
+
4. **Reference in text** - Explain diagram in narrative flow
|
|
484
|
+
5. **Maintain consistency** - Same style across all figures in paper
|
|
485
|
+
6. **Version control** - Keep prompts and generated images in repository
|
|
486
|
+
|
|
487
|
+
## Troubleshooting Common Issues
|
|
488
|
+
|
|
489
|
+
### AI Generation Issues
|
|
490
|
+
|
|
491
|
+
**Problem**: Overlapping text or elements
|
|
492
|
+
- **Solution**: AI generation automatically handles spacing
|
|
493
|
+
- **Solution**: Increase iterations: `--iterations 2` for better refinement
|
|
494
|
+
|
|
495
|
+
**Problem**: Elements not connecting properly
|
|
496
|
+
- **Solution**: Make your prompt more specific about connections and layout
|
|
497
|
+
- **Solution**: Increase iterations for better refinement
|
|
498
|
+
|
|
499
|
+
### Image Quality Issues
|
|
500
|
+
|
|
501
|
+
**Problem**: Export quality poor
|
|
502
|
+
- **Solution**: AI generation produces high-quality images automatically
|
|
503
|
+
- **Solution**: Increase iterations for better results: `--iterations 2`
|
|
504
|
+
|
|
505
|
+
**Problem**: Elements overlap after generation
|
|
506
|
+
- **Solution**: AI generation automatically handles spacing
|
|
507
|
+
- **Solution**: Increase iterations: `--iterations 2` for better refinement
|
|
508
|
+
- **Solution**: Make your prompt more specific about layout and spacing requirements
|
|
509
|
+
|
|
510
|
+
### API Issues
|
|
511
|
+
|
|
512
|
+
**Problem**: Authentication error
|
|
513
|
+
- **Solution**: Verify `OPENROUTER_API_KEY` is set correctly
|
|
514
|
+
- **Solution**: Check your OpenRouter account has sufficient credits
|
|
515
|
+
|
|
516
|
+
**Problem**: Model not available
|
|
517
|
+
- **Solution**: Check OpenRouter model availability at openrouter.ai/models
|
|
518
|
+
- **Solution**: Try alternative models via `--image-model` or `--review-model`
|
|
519
|
+
|
|
520
|
+
## Resources and References
|
|
521
|
+
|
|
522
|
+
### Detailed References
|
|
523
|
+
|
|
524
|
+
Load these files for comprehensive information on specific topics:
|
|
525
|
+
|
|
526
|
+
- **`@skill/references/best_practices.md`** - Publication standards and accessibility guidelines
|
|
527
|
+
- **`@skill/references/README.md`** - Extended usage guide and troubleshooting
|
|
528
|
+
- **`@skill/references/QUICK_REFERENCE.md`** - Condensed command cheat sheet
|
|
529
|
+
|
|
530
|
+
### External Resources
|
|
531
|
+
|
|
532
|
+
**Python Libraries**
|
|
533
|
+
- Schemdraw Documentation: https://schemdraw.readthedocs.io/
|
|
534
|
+
- NetworkX Documentation: https://networkx.org/documentation/
|
|
535
|
+
- Matplotlib Documentation: https://matplotlib.org/
|
|
536
|
+
|
|
537
|
+
**Publication Standards**
|
|
538
|
+
- Nature Figure Guidelines: https://www.nature.com/nature/for-authors/final-submission
|
|
539
|
+
- Science Figure Guidelines: https://www.science.org/content/page/instructions-preparing-initial-manuscript
|
|
540
|
+
- CONSORT Diagram: http://www.consort-statement.org/consort-statement/flow-diagram
|
|
541
|
+
|
|
542
|
+
## Integration with Other Skills
|
|
543
|
+
|
|
544
|
+
This skill works synergistically with:
|
|
545
|
+
|
|
546
|
+
- **Scientific Writing** - Diagrams follow figure best practices
|
|
547
|
+
- **Scientific Visualization** - Shares color palettes and styling
|
|
548
|
+
- **Research Grants** - Methodology diagrams for proposals
|
|
549
|
+
- **Scholar Evaluation** - Evaluate clarity, completeness, and communication quality
|
|
550
|
+
|
|
551
|
+
## Quick Reference Checklist
|
|
552
|
+
|
|
553
|
+
Before submitting diagrams, verify:
|
|
554
|
+
|
|
555
|
+
### Visual Quality
|
|
556
|
+
- [ ] High-quality image format (PNG from AI generation)
|
|
557
|
+
- [ ] No overlapping elements (AI handles automatically)
|
|
558
|
+
- [ ] Adequate spacing between all components (AI optimizes)
|
|
559
|
+
- [ ] Clean, professional alignment
|
|
560
|
+
- [ ] All arrows connect properly to intended targets
|
|
561
|
+
|
|
562
|
+
### Accessibility
|
|
563
|
+
- [ ] Colorblind-safe palette (Okabe-Ito) used
|
|
564
|
+
- [ ] Works in grayscale (tested with accessibility checker)
|
|
565
|
+
- [ ] Sufficient contrast between elements (verified)
|
|
566
|
+
- [ ] Redundant encoding where appropriate (shapes + colors)
|
|
567
|
+
- [ ] Colorblind simulation passes all checks
|
|
568
|
+
|
|
569
|
+
### Typography and Readability
|
|
570
|
+
- [ ] Text minimum 7-8 pt at final size
|
|
571
|
+
- [ ] All elements labeled clearly and completely
|
|
572
|
+
- [ ] Consistent font family and sizing
|
|
573
|
+
- [ ] No text overlaps or cutoffs
|
|
574
|
+
- [ ] Units included where applicable
|
|
575
|
+
|
|
576
|
+
### Publication Standards
|
|
577
|
+
- [ ] Consistent styling with other figures in manuscript
|
|
578
|
+
- [ ] Comprehensive caption written with all abbreviations defined
|
|
579
|
+
- [ ] Referenced appropriately in manuscript text
|
|
580
|
+
- [ ] Meets journal-specific dimension requirements
|
|
581
|
+
- [ ] Exported in required format for journal (PDF/EPS/TIFF)
|
|
582
|
+
|
|
583
|
+
## Environment Setup
|
|
584
|
+
|
|
585
|
+
```bash
|
|
586
|
+
# Required
|
|
587
|
+
export OPENROUTER_API_KEY='your-openrouter-api-key'
|
|
588
|
+
|
|
589
|
+
# Optional model overrides
|
|
590
|
+
export SCHEMATIC_IMAGE_MODEL='google/gemini-3-pro-image-preview'
|
|
591
|
+
export SCHEMATIC_REVIEW_MODEL='google/gemini-3-pro-preview'
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
## Getting Started
|
|
595
|
+
|
|
596
|
+
**Simplest possible usage:**
|
|
597
|
+
```bash
|
|
598
|
+
python @skill/scripts/generate_schematic.py "your diagram description" -o @ws/output.png
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
---
|
|
602
|
+
|
|
603
|
+
Use this skill to create clear, accessible, publication-quality diagrams that effectively communicate complex scientific concepts. The AI-powered workflow with iterative refinement ensures diagrams meet professional standards.
|