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,143 @@
1
+ # Effort Contract
2
+
3
+ ## Overview
4
+
5
+ Every ARIS skill accepts an optional `effort` parameter that controls how much work the system does. This affects breadth, depth, iterations, and coverage — but **never** the quality of cross-model review.
6
+
7
+ > Design stance: the unattended *procedure* (gather → reason → act → verify → repeat) is the engineered artifact, not any single prompt — after Karpathy's "write the loop, not the prompt" (LOOPS.md, *Field Notes on Agents That Run for Days*).
8
+
9
+ ```
10
+ /any-skill "args" — effort: lite | balanced | max | beast
11
+ ```
12
+
13
+ Default: `balanced` (current behavior, zero change for existing users).
14
+
15
+ ## Hard Invariants (NEVER changed by effort)
16
+
17
+ | Setting | Value | Why |
18
+ |---------|-------|-----|
19
+ | Codex reasoning_effort | **≥ xhigh** (deep-audit skills run `ultra` — tier table in `reviewer-routing.md`) | Reviewer quality is non-negotiable. `effort` never moves the reviewer tier in either direction — and ARIS `— effort: max` is NOT Codex `reasoning_effort: max` (different axes: pipeline workload vs reviewer reasoning depth) |
20
+ | DBLP/CrossRef citations | **on** | Citation integrity is non-negotiable |
21
+ | Reviewer independence | **on** | Cross-model protocol is non-negotiable |
22
+ | Experiment integrity | **on** | Fraud prevention is non-negotiable |
23
+ | Sanity check | **on** | Safety is non-negotiable |
24
+ | AUTO_PROCEED | **user decides** | Orthogonal to effort |
25
+ | difficulty | **user decides** | Orthogonal to effort |
26
+
27
+ ## Four Levels
28
+
29
+ ### `lite` (~0.4x tokens)
30
+ For budget-constrained users or quick explorations. Minimum viable depth.
31
+
32
+ ### `balanced` (1x tokens) — DEFAULT
33
+ Current ARIS behavior. What existing users get today. No change.
34
+
35
+ ### `max` (~2.5x tokens)
36
+ Go deeper than defaults. More papers, more ideas, more rounds, more detail.
37
+
38
+ ### `beast` (~5-8x tokens)
39
+ No budget limit. Every knob to maximum. For top-venue submission sprints.
40
+
41
+ ## Per-Skill Profiles
42
+
43
+ ### Discovery & Planning
44
+
45
+ | Skill | Dimension | lite | balanced | max | beast |
46
+ |-------|-----------|------|----------|-----|-------|
47
+ | research-lit | papers found | 6-8 | 10-15 | 18-25 | 40-50 |
48
+ | research-lit | query variants | 2 | 5 | 8 | 15+ |
49
+ | research-lit | deep reads | 3 | 5-8 | 8 | 15+ |
50
+ | idea-creator | ideas generated | 4-6 | 8-12 | 12-16 | 20-30 |
51
+ | idea-creator | pilots | 1-2 | 2-3 | 3-4 | 5-6 |
52
+ | novelty-check | claims checked | 2-3 | 3-4 | 4-6 | all |
53
+ | novelty-check | closest works | top-3 | top-5 | top-8 | top-10+ |
54
+ | research-refine | max rounds | 3 | 5 | 7 | 10+ |
55
+ | research-refine | papers considered | 8 | 15 | 24 | 30+ |
56
+ | experiment-plan | core experiments | 3 | 5 | 7 | 10+ |
57
+ | experiment-plan | seeds | 1 | 3 | 5 | 5 |
58
+ | experiment-plan | baseline families | 2 | 3 | 4 | 5+ |
59
+
60
+ ### Execution
61
+
62
+ | Skill | Dimension | lite | balanced | max | beast |
63
+ |-------|-----------|------|----------|-----|-------|
64
+ | experiment-bridge | scope | sanity + main | main + basic ablation | + top ablation + robustness | full suite + cross-validation |
65
+ | run-experiment | launches | smoke + main | smoke + multi-seed | + dry run + manifest | full config + multi-GPU parallel |
66
+ | monitor-experiment | depth | latest log | log + JSON | + W&B + anomaly | real-time + auto-alert + trend |
67
+ | analyze-results | findings | 3 | 5 | 8 | full-dimensional + stat tests |
68
+ | ablation-planner | ablations | 2-3 | 4-5 | 6-8 | 10+ |
69
+
70
+ ### Review
71
+
72
+ | Skill | Dimension | lite | balanced | max | beast |
73
+ |-------|-----------|------|----------|-----|-------|
74
+ | auto-review-loop | max rounds | 2 | 3-4 | 6 | 8+ (until converged) |
75
+ | auto-review-loop | fixes per round | 1-2 | 3-4 | 4-6 | all actionable |
76
+ | research-review | passes | 1 | 1 + follow-up | 1 + 2 follow-ups | 2 independent + cross-compare |
77
+ | experiment-audit | depth | skip | basic 4 checks | full 6 checks | line-by-line + reproduce |
78
+
79
+ ### Writing & Rebuttal
80
+
81
+ | Skill | Dimension | lite | balanced | max | beast |
82
+ |-------|-----------|------|----------|-----|-------|
83
+ | paper-plan | outline reviews | 0 | 1 | 2 | 3 |
84
+ | paper-plan | citations/section | 2-3 | 4-5 | 5-8 | 8+ |
85
+ | paper-figure | caption reviews | 1 | 1 | 2 | 3 |
86
+ | paper-write | abstract variants | 1 | 1 | 2 | 3 |
87
+ | paper-write | related work depth | shallow | standard | deep | exhaustive |
88
+ | paper-compile | fix attempts | 2 | 3 | 4 | until zero warnings |
89
+ | auto-paper-improvement | rounds | 1 | 2 | 3 | 5 |
90
+ | paper-illustration | render iterations | 2 | 3 | 5 | 7 |
91
+ | rebuttal | draft rounds | 1 | 2 | 3 | 5 |
92
+ | rebuttal | stress tests | 0-1 | 1 | 2 | 3 |
93
+
94
+ ## How to Read Effort in a Skill
95
+
96
+ Add this to the Constants section of each skill:
97
+
98
+ ```markdown
99
+ ## Constants
100
+
101
+ - **EFFORT = `balanced`** — Work intensity. Options: `lite`, `balanced`, `max`, `beast`. Override: `— effort: max`
102
+ ```
103
+
104
+ Then adjust numeric constants based on effort level. Example:
105
+
106
+ ```
107
+ Parse $ARGUMENTS for `— effort:` directive.
108
+ If not specified, default to `balanced`.
109
+
110
+ Adjust constants:
111
+ if effort == "lite": MAX_PAPERS = 8, MAX_IDEAS = 6, MAX_ROUNDS = 2
112
+ if effort == "balanced": MAX_PAPERS = 15, MAX_IDEAS = 12, MAX_ROUNDS = 4
113
+ if effort == "max": MAX_PAPERS = 25, MAX_IDEAS = 16, MAX_ROUNDS = 6
114
+ if effort == "beast": MAX_PAPERS = 50, MAX_IDEAS = 30, MAX_ROUNDS = 8
115
+ ```
116
+
117
+ ## Transparency
118
+
119
+ Every skill should print its effort configuration at the start:
120
+
121
+ ```
122
+ ⚡ [effort: max] papers=25, ideas=16, rounds=6 | Codex: tier per reviewer-routing.md (floor xhigh)
123
+ ```
124
+
125
+ ## Precedence
126
+
127
+ ```
128
+ explicit concrete knob (e.g., review_rounds: 2)
129
+ > explicit dimension override
130
+ > overall effort level
131
+ > skill default (balanced)
132
+ ```
133
+
134
+ Example: `— effort: beast, review_rounds: 3` → everything beast except review capped at 3.
135
+
136
+ ## Token Cost Estimation
137
+
138
+ | Level | LLM tokens | GPU/wall-clock | Best for |
139
+ |-------|-----------|----------------|----------|
140
+ | lite | ~0.4x | ~0.5x | Quick exploration, budget users |
141
+ | balanced | 1x | 1x | Normal research workflow |
142
+ | max | ~2.5x | ~2x | Serious submission prep |
143
+ | beast | ~5-8x | ~3-4x | Top-venue final sprint |
@@ -0,0 +1,73 @@
1
+ # Evidence Pre-check
2
+
3
+ > **Codex mirror adaptation (normative).** Resolve `evidence_check.py` through
4
+ > `.aris/installed-skills-codex.txt` and `$ARIS_REPO/tools/`. The deterministic
5
+ > existence check may be accepted; the fresh Codex semantic review that follows
6
+ > is same-family and therefore provisional. Only a Claude/Gemini overlay or a
7
+ > deterministic verifier supplies accepted assurance.
8
+
9
+ ARIS's claim audits (`/result-to-claim`, `/experiment-audit`, `/paper-claim-audit`)
10
+ spend a semantic reviewer call to judge whether a claim is supported. In the base
11
+ Codex mirror that call is same-family/provisional; an overlay or deterministic
12
+ verifier is required for accepted assurance. The
13
+ cheapest, most common integrity failure is *hallucinated evidence*: a claim cites
14
+ a number + a source file, and the file doesn't exist or the number isn't in it.
15
+ You should not need a model call to catch that.
16
+
17
+ ## Two stages — and `verified` ≠ `correct`
18
+
19
+ ```
20
+ stage 1 tools/evidence_check.py deterministic · no model · fail-closed
21
+ catches HALLUCINATION — cited path missing, or cited value not in source.
22
+ stage 2 semantic review fresh Codex (provisional) / overlay or deterministic (accepted)
23
+ catches WRONG-BUT-REAL — the number IS in the file, but it doesn't
24
+ support the claim.
25
+ ```
26
+
27
+ A `verified` from stage 1 means **only that the cited evidence exists** — never
28
+ that the claim holds. Existence is execution-completeness (deterministic / safe
29
+ same-model); *support* is a quality verdict that stays with the recorded reviewer
30
+ route (`acceptance-gate.md`: the pre-check DRIVES a gate, it cannot ACQUIT a claim).
31
+ This is the reconcile pattern — a model's self-report cross-checked against
32
+ mechanical ground-truth (adapted from Hermes's curator reconcile-classifier),
33
+ made into a cheap pre-gate that catches hallucination *before* the jury runs and
34
+ spares the codex call on fabricated evidence.
35
+
36
+ ## Conservative by design
37
+
38
+ The pre-check favors **false-negative over false-positive**: when in doubt it
39
+ returns not-verified and lets the jury decide — it must never emit a false
40
+ `verified`. A pure number is matched by **numeric-token equality** (so `73.2`
41
+ matches `73.20` but `73` does NOT match `73.5`); a non-numeric value by
42
+ normalized substring.
43
+
44
+ ## Where ARIS uses it
45
+
46
+ - **`/result-to-claim`** Step 1.5: parse each claim's cited `(value, source)`,
47
+ run the batch pre-check, and **before the codex judgment** mark any claim whose
48
+ evidence is `path_missing` / `value_not_found` as **unsupported — evidence not
49
+ found**, and pass the per-claim pre-check status into the codex prompt so the
50
+ jury sees which claims have verified vs hallucinated evidence.
51
+ - **To extend:** `/experiment-audit` (the "phantom results" check is exactly
52
+ this) and `/paper-claim-audit` (every reported number → its result file).
53
+
54
+ ## API / CLI
55
+
56
+ ```
57
+ from evidence_check import check_claim, check_batch
58
+ check_claim(value, source, root=".") # -> {status: verified|path_missing|value_not_found, ...}
59
+ check_batch([{value, source, id?}, ...], root) # -> {results:[...], summary:{status: n}}
60
+ ```
61
+ ```
62
+ python3 tools/evidence_check.py <root> --value 73.2 --source results/eval.json # exit 0 verified
63
+ python3 tools/evidence_check.py <root> --batch claims.json # exit 1 if any claim hallucinated
64
+ ```
65
+
66
+ ## Cross-references
67
+ - `acceptance-gate.md` — the pre-check is the deterministic DRIVE; the jury is the
68
+ ACQUIT. `verified` is existence (execution-completeness), not correctness.
69
+ - `reviewer-independence.md` — the jury still reads the artifacts itself; the
70
+ pre-check only flags which claims have evidence to read, never pre-digests the
71
+ verdict.
72
+ - `experiment-integrity.md` — fabricated/phantom results are exactly what stage 1
73
+ catches deterministically before stage 2.
@@ -0,0 +1,49 @@
1
+ # Experiment Integrity Protocol
2
+
3
+ ## Core Principle
4
+
5
+ **The model that writes experiment code must NOT be the model that judges experiment integrity.** This is the same principle as reviewer-independence, applied to experiments.
6
+
7
+ ## Prohibited Patterns
8
+
9
+ ### 1. Fake Ground Truth
10
+ - ❌ Creating synthetic "reference" from model outputs and comparing against it
11
+ - ❌ Using baseline model outputs as ground truth
12
+ - ❌ Generating pseudo-GT that is structurally similar to predictions
13
+ - ✅ Using dataset-provided ground truth
14
+ - ✅ Using official evaluation scripts when available
15
+ - ✅ Proxy evaluation is allowed IF explicitly labeled as `synthetic_proxy`
16
+
17
+ ### 2. Score Normalization Fraud
18
+ - ❌ Dividing metrics by max/min of model's own output to get 0.99+
19
+ - ❌ Rescaling scores to hide poor performance
20
+ - ✅ Standard normalization (e.g., min-max across ALL methods including baselines)
21
+ - ✅ Reporting raw and normalized scores side by side
22
+
23
+ ### 3. Phantom Results
24
+ - ❌ Claiming results from files that don't exist
25
+ - ❌ Referencing metrics from functions that are never called
26
+ - ❌ Reporting TRACKER status as DONE when it's still TODO
27
+ - ✅ Every claimed number must trace to an actual output file
28
+
29
+ ### 4. Insufficient Scope
30
+ - ❌ Reporting 2-scene pilot as "comprehensive evaluation"
31
+ - ❌ Using words like "robust", "extensive", "across settings" for tiny experiments
32
+ - ✅ Honestly label scope: "pilot (N=2)", "preliminary", "limited evaluation"
33
+ - ✅ State exact scope: N scenes, N seeds, N configurations
34
+
35
+ ## Evaluation Types (must be declared)
36
+
37
+ | Type | Label | What it means | Claim ceiling |
38
+ |------|-------|---------------|---------------|
39
+ | Real GT | `real_gt` | Dataset-provided ground truth | Full performance claims |
40
+ | Synthetic proxy | `synthetic_proxy` | Model-generated reference | "Proxy consistency" only |
41
+ | Self-supervised | `self_supervised_proxy` | No GT by design | Relative improvement only |
42
+ | Simulation | `simulation_only` | Simulated environment | "In simulation" qualifier |
43
+ | Human eval | `human_eval` | Human judges | Subject to inter-rater stats |
44
+
45
+ ## Who Checks
46
+
47
+ The **reviewer model** (different family from executor) performs integrity checks via `/experiment-audit`. The executor collects file paths; the reviewer reads code and results directly.
48
+
49
+ **Never let the executor judge its own experiment integrity.**
@@ -0,0 +1,334 @@
1
+ # External Cadence
2
+
3
+ > **Codex mirror adaptation (normative).** External cadence remains fire-control
4
+ > only. The default fresh Codex reviewer may produce a provisional stop/continue
5
+ > decision, while only a cross-family overlay or deterministic gate records
6
+ > accepted. Replace mainline Codex MCP examples with fresh `spawn_agent` calls;
7
+ > never schedule reviewer verdicts themselves.
8
+
9
+ External schedulers — `/loop`, `/schedule`, `CronCreate`, and any
10
+ wall-clock "wake me every N minutes" mechanism — decide **WHEN** an
11
+ agent wakes up. They do not, and must not, decide **WHO** judges the
12
+ work or **WHETHER** a result is accepted.
13
+
14
+ ## Core Principle
15
+
16
+ **External cadence is pure fire-control. It is never a jury.**
17
+
18
+ A scheduler picks the firing moment. It points the agent at a task at a
19
+ chosen time. It has no opinion on correctness, quality, novelty, or
20
+ publishability, and it must never silently re-spawn an agent or drop a
21
+ verdict step in order to stay cheap or finish faster.
22
+
23
+ Rule of thumb: **cadence can DRIVE; it cannot ACQUIT.** This is the
24
+ fire-control corollary of the acceptance-gate rule
25
+ (`acceptance-gate.md`): a goal/loop may keep an agent going, but the
26
+ STOP/ACCEPT decision still belongs to whoever the acceptance gate
27
+ assigns it to — fresh Codex quality/correctness verdicts are provisional;
28
+ only a cross-family overlay or deterministic verifier is accepted
29
+ (`reviewer-independence.md`).
30
+
31
+ ## Known failure mode (why this doc exists)
32
+
33
+ External cadence is genuinely useful for one shape of work — waiting on
34
+ the external world — and genuinely harmful for another — wrapping
35
+ ARIS's own internal semantic loops. The two look superficially similar
36
+ ("run this skill again later"), so people reach for `/loop` on both. The
37
+ harmful case has a specific pathology:
38
+
39
+ - **Verdict re-run on a wall-clock timer.** Wrapping
40
+ `/auto-review-loop` in `/loop 30m` does not produce 30-minutes-better
41
+ review. It re-runs a verdict-bearing skill on a clock that has nothing
42
+ to do with whether the artifact changed. Zero new signal, full token
43
+ cost.
44
+ - **Thread discontinuity.** ARIS's multi-round review skills carry state
45
+ across rounds in the reviewer's own thread: `codex-reply` reuses the
46
+ round-1 `threadId` and the accumulated `REVIEWER_MEMORY` so the
47
+ reviewer can check resolution against its *own* prior critique
48
+ (`reviewer-independence.md`, Exception). An external `/loop` re-enters
49
+ the skill from the top each tick, starting a *fresh* `threadId`. The
50
+ reviewer loses its memory of what it already flagged; "did you fix
51
+ round 1's gap?" becomes unanswerable.
52
+ - **Duplicated scheduling.** `/experiment-queue` already runs a
53
+ detached server-side scheduler that polls job status every 60s and
54
+ enforces `depends_on`. Wrapping the queue skill in an external poll
55
+ loop duplicates that scheduler on a second, uncoordinated clock and
56
+ invites wave-transition races the queue was built to prevent.
57
+
58
+ The fix is a clean split: external cadence for **external-world-wait**,
59
+ never for **internal semantic loops**.
60
+
61
+ ## The distinction
62
+
63
+ | | External-world-wait (ADDITIVE) | Internal semantic loop (HARMFUL to wrap) |
64
+ |---|---|---|
65
+ | What it waits on | A fact in the outside world: job done, metric logged, file landed | A judgment the agent itself produces |
66
+ | What advances it | Reality changing (GPU frees, epoch logs, PDF compiles) | A model emitting a verdict |
67
+ | Owns its own loop? | No — without cadence a Claude session blocks on `sleep` | Yes — the skill already iterates internally, carrying its own round-to-round state (a reviewer thread, or fed-forward summaries) |
68
+ | Cadence replaces | A blocking session burning context on a wait | Nothing — it only re-spawns and re-judges |
69
+ | Acceptance gate | Machine-checkable existence/completion (safe same-model) | Quality/correctness (base Codex = provisional; overlay/deterministic = accepted) |
70
+
71
+ One-liner: **schedule the wait, never the verdict.**
72
+
73
+ ## ADDITIVE cases (external-world-wait shape)
74
+
75
+ These replace a Claude session that would otherwise sit `sleep`-ing on
76
+ an external event. The cadence is the *only* thing the agent is waiting
77
+ for; no semantic judgment is being re-run. ARIS already validated this
78
+ pattern in production.
79
+
80
+ - **GPU / experiment job completion polling.**
81
+ `/monitor-experiment` + `/check-gpu` on a cadence: "is the job done?
82
+ are the GPUs still busy?" The agent wakes, reads status, and either
83
+ reports done or sleeps again. The thing it waits on (job exit, GPU
84
+ free) is external and machine-checkable.
85
+ - **WandB anomaly checks.** `/training-check` is *already* cron-wired:
86
+ its SKILL.md sets itself up via `CronCreate` ("do not ask the user
87
+ whether to set it up — just set it") to read WandB metrics every N
88
+ minutes and catch NaN / divergence / idle GPUs early. The cadence
89
+ exists so the agent does not have to hold a session open for the whole
90
+ training run.
91
+ - **Experiment-queue progression visibility.** Periodically surfacing
92
+ *where the queue is* (N done / N running / N pending) so a human can
93
+ watch overnight progress. Read-only visibility — see the fence below
94
+ on not re-polling the queue's own scheduler.
95
+ - **Overnight `research-pipeline` heartbeat.** A non-judgmental wake
96
+ that checks whether the current phase is still advancing and, if a
97
+ phase has stalled, nudges it forward. Heartbeat only — see the
98
+ overnight-pipeline rule below.
99
+ - **Daily literature watch.** A once-a-day `/research-lit` or
100
+ `/deepxiv` sweep for new arXiv papers in a tracked direction. The
101
+ external fact is "the world published something new today"; the
102
+ cadence just sets the polling rhythm.
103
+
104
+ ARIS's own `tools/watchdog.py` makes the additive shape explicit: it
105
+ aggregates per-task status into a `summary.txt` whose header documents
106
+ it as a "one-line-per-task summary for CronCreate polling." The
107
+ artifact is built *so that* an external low-frequency poller can read
108
+ completion state cheaply, without holding a session open.
109
+
110
+ ### Why these are safe same-model
111
+
112
+ In every additive case the acceptance gate is **execution-completeness**
113
+ — exit code, file exists, N jobs ran, metric logged, PDF compiled. Those
114
+ are machine-checkable, so the polling agent may judge them itself
115
+ (`acceptance-gate.md`: "self-judging EXECUTION-completeness is safe
116
+ same-model"). The cadence never touches a quality/correctness verdict.
117
+
118
+ ## NOISE / HARMFUL cases (wrapping internal semantic loops)
119
+
120
+ - **`/loop` around `/auto-review-loop`.** The auto-review loop *is*
121
+ already a loop: review → implement fix → re-review, with the reviewer
122
+ holding round-to-round memory in one `threadId`. Wrapping it in an
123
+ external timer breaks that continuity (a fresh `threadId` per tick,
124
+ `REVIEWER_MEMORY` reset) and fires a verdict on wall-clock time
125
+ instead of on artifact change. Pure noise.
126
+ - **Polling `/experiment-queue` on a timer.** Duplicates the queue's
127
+ own 60s server-side scheduler on a second clock, racing its
128
+ wave-transition logic. Use the queue's status output for visibility;
129
+ do not run a competing poll loop.
130
+ - **Re-asking an agent to "improve the paper" on a timer.** Quality
131
+ does not improve on a schedule. A timed "improve again" with no new
132
+ review signal is token burn — and if the loop also *accepts* its own
133
+ output to decide whether to stop, it has crossed from fire-control
134
+ into self-acquittal, which the acceptance gate forbids.
135
+
136
+ ## The fence: do NOT wrap these in external cadence
137
+
138
+ Any **verdict-bearing** skill — one whose output is a judgment of
139
+ quality, correctness, support, novelty, or satisfaction — must run on
140
+ its own internal cadence with its own round-to-round state (a persistent
141
+ reviewer thread, or prior-round summaries fed forward — whichever the skill
142
+ uses), and must terminate through its recorded reviewer route. In the base
143
+ mirror that route is provisional; overlays/deterministic verifiers are accepted. Never put one inside
144
+ `/loop`, `/schedule`, or `CronCreate`:
145
+
146
+ - `/auto-review-loop` — already loops internally; reviewer carries
147
+ round-to-round memory in one `threadId` (`codex-reply`)
148
+ - `/auto-review-loop-llm`, `/auto-review-loop-minimax` — same loop, alternate
149
+ reviewer backend; same internal round cadence (each round's prior-round
150
+ summary is fed into the next prompt — a stateless per-round API call, not a
151
+ shared thread, but still verdict-bearing and self-iterating)
152
+ - `/auto-paper-improvement-loop` — review → fix → recompile loop with its own
153
+ round structure and a fresh-reviewer bias guard each round (no `codex-reply`)
154
+ - `/research-review` — produces a traced review verdict (provisional in base Codex)
155
+ - `/result-to-claim` — judges whether results support a claim
156
+ - `/experiment-audit` — judges experiment integrity
157
+ - `/paper-claim-audit` — judges paper-to-evidence fidelity
158
+ - `/citation-audit` — judges bibliographic correctness
159
+ - `/proof-checker` — judges proof validity across rounds
160
+ - `/kill-argument` — adversarial accept/reject verdict
161
+
162
+ If you find yourself wanting to schedule one of these, the thing you
163
+ actually want to schedule is the *external wait that precedes it* (job
164
+ done → then audit once), not the verdict itself.
165
+
166
+ > **Adjacent but distinct — `/dse-loop`.** It also loops internally, so do
167
+ > not wrap it in external cadence either, but for a *different* reason: its
168
+ > stop gate is an **objective machine-checkable metric** ("objective met or
169
+ > timeout"), which is Type-A, not a quality verdict — so it is not a
170
+ > self-acquittal hazard. The reason not to wrap it is **scheduler
171
+ > duplication** (component #4 below), the same reason as `/experiment-queue`,
172
+ > not the verdict fence. Its own objective gate is a safe same-model
173
+ > self-termination (`acceptance-gate.md`).
174
+
175
+ ## The affordance: natural external-wait surfaces
176
+
177
+ These are the surfaces external cadence is *for*. They wait on the
178
+ outside world and self-judge only machine-checkable completion:
179
+
180
+ - `/monitor-experiment` — poll for job completion / progress
181
+ - `/check-gpu` — poll for GPU availability and running processes
182
+ - `/experiment-queue` — **visibility only** (report position); never a
183
+ re-poll that competes with its own scheduler
184
+ - overnight `/research-pipeline` — a **non-judgmental heartbeat + nudge**
185
+ (see next), never a quality gate
186
+
187
+ ## The overnight-pipeline rule
188
+
189
+ An overnight `research-pipeline` heartbeat may wake on a cadence,
190
+ detect that a phase has **stalled** (no progress since last tick,
191
+ process died, waiting on a freed resource), and **nudge** it forward —
192
+ unblock a stuck step, restart a dropped job, prod a phase to continue
193
+ ("搞快点"). That is fire-control: it changes *when/whether work
194
+ resumes*, not *whether work is good*.
195
+
196
+ The heartbeat must **NEVER** become a quality gate. It may not decide
197
+ that a paper is good enough, that a proof holds, that a claim is
198
+ supported, or that a review is satisfied. Every such verdict stays on
199
+ its skill's own internal cadence and terminates in its recorded reviewer route
200
+ (`acceptance-gate.md`). The nudge keeps the pipeline moving; it does not
201
+ acquit the work the pipeline produces.
202
+
203
+ One-liner: **a heartbeat may say "keep going," never "good enough."**
204
+
205
+ ## Loop self-heartbeat + watchdog liveness (catch a silent death)
206
+
207
+ A `/loop` or `CronCreate` heartbeat is parasitic on a living session; if it dies
208
+ (context compaction, session close) nothing notices. Two-part convention:
209
+
210
+ 1. **Write a heartbeat first.** As the FIRST action of every iteration, rewrite
211
+ (or `touch`) the loop's state file (`*_STATE.json` / `run_state.json` / a tiny
212
+ `last_seen` file) so its mtime advances each tick *before* any work that might hang.
213
+ 2. **Register it with the watchdog** at startup, and **unregister on completion**:
214
+ ```bash
215
+ python3 tools/watchdog.py --register '{"name":"<run_id>","type":"loop","state_file":"<the heartbeat file>","stale_after_seconds":21600}'
216
+ # on completion: python3 tools/watchdog.py --unregister "<run_id>"
217
+ ```
218
+ `stale_after_seconds` is the loop's OWN tolerance — set it to **comfortably exceed
219
+ the longest single iteration/operation** (≈ a few × the tick interval), **never** the
220
+ watchdog poll interval. The watchdog writes **STALE** to `summary.txt` + `alerts.log`
221
+ (which your poll already reads) when the file's mtime is older than that; a finished
222
+ loop shows **COMPLETED** (if its state carries a terminal `status`) or should be
223
+ unregistered. **It only DETECTS** — it never restarts the loop or re-runs a
224
+ verdict-bearing skill; recovery stays a human/cron decision, per the fence above.
225
+
226
+ ## Stall detection & forced structural pivot
227
+
228
+ An overnight loop can spin: each iteration tries a near-variant of the last and gets
229
+ diminishing returns. Detect it mechanically and force a *structural* change — not harder
230
+ tuning of the same frame.
231
+
232
+ - **Count, don't vibe.** Each iteration, record the number of NEW findings (concrete
233
+ added entries — new evidence, a falsified hypothesis, a candidate direction — *not* a
234
+ subjective "valuable result"). Resolve the helper via the canonical chain
235
+ (integration-contract §2): `.aris/tools/iteration_log.py` → `tools/iteration_log.py` →
236
+ `$ARIS_REPO/tools/iteration_log.py` → `$ARIS_REPO/tools/iteration_log.py` via
237
+ `~/.aris/repo` (warn-and-skip if unresolved), then
238
+ `python3 "$ITER_LOG" note <root> <run_id> <phase> <new_findings> [--direction "..."]`.
239
+ Consecutive zero-finding iterations accumulate a `stale_count` in
240
+ `.aris/runs/<run_id>.iterations.jsonl` — a sidecar that does **not** touch run_state's
241
+ done/accepted state.
242
+ - **Forced pivot ladder** (the heartbeat reads the returned `pivot`):
243
+ - `stale_count >= 2` → **pivot structure, not tactics**: change a structural constraint
244
+ (frame / objective / data / representation), not a tactical parameter, and pick a
245
+ direction that differs from every one already tried.
246
+ - `stale_count >= 4` → **escalate to a human** (flag for attention; stop nudging blindly).
247
+ - **Direction diversity.** Before a re-generation, read the tried directions (research-wiki
248
+ Failed Ideas + the iteration ledger) and reject a candidate too close to one already tried.
249
+
250
+ This is a Type-A signal — it counts findings and changes *direction*, it never *judges
251
+ quality* ("keep going / change direction," never "good enough"; quality stays with the
252
+ recorded reviewer route, acceptance-gate.md). Why structure over tactics: when a task stalls
253
+ repeatedly inside one frame, the decisive gain comes from correcting the frame itself, not
254
+ from tuning parameters harder within it.
255
+
256
+ ## Let a broken attempt restart, not just patch
257
+
258
+ The stall ladder above pivots *direction*; this section is the level below it — a single
259
+ implementation/debug attempt (a build, a training script, an eval harness) that keeps
260
+ failing while the loop is still running. The repo's historical convention was "patch N
261
+ times, then stop and report to a human." That misroutes the escalation: a broken build is
262
+ squarely the executor's job, and the missing move is the RESTART.
263
+
264
+ - **Discard-and-reimplement is a peer move to another patch, not a last resort.** After
265
+ 1–2 targeted patches fail on the same failure, rewriting the failing piece cleanly from
266
+ the contract/plan is usually cheaper and more reliable than a third patch on top of two
267
+ wrong ones — patched-code archaeology is how attempts rot. Treat "delete the attempt
268
+ and rebuild from the spec" as a normal option at every retry decision, and prefer it
269
+ once patches start stacking.
270
+ - **Escalate to a human only when the CONTRACT is in question** — the plan/spec is
271
+ missing, ambiguous, or looks wrong — not merely because the current attempt is broken.
272
+ "The build is broken" is the executor's problem; "the plan may be wrong" is the human's.
273
+ - **Hard boundary — what a restart may delete.** Only the current attempt's own
274
+ code/scaffolding (scripts it wrote, configs it generated, its build artifacts). NEVER
275
+ deletable in a restart: the contract/plan (`research_contract.md`,
276
+ `EXPERIMENT_PLAN.md`, `PAPER_PLAN.md`), progress ledgers (`EXPERIMENT_TRACKER.md`,
277
+ iteration/bottleneck ledgers, `*_STATE.json`, `.aris/traces/`), collected data, and
278
+ completed results. The restart rebuilds the code FROM those files; deleting them
279
+ defeats the restart. When in doubt whether a path is "attempt" or "state," it is state
280
+ — keep it.
281
+ - **Restart is bounded like any other move.** A restart consumes a retry-budget slot; two
282
+ clean reimplements failing the SAME way means the failure is probably in the contract
283
+ or the environment — which IS the human-escalation trigger above.
284
+
285
+ ## Required components (when you add external cadence to a skill)
286
+
287
+ 1. **Waits on an external fact, not a self-verdict.** State the fact in
288
+ one observable line: "job exit code present," "epoch logged to
289
+ WandB," "PDF exists." If the thing being waited on is a model's
290
+ judgment, cadence is the wrong tool.
291
+ 2. **No verdict in the loop body.** The scheduled body may *report*
292
+ status and *trigger the next external step*; it may not run a
293
+ verdict-bearing skill (see the fence) as part of deciding whether to
294
+ continue.
295
+ 3. **Self-judges only machine-checkable completion.** The wake's
296
+ accept/sleep decision must rest on exit code / file existence / count
297
+ — never on quality or correctness (`acceptance-gate.md`).
298
+ 4. **Does not duplicate an existing internal scheduler.** If the target
299
+ already runs its own loop or server-side poller (auto-review-loop,
300
+ experiment-queue), do not wrap it — use its status output.
301
+ 5. **Preserves thread continuity for any judgment it precedes.** If the
302
+ external wait ends in a verdict step, that verdict step runs *once*,
303
+ in its own thread, after the wait clears — not re-entered per tick.
304
+ 6. **Degrades gracefully when no scheduler exists.** External cadence is
305
+ additive runtime sugar, never load-bearing. On a runtime with no
306
+ `/loop` / `CronCreate`, the same work still terminates correctly via
307
+ a blocking poll or a manual re-invocation; the reviewer assurance class at
308
+ the end is identical either way (`fan-out-pattern.md`).
309
+
310
+ ## Autonomous-mode discipline (when the human checkpoint is off)
311
+
312
+ When a skill runs with its human-checkpoint toggle OFF (e.g. `AUTO_PROCEED=true`) or under
313
+ an external heartbeat, it must not stall by ending on a question. Resolve a routine
314
+ ambiguity yourself, act, and log the decision and its reasoning (a `level=decision` log
315
+ line) so the choice is auditable — "ready means execute": finishing preparation and then
316
+ asking "should I proceed?" is the stall this rule forbids.
317
+
318
+ This does **not** override an *explicit* human gate. A checkpoint the skill declares as
319
+ load-bearing — a missing venue/target, a patent/submission step, anything marked as
320
+ requiring sign-off — still stops and waits. If you are unsure whether a gate is explicit, treat it as explicit and stop. Autonomy removes *needless* pauses, not
321
+ deliberate ones; and it never lets the loop self-acquit an accepted quality verdict (that
322
+ stays with the recorded reviewer route, see [`acceptance-gate.md`](acceptance-gate.md)).
323
+
324
+ ## Cross-references
325
+
326
+ - `acceptance-gate.md` — who is allowed to ACCEPT. Cadence drives;
327
+ it does not acquit. The overnight nudge is bound by this rule.
328
+ - `fan-out-pattern.md` — fan-out (and cadence) are runtime accelerants
329
+ for a prompt-level pattern; both must degrade gracefully and preserve the
330
+ same reviewer assurance class.
331
+ - `reviewer-independence.md` — why wrapping a multi-round review in an
332
+ external timer breaks reviewer thread/memory continuity.
333
+ - `experiment-integrity.md` — the executor never judges its own
334
+ experiment; a scheduled poll never upgrades to an integrity verdict.