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,336 @@
1
+ # Acceptance-Gate Provenance
2
+
3
+ > **Codex mirror adaptation (normative).** In this mirror the executor is the
4
+ > current Codex agent and the default reviewer is a fresh `spawn_agent` Codex
5
+ > agent. That route is same-family: it may drive revisions and terminate a loop,
6
+ > but its positive verdict is recorded as `acceptance_status: provisional` and
7
+ > never as cross-family `accepted`. A Claude/Gemini overlay or a deterministic
8
+ > verifier may record `accepted`. Where the mainline examples name Claude or
9
+ > `mcp__codex__codex`, read them as current executor or fresh `spawn_agent`;
10
+ > follow-up dialogue uses `send_input` only when continuity is intentional.
11
+
12
+ ## Core Principle
13
+
14
+ **An autonomous loop's STOP/ACCEPT gate determines its assurance level. The
15
+ thing being judged at that gate — not the loop's subject matter, not how many
16
+ agents ran — decides whether a base Codex review is provisional or an overlay /
17
+ deterministic route may mark it accepted.** (A deterministic verifier accepts
18
+ only what a PROCESS can actually decide — compilation, schema validity, hash
19
+ freshness, test suites. It can never acquit a SEMANTIC judgment — proof
20
+ correctness, claim support, novelty — however it is labeled; see
21
+ `skill-governance.md`, which scopes deterministic verifiers to mechanical
22
+ checks, and the audit aggregator, which rejects deterministic labels on the
23
+ four semantic paper audits.)
24
+
25
+ ARIS has loops that keep working until a condition is met: `/auto-review-loop`,
26
+ `/dse-loop`, the `/experiment-bridge` auto-debug cycle, the
27
+ `/auto-paper-improvement-loop`, and any future "keep going until X"
28
+ skill. Every such loop terminates on a gate it evaluates each iteration:
29
+ "are we done yet?" That gate is where same-family self-acquittal can be
30
+ mistaken for formal acceptance. The loop body can be all Codex; the **gate**
31
+ is what this contract governs.
32
+
33
+ This is `reviewer-independence.md` and `experiment-integrity.md` applied
34
+ to the temporal/iterative case: those two cover single-shot review and
35
+ single-shot experiment judging; this one covers the *recurring verdict*
36
+ a loop makes on itself, round after round, with no human in between.
37
+
38
+ One-liner, and the whole doc in seven words:
39
+
40
+ > **A goal/loop can DRIVE; it cannot ACQUIT.**
41
+
42
+ The loop may freely *drive* itself toward a target — schedule the next
43
+ config, recompile, re-run the failed job, spawn ten search branches.
44
+ What it may not do is *claim accepted acquittal* of its own work — declare the
45
+ paper submission-ready, the proof valid, the claim supported, the idea novel,
46
+ or the review satisfied **as accepted assurance**. A base Codex verdict is a
47
+ traceable provisional gate; accepted acquittal requires a cross-family overlay
48
+ or deterministic verifier.
49
+
50
+ ## The two gate types
51
+
52
+ Classify **every** stop/accept gate of a loop as exactly one of these.
53
+ There is no third bucket; if a gate seems to be both, it is two gates
54
+ and you split it (see "Compound gates" below).
55
+
56
+ ### Type-A — EXECUTION / OBJECTIVE gate
57
+
58
+ A machine-checkable or externally-observable signal of *what happened*,
59
+ with no judgment of *merit*. Claude **MAY** self-judge Type-A gates —
60
+ it is execution bookkeeping, not a verdict.
61
+
62
+ A gate is Type-A iff a non-LLM process (a shell exit code, a stat on the
63
+ filesystem, a counter, a parser reading a benchmark's own output) could
64
+ in principle answer it with the same answer Claude gives.
65
+
66
+ - ✅ exit code == 0
67
+ - ✅ `figures/result.png` exists / `paper/main.pdf` compiled (LaTeX returned 0)
68
+ - ✅ N/N jobs finished (queue drained)
69
+ - ✅ test suite passed (pytest exit 0)
70
+ - ✅ the reviewer **was invoked** (a `codex` thread returned, a JSON verdict file exists)
71
+ - ✅ all checklist items were **attempted** (each row touched)
72
+ - ✅ no `NaN` in the loss log / training reached `max_steps`
73
+ - ✅ the benchmark harness emitted a number and it parsed
74
+ - ✅ PATIENCE/TIMEOUT/MAX_ROUNDS budget exhausted (a counter hit its bound)
75
+
76
+ Type-A gates are *coverage and completion* facts. Claude self-judging
77
+ "did the audit run?" is fine; Claude self-judging "did the audit pass?"
78
+ is not (that's Type-B).
79
+
80
+ ### Type-B — QUALITY / CORRECTNESS / ACCEPTANCE gate
81
+
82
+ A judgment of *merit, correctness, or sufficiency*. A fresh base Codex reviewer
83
+ may evaluate this gate and advance/terminate the loop, but it records
84
+ `same-family` / `provisional`. An `accepted` Type-B gate requires a different
85
+ model family through the Claude/Gemini overlay, or a deterministic verifier,
86
+ with the route recorded in `reviewer-routing.md`.
87
+
88
+ - ❌ "the paper is good" / "submission-ready"
89
+ - ❌ "the proof is valid" / "the gap is closed"
90
+ - ❌ "the claim is supported by the results"
91
+ - ❌ "the idea is novel"
92
+ - ❌ "the review is satisfied" / "the weaknesses are addressed"
93
+ - ❌ "score >= 6" — when *Claude* assigned the score
94
+ - ❌ "this config is good enough to publish" / "the result is strong"
95
+ - ❌ "the rebuttal answers the reviewer"
96
+ - ❌ "the fix is correct" (as opposed to "the fix made the test pass" — that's Type-A)
97
+
98
+ A Type-B gate, left to the executor, is the loop quietly grading its own
99
+ homework every round and stopping the moment it likes the grade. The
100
+ fact that it ran a hundred iterations does not launder the verdict: a
101
+ hundred rounds of Claude-judging-Claude is still one model family.
102
+
103
+ ### The dividing question
104
+
105
+ > *Could a dumb script with no taste answer this gate?*
106
+ >
107
+ > **Yes → Type-A** (Claude may self-judge — it's bookkeeping).
108
+ > **No, it needs taste / correctness / domain judgment → Type-B** (base Codex
109
+ > review is provisional; use an overlay or deterministic verifier for accepted assurance).
110
+
111
+ "The PDF compiled" needs no taste — Type-A. "The PDF is a good paper"
112
+ is nothing *but* taste — Type-B. "The job exited 0" — Type-A. "The job's
113
+ output is the right answer" — Type-B.
114
+
115
+ ## Compound gates: split, don't average
116
+
117
+ Many natural-language stop conditions secretly bundle an A-part and a
118
+ B-part. `/auto-review-loop`'s real condition is *"score >= 6 AND verdict
119
+ contains 'ready'"* evaluated each round — the fresh base Codex reviewer
120
+ records that score/verdict as `provisional`, while an overlay or deterministic
121
+ route may record it `accepted`. The A-part is only "did round N's reviewer
122
+ return?" and "is round < MAX_ROUNDS?".
123
+
124
+ When you meet a compound gate, decompose it:
125
+
126
+ ```
127
+ STOP when "the paper is submission-ready"
128
+ ├─ A: all 3 audits were invoked and emitted JSON → Codex self-checks
129
+ ├─ A: verify_paper_audits.sh exit code == 0 → external process, Codex reads it
130
+ └─ B: "the paper is actually good enough to submit" → overlay/deterministic accepted verdict
131
+ ```
132
+
133
+ Never collapse a compound gate to its A-part and call the loop safe. The
134
+ B-part doesn't disappear because it's inconvenient; it gets *routed*.
135
+
136
+ ## Decision procedure (for any new autonomous loop)
137
+
138
+ When you author or review a "keep working until X" skill:
139
+
140
+ 1. **Enumerate every stop/accept gate.** Not just the headline one —
141
+ the early-exit on convergence, the PATIENCE bail-out, the
142
+ per-iteration "is this round done?" check, the final "are we
143
+ finished?" check. Write them down.
144
+
145
+ 2. **Classify each gate A or B** using the dividing question. If it's
146
+ compound, split it (above) and classify the parts.
147
+
148
+ 3. **For every Type-A gate:** Claude may self-judge. Prefer an
149
+ *external* check where one exists (read an exit code, stat a file,
150
+ read a counter) over an LLM "I believe it finished" — Type-A is
151
+ exactly the place where a cheap deterministic check beats a vibe.
152
+
153
+ 4. **For every Type-B gate:** route it per `reviewer-routing.md`. The default
154
+ fresh `spawn_agent` Codex review is `same-family` and therefore
155
+ `provisional`; use a Claude/Gemini overlay or deterministic verifier when
156
+ accepted assurance is required. Pass file paths, not summaries
157
+ (`reviewer-independence.md`). The loop may continue or stop on the recorded
158
+ reviewer verdict, but the artifact must preserve its assurance class
159
+ (`integration-contract.md` §3).
160
+
161
+ 5. **State the provenance in the SKILL.** One line: "STOP gate = Type-B,
162
+ base Codex = provisional; overlay/deterministic route = accepted." A reviewer
163
+ of the SKILL should be able to find the assurance class for each terminating
164
+ condition.
165
+
166
+ 6. **Refuse the anti-pattern:** a loop whose continue/stop decision reads
167
+ an LLM-produced quality verdict that the **same** model family
168
+ (Claude) produced. That is self-acquittal regardless of how the
169
+ prompt is phrased.
170
+
171
+ Rule of thumb: **if removing the recorded reviewer would silently upgrade a
172
+ quality decision to accepted, the loop is self-acquitting.** A base Codex
173
+ Type-B loop may terminate at provisional assurance; an accepted loop is
174
+ designed so that removing its overlay/deterministic verdict leaves it unable to
175
+ claim accepted assurance.
176
+
177
+ ## ARIS loops mapped to the taxonomy
178
+
179
+ The codebase **already** follows this rule. This section makes the
180
+ implicit pattern explicit and operational for the next loop someone
181
+ writes.
182
+
183
+ | Loop | Headline stop gate | Type | Who acquits | Status |
184
+ |---|---|---|---|---|
185
+ | `/dse-loop` | objective metric converged / TIMEOUT / PATIENCE | A | benchmark harness emits the number; Claude reads & compares to budget | ✅ safe same-model |
186
+ | `/experiment-bridge` auto-debug | "did it run / did it converge" (exit 0, no NaN, training started) | A | exit codes, log parse | ✅ safe same-model |
187
+ | `/run-experiment`, `/experiment-queue` retry | job finished / OOM-retry exhausted / N jobs done | A | scheduler + exit codes | ✅ safe same-model |
188
+ | `/auto-review-loop` | score >= 6 AND verdict "ready", per round | B | fresh **Codex** score & verdict | ⚠ provisional in base |
189
+ | `/auto-paper-improvement-loop` | "review satisfied" (2 rounds) | B | fresh **Codex** review | ⚠ provisional in base |
190
+ | `/result-to-claim` | `claim_supported ∈ {yes,partial,no}` + `integrity_status` | B | fresh **Codex** result judgment | ⚠ provisional in base |
191
+ | `/kill-argument` | rejection memo → defense, residual issues | B | two fresh **Codex** threads | ⚠ provisional in base |
192
+ | `/proof-checker` | each gap closed, per round | B | fresh **Codex** re-review | ⚠ provisional in base |
193
+ | `/experiment-audit` | integrity verdict (fake GT, normalization fraud) | B | fresh **Codex** audit | ⚠ provisional in base |
194
+ | `/paper-claim-audit` | every number matches result files | B | fresh **Codex** reviewer | ⚠ provisional in base |
195
+ | `/citation-audit` | every entry real & in-context | B | fresh **Codex** reviewer | ⚠ provisional in base |
196
+ | `/paper-writing` Phase 6 (submission) | `verify_paper_audits.sh` exit 0 | A (gate) wrapping B (the audits) | verifier aggregates provenance JSON | ✅ accepted only with overlay/deterministic audits |
197
+
198
+ > 📌 The `/auto-review-loop` row reflects the skill's stop logic: `score >= 6`
199
+ > AND verdict contains "ready"/"almost", evaluated each round. (Its `Constants`
200
+ > block previously stated this with `OR` and a stale verdict vocabulary — an
201
+ > internal inconsistency now reconciled to the `AND` form the Phase-E stop
202
+ > check actually uses, in `auto-review-loop` and its `-llm`/`-minimax`
203
+ > siblings.) The fresh Codex score+verdict is a Type-B review with
204
+ > `provisional` assurance; its classification is unchanged.
205
+
206
+ Two patterns to notice:
207
+
208
+ - **The execution loops (dse, auto-debug, queue) are Type-A all the way
209
+ down** — "did it run / did it converge" is a fact a harness reports.
210
+ They are *correctly* allowed to self-acquit, because there is nothing
211
+ of merit being judged: a converged number from a real simulator is an
212
+ observation, not an opinion. (The moment someone adds *"...and the
213
+ result is good enough to claim"* to a dse stop condition, that clause
214
+ is Type-B and must route out — see the dse caveat below.)
215
+
216
+ - **Every quality/correctness loop records its reviewer route.** Base Codex
217
+ routes are provisional; overlays and deterministic verifiers provide accepted
218
+ assurance. This makes the distinction operational for the next author.
219
+
220
+ ### The dse-loop caveat (objective ≠ acceptance)
221
+
222
+ `/dse-loop` optimizes a metric the benchmark *itself* produces (cycles,
223
+ area, coverage). "Config B beats config A on the harness's own number"
224
+ is Type-A — a parser, not Claude, owns it. But two adjacent judgments are
225
+ Type-B and must NOT be folded into the loop's self-acquittal:
226
+
227
+ - "this config is **good enough to ship/publish**" — sufficiency verdict.
228
+ - "the benchmark/metric **is the right thing to optimize** / the result
229
+ **generalizes**" — correctness-of-framing verdict.
230
+
231
+ So dse may self-terminate on *"best config found within budget"* (A), but
232
+ the claim *"and this is a publishable result"* leaves the loop and goes
233
+ through `/result-to-claim` (B). Driving the search is in-family; acquitting
234
+ the science is not.
235
+
236
+ ## Tie to fan-out: breadth is same-family; the jury is not
237
+
238
+ `fan-out-pattern.md` describes skill-layer fan-out — spawning multiple
239
+ agents for breadth (parallel search branches, per-section drafting,
240
+ per-entry citation checks). Fan-out interacts with this contract in
241
+ exactly one dangerous way:
242
+
243
+ **Same-family breadth is fine for Type-A coverage. It is NEVER a Type-B
244
+ jury.**
245
+
246
+ - ✅ Ten Claude branches each *attempting* a different search query, then
247
+ unioning hits — Type-A coverage (did we look broadly?). Self-judged
248
+ fine.
249
+ - ✅ N Claudes each drafting a section, a Type-A "all sections drafted"
250
+ completion check.
251
+ - ❌ N Claude reviewers each scoring the paper, then taking the
252
+ **majority/average as the accept verdict.** This *feels* like a jury
253
+ — independent voters! — but it is correlated same-family blindness
254
+ wearing a jury costume. N agreeing Claudes share the same training
255
+ priors and the same blind spots; their agreement is evidence of
256
+ shared bias, not of correctness. A Type-B verdict needs a **different
257
+ family**, not a *bigger N of the same one*.
258
+
259
+ > **Known failure mode:** "We ran the review 5× and all 5 said accept,
260
+ > so it's robust." Five draws from one distribution is one opinion with
261
+ > error bars, not five opinions. Family diversity matters for *accepted*
262
+ > assurance, not sample count. Fan-out scales breadth and Type-A coverage; it
263
+ > can never promote a base same-family Type-B verdict beyond provisional.
264
+
265
+ Fan-out and this contract compose cleanly: fan-out (same family) does the broad
266
+ *driving*; the loop always funnels into one classified Type-B verdict. Breadth
267
+ degrades gracefully across runtimes (fewer parallel agents = slower, not
268
+ unsafe); the assurance class does not get silently upgraded — base Codex stays
269
+ provisional and overlay/deterministic routes are accepted.
270
+
271
+ ## Required components (for a loop to claim same-family-safe)
272
+
273
+ A loop is same-family-safe iff **all** hold:
274
+
275
+ 1. **Every stop/accept gate is classified** A or B in the SKILL (compound
276
+ gates split).
277
+ 2. **Every Type-B gate records its reviewer route** per `reviewer-routing.md`;
278
+ the loop's continue/stop reads that verdict, not an executor re-judgment of
279
+ it. Base Codex is provisional; overlay/deterministic routes are accepted.
280
+ 3. **The verdict is an artifact** (`integration-contract.md` §3) — a JSON/file
281
+ a third party can inspect to confirm its assurance class and provenance.
282
+ 4. **No same-family majority is treated as accepted Type-B assurance** — fan-out
283
+ breadth never substitutes for an overlay/deterministic acceptance route.
284
+ 5. **Type-A self-judgment prefers an external check** (exit code, stat,
285
+ counter) over an LLM "I think it's done" wherever one exists.
286
+
287
+ If any fails, the loop can self-acquit and is **not** same-family-safe —
288
+ regardless of how many rounds it runs or how confident it sounds.
289
+
290
+ ## Anti-patterns to refuse in review
291
+
292
+ - **"The loop decides when it's good enough."** Good-enough is Type-B;
293
+ the loop may decide when it's *done running*, not when it's *good*.
294
+ - **"We re-review until it passes."** Fine — but *who* says it passed? If
295
+ the answer is Claude, the loop is self-acquitting.
296
+ - **"N agreeing agents = consensus."** Same-family agreement is correlated
297
+ blindness, not a jury (see fan-out section).
298
+ - **"It converged, so it's correct."** Convergence is Type-A
299
+ (it stopped moving); correctness/sufficiency is Type-B.
300
+ - **"Score >= 6, so stop."** Only safe if a *different family* assigned
301
+ the score. Claude scoring Claude and stopping at 6 is self-acquittal.
302
+ - **`/loop` wrapping an internal semantic loop.** External cadence
303
+ (`/loop`) is additive only for external-world waits (GPU done?
304
+ overnight heartbeat?). Wrapping ARIS's internal semantic loops with a
305
+ timer breaks `threadId` continuity and re-runs Type-B verdicts on a
306
+ clock instead of on the reviewer's turn — noise at best, a corrupted
307
+ acquittal at worst. Keep external cadence outside the acceptance gate.
308
+
309
+ ## Epistemic status of a PASS
310
+
311
+ A cross-model PASS is a **heterogeneous second opinion**, not external ground truth. Its
312
+ value is specific and bounded: a reviewer from a different model family breaks *correlated*
313
+ blind spots — the executor's own failure modes it cannot see in itself — so a PASS means
314
+ "a differently-built model, reading the artifact cold, did not find the flaw the author
315
+ would miss." It does **not** mean the work is correct, novel, publishable, or that a venue
316
+ will accept it. Same-family review (Claude judging Claude) does not even clear that bar,
317
+ which is why the jury must be cross-family.
318
+
319
+ Treat a PASS as the strongest *automatable* heterogeneous quality check this framework has, then keep the human in the loop for
320
+ what no in-framework verdict can supply: updated literature, venue taste, and ground truth.
321
+ A green gate lowers risk; it does not transfer accountability.
322
+
323
+ ## See Also
324
+
325
+ - `reviewer-independence.md` — the single-shot form: executor never
326
+ filters the reviewer's inputs. Type-B gates inherit this in full.
327
+ - `experiment-integrity.md` — the experiment form: the model that writes
328
+ experiment code must not judge its integrity. `/experiment-audit`'s
329
+ Type-B verdict is the loop instance of this rule.
330
+ - `reviewer-routing.md` — where Type-B gates send their verdict (codex
331
+ default, oracle-pro on request, manual only with a verified non-Claude
332
+ target).
333
+ - `fan-out-pattern.md` — breadth via same-family spawn; this doc's
334
+ fan-out section is the guardrail that keeps breadth out of the jury box.
335
+ - `integration-contract.md` §3 — the cross-model verdict must leave an
336
+ inspectable artifact.
@@ -0,0 +1,139 @@
1
+ # Assurance Contract
2
+
3
+ ARIS audits emit machine-readable verdicts. The `assurance` axis decides whether those verdicts are advisory in draft mode or load-bearing gates in submission mode.
4
+
5
+ This contract is referenced by `paper-writing`, `paper-claim-audit`, `citation-audit`, `proof-checker`, and the external verifier (canonical name `verify_paper_audits.sh`; callers resolve the actual path via `integration-contract.md` §2).
6
+
7
+ ## Why a separate axis from `effort`
8
+
9
+ `effort` controls depth and cost. `assurance` controls audit strictness.
10
+
11
+ | Axis | Controls | Default |
12
+ |------|----------|---------|
13
+ | `effort` | depth/cost, papers, rounds, ideation | `balanced` |
14
+ | `assurance` | audit strictness, silent-skip allowed vs verdict required | derived from `effort` |
15
+
16
+ Override either independently. For example, `— effort: balanced, assurance: submission` means normal depth but every audit must emit a verdict before finalization.
17
+
18
+ ## Assurance Levels
19
+
20
+ ### `draft`
21
+
22
+ - Audits run only if their content detector matches.
23
+ - Silent skip is allowed.
24
+ - `paper-writing` can produce a final report without the submission verifier.
25
+ - Use for rapid iteration and early drafts.
26
+
27
+ ### `submission`
28
+
29
+ - All mandatory audits must emit a verdict.
30
+ - Silent skip is forbidden.
31
+ - `paper-writing` runs `verify_paper_audits.sh` (resolved per `integration-contract.md` §2).
32
+ - A non-zero verifier exit blocks the Final Report.
33
+ - The Final Report marks `submission-ready: yes/no` from verifier output.
34
+
35
+ ## Default Mapping
36
+
37
+ | `effort` | implied `assurance` |
38
+ |----------|---------------------|
39
+ | `lite` | `draft` |
40
+ | `balanced` | `draft` |
41
+ | `max` | `submission` |
42
+ | `beast` | `submission` |
43
+
44
+ Users who want strict audits at lower depth should pass `— assurance: submission`.
45
+
46
+ ## Verdict State Machine
47
+
48
+ Every mandatory audit must emit exactly one of these verdicts:
49
+
50
+ | Verdict | Meaning | Submission-blocking? |
51
+ |---------|---------|----------------------|
52
+ | `PASS` | All checks passed | No |
53
+ | `WARN` | Issues found, none disqualifying | No |
54
+ | `FAIL` | Disqualifying issues found | Yes |
55
+ | `NOT_APPLICABLE` | Detector negative; nothing to audit | No |
56
+ | `BLOCKED` | Audit should apply but prerequisites are missing | Yes |
57
+ | `ERROR` | Audit invocation failed | Yes |
58
+
59
+ `NOT_APPLICABLE` means the audit phase ran and wrote an artifact documenting that there was nothing to verify. It is not the same as a silent skip.
60
+
61
+ `BLOCKED` means the audit should have run but could not, such as numeric claims with no raw result files.
62
+
63
+ ## Required Audit Artifact Schema
64
+
65
+ Every mandatory audit must write a JSON artifact, and may also write a Markdown sibling:
66
+
67
+ ```json
68
+ {
69
+ "audit_skill": "paper-claim-audit",
70
+ "verdict": "PASS",
71
+ "reason_code": "all_numbers_match",
72
+ "summary": "Verified 23 numeric claims against 4 result files; no mismatches.",
73
+ "audited_input_hashes": {
74
+ "main.tex": "sha256:a3f8...",
75
+ "sections/5_evidence.tex": "sha256:b2d1..."
76
+ },
77
+ "trace_path": ".aris/traces/paper-claim-audit/2026-04-21_run01/",
78
+ "agent_id": "019dae73-fc12-4ab8-...",
79
+ "executor_model": "codex-gpt-5.6-sol",
80
+ "executor_family": "openai",
81
+ "reviewer_model": "gpt-5.6-sol",
82
+ "reviewer_family": "openai",
83
+ "review_independence": "same-family",
84
+ "acceptance_status": "provisional",
85
+ "reviewer_reasoning": "xhigh",
86
+ "generated_at": "2026-04-21T14:23:01Z",
87
+ "details": {}
88
+ }
89
+ ```
90
+
91
+ Field rules:
92
+
93
+ - `audit_skill` identifies the child audit skill.
94
+ - `verdict` is one of the six allowed verdicts.
95
+ - `audited_input_hashes` contains SHA256 hashes for every file consumed by the audit.
96
+ - In-paper paths are relative to the paper directory passed to the verifier.
97
+ - Files outside the paper directory may use absolute paths.
98
+ - `trace_path` points to the saved reviewer trace.
99
+ - `agent_id` is the Codex reviewer id when a reviewer agent was used;
100
+ `thread_id` remains accepted for MCP overlays. At least one is required.
101
+ - `reviewer_model` and `reviewer_reasoning` document the reviewer route.
102
+ - `review_independence` is `same-family`, `cross-family`, or `deterministic`.
103
+ `deterministic` is valid ONLY for what a process can actually decide
104
+ (compilation, schema validity, hash freshness, test suites) — the audit
105
+ aggregator REJECTS a deterministic label on the four semantic paper audits
106
+ (proof / claims / citations / attack); only a cross-family model review can
107
+ accept those.
108
+ - `acceptance_status` is `provisional` for the base Codex route and `accepted`
109
+ for a cross-family overlay or deterministic verifier.
110
+ - `generated_at` is UTC ISO-8601.
111
+
112
+ ## Verifier Contract
113
+
114
+ `verify_paper_audits.sh <paper-dir>` (canonical name; resolved per `integration-contract.md` §2) is the single source of truth for mandatory audit completeness. It must:
115
+
116
+ 1. Locate expected audit artifacts.
117
+ 2. Validate JSON required fields.
118
+ 3. Verify each verdict is allowed.
119
+ 4. Recompute `audited_input_hashes` and flag stale artifacts.
120
+ 5. Verify `trace_path` exists when required.
121
+ 6. Exit 0 only when all mandatory audits are green.
122
+
123
+ The report emits `overall_assurance: blocked | provisional | accepted`.
124
+ Provisional remains exit 0 so the Final Report can be generated, but the report
125
+ must say `submission-ready: provisional`, never `yes`.
126
+
127
+ At `assurance: submission`, `paper-writing` must treat verifier exit 1 as blocking.
128
+
129
+ ## Subskill Contract
130
+
131
+ Child audit skills follow this contract:
132
+
133
+ - Always emit a verdict artifact, even on detector-negative or error paths.
134
+ - Never decide final submission readiness themselves.
135
+ - The parent skill and verifier decide whether a verdict blocks finalization.
136
+
137
+ ## Backward Compatibility
138
+
139
+ The default `effort: balanced` maps to `assurance: draft`, preserving normal draft behavior. `effort: max` and `effort: beast` imply `assurance: submission` unless the user explicitly overrides with `assurance: draft`.
@@ -0,0 +1,84 @@
1
+ # Capture Anti-patterns (anti-self-poisoning)
2
+
3
+ > **Codex mirror adaptation (normative).** Resolve helpers through the Codex
4
+ > manifest and `$ARIS_REPO/tools/`. A clean same-family Codex review may drive a
5
+ > capture decision but is recorded as provisional; only a cross-family overlay
6
+ > or deterministic verifier produces accepted authorization.
7
+
8
+ When ARIS captures *durable* knowledge — a research-wiki idea / claim / experiment
9
+ node, a `/meta-optimize` SKILL.md proposal — it must not store **operational
10
+ noise** that later hardens into a self-cited falsehood. This is the failure mode
11
+ Hermes's self-improvement loop hit and patched with a hand-written "Do NOT
12
+ capture" list: negative tool-capability claims that *"harden into refusals the
13
+ agent cites against itself for months after the actual problem was fixed."*
14
+ ARIS's research-wiki "failed ideas → anti-repeat memory" is the GOOD inverse (a
15
+ class-level *research* finding worth remembering); this is the blocklist for the
16
+ BAD kind (transient *operational* state masquerading as a durable fact).
17
+
18
+ ## The four anti-patterns — do NOT capture
19
+
20
+ | class | example (do NOT store) | store INSTEAD |
21
+ |-------|------------------------|---------------|
22
+ | **env-specific failure** | "pip failed: No module named torch", "command not found" | the fix / the missing dependency / the correct config |
23
+ | **transient error** | "got a 429", "CUDA OOM", "connection refused" | nothing — it self-resolves; or the retry/backoff that worked |
24
+ | **negative tool-capability claim** | "codex can't handle long files", "gemini is broken", "don't use oracle" | the workaround, or "needs flag X" — never "tool can't do Y" |
25
+ | **single-instance narrative** | "in run 47 the loss spiked at step 300" | only the *class-level* rule it implies, if any ("LR > 3e-4 diverges on this model") |
26
+
27
+ The cardinal rule: **store *how to fix* / *what config is missing* / *the
28
+ workaround*, never *"X can't do Y"*.** A negative capability claim about your own
29
+ tooling is the most dangerous capture — it gets loaded into every future session
30
+ and the agent cites it against itself long after the real cause is gone.
31
+
32
+ ## Mechanical vs judgment
33
+
34
+ - **Mechanical** (deterministic, `tools/capture_filter.py`): the unambiguous
35
+ classes — raw error output (`No module named`, `command not found`,
36
+ `ModuleNotFoundError`, `Permission denied`), transient errors (rate-limit / OOM
37
+ / network), and explicitly-broken-tool phrasing anchored on ARIS infrastructure
38
+ nouns (codex / gemini / oracle / the reviewer / the MCP / the CLI …).
39
+ - **Judgment** (this doc): the single-instance-narrative class, and any operational
40
+ note dressed up as a finding. The agent applies this when deciding what to persist.
41
+
42
+ The mechanical filter is **deliberately conservative**: it does NOT flag
43
+ legitimate *research* findings about a model/method ("the model can't generalize
44
+ to OOD", "our method fails on long sequences") — it targets ARIS's own *tooling*
45
+ being declared broken, and raw error text. False negatives are fine (the jury
46
+ still judges); a flagged note just goes to manual review / gets rewritten.
47
+
48
+ ## The asymmetry (acceptance-gate.md)
49
+
50
+ This filter may **REJECT a capture same-model** — it is a mechanical safety screen,
51
+ low risk, and same-model is always allowed to *reject*. But anything that **passes**
52
+ the filter and would become a **load-bearing** skill/claim still goes to a
53
+ **classified reviewer route** before it is trusted. Base Codex review is
54
+ provisional; only an overlay or deterministic verifier is accepted.
55
+
56
+ ## Helper
57
+
58
+ ```
59
+ from capture_filter import screen, reason_detail
60
+ screen(text) # -> [reason, ...] ([] = clean); reason ∈ {env_failure, transient_error, negative_tool_claim}
61
+ ```
62
+ ```
63
+ python3 tools/capture_filter.py <file|-> # exit 1 + reasons if anti-pattern found
64
+ ```
65
+
66
+ ## Where ARIS uses it
67
+ - **`/research-wiki`** (and `/idea-creator` Phase-3 annotations): screen an
68
+ idea/claim/experiment note before persisting it; if flagged, rewrite to the
69
+ fix or drop it — don't let operational noise become a durable node.
70
+ - **`/meta-optimize`**: screen the rationale of a proposed SKILL.md change; never
71
+ propose a change that encodes a negative tool-capability claim or a one-off
72
+ failure as a durable rule.
73
+
74
+ ## Cross-references
75
+ - `acceptance-gate.md` — the reject/accept asymmetry: same-model may reject or
76
+ record provisional progress; only an overlay/deterministic route may accept
77
+ into the load-bearing set.
78
+ - `evidence-precheck.md` / `injection-hygiene.md` — sibling deterministic
79
+ pre-gates feeding the classified reviewer route.
80
+
81
+ > Anti-pattern taxonomy adapted from NousResearch/hermes-agent's background-review
82
+ > "Do NOT capture" list (MIT). ARIS's increment: Hermes patches self-poisoning with
83
+ > more self-judged prose; ARIS adds the deterministic screen + a classified
84
+ > acceptance gate on anything that survives it.