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,104 @@
1
+ # Skill Governance: Provenance-as-Authorization
2
+
3
+ When ARIS **auto-writes** a durable artifact — a meta-optimize patch to a SKILL.md,
4
+ an auto-curated research-wiki node, a machine-proposed reviewer prompt — two
5
+ questions must have a recorded, checkable answer *before* that artifact is allowed
6
+ to influence future runs:
7
+
8
+ 1. **Who authored it, and who acquitted it?** (and were they different model families?)
9
+ 2. **Is auto-curation even allowed to touch this file?** (or is it a hand-written
10
+ canonical skill / a user's own note, which automation must never rewrite?)
11
+
12
+ `tools/provenance.py` is the primitive that answers both. This is the
13
+ **provenance-as-authorization boundary**: a provenance record is not just metadata,
14
+ it *is* the authorization to auto-curate.
15
+
16
+ ## The rule
17
+
18
+ - **Auto-curation may ONLY touch artifacts where `is_auto_authored(path)` is True.**
19
+ An auto-authored artifact carries a `.provenance.json` sidecar with
20
+ `created_by == "aris-auto"`. Canonical hand-written skills and user notes have no
21
+ such record — `is_auto_authored` returns False — and are **off-limits** to any
22
+ automated rewrite/delete. (A loop can author new machine artifacts; it must not
23
+ silently edit human ones.)
24
+
25
+ - **A provenance record cannot be same-family.** `stamp()` calls
26
+ `assert_cross_family(author, reviewer)` and **refuses (raises)** if the author and
27
+ the reviewer are the same model family — e.g. `claude`+`sonnet`, or `gpt-5.6-sol`+`codex`,
28
+ or the trap `gpt-5.6-sol`+`oracle-pro` (oracle routes to a GPT-Pro tier, so it is the
29
+ **openai** family, not a separate one). You therefore *cannot produce* a valid
30
+ authorization for a self-acquitted artifact. This is the structural form of the
31
+ cross-model invariant from [`reviewer-independence.md`](reviewer-independence.md)
32
+ and the acceptance boundary from [`acceptance-gate.md`](acceptance-gate.md):
33
+ **a loop can DRIVE, it cannot ACQUIT itself.**
34
+
35
+ - **A deterministic verifier is a valid reviewer.** A reviewer named
36
+ `deterministic:<verifier>` (e.g. `deterministic:evidence_check`,
37
+ `deterministic:pytest`) passes the gate regardless of the author — a process is
38
+ not a model family. This is the same Type-A escape hatch as in
39
+ [`acceptance-gate.md`](acceptance-gate.md): an execution-completeness / mechanical
40
+ check is safe same-model. Use it when the acquittal is a passing test or a
41
+ deterministic pre-check (see [`evidence-precheck.md`](evidence-precheck.md)), not a
42
+ semantic judgement.
43
+
44
+ - **Unknown family fails closed.** If either name maps to no known family,
45
+ `assert_cross_family` raises rather than guessing — you must use a recognized
46
+ reviewer or a deterministic verifier.
47
+
48
+ ## The record
49
+
50
+ `stamp(target, author_model, reviewer_model, verdict_id)` writes:
51
+
52
+ ```json
53
+ {
54
+ "created_by": "aris-auto",
55
+ "author_model": "claude-opus-4-8",
56
+ "author_family": "anthropic",
57
+ "reviewer_model": "gpt-5.6-sol",
58
+ "reviewer_family": "openai",
59
+ "verdict_id": "codex_thread_abc123",
60
+ "content_hash": "<sha256 of the artifact>",
61
+ "stamped_at": "2026-05-30T00:00:00Z"
62
+ }
63
+ ```
64
+
65
+ - `verdict_id` is the **traceable** acquittal — the codex thread id, the oracle
66
+ session id, or for a deterministic reviewer the verifier report path / sha. It is
67
+ required (empty → refused), so every authorization points back to an auditable
68
+ review.
69
+ - `content_hash` is tamper-evidence: if the artifact is later edited by hand, the
70
+ hash no longer matches the record, and a re-stamp (= a fresh cross-model review)
71
+ is required before auto-curation may treat it as machine-owned again.
72
+
73
+ ## How skills use it
74
+
75
+ - **meta-optimize** — when an auto-patch lands (Step 6), `stamp()` the changed
76
+ SKILL.md with `author_model` = the executor that drafted the patch and
77
+ `reviewer_model` = the codex/oracle reviewer that scored it (Step 4). The stamp
78
+ *refusing* is the last line of defense: if the patch was never cross-model
79
+ reviewed, there is no valid `verdict_id`/family pair to stamp, so it cannot be
80
+ recorded as authorized.
81
+ - **research-wiki** — auto-curated nodes (machine-merged, machine-pruned) get a
82
+ provenance stamp; user-written and import-from-paper nodes do not, so a future
83
+ auto-curator can tell which nodes it is allowed to rewrite.
84
+ - **acceptance-gate** — the cross-family assertion here is the *enforcement* of the
85
+ Type-B (quality/correctness) rule: a quality acquittal of an auto-authored
86
+ artifact must be cross-model, and the provenance record is the proof that it was.
87
+
88
+ ## Why (the Hermes contrast)
89
+
90
+ Hermes-agent (NousResearch, MIT) has the *shape* — a `skill_provenance` marker and
91
+ a `created_by` tag — but its cross-model curator is **optional config that defaults
92
+ to the same chat model**, so by default one model writes, judges, and consumes its
93
+ own skills. That is exactly the self-poisoning failure
94
+ [`capture-antipatterns.md`](capture-antipatterns.md) guards against, one level up:
95
+ there it is a *captured claim* that hardens into a self-cited falsehood; here it is
96
+ a *captured skill* that an unreviewed loop grants itself authority to keep. ARIS's
97
+ increment is to make cross-family a **structural assertion on the stamp's content**:
98
+ `assert_cross_family` genuinely raises, so you cannot produce a *valid* same-family stamp
99
+ (not a config flag you can flip). The scope is precise — this governs *what a stamp can
100
+ say*, not *whether a write calls `stamp()` at all*. Whether a corpus mutation is stamped
101
+ is governed by `/meta-apply`'s landing procedure; an edit that skips the stamp leaves no
102
+ provenance — that case is **detectable, not impossible** (a missing / stale-hash stamp is
103
+ what a pre-push integrity check would catch — that verifier is a follow-up, see
104
+ meta-optimize's note).
@@ -0,0 +1,85 @@
1
+ # Taste Calibration Protocol
2
+
3
+ > Subjective quality is gradable **if you write the taste down and anchor the
4
+ > scale**. The model will not invent taste; it will only converge toward the
5
+ > taste you described — so the whole game is (1) a weighted rubric worth
6
+ > converging to, and (2) reference anchors that pin what "good" and "slop"
7
+ > actually look like. (After Karpathy's LOOPS.md VI, "score the subjective".)
8
+
9
+ Use this protocol whenever a skill grades an artifact on axes that are matters
10
+ of judgment — visual design, writing elegance, proposal quality — rather than
11
+ machine-checkable facts. It layers ON TOP of any deterministic gates the skill
12
+ already has (hard caps, measurement gates); it never replaces them.
13
+
14
+ ## 1. Named axes with explicit numeric weights
15
+
16
+ Define 2–7 named axes and give each an explicit weight; weights sum to 1.0.
17
+ Model the table on `research-refine`'s working precedent (its Phase 2 uses
18
+ 15/25/25/15/10/5/5% across seven axes):
19
+
20
+ ```markdown
21
+ | Axis | Weight | What it measures |
22
+ |---------------|:------:|---------------------------------------------------|
23
+ | Design | 0.35 | hierarchy, spacing, restraint, gestalt |
24
+ | Originality | 0.15 | distinct voice vs template sameness |
25
+ | Craft | 0.30 | detail quality: typography, alignment, math, figs |
26
+ | Functionality | 0.20 | does it do its job (readable at distance, ...) |
27
+ ```
28
+
29
+ Score each axis 0–1 (or 1–10 rescaled). Composite = Σ weightᵢ · axisᵢ. A single
30
+ holistic number without named weighted axes is not this protocol.
31
+
32
+ ## 2. Calibrate on reference anchors BEFORE scoring the target
33
+
34
+ The grader first scores **3 known-good and 3 known-bad reference exemplars** on
35
+ the same axes, so the scale is anchored to concrete artifacts instead of the
36
+ grader's free-floating prior.
37
+
38
+ - References are **pre-existing, human-curated files** — the executor never
39
+ selects, generates, or searches for anchors itself (an executor-picked anchor
40
+ set just smuggles the free-floating prior back in). The invoking skill
41
+ supplies the paths — convention: `<skill-dir>/references/good/` and
42
+ `<skill-dir>/references/bad/` (images, PDFs, or text artifacts of the same
43
+ kind as the target). Project-local references may override the skill-local
44
+ set.
45
+ - The grader is TOLD which set is which ("these three are good, these three are
46
+ slop") — calibration is about anchoring the scale, not blind classification.
47
+ - Sanity check: if the calibrated scores don't separate the sets (a "bad"
48
+ exemplar scores at or above a "good" one on the composite), the rubric is
49
+ broken — fix the rubric before trusting any target score.
50
+
51
+ **Graceful degradation:** if no reference sets exist, proceed with the weighted
52
+ rubric alone, but the output MUST carry `calibration: none` so a downstream
53
+ reader never mistakes an unanchored score for an anchored one. Do not fabricate
54
+ or hallucinate reference scores.
55
+
56
+ ## 3. Output contract
57
+
58
+ ```
59
+ COMPOSITE: 0.xx (weighted; also give per-axis scores)
60
+ CALIBRATION: anchored | none
61
+ GAP: <one mandatory paragraph naming WHICH reference exemplar(s) the target
62
+ falls short of or exceeds, on WHICH axes, and why — "0.71 because the
63
+ figure hierarchy matches good/poster_B but the typography is closer to
64
+ bad/poster_A's crowding" — never just a number>
65
+ ```
66
+
67
+ The GAP paragraph is what makes the score actionable: converging toward the
68
+ described taste requires knowing where the artifact sits relative to the
69
+ anchors, not just its scalar.
70
+
71
+ ## 4. Interaction with existing gates and the jury
72
+
73
+ - **Deterministic caps stay hard floors.** A calibrated composite never
74
+ overrides a measurement gate or critical cap (e.g. paper-poster-html's
75
+ "< 2 real figures → ≤ 3"). Compute caps first; the composite lives under
76
+ them.
77
+ - **Calibration ≠ acquittal.** A taste score produced by the executor's own
78
+ model family may DRIVE the fix loop (rank issues, decide what to patch next)
79
+ but can never acquit: wherever a skill's acceptance requires a cross-model
80
+ verdict, that requirement is unchanged. (Per `acceptance-gate.md`'s taxonomy
81
+ a model-assigned score is a semantic judgment — calibration narrows its
82
+ variance; it does not make it machine-checkable.)
83
+ - **Rubric drift is meta-optimize's job.** If users repeatedly override
84
+ calibrated scores, the rubric or the anchors are wrong — that's an event-log
85
+ signal for `/meta-optimize`, not a reason to hand-tweak scores per run.
@@ -0,0 +1,114 @@
1
+ # Venue Checklists for ICLR, NeurIPS, ICML, and IEEE
2
+
3
+ Use this reference near the end of `paper-plan` and during the final checks in `paper-write`.
4
+
5
+ ## When to Read
6
+
7
+ - Read once when setting the target venue.
8
+ - Read again before locking the outline.
9
+ - Read again during final submission-readiness checks.
10
+
11
+ ## Universal Requirements
12
+
13
+ Across these venues, the following are usually expected:
14
+
15
+ - anonymous submission unless preparing a camera-ready version,
16
+ - references and appendices outside the main page budget,
17
+ - enough experimental detail for reproduction,
18
+ - honest limitations and scope boundaries,
19
+ - clear mapping from claims to evidence.
20
+
21
+ ## NeurIPS
22
+
23
+ Planning implications:
24
+
25
+ - The paper checklist is mandatory.
26
+ - Claims in the Abstract and Introduction must align with the actual evidence.
27
+ - The paper should discuss limitations honestly.
28
+ - Reproducibility details, hyperparameters, data access, and compute usage should be documented.
29
+ - Statistical reporting should specify error bars, number of runs, and how uncertainty is computed.
30
+
31
+ Final-check implications:
32
+
33
+ - Confirm the paper checklist is complete.
34
+ - Ensure limitations, reproducibility details, and compute reporting exist somewhere appropriate.
35
+ - Verify theory papers include assumptions and full proofs in the main paper or appendix.
36
+
37
+ ## ICML
38
+
39
+ Planning implications:
40
+
41
+ - The paper must budget space for an ICML-style Broader Impact statement.
42
+ - Reproducibility expectations are strong: data splits, hyperparameters, search ranges, and compute should be documented.
43
+ - Statistical reporting should state whether uncertainty uses standard deviation, standard error, or confidence intervals.
44
+
45
+ Final-check implications:
46
+
47
+ - Ensure the Broader Impact statement is present in the expected location.
48
+ - Confirm anonymization is strict: no author names, acknowledgments, grant IDs, or self-identifying repository links.
49
+ - Verify experimental details are detailed enough for replication.
50
+
51
+ ## ICLR
52
+
53
+ Planning implications:
54
+
55
+ - Reproducibility and ethics statements are often recommended even if not always mandatory.
56
+ - If LLMs materially contributed to ideation or writing to the point of authorship-like contribution, plan a disclosure section or appendix note.
57
+ - Keep the story front-loaded because ICLR reviewers often judge quickly from the early pages.
58
+
59
+ Final-check implications:
60
+
61
+ - Decide whether LLM disclosure is required for this project.
62
+ - Confirm the paper includes enough reproducibility guidance, code/data availability information, and limitations discussion.
63
+ - Check that the contribution is already clear by the end of the Introduction.
64
+
65
+ ## IEEE Journal (Transactions / Letters)
66
+
67
+ Planning implications:
68
+
69
+ - IEEE journals are typically **not anonymous** — include full author names, affiliations, and IEEE membership status from submission.
70
+ - Use `\documentclass[journal]{IEEEtran}` with `\cite{}` (numeric citations via `cite` package). Do NOT use `natbib`.
71
+ - References **count toward the page limit**. IEEE Transactions typically allow 12-14 pages total; IEEE Letters (e.g., WCL, CL, SPL) typically allow 4-5 pages total. Check the specific journal's author guidelines.
72
+ - Include an `\begin{IEEEkeywords}` block immediately after the abstract.
73
+ - The bibliography style must be `IEEEtran.bst` (produces numeric `[1]` style citations).
74
+ - IEEE journals may require a biosketch (`\begin{IEEEbiography}`) for each author in the camera-ready version.
75
+ - Some IEEE journals require a cover letter addressing how the paper differs from conference versions (if applicable).
76
+
77
+ Final-check implications:
78
+
79
+ - Confirm author names and IEEE membership grades are correct (Member, Senior Member, Fellow).
80
+ - Verify the total page count including references is within the journal's limit.
81
+ - Check that all figures meet IEEE quality requirements: 300 dpi minimum, proper axis labels, readable when printed in grayscale.
82
+ - Ensure the paper uses two-column IEEE format throughout (the `[journal]` option handles this).
83
+ - Verify no `\citep` or `\citet` commands are present — IEEE uses `\cite{}` only.
84
+ - Check that `\bibliographystyle{IEEEtran}` is used.
85
+
86
+ ## IEEE Conference (ICC, GLOBECOM, INFOCOM, ICASSP, etc.)
87
+
88
+ Planning implications:
89
+
90
+ - Most IEEE conferences are **not anonymous** (except some like IEEE S&P). Include full author information.
91
+ - Use `\documentclass[conference]{IEEEtran}` with `\cite{}` (numeric citations).
92
+ - References **count toward the page limit**. Typical limit: 5-6 pages (e.g., ICC, GLOBECOM), some allow up to 8 pages (e.g., INFOCOM). Extra pages may incur additional charges.
93
+ - Include `\begin{IEEEkeywords}` after the abstract.
94
+ - Conference papers do NOT include author biographies.
95
+ - Some IEEE conferences accept 2-page extended abstracts — confirm the paper category before planning.
96
+
97
+ Final-check implications:
98
+
99
+ - Verify total page count including references fits within the conference limit.
100
+ - Check that figures are readable at the two-column conference format size.
101
+ - Ensure `\bibliographystyle{IEEEtran}` is used.
102
+ - Verify no `\citep` or `\citet` commands are present.
103
+ - Confirm the correct `\documentclass` option (`[conference]`, not `[journal]`).
104
+ - Some conferences require IEEE copyright notice — check submission portal for specific requirements.
105
+
106
+ ## Minimal Submission Checklist
107
+
108
+ Before submission, verify:
109
+
110
+ - the venue-specific required sections are present,
111
+ - the page budget is satisfied for the main body,
112
+ - the contribution bullets do not overclaim,
113
+ - citations, figures, tables, and references are internally consistent,
114
+ - the PDF is anonymized and ready for reviewer consumption.
@@ -0,0 +1,134 @@
1
+ # Wiki helper resolution chain
2
+
3
+ Canonical resolution chain for the research-wiki helper. Used by every
4
+ SKILL that touches the wiki — never hard-code `python3 tools/research_wiki.py`,
5
+ because that silently fails when `<project>/tools/` is not on disk
6
+ (the post-`install_aris.sh` default), exactly the failure mode that
7
+ left a real user's `research-wiki/` empty for a week.
8
+
9
+ ## The chain
10
+
11
+ ```bash
12
+ cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
13
+ ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}"
14
+ # Layer 4: global pointer file written by the installer/updater at
15
+ # ~/.aris/repo (#366) — covers global copy-installs with no project manifest.
16
+ if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
17
+ ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
18
+ fi
19
+ WIKI_SCRIPT=".aris/tools/research_wiki.py"
20
+ [ -f "$WIKI_SCRIPT" ] || WIKI_SCRIPT="tools/research_wiki.py"
21
+ [ -f "$WIKI_SCRIPT" ] || { [ -n "${ARIS_REPO:-}" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"; }
22
+ ```
23
+
24
+ After the chain runs, exactly one of two outcomes:
25
+
26
+ - `[ -f "$WIKI_SCRIPT" ]` → helper located, use as `python3 "$WIKI_SCRIPT" <subcommand>`
27
+ - `[ ! -f "$WIKI_SCRIPT" ]` → helper missing; pick a variant below
28
+
29
+ ## Variant A — hard-fail (for `/research-wiki` itself)
30
+
31
+ The skill **is** the wiki tool. If the helper is missing, fail loudly.
32
+
33
+ ```bash
34
+ [ -f "$WIKI_SCRIPT" ] || {
35
+ echo "ERROR: research_wiki.py not found at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
36
+ echo " Fix one of:" >&2
37
+ echo " 1. rerun 'bash tools/install_aris.sh' from the ARIS repo (creates .aris/tools symlink, refreshes ~/.aris/repo)" >&2
38
+ echo " 2. rerun 'bash tools/smart_update.sh' (refreshes ~/.aris/repo)" >&2
39
+ echo " 3. export ARIS_REPO=<path-to-ARIS-repo>" >&2
40
+ echo " 4. cp <ARIS-repo>/tools/research_wiki.py tools/" >&2
41
+ exit 1
42
+ }
43
+ ```
44
+
45
+ ## Variant B — warn + skip (for caller skills)
46
+
47
+ Used by `/idea-creator`, `/result-to-claim`, `/research-lit`, `/arxiv`,
48
+ `/alphaxiv`, `/deepxiv`, `/exa-search`, `/semantic-scholar`. The
49
+ skill's primary output (idea ranking, claim verdict, paper summary)
50
+ must still be delivered to the user; only the wiki side-effect is
51
+ skipped.
52
+
53
+ ```bash
54
+ [ -f "$WIKI_SCRIPT" ] || {
55
+ echo "WARN: research_wiki.py not found at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
56
+ echo " Primary output will still be produced; wiki update is skipped." >&2
57
+ echo " Fix: rerun 'bash tools/install_aris.sh' or 'smart_update.sh' (refreshes ~/.aris/repo), export ARIS_REPO, or 'cp <ARIS-repo>/tools/research_wiki.py tools/'." >&2
58
+ WIKI_SCRIPT=""
59
+ }
60
+ ```
61
+
62
+ After Variant B, every helper invocation must be guarded:
63
+
64
+ ```bash
65
+ [ -n "$WIKI_SCRIPT" ] && python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ --arxiv-id "$id"
66
+ ```
67
+
68
+ ## Why four locations and not one
69
+
70
+ Four locations correspond to four legitimate install / dev paths:
71
+
72
+ | Location | When applicable |
73
+ |---|---|
74
+ | `.aris/tools/research_wiki.py` | After running `bash tools/install_aris.sh` in the user project (Phase 0 symlink, added in #174 / #192) |
75
+ | `tools/research_wiki.py` | (a) Manual copy of the helper into the user project (a documented temporary workaround); (b) running a SKILL from inside the ARIS repo itself |
76
+ | `$ARIS_REPO/tools/research_wiki.py` | Env var explicitly set, or auto-resolved from `.aris/installed-skills.txt`'s `repo_root` field |
77
+ | `$ARIS_REPO/tools/research_wiki.py` via `~/.aris/repo` | Global pointer file written by `install_aris*.{sh,ps1}` / `smart_update*.{sh,ps1}` (#366); the only layer that resolves for a **global copy-install** (`~/.claude/skills/research-wiki`) where none of the first three apply — there is no project-local `.aris/`, no `tools/` copy, and no manifest to read `ARIS_REPO` from |
78
+
79
+ Order matters: the symlinked install is preferred because the symlink
80
+ auto-tracks upstream tool fixes; the manual copy is second because it
81
+ catches users who haven't run `install_aris.sh`; the manifest-derived
82
+ env var is next because a project-local manifest is more precise than
83
+ a global pointer; the global pointer file is last because it is
84
+ per-user rather than per-project and only fires when the first three
85
+ all miss.
86
+
87
+ ## What NOT to add
88
+
89
+ - ❌ A layer that searches up the directory tree for `tools/` — too
90
+ much path magic, surprising failure modes.
91
+ - ❌ A layer at `/usr/local/share/...` or another OS-specific system
92
+ path — `~/.aris/repo` already covers the global-install gap with a
93
+ single per-user file, no OS branching needed.
94
+ - ❌ Adding `~/.codex/skills/research-wiki/research_wiki.py` — that's
95
+ Codex-side global install, lives in the **Codex** mirror's chain
96
+ (`skills/skills-codex/...`), not the CC chain.
97
+
98
+ `~/.aris/repo` (layer 4, #366) is the one exception to the earlier
99
+ "no 4th layer" stance in this doc's history: it exists because the
100
+ installer/updater now writes it, giving the previously-missing
101
+ precedent. If a 5th layer is ever proposed, it should still meet the
102
+ same bar — a concrete writer, not just a hopeful lookup — rather than
103
+ an implicit env var or path-walk.
104
+
105
+ ## ⚠️ Do not wrap the chain in `set -e` / `set -eu`
106
+
107
+ The `${ARIS_REPO:-$(awk ...)}` substitution propagates the inner
108
+ `awk` exit code to `set -e` even when stderr is suppressed with
109
+ `2>/dev/null`. `awk` returns non-zero (2 on most macOS systems) when
110
+ its input file does not exist — which is the common case (no
111
+ `.aris/installed-skills.txt` yet). With `set -e` enabled, the chain
112
+ will exit silently with code 2 before reaching the `[ -f ... ]`
113
+ checks, masking the real failure mode and breaking the manual-copy
114
+ fallback.
115
+
116
+ If a SKILL author wants strict-mode safety, restructure the manifest
117
+ read instead:
118
+
119
+ ```bash
120
+ if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
121
+ ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
122
+ fi
123
+ ```
124
+
125
+ But the simpler answer is: don't enable strict mode for the resolver
126
+ preamble. SKILL bash blocks do not run with `set -e` by default and
127
+ the rest of the helper invocations all use explicit `[ -n "$WIKI_SCRIPT" ] && ...`
128
+ guards anyway.
129
+
130
+ ## See also
131
+
132
+ - [`integration-contract.md`](integration-contract.md) §2 — canonical-helper invariant
133
+ - `skills/research-wiki/SKILL.md` — the wiki tool itself; uses Variant A
134
+ - PR #193 — the parallel fix for `experiment-queue` helpers (same pattern, different helper)