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,372 @@
1
+ # Integration Contract
2
+
3
+ When one ARIS skill delegates work to another (or to persistent project
4
+ state), the coupling must be **engineered**, not assumed. This document
5
+ formalizes what every cross-skill integration inside ARIS must provide.
6
+
7
+ Rule of thumb: **SKILL.md prose can *describe* an integration; it cannot
8
+ *guarantee* one.** Any integration whose silent failure would damage the
9
+ research result needs the components below. Prose-only "MUST invoke X"
10
+ has repeatedly failed in practice — the executor skips under context
11
+ pressure and the caller has no way to detect it.
12
+
13
+ ## Known failure mode (why this contract exists)
14
+
15
+ Two bugs in the same week, same pathology:
16
+
17
+ 1. **Assurance gate bypass (2026-04-21).** `/paper-writing` ran at
18
+ `— effort: beast` silently skipped `/proof-checker`,
19
+ `/paper-claim-audit`, and `/citation-audit` because each phase's
20
+ content detector could return negative and the outer prose said
21
+ "audit is optional."
22
+ 2. **Research wiki ingest no-op (2026-04-21).** `/research-wiki init`
23
+ created `research-wiki/papers/` but no paper ever landed there:
24
+ `/arxiv`, `/alphaxiv`, `/deepxiv`, `/semantic-scholar`, `/exa-search`,
25
+ raw `Read`/`WebFetch` — none carried a wiki-ingest hook, and the two
26
+ that did (`/research-lit`, `/idea-creator`) only had soft prose
27
+ ("optional and automatic").
28
+
29
+ Both bugs ship through the same gap: **one skill "called" another via
30
+ prose without a canonical helper, a concrete artifact, or a verifier**.
31
+
32
+ ## Required components
33
+
34
+ Every integration between two ARIS skills (or between a skill and a
35
+ persistent project artifact) must provide all six:
36
+
37
+ ### 1. Activation predicate — single, explicit, observable
38
+
39
+ A one-line test that says "does this integration fire in this context?"
40
+ Must be observable from outside the LLM (a file exists, an argument is
41
+ set, an environment variable is present). Not a vibe, not "probably
42
+ relevant."
43
+
44
+ - ✅ `if [ -d research-wiki/ ]`
45
+ - ✅ `if assurance == "submission"`
46
+ - ❌ "if the user seems to want this"
47
+
48
+ ### 2. Canonical helper — one implementation, not copy-pasted
49
+
50
+ The business logic lives in **exactly one place** — a script under
51
+ `tools/` (canonical name, no path prefix), or a single subcommand
52
+ of an existing helper. Every caller invokes the same entrypoint,
53
+ but every caller must also resolve **where** that entrypoint lives.
54
+ On the Codex side the helper may be at:
55
+
56
+ - `$ARIS_REPO/tools/<helper>` — env var or auto-resolved from `.aris/installed-skills-codex.txt`
57
+ - `<project>/tools/<helper>` — manual copy or running from inside the ARIS repo
58
+ - `~/.codex/skills/<skill-name>/<helper>` — Codex global install layout
59
+
60
+ Every caller — including those primarily exercised from inside the
61
+ ARIS repo — MUST use the resolution chain. The chain's middle layer
62
+ (`tools/<helper>`) covers the in-repo case at the same code path,
63
+ with no special-casing needed. The exception that used to live here
64
+ ("helpers run from inside ARIS repo may stay plain `tools/...`")
65
+ caused user-visible bugs when a SKILL ran from a downstream paper
66
+ project and could not find the helper.
67
+
68
+ #### Resolver block (lookup only — failure policy is separate)
69
+
70
+ ```bash
71
+ # Canonical strict-safe variant: works whether or not the caller has
72
+ # `set -e` or `set -u` enabled. The manifest read only runs when the
73
+ # file exists, `|| true` consumes a non-zero awk exit so chain
74
+ # evaluation continues, and `${ARIS_REPO:-}` defaults to empty under
75
+ # `set -u`.
76
+ if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills-codex.txt ]; then
77
+ ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills-codex.txt 2>/dev/null) || true
78
+ fi
79
+ HELPER=""
80
+ [ -n "${ARIS_REPO:-}" ] && [ -f "$ARIS_REPO/tools/<helper>" ] && HELPER="$ARIS_REPO/tools/<helper>"
81
+ [ -z "$HELPER" ] && [ -f tools/<helper> ] && HELPER="tools/<helper>"
82
+ [ -z "$HELPER" ] && [ -f ~/.codex/skills/<skill-name>/<helper> ] && HELPER="$HOME/.codex/skills/<skill-name>/<helper>"
83
+ ```
84
+
85
+ After the resolver runs, `$HELPER` is either the resolved path, or
86
+ the empty string. Use a semantic variable name in real callers
87
+ (`AUDIT_VERIFIER`, `TRACE_HELPER`, `WIKI_SCRIPT`, `IMAGE2_HELPER`, …)
88
+ so a single SKILL that resolves multiple helpers does not clobber
89
+ one with another.
90
+
91
+ #### Failure policy (chosen per integration)
92
+
93
+ The resolver does **not** decide what happens when the helper is
94
+ missing. Each calling SKILL must pick exactly one policy:
95
+
96
+ **A. Load-bearing gate — unresolved helper must block.** Use for
97
+ verifiers whose exit code gates submission readiness (e.g.
98
+ `verify_paper_audits.sh` under `assurance: submission`).
99
+
100
+ ```bash
101
+ [ -n "$AUDIT_VERIFIER" ] || {
102
+ echo "ERROR: verify_paper_audits.sh not resolved; assurance=submission cannot proceed." >&2
103
+ exit 1
104
+ }
105
+ ```
106
+
107
+ **B. Optional side-effect — unresolved helper warns and skips.** Use
108
+ when the primary output is still delivered without the helper (e.g.
109
+ `research_wiki.py ingest_paper`).
110
+
111
+ ```bash
112
+ [ -n "$WIKI_SCRIPT" ] || {
113
+ echo "WARN: research_wiki.py not resolved; primary output unaffected, wiki side-effect skipped." >&2
114
+ }
115
+ [ -n "$WIKI_SCRIPT" ] && python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ --arxiv-id "$id"
116
+ ```
117
+
118
+ **C. Forensic helper — unresolved means write artifacts directly.**
119
+ Use when the helper produces a record the SKILL is contractually
120
+ required to leave behind (e.g. `save_trace.sh`).
121
+
122
+ ```bash
123
+ if [ -n "$TRACE_HELPER" ]; then
124
+ bash "$TRACE_HELPER" ...
125
+ else
126
+ # Required fallback: write trace artifacts directly per
127
+ # review-tracing.md schema. Do NOT silently skip unless
128
+ # `--- trace: off` was explicitly requested.
129
+ ...
130
+ fi
131
+ ```
132
+
133
+ **D1. Primary helper with first-success cascade — try N sources in
134
+ priority order, accept first success.** Use when the SKILL needs
135
+ one paper-discovery source and falls back across alternatives.
136
+
137
+ POSIX-sh safe (`${VAR:-}` defaults plus explicit `source_used=""`):
138
+
139
+ ```bash
140
+ source_used=""
141
+ if [ -n "${S2_FETCHER:-}" ]; then
142
+ if python3 "$S2_FETCHER" --query "$Q" > results.jsonl; then
143
+ source_used="semantic_scholar"
144
+ else
145
+ echo "WARN: semantic_scholar_fetch.py invocation failed; trying arxiv." >&2
146
+ S2_FETCHER="" # force cascade
147
+ fi
148
+ fi
149
+ if [ -z "$source_used" ] && [ -n "${ARXIV_FETCHER:-}" ]; then
150
+ echo "WARN: semantic_scholar_fetch.py not resolved or failed; falling back to arxiv_fetch.py." >&2
151
+ if python3 "$ARXIV_FETCHER" --query "$Q" > results.jsonl; then
152
+ source_used="arxiv_fallback"
153
+ fi
154
+ fi
155
+ if [ -z "$source_used" ]; then
156
+ echo "ERROR: no fetcher resolved or succeeded; cannot retrieve papers." >&2
157
+ exit 1
158
+ fi
159
+ ```
160
+
161
+ The `if helper-invocation; then ... else ...` wrapper consumes
162
+ non-zero exits so the cascade actually fires under `set -e`.
163
+
164
+ **D2. Multi-source aggregate — invoke every resolved source,
165
+ aggregate results.** Use when the SKILL ranks or dedupes across
166
+ all available sources. Each source's success/failure is recorded;
167
+ the SKILL proceeds with a (possibly partial) aggregate if at least
168
+ one source contributed.
169
+
170
+ POSIX-sh safe (delimited-string accumulator, no bash arrays):
171
+
172
+ ```bash
173
+ sources_used=""
174
+ sources_count=0
175
+ append_source() {
176
+ sources_used="${sources_used:+$sources_used,}$1"
177
+ sources_count=$((sources_count + 1))
178
+ }
179
+
180
+ if [ -n "${S2_FETCHER:-}" ]; then
181
+ if python3 "$S2_FETCHER" --query "$Q" >> results.jsonl 2>>fetch.log; then
182
+ append_source "semantic_scholar"
183
+ fi
184
+ fi
185
+ if [ -n "${ARXIV_FETCHER:-}" ]; then
186
+ if python3 "$ARXIV_FETCHER" --query "$Q" >> results.jsonl 2>>fetch.log; then
187
+ append_source "arxiv"
188
+ fi
189
+ fi
190
+ # ... repeat for openalex, exa, deepxiv ...
191
+ if [ "$sources_count" -eq 0 ]; then
192
+ echo "ERROR: no fetcher resolved or succeeded; aggregate empty." >&2
193
+ exit 1
194
+ fi
195
+ ```
196
+
197
+ **E. Diagnostic / report helper — non-zero exit is captured, not propagated.**
198
+ Use when the helper's role is to surface drift to humans rather
199
+ than gate workflow correctness (e.g. `verify_wiki_coverage.sh`
200
+ exits 1 when wiki coverage has gaps, but coverage is not
201
+ load-bearing on any research outcome).
202
+
203
+ ```bash
204
+ if [ -n "$WIKI_COVERAGE_DIAG" ]; then
205
+ # Wrap in if/then/else so `set -e` does not exit the SKILL when
206
+ # the helper exits non-zero to report gaps.
207
+ if bash "$WIKI_COVERAGE_DIAG" research-wiki/ > coverage_report.txt; then
208
+ diag_exit=0
209
+ else
210
+ diag_exit=$?
211
+ fi
212
+ echo "Coverage diagnostic written to coverage_report.txt (exit=$diag_exit)" >&2
213
+ # Do NOT propagate $diag_exit; this is a report, not a gate.
214
+ else
215
+ echo "WARN: verify_wiki_coverage.sh not resolved; coverage diagnostic skipped (non-load-bearing)." >&2
216
+ fi
217
+ ```
218
+
219
+ #### Per-helper policy assignments
220
+
221
+ Every helper invoked from any SKILL.md (single-skill or shared
222
+ across skills) is classified below so that downstream SKILLs do
223
+ not have to guess. Pure developer utilities that are never invoked
224
+ from a SKILL.md — installers (`install_aris.sh`,
225
+ `install_aris_codex.sh`), update scripts (`smart_update.sh`,
226
+ `smart_update_codex.sh`), manual setup (`overleaf_setup.sh`),
227
+ generators (`convert_skills_to_llm_chat.py`,
228
+ `generate_codex_claude_review_overrides.py`), the `meta_opt/` hook
229
+ scripts, and `watchdog.py` — are out of scope. Extend the
230
+ taxonomy here first if a future helper does not fit.
231
+
232
+ | Helper (canonical name) | Policy | Rationale |
233
+ |---|---|---|
234
+ | `verify_paper_audits.sh` | A (gate) | Exit code is the source of truth for submission readiness |
235
+ | `forensics_gate.py` (in `/integrity-forensics`, `/paper-writing` Phase 5.9/6.0, `/resubmit-pipeline`) | A (gate) | Typed policy gate + append-only obligations ledger for the Anti-Autoresearch launcher (deterministic slice in Codex-native sessions); when forensics is in play an unresolved helper blocks the Final Report / Overleaf push (never improvise the gate). `fresh` is the one-command downstream preflight; exit code is the source of truth |
236
+ | `save_trace.sh` | C (forensic) | Trace artifacts are load-bearing for audit traceability |
237
+ | `research_wiki.py ingest_paper` (caller skills) | B (side-effect) | Primary output (idea/paper summary) is delivered without wiki ingestion |
238
+ | `research_wiki.py` (in `/research-wiki` itself) | A (gate) | The SKILL is the wiki tool; missing helper means no functionality |
239
+ | `verify_wiki_coverage.sh` | E (diagnostic) | Reports coverage gaps; not load-bearing |
240
+ | `verify_papers.py` | D1 (cascade) | Filters candidate papers; when unresolved **or** invocation fails, callers emit a degraded `verified_papers.json` tagging every candidate `status=unverified, method=none` with explicit WARN |
241
+ | `arxiv_fetch.py`, `semantic_scholar_fetch.py`, `deepxiv_fetch.py`, `exa_search.py`, `openalex_fetch.py` | D2 (multi-source aggregate) when SKILL queries multiple sources; D1 (cascade) when a single source suffices | Each fetcher is one paper-discovery source; SKILLs aggregate or cascade across resolved sources |
242
+ | `extract_paper_style.py` | A when activation predicate `literal "— style-ref:" or equivalent in $ARGUMENTS` is true; not invoked otherwise | If the user asked for style transfer, missing helper means SKILL cannot satisfy the request |
243
+ | `paper_illustration_image2.py` (`preflight`, `finalize`, `verify`) | A (skill-local gate) | Image2 finalization cannot complete without these checks; verify exits 1 on missing artifacts and that is a skill-local gate (a parent paper-writing workflow may still continue with an alternate illustration path). **Phase 3.2 move**: canonical location is `skills/paper-illustration-image2/scripts/paper_illustration_image2.py`; `tools/paper_illustration_image2.py` retained as `os.execv` shim for legacy resolver layers. |
244
+ | `figure_renderer.py` | A (skill-local gate, single-skill) | `figure-spec` cannot produce vector SVG output without the renderer. **Phase 3.1 move**: canonical location is `skills/figure-spec/scripts/figure_renderer.py`; `tools/figure_renderer.py` retained as `os.execv` shim for legacy resolver layers. |
245
+ | `experiment_queue/queue_manager.py`, `experiment_queue/build_manifest.py` | A (skill-local gate, single-skill) | `/experiment-queue` cannot operate without these. **Phase 3.3 move**: canonical location is `skills/experiment-queue/scripts/{queue_manager.py, build_manifest.py}`; both `tools/experiment_queue/*.py` retained as `os.execv` shims for legacy resolver layers. |
246
+ | `overleaf_audit.sh` | E (diagnostic) | Reports overleaf sync drift; surfaces gaps but does not gate the parent workflow |
247
+
248
+ #### Layer 0 — self-contained owner SKILL (Arch C, Phase 3+)
249
+
250
+ Single-owner helpers progressively migrate into the owning SKILL's
251
+ `scripts/` subdirectory. When an owner SKILL invokes its own helper
252
+ it tries the self-contained location FIRST, then falls through to
253
+ the canonical chain so legacy users continue to work. Phase 3.1
254
+ moved `figure_renderer.py` (canonical at
255
+ `skills/figure-spec/scripts/figure_renderer.py`); the legacy entry
256
+ at `tools/figure_renderer.py` is now an `os.execv` shim that
257
+ forwards to the canonical file. Only owner SKILLs use layer 0;
258
+ shared helpers (`research_wiki.py`, `save_trace.sh`, …) stay on
259
+ the standard chain.
260
+
261
+ #### Examples
262
+
263
+ - ✅ Resolved-via-chain invocation: `python3 "$WIKI_SCRIPT" ingest_paper <root> --arxiv-id <id>` (where `$WIKI_SCRIPT` was set by the chain above with `<helper>=research_wiki.py`)
264
+ - ✅ Resolver block + policy A above for `verify_paper_audits.sh` (submission-gate verifier)
265
+ - ❌ Hard-coded `python3 tools/research_wiki.py …` from a downstream skill that may run in a project without `tools/` on disk — it silently exits 2 and the caller proceeds with no side effect.
266
+ - ❌ N skills each paraphrasing the same 10-line bash snippet. When one drifts, they all drift.
267
+
268
+ If the same 3+ lines of prose appear in more than two SKILL.md files,
269
+ factor them into a helper.
270
+
271
+ ### 3. Concrete artifact or log entry
272
+
273
+ Successful execution must leave an observable side effect: a file, a
274
+ JSON record, a log line. The artifact is the receipt — something a
275
+ third party (verifier, code reviewer, human auditor) can inspect to
276
+ answer "did this integration run?"
277
+
278
+ - ✅ `paper/PROOF_AUDIT.json` with the 6-state verdict schema
279
+ - ✅ `research-wiki/papers/<slug>.md` + `research-wiki/log.md` append
280
+ - ❌ "the model said it ran"
281
+
282
+ ### 4. Visible checklist — for long workflows
283
+
284
+ If the integration fires inside a multi-step workflow (paper-writing
285
+ Phase 6, idea-discovery Phase 7, etc.), render a **visible checkbox
286
+ block** at the start of the phase so the executor has to confront each
287
+ row before claiming done. Prose-only "MUST" inside a long SKILL.md is
288
+ the first thing to get skipped.
289
+
290
+ ```
291
+ 📋 Submission audits required before Final Report:
292
+ [ ] 1. /proof-checker → paper/PROOF_AUDIT.json
293
+ [ ] 2. /paper-claim-audit → paper/PAPER_CLAIM_AUDIT.json
294
+ [ ] 3. /citation-audit → paper/CITATION_AUDIT.json
295
+ [ ] 4. Resolve $AUDIT_VERIFIER via §2 (canonical name verify_paper_audits.sh)
296
+ then: bash "$AUDIT_VERIFIER" paper/ --assurance submission
297
+ [ ] 5. Block Final Report iff verifier exit code != 0
298
+ ```
299
+
300
+ Cheap, and empirically resists lazy skipping. Skip only for single-step
301
+ invocations (one-off skills like `/arxiv 2501.12345`).
302
+
303
+ ### 5. Backfill / repair command — explicit manual fallback
304
+
305
+ An escape hatch for when the integration didn't fire. Users must be
306
+ able to run a command that **declares** the missed inputs and ingests
307
+ them retroactively. Prefer explicit arguments over trace-scanning — the
308
+ helper should not have to guess what to backfill.
309
+
310
+ - ✅ `/research-wiki sync --arxiv-ids 2501.12345,1706.03762`
311
+ - ✅ `/research-wiki sync --from-file ids.txt`
312
+ - ⚠️ `/research-wiki sync` that scans `.aris/traces/` for arxiv IDs —
313
+ only as a best-effort secondary mode, not the primary UX, and
314
+ clearly labeled as heuristic.
315
+
316
+ ### 6. Verifier or diagnostic (only when load-bearing)
317
+
318
+ If silent failure of this integration would damage the research result
319
+ (wrong numbers shipped to a conference, claims unsupported by
320
+ evidence, citations in wrong context), a verifier script must exist
321
+ whose exit code is the source of truth for downstream gates.
322
+
323
+ - ✅ `verify_paper_audits.sh` — exit 1 blocks Final Report (resolved per §2)
324
+ - ✅ `verify_wiki_coverage.sh` — diagnostic only, reports gaps but
325
+ does not block (coverage is not load-bearing on any research
326
+ outcome; resolved per §2)
327
+
328
+ Verifiers must be **external processes** (not LLM self-report), must
329
+ validate **concrete artifacts** (§3) against a schema, and must emit a
330
+ structured report callers can parse.
331
+
332
+ A diagnostic-only verifier (no exit-1 blocking) is still valuable — it
333
+ surfaces drift to humans. But do not market a diagnostic as a gate.
334
+
335
+ ## Anti-patterns to refuse in review
336
+
337
+ When reviewing a new integration proposal, reject any of:
338
+
339
+ - **"Optional and automatic"** — contradicts itself; if it's automatic,
340
+ it's not optional. Pick one and mean it.
341
+ - **"The skill will intelligently decide"** — indecision surface, not
342
+ a predicate (§1).
343
+ - **"Copy the following 10 lines into each caller"** — missing helper
344
+ (§2); will drift within a month.
345
+ - **"The reviewer can see from the logs that..."** — if the evidence is
346
+ unstructured logs, write a schema and make it an artifact (§3).
347
+ - **"Users should remember to..."** — missing backfill (§5); humans
348
+ don't reliably remember.
349
+ - **"Trust the LLM to self-report completion"** — missing verifier (§6)
350
+ when the failure is load-bearing.
351
+
352
+ ## Known ARIS integrations under this contract
353
+
354
+ Helper names in the table below are **canonical names**; callers
355
+ resolve actual paths via §2.
356
+
357
+ | Integration | Predicate | Helper | Artifact | Checklist | Backfill | Verifier |
358
+ |---|---|---|---|---|---|---|
359
+ | Submission audits (`max`/`beast`) | `paper/.aris/assurance.txt = submission` | `verify_paper_audits.sh` + 3 audit skills emit JSON | `paper/PROOF_AUDIT.json`, `PAPER_CLAIM_AUDIT.json`, `CITATION_AUDIT.json` + `paper/.aris/audit-verifier-report.json` | Phase 6.0 pre-flight checklist | Rerun the failed audit | `verify_paper_audits.sh` (exit 1 blocks) |
360
+ | Research wiki ingest | `research-wiki/` exists | `research_wiki.py ingest_paper` | `research-wiki/papers/<slug>.md` + `log.md` entry | Step in each paper-reading skill | `research_wiki.py sync --arxiv-ids …` | `verify_wiki_coverage.sh` (diagnostic) |
361
+
362
+ When adding a new cross-skill integration, add a row to the table above
363
+ and confirm all six columns are populated.
364
+
365
+ ## See Also
366
+
367
+ - `shared-references/assurance-contract.md` — implementation of the
368
+ paper-writing submission gate under this contract
369
+ - `shared-references/reviewer-independence.md` — the adjacent contract
370
+ for cross-model review (executor never filters reviewer inputs)
371
+ - `tools/verify_paper_audits.sh`, `tools/research_wiki.py ingest_paper`,
372
+ `tools/verify_wiki_coverage.sh` — current canonical helpers
@@ -0,0 +1,98 @@
1
+ # Output Composition Protocol
2
+
3
+ > **Codex mirror adaptation (normative).** The `— composed:` and `— standalone`
4
+ > interface is unchanged. Codex subagents return their unique content to the
5
+ > parent; only the parent writes shared deliverables. Resolve trace helpers via
6
+ > the Codex manifest and `$ARIS_REPO/tools/`.
7
+
8
+ When a skill runs **inside an orchestrating pipeline** (e.g. `/idea-discovery`,
9
+ `/research-pipeline`, `/grant-proposal`, `/kill-argument`), its intermediate
10
+ findings should fold into the pipeline's single canonical deliverable instead of
11
+ each sub-skill scattering its own overlapping `.md` files. When the same skill
12
+ runs **on its own**, it writes its files exactly as documented — unchanged.
13
+
14
+ This protocol defines the two states, the explicit signal that switches between
15
+ them, and the **enforced default**: with no signal, behave standalone.
16
+
17
+ > Past idea-discovery runs scattered `LIT_LANDSCAPE.md` + `RESEARCH_REVIEW.md` +
18
+ > `MANIFEST.md` + multiple pilot logs whose content was *also* summarized inside
19
+ > `IDEA_REPORT.md` — pure duplication. This contract is the fix, lifted out of the
20
+ > individual skills so the ~20 skills that compose these don't each carry (and
21
+ > drift) their own copy.
22
+
23
+ ## The two states
24
+
25
+ - **Standalone (DEFAULT).** The skill writes its own output files exactly as its
26
+ SKILL.md documents. This is the behavior whenever no composed-mode signal is
27
+ present — see the fail-safe rule below.
28
+ - **Composed.** The skill is running under an orchestrator that owns one canonical
29
+ deliverable. The skill's unique findings are folded into that deliverable (as a
30
+ section, appendix, or linked sub-file the orchestrator manages); the skill does
31
+ **not** emit standalone overlapping files.
32
+
33
+ ## Composed-mode signal (explicit, fail-safe)
34
+
35
+ A skill is in composed mode **if and only if** an explicit signal is present:
36
+
37
+ 1. **Orchestrator directive (canonical signal).** The invoking skill passed
38
+ `— composed: <canonical-report-path>` in the arguments, e.g.
39
+ `— composed: idea-stage/IDEA_REPORT.md`. The value names the canonical doc to
40
+ fold into (it may not exist yet — the orchestrator creates/owns it). Orchestrators
41
+ MUST pass this directive to every sub-skill they want folded.
42
+ 2. **Escape hatch.** `— standalone` (or `— composed: false`) forces standalone even
43
+ if an orchestrator would otherwise pass the directive. Standalone always wins a
44
+ conflict.
45
+
46
+ ### Fail-safe rule (the one regression we cannot ship)
47
+
48
+ **When no `— composed:` directive is present, the skill MUST behave standalone and
49
+ write its files as normal.** This is enforced by the contract, not left to per-skill
50
+ discretion.
51
+
52
+ In particular: **the mere existence of a canonical report file (e.g. a leftover
53
+ `idea-stage/IDEA_REPORT.md` from a previous run) does NOT trigger composed mode.**
54
+ Inferring "composed" from a file on disk would silently swallow a standalone user's
55
+ output the moment they happen to have an old report around — exactly the regression
56
+ to avoid. Composed mode is a decision the orchestrator makes and signals explicitly;
57
+ a sub-skill never guesses it.
58
+
59
+ ## What "fold in" means
60
+
61
+ When in composed mode, a sub-skill:
62
+
63
+ 1. Returns / hands its unique content to the orchestrator for inlining into the
64
+ canonical deliverable, rather than writing `LIT_LANDSCAPE.md`,
65
+ `RESEARCH_REVIEW.md`, or similar standalone summaries.
66
+ 2. If it must use a scratch file mid-phase, deletes that scratch once its content is
67
+ inlined and the phase closes.
68
+ 3. Keeps **audit-trail** outputs where they belong — cross-model review traces always
69
+ go to `.aris/traces/…` per [`review-tracing.md`](review-tracing.md); the canonical
70
+ report cites the trace path instead of carrying a duplicate human-facing copy.
71
+ 4. Keeps **reusable** artifacts (a pilot script, a small results file) but discards
72
+ disposable scratch (launcher logs, smoke files, redundant `*_summary.json`) once
73
+ the numbers are in the canonical report.
74
+
75
+ ## Orchestrator responsibilities
76
+
77
+ An orchestrator that wants folding:
78
+
79
+ 1. Owns exactly one canonical deliverable and passes its path via `— composed: <path>`
80
+ to each sub-skill.
81
+ 2. Inlines each sub-skill's returned findings into the canonical deliverable (or into
82
+ a small set of stage-scoped files it explicitly manages — e.g. `refine-logs/` —
83
+ which the report *links to*, not copies).
84
+ 3. Does not create a `MANIFEST.md` for a handful of files — see the threshold in
85
+ [`output-manifest.md`](output-manifest.md). A manifest is itself a duplicate index
86
+ that has to be kept in sync.
87
+ 4. On finish, the deliverable's directory top level should be roughly: the canonical
88
+ report (+ its `.html`), any reusable script + results, and explicitly-managed
89
+ stage sub-dirs. Nothing else unless it carries content not in the report.
90
+
91
+ ## Relationship to the other output protocols
92
+
93
+ - [`output-versioning.md`](output-versioning.md) — *how* to write a file you do write
94
+ (timestamp + fixed-name copy). Composition decides *whether* a sub-skill writes a
95
+ standalone file at all.
96
+ - [`output-manifest.md`](output-manifest.md) — only maintain a manifest above the
97
+ artifact threshold; below it the manifest is itself duplication.
98
+ - [`output-language.md`](output-language.md) — orthogonal; applies in both states.
@@ -0,0 +1,45 @@
1
+ # Output Language Protocol
2
+
3
+ ## Language Detection
4
+
5
+ Determine the output language using this priority:
6
+ 1. Check `AGENTS.md` for a `language:` field in `## Pipeline Status` — if `language: zh` or `language: cn`, output in Chinese
7
+ 2. If the user's most recent message is in Chinese, output in Chinese
8
+ 3. Default: English
9
+
10
+ ## What to Localize
11
+
12
+ - Section headings and labels
13
+ - Descriptions, analysis, commentary, recommendations
14
+ - Template boilerplate text
15
+ - Status messages and warnings
16
+
17
+ ## What NOT to Localize
18
+
19
+ - Code, shell commands, file paths, directory names
20
+ - Paper titles, author names, venue names, BibTeX entries
21
+ - Technical terms with no standard Chinese translation (keep English, optionally annotate: "attention mechanism (注意力机制)")
22
+ - LaTeX content — paper-writing workflow always outputs English for venue submission
23
+ - JSON state files — keys and structure remain English
24
+ - **Machine-parsed markers** — never localize the following, regardless of language setting:
25
+ - Markdown frontmatter keys (e.g., `outcome:`, `node_id:`, `title:`, `type:`)
26
+ - Research Wiki schema fields parsed by `tools/research_wiki.py` (e.g., `outcome: negative`, `outcome: positive`, `node_id:`)
27
+ - `MANIFEST.md` column headers and table structure
28
+ - Any field that downstream tools or scripts read programmatically
29
+
30
+ ## Skill-Specific Rules
31
+
32
+ | Skill | Language Support | Notes |
33
+ |-------|-----------------|-------|
34
+ | /idea-creator | Full | IDEA_REPORT.md follows language setting |
35
+ | /idea-discovery | Full | Inherits from sub-skills |
36
+ | /analyze-results | Full | Result analysis follows language setting |
37
+ | /auto-review-loop | Partial | AUTO_REVIEW.md follows setting; reviewer prompts stay English |
38
+ | /experiment-plan | Full | EXPERIMENT_PLAN.md follows setting |
39
+ | /experiment-bridge | Full | EXPERIMENT_RESULTS.md follows setting |
40
+ | /research-refine | Full | FINAL_PROPOSAL.md follows setting |
41
+ | /research-refine-pipeline | Full | PIPELINE_SUMMARY.md follows setting |
42
+ | /research-pipeline | Full | Inherits from sub-skills |
43
+ | /result-to-claim | Full | Claim descriptions follow setting |
44
+ | /paper-writing | Skip | Always English LaTeX for submission |
45
+ | /paper-write | Skip | Always English LaTeX |
@@ -0,0 +1,40 @@
1
+ # Output Manifest Protocol
2
+
3
+ After writing any output file, append an entry to `MANIFEST.md` in the project root.
4
+
5
+ ## Format
6
+
7
+ If `MANIFEST.md` does not exist, create it with this header:
8
+
9
+ ```markdown
10
+ # Research Output Manifest
11
+
12
+ > Auto-maintained by ARIS skills. Tracks all generated artifacts across the research lifecycle.
13
+
14
+ | Timestamp | Skill | File | Stage | Description |
15
+ |-----------|-------|------|-------|-------------|
16
+ ```
17
+
18
+ Then append one row per output file written:
19
+
20
+ ```
21
+ | 2025-06-15 14:30 | /idea-creator | idea-stage/IDEA_REPORT_20250615_143022.md | idea-discovery | 12 ideas generated from "LLM reasoning" direction |
22
+ | 2025-06-15 14:30 | /idea-creator | idea-stage/IDEA_REPORT.md | idea-discovery | latest copy |
23
+ ```
24
+
25
+ ## Stage Values
26
+
27
+ | Stage | Skills |
28
+ |-------|--------|
29
+ | `idea-discovery` | /idea-creator, /idea-discovery, /novelty-check, /research-review |
30
+ | `implementation` | /research-refine, /research-refine-pipeline, /experiment-plan, /experiment-bridge, /run-experiment |
31
+ | `review` | /auto-review-loop |
32
+ | `paper` | /paper-writing, /paper-write, /paper-compile |
33
+
34
+ ## Pre-flight Check
35
+
36
+ Before writing output, if the skill depends on a prerequisite file from a previous stage:
37
+ 1. Check if the prerequisite file exists at its expected stage-scoped path (e.g., `idea-stage/IDEA_REPORT.md`, `review-stage/AUTO_REVIEW.md`)
38
+ 2. If not found at the stage-scoped path, check the legacy root-level path (e.g., `./IDEA_REPORT.md`, `./AUTO_REVIEW.md`) — see [Path Fallback Rule](output-versioning.md#path-fallback-rule-backward-compatibility)
39
+ 3. If not found at either path, warn: "⚠️ Expected {file} (from {skill}) but not found. Run {skill} first?"
40
+ 4. Do not block — the user may have the file elsewhere or want to proceed anyway
@@ -0,0 +1,111 @@
1
+ # Output Versioning Protocol
2
+
3
+ When writing any output file that would overwrite an existing file, use timestamped filename + fixed-name latest copy:
4
+
5
+ 1. Write output to timestamped file: `{FILENAME}_{YYYYMMDD_HHmmss}.md` (or `.json`, `.tex` as appropriate)
6
+ - Timestamp precision to seconds to reduce collisions. In the rare case of sub-second conflicts, append `_2`, `_3` etc.
7
+ - Place the timestamped file in the same directory as the fixed-name file
8
+ 2. Copy the same content to the fixed-name file: `{FILENAME}.md` (overwrites the previous latest copy)
9
+ 3. Downstream skills always read the fixed-name file — they do not need to know about timestamps
10
+
11
+ ## Directory Structure
12
+
13
+ All ARIS output files are organized by workflow stage:
14
+
15
+ ```
16
+ project/
17
+ ├── AGENTS.md # Dashboard / agent instructions (root — read by all stages)
18
+ ├── findings.md # Cross-stage discovery log (root — append-only)
19
+ ├── MANIFEST.md # Output tracking manifest (root)
20
+ │
21
+ ├── idea-stage/ # W1: Idea Discovery
22
+ │ ├── IDEA_REPORT.md # Latest copy
23
+ │ ├── IDEA_REPORT_20250615_143022.md # Timestamped version
24
+ │ ├── IDEA_CANDIDATES.md
25
+ │ ├── REF_PAPER_SUMMARY.md
26
+ │ └── docs/
27
+ │ └── research_contract.md
28
+ │
29
+ ├── refine-logs/ # W1.5: Experiment Planning & Refinement
30
+ │ ├── EXPERIMENT_PLAN.md
31
+ │ ├── EXPERIMENT_TRACKER.md
32
+ │ ├── EXPERIMENT_RESULTS.md
33
+ │ ├── FINAL_PROPOSAL.md
34
+ │ ├── PIPELINE_SUMMARY.md
35
+ │ ├── REFINE_STATE.json
36
+ │ ├── REVIEW_SUMMARY.md
37
+ │ ├── REFINEMENT_REPORT.md
38
+ │ └── round_N_*.md
39
+ │
40
+ ├── review-stage/ # W2: Auto Review
41
+ │ ├── AUTO_REVIEW.md
42
+ │ └── REVIEW_STATE.json
43
+ │
44
+ ├── paper/ # W3: Paper Writing
45
+ │ ├── main.tex
46
+ │ └── roundN/
47
+ │
48
+ └── research-wiki/ # Persistent knowledge base
49
+ ```
50
+
51
+ ## What to Timestamp
52
+
53
+ Files that get overwritten on re-runs:
54
+ - `IDEA_REPORT.md`, `IDEA_CANDIDATES.md`, `REF_PAPER_SUMMARY.md`
55
+ - `EXPERIMENT_PLAN.md`, `EXPERIMENT_TRACKER.md`, `EXPERIMENT_RESULTS.md`
56
+ - `FINAL_PROPOSAL.md`, `PIPELINE_SUMMARY.md`
57
+ - `AUTO_REVIEW.md` (when starting a new review loop, not within a loop)
58
+ - `paper/main.tex`
59
+ - State files: `REFINE_STATE.json`, `REVIEW_STATE.json`
60
+
61
+ ## What NOT to Timestamp
62
+
63
+ - **Append-only files**: `findings.md`, `research-wiki/log.md` — these accumulate entries, not overwrite
64
+ - **Per-round files**: `refine-logs/round_N_*.md` — already versioned by round number
65
+ - **Dashboard**: `AGENTS.md` — single source of truth, always latest
66
+ - **MANIFEST.md** — append-only tracking file
67
+
68
+ Never delete timestamped files. They are the permanent history.
69
+
70
+ ## Path Fallback Rule (Backward Compatibility)
71
+
72
+ Skills that **read** stage-scoped files must fall back to the old root-level location for projects created before this layout was introduced:
73
+
74
+ ```
75
+ # For idea-stage files:
76
+ Read from idea-stage/IDEA_REPORT.md
77
+ If not found → fall back to ./IDEA_REPORT.md
78
+
79
+ Read from idea-stage/IDEA_CANDIDATES.md
80
+ If not found → fall back to ./IDEA_CANDIDATES.md
81
+
82
+ # For review-stage files:
83
+ Read from review-stage/AUTO_REVIEW.md
84
+ If not found → fall back to ./AUTO_REVIEW.md
85
+
86
+ Read from review-stage/REVIEW_STATE.json
87
+ If not found → fall back to ./REVIEW_STATE.json
88
+ ```
89
+
90
+ Skills that **write** always use the stage-scoped path (never write to root). This ensures new runs migrate output forward while old projects continue to work.
91
+
92
+ ## Migration for Existing Projects
93
+
94
+ If you find root-level files (`IDEA_REPORT.md`, `AUTO_REVIEW.md`, etc.) and the stage directories do not yet exist, you may optionally offer to migrate:
95
+
96
+ ```
97
+ 📁 Found legacy root-level files. Migrate to stage directories?
98
+ mv IDEA_REPORT.md idea-stage/IDEA_REPORT.md
99
+ mv AUTO_REVIEW.md review-stage/AUTO_REVIEW.md
100
+ (etc.)
101
+ Only do this if the user confirms — do not auto-migrate silently.
102
+ ```
103
+
104
+ ## Stale State Detection
105
+
106
+ Before reading a state file (`REFINE_STATE.json`, `REVIEW_STATE.json`, `DSE_STATE.json`):
107
+ 1. Check the file's last modified time via `ls -la` or `stat`
108
+ 2. Default staleness threshold: **24 hours** (individual skills may override — e.g., `auto-review-loop` uses 24h, `research-refine` uses 24h). If a skill defines its own threshold, that takes precedence.
109
+ 3. If older than the threshold, warn the user:
110
+ "⚠️ State file {filename} is {N} hours/days old. It may be from a previous research direction. Continue with this state, or start fresh?"
111
+ 4. If the user chooses to start fresh, write a timestamped archive copy and proceed without the old state