dsh-aris-panel 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 (442) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/README_CN.md +87 -0
  4. package/dsh/checkout.patch.yml +38 -0
  5. package/dsh/client.js +634 -0
  6. package/dsh/cordis.patch.yml +44 -0
  7. package/dsh/index.mjs +76 -0
  8. package/dsh/run-status.mjs +182 -0
  9. package/dsh/scope-limits.mjs +50 -0
  10. package/dsh/workbench.mjs +291 -0
  11. package/mcp-servers/claude-review/README.md +93 -0
  12. package/mcp-servers/claude-review/run_with_claude_aws.sh +49 -0
  13. package/mcp-servers/claude-review/server.py +718 -0
  14. package/mcp-servers/codex-image2/README.md +65 -0
  15. package/mcp-servers/codex-image2/server.py +893 -0
  16. package/mcp-servers/feishu-bridge/requirements.txt +1 -0
  17. package/mcp-servers/feishu-bridge/server.py +240 -0
  18. package/mcp-servers/gemini-review/README.md +171 -0
  19. package/mcp-servers/gemini-review/server.py +1856 -0
  20. package/mcp-servers/llm-chat/requirements.txt +1 -0
  21. package/mcp-servers/llm-chat/server.py +664 -0
  22. package/mcp-servers/manual-review/README.md +133 -0
  23. package/mcp-servers/manual-review/server.py +910 -0
  24. package/mcp-servers/manual-review/ui.html +279 -0
  25. package/mcp-servers/minimax-chat/requirements.txt +1 -0
  26. package/mcp-servers/minimax-chat/server.py +381 -0
  27. package/package.json +51 -0
  28. package/skills/ablation-planner/SKILL.md +123 -0
  29. package/skills/alphaxiv/SKILL.md +196 -0
  30. package/skills/analyze-results/SKILL.md +46 -0
  31. package/skills/arxiv/SKILL.md +248 -0
  32. package/skills/auto-paper-improvement-loop/SKILL.md +651 -0
  33. package/skills/auto-review-loop/SKILL.md +1137 -0
  34. package/skills/auto-review-loop-llm/SKILL.md +259 -0
  35. package/skills/auto-review-loop-minimax/SKILL.md +302 -0
  36. package/skills/citation-audit/SKILL.md +502 -0
  37. package/skills/claims-drafting/SKILL.md +227 -0
  38. package/skills/comm-lit-review/SKILL.md +297 -0
  39. package/skills/deepxiv/SKILL.md +263 -0
  40. package/skills/dse-loop/SKILL.md +296 -0
  41. package/skills/embodiment-description/SKILL.md +129 -0
  42. package/skills/exa-search/SKILL.md +205 -0
  43. package/skills/experiment-audit/SKILL.md +311 -0
  44. package/skills/experiment-bridge/SKILL.md +376 -0
  45. package/skills/experiment-plan/SKILL.md +249 -0
  46. package/skills/experiment-queue/SKILL.md +431 -0
  47. package/skills/experiment-queue/scripts/build_manifest.py +142 -0
  48. package/skills/experiment-queue/scripts/queue_manager.py +433 -0
  49. package/skills/feishu-notify/SKILL.md +156 -0
  50. package/skills/figure-description/SKILL.md +138 -0
  51. package/skills/figure-spec/SKILL.md +262 -0
  52. package/skills/figure-spec/scripts/figure_renderer.py +799 -0
  53. package/skills/formula-derivation/SKILL.md +280 -0
  54. package/skills/gemini-search/SKILL.md +231 -0
  55. package/skills/grant-proposal/SKILL.md +698 -0
  56. package/skills/idea-creator/SKILL.md +542 -0
  57. package/skills/idea-discovery/SKILL.md +521 -0
  58. package/skills/idea-discovery-robot/SKILL.md +363 -0
  59. package/skills/integrity-forensics/SKILL.md +284 -0
  60. package/skills/interview-cheatsheet/SKILL.md +245 -0
  61. package/skills/invention-structuring/SKILL.md +188 -0
  62. package/skills/jurisdiction-format/SKILL.md +192 -0
  63. package/skills/kill-argument/SKILL.md +437 -0
  64. package/skills/mermaid-diagram/SKILL.md +419 -0
  65. package/skills/meta-apply/SKILL.md +141 -0
  66. package/skills/meta-optimize/SKILL.md +437 -0
  67. package/skills/monitor-experiment/SKILL.md +140 -0
  68. package/skills/novelty-check/SKILL.md +101 -0
  69. package/skills/openalex/SKILL.md +237 -0
  70. package/skills/overleaf-sync/SKILL.md +220 -0
  71. package/skills/paper-claim-audit/SKILL.md +348 -0
  72. package/skills/paper-compile/SKILL.md +266 -0
  73. package/skills/paper-figure/SKILL.md +312 -0
  74. package/skills/paper-illustration/SKILL.md +736 -0
  75. package/skills/paper-illustration-image2/SKILL.md +391 -0
  76. package/skills/paper-illustration-image2/scripts/paper_illustration_image2.py +255 -0
  77. package/skills/paper-plan/SKILL.md +386 -0
  78. package/skills/paper-poster/SKILL.md +19 -0
  79. package/skills/paper-poster-html/DESIGN_FINAL.md +176 -0
  80. package/skills/paper-poster-html/IMPLEMENTATION_CONVENTIONS.md +161 -0
  81. package/skills/paper-poster-html/LICENSES/posterly-MIT.txt +21 -0
  82. package/skills/paper-poster-html/NOTICE.md +57 -0
  83. package/skills/paper-poster-html/SKILL.md +323 -0
  84. package/skills/paper-poster-html/scripts/_posterly/__init__.py +0 -0
  85. package/skills/paper-poster-html/scripts/_posterly/canvas.py +200 -0
  86. package/skills/paper-poster-html/scripts/_posterly/measure.py +588 -0
  87. package/skills/paper-poster-html/scripts/_posterly/polish.py +498 -0
  88. package/skills/paper-poster-html/scripts/_posterly/preflight.py +489 -0
  89. package/skills/paper-poster-html/scripts/_posterly/render.py +215 -0
  90. package/skills/paper-poster-html/scripts/_posterly/textutil.py +16 -0
  91. package/skills/paper-poster-html/scripts/_posterly/verify_final.py +171 -0
  92. package/skills/paper-poster-html/scripts/asset_check.py +897 -0
  93. package/skills/paper-poster-html/scripts/extract_pdf_figures.py +666 -0
  94. package/skills/paper-poster-html/scripts/poster_check.py +251 -0
  95. package/skills/paper-poster-html/scripts/preprocess_figures.py +238 -0
  96. package/skills/paper-poster-html/scripts/render_preview.py +217 -0
  97. package/skills/paper-poster-html/scripts/run_gates.py +556 -0
  98. package/skills/paper-poster-html/scripts/style_check.py +1324 -0
  99. package/skills/paper-poster-html/templates/COMPONENTS.md +462 -0
  100. package/skills/paper-poster-html/templates/README.md +170 -0
  101. package/skills/paper-poster-html/templates/landscape_4col.html +1032 -0
  102. package/skills/paper-poster-html/templates/landscape_hero.html +1046 -0
  103. package/skills/paper-poster-html/templates/portrait_2col.html +947 -0
  104. package/skills/paper-poster-html/templates/tokens/acl.json +9 -0
  105. package/skills/paper-poster-html/templates/tokens/cvpr.json +9 -0
  106. package/skills/paper-poster-html/templates/tokens/generic.json +9 -0
  107. package/skills/paper-poster-html/templates/tokens/iclr.json +9 -0
  108. package/skills/paper-poster-html/templates/tokens/icml.json +9 -0
  109. package/skills/paper-poster-html/templates/tokens/neurips.json +9 -0
  110. package/skills/paper-slides/SKILL.md +635 -0
  111. package/skills/paper-talk/SKILL.md +381 -0
  112. package/skills/paper-write/SKILL.md +604 -0
  113. package/skills/paper-write/templates/IEEEtran.bst +2409 -0
  114. package/skills/paper-write/templates/IEEEtran.cls +6347 -0
  115. package/skills/paper-write/templates/iclr2026.tex +84 -0
  116. package/skills/paper-write/templates/icml2025.tex +87 -0
  117. package/skills/paper-write/templates/ieee_conference.tex +89 -0
  118. package/skills/paper-write/templates/ieee_journal.tex +93 -0
  119. package/skills/paper-write/templates/math_commands.tex +48 -0
  120. package/skills/paper-write/templates/neurips2025.tex +80 -0
  121. package/skills/paper-writing/SKILL.md +916 -0
  122. package/skills/patent-novelty-check/SKILL.md +153 -0
  123. package/skills/patent-pipeline/SKILL.md +344 -0
  124. package/skills/patent-review/SKILL.md +203 -0
  125. package/skills/pixel-art/SKILL.md +137 -0
  126. package/skills/prior-art-search/SKILL.md +146 -0
  127. package/skills/proof-checker/SKILL.md +866 -0
  128. package/skills/proof-orchestrator/NOTICE.md +24 -0
  129. package/skills/proof-orchestrator/SKILL.md +254 -0
  130. package/skills/proof-orchestrator/references/audit-output-contract.md +126 -0
  131. package/skills/proof-orchestrator/references/deepseek-routing.md +74 -0
  132. package/skills/proof-orchestrator/references/dispatch-prompts.md +227 -0
  133. package/skills/proof-orchestrator/references/notation-audit.md +135 -0
  134. package/skills/proof-orchestrator/references/proof-audit-rubric.md +70 -0
  135. package/skills/proof-orchestrator/references/stress-tests.md +38 -0
  136. package/skills/proof-writer/SKILL.md +223 -0
  137. package/skills/qzcli/SKILL.md +324 -0
  138. package/skills/rebuttal/SKILL.md +376 -0
  139. package/skills/render-html/SKILL.md +316 -0
  140. package/skills/render-html/scripts/render_html.py +1006 -0
  141. package/skills/render-html/scripts/templates/academic.html +703 -0
  142. package/skills/render-html/scripts/templates/dashboard.html +333 -0
  143. package/skills/research-lit/SKILL.md +756 -0
  144. package/skills/research-pipeline/SKILL.md +384 -0
  145. package/skills/research-refine/SKILL.md +770 -0
  146. package/skills/research-refine-pipeline/SKILL.md +186 -0
  147. package/skills/research-review/SKILL.md +198 -0
  148. package/skills/research-wiki/SKILL.md +461 -0
  149. package/skills/resubmit-pipeline/SKILL.md +447 -0
  150. package/skills/result-to-claim/SKILL.md +311 -0
  151. package/skills/run-experiment/SKILL.md +313 -0
  152. package/skills/semantic-scholar/SKILL.md +236 -0
  153. package/skills/serverless-modal/SKILL.md +335 -0
  154. package/skills/shared-references/acceptance-gate.md +324 -0
  155. package/skills/shared-references/assurance-contract.md +248 -0
  156. package/skills/shared-references/capture-antipatterns.md +78 -0
  157. package/skills/shared-references/citation-discipline.md +583 -0
  158. package/skills/shared-references/compute-env-contract.md +163 -0
  159. package/skills/shared-references/effort-contract.md +183 -0
  160. package/skills/shared-references/evidence-precheck.md +65 -0
  161. package/skills/shared-references/experiment-integrity.md +49 -0
  162. package/skills/shared-references/external-cadence.md +326 -0
  163. package/skills/shared-references/fan-out-pattern.md +366 -0
  164. package/skills/shared-references/injection-hygiene.md +127 -0
  165. package/skills/shared-references/integration-contract.md +461 -0
  166. package/skills/shared-references/output-composition.md +93 -0
  167. package/skills/shared-references/output-language.md +45 -0
  168. package/skills/shared-references/output-manifest.md +49 -0
  169. package/skills/shared-references/output-versioning.md +111 -0
  170. package/skills/shared-references/patent-format-cn.md +199 -0
  171. package/skills/shared-references/patent-format-ep.md +173 -0
  172. package/skills/shared-references/patent-format-us.md +161 -0
  173. package/skills/shared-references/patent-writing-principles.md +197 -0
  174. package/skills/shared-references/prior-art-databases.md +141 -0
  175. package/skills/shared-references/resumable-runs.md +109 -0
  176. package/skills/shared-references/review-scope-limits.md +81 -0
  177. package/skills/shared-references/review-tracing.md +391 -0
  178. package/skills/shared-references/reviewer-independence.md +79 -0
  179. package/skills/shared-references/reviewer-routing.md +852 -0
  180. package/skills/shared-references/skill-governance.md +104 -0
  181. package/skills/shared-references/taste-calibration.md +85 -0
  182. package/skills/shared-references/venue-checklists.md +114 -0
  183. package/skills/shared-references/wiki-helper-resolution.md +134 -0
  184. package/skills/shared-references/writing-principles.md +525 -0
  185. package/skills/skills-codex/README.md +102 -0
  186. package/skills/skills-codex/README_CN.md +100 -0
  187. package/skills/skills-codex/ablation-planner/SKILL.md +126 -0
  188. package/skills/skills-codex/alphaxiv/SKILL.md +186 -0
  189. package/skills/skills-codex/analyze-results/SKILL.md +45 -0
  190. package/skills/skills-codex/arxiv/SKILL.md +210 -0
  191. package/skills/skills-codex/auto-paper-improvement-loop/SKILL.md +574 -0
  192. package/skills/skills-codex/auto-review-loop/SKILL.md +500 -0
  193. package/skills/skills-codex/auto-review-loop-llm/SKILL.md +247 -0
  194. package/skills/skills-codex/auto-review-loop-minimax/SKILL.md +290 -0
  195. package/skills/skills-codex/citation-audit/SKILL.md +504 -0
  196. package/skills/skills-codex/claims-drafting/SKILL.md +239 -0
  197. package/skills/skills-codex/comm-lit-review/SKILL.md +299 -0
  198. package/skills/skills-codex/comm-lit-review/references/domain-taxonomy.md +57 -0
  199. package/skills/skills-codex/comm-lit-review/references/output-template.md +37 -0
  200. package/skills/skills-codex/comm-lit-review/references/source-policy.md +99 -0
  201. package/skills/skills-codex/comm-lit-review/references/venue-tiering.md +112 -0
  202. package/skills/skills-codex/deepxiv/SKILL.md +142 -0
  203. package/skills/skills-codex/dse-loop/SKILL.md +285 -0
  204. package/skills/skills-codex/embodiment-description/SKILL.md +129 -0
  205. package/skills/skills-codex/exa-search/SKILL.md +192 -0
  206. package/skills/skills-codex/experiment-audit/SKILL.md +286 -0
  207. package/skills/skills-codex/experiment-bridge/SKILL.md +356 -0
  208. package/skills/skills-codex/experiment-plan/SKILL.md +249 -0
  209. package/skills/skills-codex/experiment-queue/SKILL.md +401 -0
  210. package/skills/skills-codex/feishu-notify/SKILL.md +155 -0
  211. package/skills/skills-codex/figure-description/SKILL.md +138 -0
  212. package/skills/skills-codex/figure-spec/SKILL.md +252 -0
  213. package/skills/skills-codex/formula-derivation/SKILL.md +280 -0
  214. package/skills/skills-codex/gemini-search/SKILL.md +205 -0
  215. package/skills/skills-codex/grant-proposal/SKILL.md +626 -0
  216. package/skills/skills-codex/idea-creator/SKILL.md +405 -0
  217. package/skills/skills-codex/idea-discovery/SKILL.md +475 -0
  218. package/skills/skills-codex/idea-discovery-robot/SKILL.md +362 -0
  219. package/skills/skills-codex/integrity-forensics/SKILL.md +106 -0
  220. package/skills/skills-codex/interview-cheatsheet/SKILL.md +245 -0
  221. package/skills/skills-codex/invention-structuring/SKILL.md +188 -0
  222. package/skills/skills-codex/jurisdiction-format/SKILL.md +192 -0
  223. package/skills/skills-codex/kill-argument/SKILL.md +403 -0
  224. package/skills/skills-codex/mermaid-diagram/SKILL.md +379 -0
  225. package/skills/skills-codex/meta-apply/SKILL.md +154 -0
  226. package/skills/skills-codex/meta-optimize/SKILL.md +348 -0
  227. package/skills/skills-codex/monitor-experiment/SKILL.md +98 -0
  228. package/skills/skills-codex/novelty-check/SKILL.md +89 -0
  229. package/skills/skills-codex/openalex/SKILL.md +228 -0
  230. package/skills/skills-codex/overleaf-sync/SKILL.md +220 -0
  231. package/skills/skills-codex/paper-claim-audit/SKILL.md +350 -0
  232. package/skills/skills-codex/paper-compile/SKILL.md +253 -0
  233. package/skills/skills-codex/paper-figure/SKILL.md +311 -0
  234. package/skills/skills-codex/paper-illustration/SKILL.md +690 -0
  235. package/skills/skills-codex/paper-illustration-image2/SKILL.md +383 -0
  236. package/skills/skills-codex/paper-illustration-image2/scripts/paper_illustration_image2.py +255 -0
  237. package/skills/skills-codex/paper-plan/SKILL.md +278 -0
  238. package/skills/skills-codex/paper-poster/SKILL.md +19 -0
  239. package/skills/skills-codex/paper-poster-html/SKILL.md +377 -0
  240. package/skills/skills-codex/paper-slides/SKILL.md +571 -0
  241. package/skills/skills-codex/paper-talk/SKILL.md +381 -0
  242. package/skills/skills-codex/paper-write/SKILL.md +411 -0
  243. package/skills/skills-codex/paper-write/templates/IEEEtran.bst +2409 -0
  244. package/skills/skills-codex/paper-write/templates/IEEEtran.cls +6347 -0
  245. package/skills/skills-codex/paper-write/templates/aaai2026.bst +1493 -0
  246. package/skills/skills-codex/paper-write/templates/aaai2026.sty +315 -0
  247. package/skills/skills-codex/paper-write/templates/aaai2026.tex +952 -0
  248. package/skills/skills-codex/paper-write/templates/acl.sty +312 -0
  249. package/skills/skills-codex/paper-write/templates/acl2026.tex +377 -0
  250. package/skills/skills-codex/paper-write/templates/acl_natbib.bst +1940 -0
  251. package/skills/skills-codex/paper-write/templates/acm.bst +3081 -0
  252. package/skills/skills-codex/paper-write/templates/acm_mm2026.tex +204 -0
  253. package/skills/skills-codex/paper-write/templates/acmart.cls +3520 -0
  254. package/skills/skills-codex/paper-write/templates/cvpr.bst +1448 -0
  255. package/skills/skills-codex/paper-write/templates/cvpr.sty +508 -0
  256. package/skills/skills-codex/paper-write/templates/cvpr2026.tex +63 -0
  257. package/skills/skills-codex/paper-write/templates/iclr2026.tex +84 -0
  258. package/skills/skills-codex/paper-write/templates/iclr2026_conference.bst +1440 -0
  259. package/skills/skills-codex/paper-write/templates/iclr2026_conference.sty +246 -0
  260. package/skills/skills-codex/paper-write/templates/icml2026.sty +767 -0
  261. package/skills/skills-codex/paper-write/templates/icml2026.tex +662 -0
  262. package/skills/skills-codex/paper-write/templates/ieee_conference.tex +89 -0
  263. package/skills/skills-codex/paper-write/templates/ieee_journal.tex +93 -0
  264. package/skills/skills-codex/paper-write/templates/math_commands.tex +48 -0
  265. package/skills/skills-codex/paper-write/templates/neurips2026.tex +493 -0
  266. package/skills/skills-codex/paper-write/templates/neurips_2026.sty +437 -0
  267. package/skills/skills-codex/paper-writing/SKILL.md +731 -0
  268. package/skills/skills-codex/patent-novelty-check/SKILL.md +153 -0
  269. package/skills/skills-codex/patent-pipeline/SKILL.md +344 -0
  270. package/skills/skills-codex/patent-review/SKILL.md +202 -0
  271. package/skills/skills-codex/pixel-art/SKILL.md +139 -0
  272. package/skills/skills-codex/prior-art-search/SKILL.md +146 -0
  273. package/skills/skills-codex/proof-checker/SKILL.md +554 -0
  274. package/skills/skills-codex/proof-orchestrator/SKILL.md +260 -0
  275. package/skills/skills-codex/proof-orchestrator/references/audit-output-contract.md +126 -0
  276. package/skills/skills-codex/proof-orchestrator/references/deepseek-routing.md +76 -0
  277. package/skills/skills-codex/proof-orchestrator/references/dispatch-prompts.md +227 -0
  278. package/skills/skills-codex/proof-orchestrator/references/notation-audit.md +135 -0
  279. package/skills/skills-codex/proof-orchestrator/references/proof-audit-rubric.md +70 -0
  280. package/skills/skills-codex/proof-orchestrator/references/stress-tests.md +38 -0
  281. package/skills/skills-codex/proof-writer/SKILL.md +222 -0
  282. package/skills/skills-codex/qzcli/SKILL.md +324 -0
  283. package/skills/skills-codex/rebuttal/SKILL.md +305 -0
  284. package/skills/skills-codex/render-html/SKILL.md +305 -0
  285. package/skills/skills-codex/render-html/scripts/__pycache__/render_html.cpython-314.pyc +0 -0
  286. package/skills/skills-codex/render-html/scripts/render_html.py +909 -0
  287. package/skills/skills-codex/render-html/scripts/templates/academic.html +342 -0
  288. package/skills/skills-codex/render-html/scripts/templates/dashboard.html +333 -0
  289. package/skills/skills-codex/research-lit/SKILL.md +464 -0
  290. package/skills/skills-codex/research-pipeline/SKILL.md +340 -0
  291. package/skills/skills-codex/research-refine/SKILL.md +721 -0
  292. package/skills/skills-codex/research-refine-pipeline/SKILL.md +186 -0
  293. package/skills/skills-codex/research-review/SKILL.md +135 -0
  294. package/skills/skills-codex/research-wiki/SKILL.md +421 -0
  295. package/skills/skills-codex/resubmit-pipeline/SKILL.md +444 -0
  296. package/skills/skills-codex/result-to-claim/SKILL.md +246 -0
  297. package/skills/skills-codex/run-experiment/SKILL.md +236 -0
  298. package/skills/skills-codex/semantic-scholar/SKILL.md +219 -0
  299. package/skills/skills-codex/serverless-modal/SKILL.md +335 -0
  300. package/skills/skills-codex/shared-references/acceptance-gate.md +336 -0
  301. package/skills/skills-codex/shared-references/assurance-contract.md +139 -0
  302. package/skills/skills-codex/shared-references/capture-antipatterns.md +84 -0
  303. package/skills/skills-codex/shared-references/citation-discipline.md +452 -0
  304. package/skills/skills-codex/shared-references/compute-env-contract.md +163 -0
  305. package/skills/skills-codex/shared-references/effort-contract.md +143 -0
  306. package/skills/skills-codex/shared-references/evidence-precheck.md +73 -0
  307. package/skills/skills-codex/shared-references/experiment-integrity.md +49 -0
  308. package/skills/skills-codex/shared-references/external-cadence.md +334 -0
  309. package/skills/skills-codex/shared-references/fan-out-pattern.md +375 -0
  310. package/skills/skills-codex/shared-references/injection-hygiene.md +132 -0
  311. package/skills/skills-codex/shared-references/integration-contract.md +372 -0
  312. package/skills/skills-codex/shared-references/output-composition.md +98 -0
  313. package/skills/skills-codex/shared-references/output-language.md +45 -0
  314. package/skills/skills-codex/shared-references/output-manifest.md +40 -0
  315. package/skills/skills-codex/shared-references/output-versioning.md +111 -0
  316. package/skills/skills-codex/shared-references/patent-format-cn.md +199 -0
  317. package/skills/skills-codex/shared-references/patent-format-ep.md +173 -0
  318. package/skills/skills-codex/shared-references/patent-format-us.md +161 -0
  319. package/skills/skills-codex/shared-references/patent-writing-principles.md +197 -0
  320. package/skills/skills-codex/shared-references/prior-art-databases.md +141 -0
  321. package/skills/skills-codex/shared-references/resumable-runs.md +125 -0
  322. package/skills/skills-codex/shared-references/review-scope-limits.md +81 -0
  323. package/skills/skills-codex/shared-references/review-tracing.md +144 -0
  324. package/skills/skills-codex/shared-references/reviewer-independence.md +66 -0
  325. package/skills/skills-codex/shared-references/reviewer-routing.md +128 -0
  326. package/skills/skills-codex/shared-references/skill-governance.md +119 -0
  327. package/skills/skills-codex/shared-references/taste-calibration.md +90 -0
  328. package/skills/skills-codex/shared-references/venue-checklists.md +73 -0
  329. package/skills/skills-codex/shared-references/wiki-helper-resolution.md +69 -0
  330. package/skills/skills-codex/shared-references/writing-principles.md +525 -0
  331. package/skills/skills-codex/slides-polish/SKILL.md +563 -0
  332. package/skills/skills-codex/specification-writing/SKILL.md +211 -0
  333. package/skills/skills-codex/system-profile/SKILL.md +103 -0
  334. package/skills/skills-codex/training-check/SKILL.md +83 -0
  335. package/skills/skills-codex/vast-gpu/SKILL.md +394 -0
  336. package/skills/skills-codex/web-debug-search/SKILL.md +334 -0
  337. package/skills/skills-codex/wiki-enrich/SKILL.md +255 -0
  338. package/skills/skills-codex/writing-systems-papers/SKILL.md +184 -0
  339. package/skills/skills-codex-claude-review/README.md +79 -0
  340. package/skills/skills-codex-claude-review/README_CN.md +78 -0
  341. package/skills/skills-codex-claude-review/auto-paper-improvement-loop/SKILL.md +581 -0
  342. package/skills/skills-codex-claude-review/auto-review-loop/SKILL.md +510 -0
  343. package/skills/skills-codex-claude-review/novelty-check/SKILL.md +102 -0
  344. package/skills/skills-codex-claude-review/paper-figure/SKILL.md +319 -0
  345. package/skills/skills-codex-claude-review/paper-plan/SKILL.md +287 -0
  346. package/skills/skills-codex-claude-review/paper-write/SKILL.md +420 -0
  347. package/skills/skills-codex-claude-review/research-refine/SKILL.md +732 -0
  348. package/skills/skills-codex-claude-review/research-review/SKILL.md +149 -0
  349. package/skills/skills-codex-gemini-review/README.md +176 -0
  350. package/skills/skills-codex-gemini-review/README_CN.md +175 -0
  351. package/skills/skills-codex-gemini-review/auto-paper-improvement-loop/SKILL.md +331 -0
  352. package/skills/skills-codex-gemini-review/auto-review-loop/SKILL.md +304 -0
  353. package/skills/skills-codex-gemini-review/grant-proposal/SKILL.md +630 -0
  354. package/skills/skills-codex-gemini-review/idea-creator/SKILL.md +263 -0
  355. package/skills/skills-codex-gemini-review/idea-discovery/SKILL.md +275 -0
  356. package/skills/skills-codex-gemini-review/idea-discovery-robot/SKILL.md +365 -0
  357. package/skills/skills-codex-gemini-review/novelty-check/SKILL.md +92 -0
  358. package/skills/skills-codex-gemini-review/paper-figure/SKILL.md +289 -0
  359. package/skills/skills-codex-gemini-review/paper-plan/SKILL.md +265 -0
  360. package/skills/skills-codex-gemini-review/paper-poster-html/SKILL.md +102 -0
  361. package/skills/skills-codex-gemini-review/paper-slides/SKILL.md +582 -0
  362. package/skills/skills-codex-gemini-review/paper-write/SKILL.md +346 -0
  363. package/skills/skills-codex-gemini-review/paper-writing/SKILL.md +312 -0
  364. package/skills/skills-codex-gemini-review/research-refine/SKILL.md +674 -0
  365. package/skills/skills-codex-gemini-review/research-review/SKILL.md +112 -0
  366. package/skills/slides-polish/SKILL.md +565 -0
  367. package/skills/specification-writing/SKILL.md +211 -0
  368. package/skills/system-profile/SKILL.md +103 -0
  369. package/skills/training-check/SKILL.md +132 -0
  370. package/skills/vast-gpu/SKILL.md +394 -0
  371. package/skills/web-debug-search/SKILL.md +334 -0
  372. package/skills/wiki-enrich/SKILL.md +257 -0
  373. package/skills/writing-systems-papers/SKILL.md +184 -0
  374. package/templates/CLAUDE_MD_TEMPLATE.md +29 -0
  375. package/templates/EXPERIMENT_LOG_TEMPLATE.md +47 -0
  376. package/templates/EXPERIMENT_PLAN_TEMPLATE.md +51 -0
  377. package/templates/EXPERIMENT_PLAN_TEMPLATE_CN.md +53 -0
  378. package/templates/FINDINGS_TEMPLATE.md +52 -0
  379. package/templates/IDEA_CANDIDATES_TEMPLATE.md +47 -0
  380. package/templates/IDEA_CANDIDATES_TEMPLATE_CN.md +47 -0
  381. package/templates/INVENTION_BRIEF_TEMPLATE.md +87 -0
  382. package/templates/MANIFEST_TEMPLATE.md +7 -0
  383. package/templates/NARRATIVE_REPORT_TEMPLATE.md +49 -0
  384. package/templates/PAPER_PLAN_TEMPLATE.md +47 -0
  385. package/templates/PATENT_CLAIMS_TEMPLATE.md +78 -0
  386. package/templates/PATENT_SPECIFICATION_TEMPLATE.md +68 -0
  387. package/templates/README.md +57 -0
  388. package/templates/RESEARCH_BRIEF_TEMPLATE.md +35 -0
  389. package/templates/RESEARCH_BRIEF_TEMPLATE_CN.md +41 -0
  390. package/templates/RESEARCH_CONTRACT_TEMPLATE.md +60 -0
  391. package/templates/claude-hooks/corpus_write_guard.json +16 -0
  392. package/templates/claude-hooks/corpus_write_guard.py +85 -0
  393. package/templates/claude-hooks/meta_logging.json +74 -0
  394. package/templates/gitignore-trace.txt +3 -0
  395. package/tools/__pycache__/check_skills_inventory.cpython-314.pyc +0 -0
  396. package/tools/arxiv_fetch.py +311 -0
  397. package/tools/capture_filter.py +126 -0
  398. package/tools/check_skills_inventory.py +273 -0
  399. package/tools/convert_skills_to_llm_chat.py +282 -0
  400. package/tools/copilot_native_evidence.py +818 -0
  401. package/tools/deepxiv_fetch.py +213 -0
  402. package/tools/evidence_check.py +212 -0
  403. package/tools/exa_search.py +425 -0
  404. package/tools/experiment_queue/README.md +118 -0
  405. package/tools/experiment_queue/build_manifest.py +44 -0
  406. package/tools/experiment_queue/queue_manager.py +44 -0
  407. package/tools/extract_paper_style.py +560 -0
  408. package/tools/figure_renderer.py +69 -0
  409. package/tools/forensics_gate.py +669 -0
  410. package/tools/generate_codex_claude_review_overrides.py +299 -0
  411. package/tools/idea_discovery_gate.py +256 -0
  412. package/tools/install_aris.ps1 +1372 -0
  413. package/tools/install_aris.sh +1370 -0
  414. package/tools/install_aris_codex.sh +1023 -0
  415. package/tools/install_aris_copilot.sh +1052 -0
  416. package/tools/iteration_log.py +143 -0
  417. package/tools/lint_skills_helpers.sh +84 -0
  418. package/tools/meta_opt/check_ready.sh +80 -0
  419. package/tools/meta_opt/log_event.sh +91 -0
  420. package/tools/meta_opt/trigger_eval.py +280 -0
  421. package/tools/meta_opt/trigger_evals.sample.json +28 -0
  422. package/tools/openalex_fetch.py +326 -0
  423. package/tools/overleaf_audit.sh +104 -0
  424. package/tools/overleaf_setup.sh +150 -0
  425. package/tools/paper_illustration_image2.py +62 -0
  426. package/tools/provenance.py +294 -0
  427. package/tools/research_wiki.py +1720 -0
  428. package/tools/review_gate.py +502 -0
  429. package/tools/run_state.py +399 -0
  430. package/tools/save_trace.sh +477 -0
  431. package/tools/semantic_scholar_fetch.py +438 -0
  432. package/tools/skill-groups.tsv +116 -0
  433. package/tools/skill_picker.py +238 -0
  434. package/tools/smart_update.ps1 +521 -0
  435. package/tools/smart_update.sh +591 -0
  436. package/tools/smart_update_codex.sh +419 -0
  437. package/tools/smart_update_copilot.sh +605 -0
  438. package/tools/threat_scan.py +222 -0
  439. package/tools/verify_paper_audits.sh +487 -0
  440. package/tools/verify_papers.py +613 -0
  441. package/tools/verify_wiki_coverage.sh +176 -0
  442. package/tools/watchdog.py +485 -0
@@ -0,0 +1,438 @@
1
+ #!/usr/bin/env python3
2
+ """CLI helper for fetching Semantic Scholar papers.
3
+
4
+ Designed to complement arxiv_fetch.py: arXiv handles preprints, this tool
5
+ handles **published venue papers** (IEEE, ACM, Springer, etc.) with rich
6
+ metadata (citations, venue, fieldsOfStudy, TLDR).
7
+
8
+ Commands
9
+ --------
10
+ search Relevance search for papers (offset pagination, max 100).
11
+ search-bulk Bulk search with token-based pagination (max 1000).
12
+ paper Fetch one paper by Semantic Scholar paper ID, DOI, CorpusId, ArXiv ID, etc.
13
+
14
+ Filter flags (shared by search and search-bulk)
15
+ -----------------------------------------------
16
+ --fields-of-study e.g. "Computer Science,Engineering"
17
+ --publication-types e.g. "JournalArticle", "Conference", "Review"
18
+ --min-citations e.g. 10
19
+ --year e.g. "2020-", "2020-2024"
20
+ --venue exact venue name, e.g. "IEEE Transactions on Signal Processing"
21
+ --open-access only papers with a public PDF
22
+
23
+ Examples
24
+ --------
25
+ # Search for journal articles with >= 10 citations (best combo for quality filtering)
26
+ python3 tools/semantic_scholar_fetch.py search "semantic communication" --max 10 \
27
+ --publication-types JournalArticle --min-citations 10
28
+
29
+ # CS/Engineering papers from 2022 onward
30
+ python3 tools/semantic_scholar_fetch.py search "semantic communication" --max 10 \
31
+ --fields-of-study "Computer Science,Engineering" --year "2022-"
32
+
33
+ # Bulk search sorted by citation count, CS only
34
+ python3 tools/semantic_scholar_fetch.py search-bulk "semantic communication" --max 50 \
35
+ --sort citationCount:desc --fields-of-study "Computer Science" --year "2020-"
36
+
37
+ # Fetch a single paper by DOI or arXiv ID
38
+ python3 tools/semantic_scholar_fetch.py paper "10.1109/JSAC.2021.3126077"
39
+ python3 tools/semantic_scholar_fetch.py paper "ARXIV:2006.10685"
40
+
41
+ # NOTE: --venue requires exact venue name (e.g. "IEEE Transactions on Signal Processing"),
42
+ # not partial match like "IEEE". Prefer --publication-types + --fields-of-study instead.
43
+ """
44
+
45
+ from __future__ import annotations
46
+
47
+ import argparse
48
+ import json
49
+ import os
50
+ import sys
51
+ import time
52
+ import urllib.error
53
+ import urllib.parse
54
+ import urllib.request
55
+ from typing import Any
56
+
57
+ _API_BASE = "https://api.semanticscholar.org/graph/v1"
58
+ _USER_AGENT = "s2-fetch/1.1"
59
+ _DEFAULT_TIMEOUT = 30
60
+
61
+ # Good default for relevance search / single-paper fetch
62
+ _DEFAULT_FIELDS = (
63
+ "paperId,title,abstract,year,venue,publicationVenue,publicationTypes,"
64
+ "publicationDate,url,openAccessPdf,authors,externalIds,citationCount,"
65
+ "referenceCount,fieldsOfStudy,s2FieldsOfStudy,tldr"
66
+ )
67
+
68
+ # Bulk search is intended for basic paper data; keep defaults conservative
69
+ _DEFAULT_BULK_FIELDS = (
70
+ "paperId,title,abstract,year,venue,publicationDate,url,authors,"
71
+ "externalIds,citationCount,referenceCount,fieldsOfStudy"
72
+ )
73
+
74
+
75
+ def _headers() -> dict[str, str]:
76
+ headers = {
77
+ "User-Agent": _USER_AGENT,
78
+ "Accept": "application/json",
79
+ }
80
+ api_key = os.getenv("SEMANTIC_SCHOLAR_API_KEY", "").strip()
81
+ if api_key:
82
+ headers["x-api-key"] = api_key
83
+ return headers
84
+
85
+
86
+ def _request_json(url: str, *, retries: int = 2, timeout: int = _DEFAULT_TIMEOUT) -> dict[str, Any]:
87
+ req = urllib.request.Request(url, headers=_headers())
88
+ last_err: Exception | None = None
89
+
90
+ for attempt in range(retries + 1):
91
+ try:
92
+ with urllib.request.urlopen(req, timeout=timeout) as resp:
93
+ raw = resp.read().decode("utf-8")
94
+ return json.loads(raw)
95
+ except urllib.error.HTTPError as exc:
96
+ body = ""
97
+ try:
98
+ body = exc.read().decode("utf-8", errors="replace")
99
+ except Exception:
100
+ pass
101
+
102
+ if exc.code in (429, 500, 502, 503, 504) and attempt < retries:
103
+ time.sleep(1.5 * (attempt + 1))
104
+ last_err = exc
105
+ continue
106
+
107
+ message = f"HTTP {exc.code}"
108
+ if body:
109
+ message += f": {body}"
110
+ raise RuntimeError(message) from exc
111
+ except urllib.error.URLError as exc:
112
+ if attempt < retries:
113
+ time.sleep(1.5 * (attempt + 1))
114
+ last_err = exc
115
+ continue
116
+ raise RuntimeError(f"Network error: {exc}") from exc
117
+ except json.JSONDecodeError as exc:
118
+ raise RuntimeError("Failed to parse JSON response from Semantic Scholar API") from exc
119
+
120
+ raise RuntimeError(f"Request failed after retries: {last_err}")
121
+
122
+
123
+ def _clean_text(value: Any) -> str | None:
124
+ if value is None:
125
+ return None
126
+ text = str(value).strip().replace("\n", " ")
127
+ return text or None
128
+
129
+
130
+ def _parse_author(author: dict[str, Any]) -> dict[str, Any]:
131
+ return {
132
+ "authorId": author.get("authorId"),
133
+ "name": _clean_text(author.get("name")),
134
+ }
135
+
136
+
137
+ def _parse_publication_venue(pub_venue: dict[str, Any] | None) -> dict[str, Any] | None:
138
+ if not pub_venue:
139
+ return None
140
+ return {
141
+ "id": pub_venue.get("id"),
142
+ "name": _clean_text(pub_venue.get("name")),
143
+ "type": _clean_text(pub_venue.get("type")),
144
+ "issn": _clean_text(pub_venue.get("issn")),
145
+ "url": _clean_text(pub_venue.get("url")),
146
+ }
147
+
148
+
149
+ def _parse_paper(paper: dict[str, Any]) -> dict[str, Any]:
150
+ authors = paper.get("authors") or []
151
+ return {
152
+ "paperId": paper.get("paperId"),
153
+ "title": _clean_text(paper.get("title")),
154
+ "abstract": _clean_text(paper.get("abstract")),
155
+ "year": paper.get("year"),
156
+ "venue": _clean_text(paper.get("venue")),
157
+ "publicationVenue": _parse_publication_venue(paper.get("publicationVenue")),
158
+ "publicationTypes": paper.get("publicationTypes"),
159
+ "publicationDate": _clean_text(paper.get("publicationDate")),
160
+ "url": _clean_text(paper.get("url")),
161
+ "openAccessPdf": paper.get("openAccessPdf"),
162
+ "authors": [_parse_author(a) for a in authors],
163
+ "externalIds": paper.get("externalIds"),
164
+ "citationCount": paper.get("citationCount"),
165
+ "referenceCount": paper.get("referenceCount"),
166
+ "fieldsOfStudy": paper.get("fieldsOfStudy"),
167
+ "s2FieldsOfStudy": paper.get("s2FieldsOfStudy"),
168
+ "tldr": paper.get("tldr"),
169
+ }
170
+
171
+
172
+ def search(
173
+ query: str,
174
+ max_results: int = 10,
175
+ offset: int = 0,
176
+ fields: str = _DEFAULT_FIELDS,
177
+ fields_of_study: str | None = None,
178
+ venue: str | None = None,
179
+ year: str | None = None,
180
+ min_citation_count: int | None = None,
181
+ publication_types: str | None = None,
182
+ open_access_pdf: bool = False,
183
+ ) -> dict[str, Any]:
184
+ params: dict[str, Any] = {
185
+ "query": query,
186
+ "limit": max_results,
187
+ "offset": offset,
188
+ "fields": fields,
189
+ }
190
+ if fields_of_study:
191
+ params["fieldsOfStudy"] = fields_of_study
192
+ if venue:
193
+ params["venue"] = venue
194
+ if year:
195
+ params["year"] = year
196
+ if min_citation_count is not None:
197
+ params["minCitationCount"] = min_citation_count
198
+ if publication_types:
199
+ params["publicationTypes"] = publication_types
200
+ if open_access_pdf:
201
+ params["openAccessPdf"] = ""
202
+ url = f"{_API_BASE}/paper/search?{urllib.parse.urlencode(params)}"
203
+ payload = _request_json(url)
204
+
205
+ data = payload.get("data") or []
206
+ return {
207
+ "mode": "search",
208
+ "total": payload.get("total"),
209
+ "offset": offset,
210
+ "next_offset": offset + len(data),
211
+ "data": [_parse_paper(item) for item in data],
212
+ }
213
+
214
+
215
+ def search_bulk(
216
+ query: str,
217
+ max_results: int = 100,
218
+ token: str | None = None,
219
+ fields: str = _DEFAULT_BULK_FIELDS,
220
+ sort: str | None = None,
221
+ fields_of_study: str | None = None,
222
+ venue: str | None = None,
223
+ year: str | None = None,
224
+ min_citation_count: int | None = None,
225
+ publication_types: str | None = None,
226
+ open_access_pdf: bool = False,
227
+ ) -> dict[str, Any]:
228
+ params: dict[str, Any] = {
229
+ "query": query,
230
+ "limit": max_results,
231
+ "fields": fields,
232
+ }
233
+ if token:
234
+ params["token"] = token
235
+ if sort:
236
+ params["sort"] = sort
237
+ if fields_of_study:
238
+ params["fieldsOfStudy"] = fields_of_study
239
+ if venue:
240
+ params["venue"] = venue
241
+ if year:
242
+ params["year"] = year
243
+ if min_citation_count is not None:
244
+ params["minCitationCount"] = min_citation_count
245
+ if publication_types:
246
+ params["publicationTypes"] = publication_types
247
+ if open_access_pdf:
248
+ params["openAccessPdf"] = ""
249
+
250
+ url = f"{_API_BASE}/paper/search/bulk?{urllib.parse.urlencode(params)}"
251
+ payload = _request_json(url)
252
+
253
+ data = payload.get("data") or []
254
+ return {
255
+ "mode": "search-bulk",
256
+ "token": payload.get("token"),
257
+ "returned": len(data),
258
+ "sort": sort,
259
+ "data": [_parse_paper(item) for item in data],
260
+ }
261
+
262
+
263
+ def get_paper(paper_id: str, fields: str = _DEFAULT_FIELDS) -> dict[str, Any]:
264
+ encoded_id = urllib.parse.quote(paper_id, safe="")
265
+ params = {"fields": fields}
266
+ url = f"{_API_BASE}/paper/{encoded_id}?{urllib.parse.urlencode(params)}"
267
+ payload = _request_json(url)
268
+ return _parse_paper(payload)
269
+
270
+
271
+ def _add_filter_args(parser: argparse.ArgumentParser) -> None:
272
+ """Add shared filtering arguments to a search sub-parser."""
273
+ parser.add_argument(
274
+ "--fields-of-study",
275
+ default=None,
276
+ help="Comma-separated fields of study filter, e.g. 'Computer Science,Engineering'.",
277
+ )
278
+ parser.add_argument(
279
+ "--venue",
280
+ default=None,
281
+ help="Comma-separated venue filter, e.g. 'IEEE,ACM' or 'Nature'.",
282
+ )
283
+ parser.add_argument(
284
+ "--year",
285
+ default=None,
286
+ help="Year or range, e.g. '2023', '2020-2024', '2020-', '-2023'.",
287
+ )
288
+ parser.add_argument(
289
+ "--min-citations",
290
+ type=int,
291
+ default=None,
292
+ metavar="N",
293
+ help="Minimum citation count filter.",
294
+ )
295
+ parser.add_argument(
296
+ "--publication-types",
297
+ default=None,
298
+ help="Comma-separated types: JournalArticle,Conference,Review,etc.",
299
+ )
300
+ parser.add_argument(
301
+ "--open-access",
302
+ action="store_true",
303
+ default=False,
304
+ help="Only return papers with a public PDF.",
305
+ )
306
+
307
+
308
+ def _build_parser() -> argparse.ArgumentParser:
309
+ parser = argparse.ArgumentParser(
310
+ description="Search and fetch papers from Semantic Scholar.",
311
+ formatter_class=argparse.RawDescriptionHelpFormatter,
312
+ )
313
+ subparsers = parser.add_subparsers(dest="command", required=True)
314
+
315
+ search_parser = subparsers.add_parser("search", help="Relevance search for papers")
316
+ search_parser.add_argument("query", help="Keyword query")
317
+ search_parser.add_argument(
318
+ "--max",
319
+ type=int,
320
+ default=10,
321
+ metavar="N",
322
+ help="Maximum number of results to return (default: 10).",
323
+ )
324
+ search_parser.add_argument(
325
+ "--offset",
326
+ type=int,
327
+ default=0,
328
+ help="Offset for pagination (default: 0).",
329
+ )
330
+ search_parser.add_argument(
331
+ "--fields",
332
+ default=_DEFAULT_FIELDS,
333
+ help="Comma-separated response fields to request.",
334
+ )
335
+ _add_filter_args(search_parser)
336
+
337
+ bulk_parser = subparsers.add_parser(
338
+ "search-bulk",
339
+ help="Bulk search for papers with token-based pagination",
340
+ )
341
+ bulk_parser.add_argument("query", help="Keyword query")
342
+ bulk_parser.add_argument(
343
+ "--max",
344
+ type=int,
345
+ default=100,
346
+ metavar="N",
347
+ help="Maximum number of results to return in this page (default: 100).",
348
+ )
349
+ bulk_parser.add_argument(
350
+ "--token",
351
+ default=None,
352
+ help="Continuation token returned by a previous bulk search page.",
353
+ )
354
+ bulk_parser.add_argument(
355
+ "--sort",
356
+ default=None,
357
+ help="Optional sort for bulk search, e.g. publicationDate:desc or citationCount:desc",
358
+ )
359
+ bulk_parser.add_argument(
360
+ "--fields",
361
+ default=_DEFAULT_BULK_FIELDS,
362
+ help="Comma-separated response fields to request.",
363
+ )
364
+ _add_filter_args(bulk_parser)
365
+
366
+ paper_parser = subparsers.add_parser("paper", help="Fetch one paper by ID")
367
+ paper_parser.add_argument(
368
+ "id",
369
+ help=(
370
+ "Semantic Scholar paper ID, DOI, CorpusId:..., ARXIV:..., PMID:..., MAG:..., ACL:..., etc."
371
+ ),
372
+ )
373
+ paper_parser.add_argument(
374
+ "--fields",
375
+ default=_DEFAULT_FIELDS,
376
+ help="Comma-separated response fields to request.",
377
+ )
378
+
379
+ return parser
380
+
381
+
382
+ def main(argv: list[str] | None = None) -> int:
383
+ args = _build_parser().parse_args(argv)
384
+
385
+ try:
386
+ if args.command == "search":
387
+ result = search(
388
+ query=args.query,
389
+ max_results=args.max,
390
+ offset=args.offset,
391
+ fields=args.fields,
392
+ fields_of_study=args.fields_of_study,
393
+ venue=args.venue,
394
+ year=args.year,
395
+ min_citation_count=args.min_citations,
396
+ publication_types=args.publication_types,
397
+ open_access_pdf=args.open_access,
398
+ )
399
+ print(json.dumps(result, ensure_ascii=False, indent=2))
400
+ return 0
401
+
402
+ if args.command == "search-bulk":
403
+ result = search_bulk(
404
+ query=args.query,
405
+ max_results=args.max,
406
+ token=args.token,
407
+ fields=args.fields,
408
+ sort=args.sort,
409
+ fields_of_study=args.fields_of_study,
410
+ venue=args.venue,
411
+ year=args.year,
412
+ min_citation_count=args.min_citations,
413
+ publication_types=args.publication_types,
414
+ open_access_pdf=args.open_access,
415
+ )
416
+ print(json.dumps(result, ensure_ascii=False, indent=2))
417
+ return 0
418
+
419
+ if args.command == "paper":
420
+ result = get_paper(
421
+ paper_id=args.id,
422
+ fields=args.fields,
423
+ )
424
+ print(json.dumps(result, ensure_ascii=False, indent=2))
425
+ return 0
426
+
427
+ raise ValueError(f"Unsupported command: {args.command}")
428
+
429
+ except KeyboardInterrupt:
430
+ print("Interrupted.", file=sys.stderr)
431
+ return 130
432
+ except Exception as exc:
433
+ print(f"Error: {exc}", file=sys.stderr)
434
+ return 1
435
+
436
+
437
+ if __name__ == "__main__":
438
+ sys.exit(main())
@@ -0,0 +1,116 @@
1
+ # ARIS skill catalog — single source of truth for selective install.
2
+ # Consumed by: install_aris.sh / install_aris_codex.sh / install_aris_copilot.sh /
3
+ # install_aris.ps1 / smart_update*.sh|ps1 / tools/skill_picker.py /
4
+ # tests/test_skill_groups.py
5
+ #
6
+ # Record types (tab-separated):
7
+ # group <group-id> <display-name> <description>
8
+ # skill <skill-name> <group-id> <requires> <short-description>
9
+ #
10
+ # <requires> = skills the entry actually exercises in a DEFAULT run:
11
+ # (a) unconditional pipeline phases ("Invoke /x" with no gate);
12
+ # (b) default-on invocations — blocking (submission-assurance mandatory
13
+ # audits) or documented-silent-skip (auto-render, W&B health checks):
14
+ # a silent skip is silent feature loss, so it still belongs here;
15
+ # (c) hard artifact prerequisites the skill errors out demanding
16
+ # (wiki-enrich -> "run /research-wiki init first", meta-apply ->
17
+ # "run /meta-optimize first").
18
+ # NOT requires: opt-in flags/branches, "use X instead" alternatives,
19
+ # input-producers and downstream consumers, comparisons, doc links.
20
+ # "-" = none. Every edge was verified against the SKILL.md invocation site
21
+ # (#366 review pass); tests/test_skill_groups.py guards each edge textually.
22
+ # <short-description> = one concise line shown in the interactive picker /
23
+ # --list-groups. Every skills/<name>/SKILL.md must appear exactly once;
24
+ # tests/test_skill_groups.py enforces catalog completeness.
25
+ group lit-search 文献检索 arXiv/OpenAlex/Semantic Scholar 等文献搜索、抓取与阅读
26
+ group ideation 选题与方向 找 idea、查新、方向打磨、research wiki 与总编排 pipeline
27
+ group review-loop 自动评审闭环 跨模型自动 review 循环与对抗性评审
28
+ group theory 公式与证明 公式推导、证明撰写与证明审查
29
+ group experiments 实验与算力 实验计划/执行/监控/分析与 GPU 集群、无服务器算力
30
+ group paper-core 论文写作主线 从大纲到 PDF 的写作、编译、数字/引用/诚信审计
31
+ group paper-visuals 配图与展示 插图、示意图、海报、幻灯片与演讲
32
+ group submission 投稿与基金 返修 rebuttal、重投 pipeline、基金申请书
33
+ group patent 专利 发明构建、权利要求、实施例到各国格式的专利流水线
34
+ group meta-utils 元工具与杂项 skill 语料自优化、通知、面试准备等
35
+ skill arxiv lit-search - arXiv 搜索/下载/入库
36
+ skill alphaxiv lit-search - 单篇论文快速解读(AlphaXiv 摘要)
37
+ skill deepxiv lit-search - DeepXiv 渐进式论文阅读
38
+ skill semantic-scholar lit-search - 正式发表论文检索(引用数/venue)
39
+ skill openalex lit-search - OpenAlex 引用图谱与机构元数据
40
+ skill exa-search lit-search - Exa AI 网页搜索+内容抽取
41
+ skill web-debug-search lit-search - 多来源调试检索(GitHub/Stack Exchange/中文社区/General Web)与版本兼容性
42
+ skill gemini-search lit-search - Gemini 驱动的文献发现
43
+ skill research-lit lit-search - 文献综述与相关工作分析
44
+ skill comm-lit-review lit-search - 通信领域专用文献综述
45
+ skill idea-creator ideation - 给定方向生成并排序研究 idea
46
+ skill idea-discovery ideation idea-creator,novelty-check,research-lit,research-review,research-refine-pipeline,research-refine,render-html W1:从方向到验证过的 idea 全流程
47
+ skill idea-discovery-robot ideation idea-creator,novelty-check,research-lit,research-review W1 机器人/具身智能特化版
48
+ skill novelty-check ideation - idea 查新(有没有人做过)
49
+ skill research-refine ideation - 粗糙方向打磨成聚焦提案
50
+ skill research-refine-pipeline ideation research-refine,experiment-plan refine+实验计划一条龙
51
+ skill research-wiki ideation - 跨生命周期研究知识库
52
+ skill wiki-enrich ideation research-wiki 补全 wiki 论文页 TODO
53
+ skill research-pipeline ideation idea-discovery,experiment-bridge,auto-review-loop,render-html 端到端总 pipeline:找 idea→实验→论文
54
+ skill research-review review-loop - 研究方案/结果批判性评审
55
+ skill auto-review-loop review-loop result-to-claim,training-check,render-html 外部模型多轮 review→修复循环
56
+ skill auto-review-loop-llm review-loop - 用任意 OpenAI 兼容 API 做 review
57
+ skill auto-review-loop-minimax review-loop - 用 MiniMax API 做 review
58
+ skill kill-argument review-loop render-html 对抗性双线程评审(最强拒稿论证)
59
+ skill formula-derivation theory - 公式推导与理论线组织
60
+ skill proof-writer theory - 撰写严格数学证明
61
+ skill proof-checker theory render-html 证明缺口审查与修复
62
+ skill proof-orchestrator theory - 本地优先的证明编排、人工 GPT Pro 交接与显式 DeepSeek 复审
63
+ skill experiment-plan experiments - claim 驱动的实验路线图
64
+ skill experiment-bridge experiments run-experiment,experiment-queue,monitor-experiment,training-check,ablation-planner W1.5:从实验计划到跑通初步结果
65
+ skill experiment-queue experiments - SSH 批量实验队列(OOM 重试)
66
+ skill run-experiment experiments - 部署运行实验(本地/远程/云 GPU)
67
+ skill monitor-experiment experiments - 监控实验进度收集结果
68
+ skill analyze-results experiments - 结果统计分析与对比表
69
+ skill training-check experiments - 训练健康度检查
70
+ skill system-profile experiments - GPU 环境画像(跨机器复用)
71
+ skill dse-loop experiments - 设计空间探索自动调参循环
72
+ skill qzcli experiments - 启智平台 qzcli 作业管理
73
+ skill vast-gpu experiments - Vast.ai 租卡跑实验
74
+ skill serverless-modal experiments - Modal 无服务器 GPU
75
+ skill experiment-audit experiments - 实验诚实度审计(防假结果)
76
+ skill result-to-claim experiments - 结果能支撑什么 claim 的裁决
77
+ skill ablation-planner experiments - 消融实验规划
78
+ skill paper-writing paper-core paper-plan,paper-write,paper-compile,paper-figure,figure-spec,proof-checker,paper-claim-audit,citation-audit,auto-paper-improvement-loop,integrity-forensics,kill-argument W3:从报告到投稿级 PDF 全流程
79
+ skill paper-plan paper-core - 论文大纲生成
80
+ skill paper-write paper-core - 按大纲逐节写 LaTeX
81
+ skill paper-compile paper-core - LaTeX 编译修错出 PDF
82
+ skill paper-figure paper-core - 从实验结果出论文图表
83
+ skill citation-audit paper-core render-html 引用真实性/正确性核查
84
+ skill paper-claim-audit paper-core render-html 论文数字与原始结果核对
85
+ skill integrity-forensics paper-core - 投稿前诚信取证扫描
86
+ skill auto-paper-improvement-loop paper-core proof-checker,paper-claim-audit,kill-argument 论文 review→润色→重编译循环
87
+ skill writing-systems-papers paper-core - 系统方向论文写作要领
88
+ skill specification-writing paper-core embodiment-description,figure-description 技术规格文档撰写
89
+ skill overleaf-sync paper-core - 本地↔Overleaf 双向同步
90
+ skill render-html paper-core - MD/JSON 工件渲染成 HTML 报告
91
+ skill paper-illustration paper-visuals - AI 生成论文插图(Gemini)
92
+ skill paper-illustration-image2 paper-visuals - AI 插图备选(Codex 原生画图)
93
+ skill figure-spec paper-visuals - 确定性矢量架构/流程图(SVG)
94
+ skill mermaid-diagram paper-visuals - Mermaid 流程/时序/类图
95
+ skill pixel-art paper-visuals - 像素画生成
96
+ skill paper-poster paper-visuals paper-poster-html (已弃用)重定向到 poster-html
97
+ skill paper-poster-html paper-visuals - 学术海报生成(HTML 版)
98
+ skill paper-slides paper-visuals - 会议幻灯(beamer→PDF+PPTX)
99
+ skill paper-talk paper-visuals paper-slides,slides-polish 演讲稿+幻灯一体
100
+ skill slides-polish paper-visuals - 幻灯片打磨
101
+ skill rebuttal submission render-html W4:审稿意见解析与安全回复
102
+ skill resubmit-pipeline submission auto-paper-improvement-loop,proof-checker,paper-claim-audit,citation-audit,kill-argument,paper-compile,integrity-forensics 被拒后重投全流程
103
+ skill grant-proposal submission research-lit,novelty-check,research-review 基金申请书(NSFC/NSF/科研費等)
104
+ skill patent-pipeline patent prior-art-search,patent-novelty-check,invention-structuring,claims-drafting,specification-writing,patent-review,jurisdiction-format 专利撰写全流程
105
+ skill invention-structuring patent - 粗 idea 结构化成发明披露
106
+ skill claims-drafting patent - 撰写权利要求书
107
+ skill embodiment-description patent - 实施例详细描述
108
+ skill figure-description patent - 专利附图说明
109
+ skill jurisdiction-format patent - CN/US/EP 申请格式编译
110
+ skill patent-review patent - 专利申请质量审查
111
+ skill prior-art-search patent - 现有技术检索
112
+ skill patent-novelty-check patent - 专利新颖性核查
113
+ skill meta-optimize meta-utils - skill 语料自优化提案
114
+ skill meta-apply meta-utils meta-optimize 落地已批准的语料补丁
115
+ skill feishu-notify meta-utils - 飞书通知
116
+ skill interview-cheatsheet meta-utils - ML/LLM 面试速查手册生成