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,916 @@
1
+ ---
2
+ name: paper-writing
3
+ description: "Workflow 3: Full paper writing pipeline that goes from a narrative report to a polished, submission-ready PDF. Use when user says \"写论文全流程\", \"write paper pipeline\", \"从报告到PDF\", \"paper writing\", or wants the complete paper generation workflow."
4
+ argument-hint: "[narrative-report-path-or-topic] [— style-ref: <source>]"
5
+ allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, Skill, mcp__codex__codex, mcp__codex__codex-reply
6
+ ---
7
+
8
+ # Workflow 3: Paper Writing Pipeline
9
+
10
+ Orchestrate a complete paper writing workflow for: **$ARGUMENTS**
11
+
12
+ ## Overview
13
+
14
+ This skill chains five sub-skills into a single automated pipeline:
15
+
16
+ ```
17
+ /paper-plan → /paper-figure → /paper-write → /paper-compile → /auto-paper-improvement-loop
18
+ (outline) (plots) (LaTeX) (build PDF) (review & polish ×2)
19
+ ```
20
+
21
+ Each phase builds on the previous one's output. The final deliverable is a polished, reviewed `paper/` directory with LaTeX source and compiled PDF.
22
+
23
+ In this hybrid pack, the pipeline itself is unchanged, but `paper-plan` and `paper-write` use Orchestra-adapted shared references for stronger story framing and prose guidance.
24
+
25
+ ## Constants
26
+
27
+ - **VENUE = `ICLR`** — Target venue. Options: `ICLR`, `NeurIPS`, `ICML`, `CVPR`, `ACL`, `AAAI`, `ACM`, `IEEE_JOURNAL` (IEEE Transactions / Letters), `IEEE_CONF` (IEEE conferences). Affects style file, page limit, citation format.
28
+ - **MAX_IMPROVEMENT_ROUNDS = 2** — Number of review→fix→recompile rounds in the improvement loop.
29
+ - **REVIEWER_MODEL = `gpt-5.6-sol`** — Model used via Codex MCP for plan review, figure review, writing review, and improvement loop.
30
+ - **AUTO_PROCEED = true** — Auto-continue between phases. Set `false` to pause and wait for user approval after each phase.
31
+ - **HUMAN_CHECKPOINT = false** — When `true`, the improvement loop (Phase 5) pauses after each round's review to let you see the score and provide custom modification instructions. When `false` (default), the loop runs fully autonomously. Passed through to `/auto-paper-improvement-loop`.
32
+ - **ILLUSTRATION = `figurespec`** — Architecture/illustration generator for Phase 2b: `figurespec` (default, deterministic JSON→SVG via `/figure-spec`, best for architecture/workflow/topology), `gemini` (AI-generated via `/paper-illustration`, best for qualitative method illustrations; needs `GEMINI_API_KEY`), `codex-image2` (AI-generated via `/paper-illustration-image2` through the local Codex native image bridge — no external API key, uses your ChatGPT Plus/Pro quota; experimental), `mermaid` (Mermaid syntax via `/mermaid-diagram`, free, best for flowcharts), or `false` (skip Phase 2b, manual only).
33
+
34
+ > Override inline: `/paper-writing "NARRATIVE_REPORT.md" — venue: NeurIPS, illustration: gemini, human checkpoint: true`
35
+ > IEEE example: `/paper-writing "NARRATIVE_REPORT.md" — venue: IEEE_JOURNAL`
36
+
37
+ ## Inputs
38
+
39
+ This pipeline accepts one of:
40
+
41
+ 1. **`NARRATIVE_REPORT.md`** (best) — structured research narrative with claims, experiments, results, figures
42
+ 2. **Research direction + experiment results** — the skill will help draft the narrative first
43
+ 3. **Existing `PAPER_PLAN.md`** — skip Phase 1, start from **Phase 1.5** (the contract negotiation still runs; only resuming a genuine pre-1.5 legacy run may skip it, and then Phase 6.0's row 0 records "no contract")
44
+
45
+ The more detailed the input (especially figure descriptions and quantitative results), the better the output.
46
+
47
+ ## Optional: Style reference (`— style-ref: <source>`, opt-in)
48
+
49
+ Lets the user steer **structural** style (section ordering, theorem density, sentence cadence, figure density, bibliography style) of the generated paper toward a reference paper they admire. **Default OFF — when the user does not pass `— style-ref`, do nothing differently from before.**
50
+
51
+ When `— style-ref: <source>` is in `$ARGUMENTS`, run the helper FIRST, before Phase 1 (paper-plan):
52
+
53
+ ```bash
54
+ # Resolve $STYLE_HELPER via the canonical strict-safe chain (see
55
+ # shared-references/integration-contract.md §2). Policy A — gate:
56
+ # unresolved helper means --style-ref cannot be satisfied, so abort.
57
+ cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
58
+ if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
59
+ ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
60
+ fi
61
+ if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
62
+ ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
63
+ fi
64
+ STYLE_HELPER=".aris/tools/extract_paper_style.py"
65
+ [ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
66
+ [ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
67
+ [ -f "$STYLE_HELPER" ] || {
68
+ echo "ERROR: extract_paper_style.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
69
+ echo " Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
70
+ echo " --style-ref cannot be satisfied; aborting." >&2
71
+ exit 1
72
+ }
73
+ STYLE_STATUS=0
74
+ CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
75
+ case "$STYLE_STATUS" in
76
+ 0) ;; # share $CACHE/style_profile.md with downstream WRITER phases only
77
+ 2) echo "warning: style-ref skipped (missing optional dep)" >&2 ;;
78
+ 3) echo "error: --style-ref source failed; aborting pipeline" >&2 ; exit 1 ;;
79
+ *) echo "error: helper failed unexpectedly; aborting pipeline" >&2 ; exit 1 ;;
80
+ esac
81
+ ```
82
+
83
+ Then forward `— style-ref: <source>` only to the **writer-side** sub-skills:
84
+ - `/paper-plan` (Phase 1) — outline structure
85
+ - `/paper-write` (Phase 3) — section-by-section prose
86
+ - `/paper-illustration` (Phase 2b) — figure structural matching, optional
87
+
88
+ Sources accepted: local TeX dir / file, local PDF, arXiv id, http(s) URL. Overleaf URLs/IDs are rejected — clone via `/overleaf-sync setup <id>` first and pass the local clone path.
89
+
90
+ **Strict rules** (full contract in `tools/extract_paper_style.py` docstring):
91
+
92
+ - Use `style_profile.md` as **structural** guidance only. Match section-count tendency, theorem density, caption-length distribution, sentence cadence, math display ratio, citation style.
93
+ - **Never copy prose, claims, examples, or terminology** from anything reachable through the cache.
94
+ - **Never pass `— style-ref` (or the cache contents) to reviewer / auditor sub-skills** — Phase 4.5 (`/proof-checker`), Phase 4.7 / 5.5 (`/paper-claim-audit`), Phase 5 (`/auto-paper-improvement-loop` reviewer), Phase 5.8 (`/citation-audit`) MUST run on the artifact alone. Cross-model review independence (`../shared-references/reviewer-independence.md`).
95
+
96
+ ## Pipeline
97
+
98
+ ### Phase 0: Assurance Setup
99
+
100
+ Resolve the active `assurance` level and persist it so Phase 6's external
101
+ verifier reads the same value. **Run once at pipeline start, before Phase 1.**
102
+
103
+ **Resolution order** (first match wins):
104
+
105
+ 1. Explicit `— assurance: draft | submission` in `$ARGUMENTS`
106
+ 2. Derived from `— effort:`
107
+ - `lite` / `balanced` → `draft` (default, **zero change from current behavior**)
108
+ - `max` / `beast` → `submission`
109
+ 3. Default: `draft`
110
+
111
+ **Action:**
112
+
113
+ ```bash
114
+ mkdir -p paper/.aris
115
+ echo "<resolved-level>" > paper/.aris/assurance.txt # draft or submission
116
+ ```
117
+
118
+ **What each level does downstream:**
119
+
120
+ - **`draft`** — Existing behavior. Audits run only when their content detector
121
+ matches (Phase 4.5 / 4.7 / 5.5 / 5.8). Missing artifacts are non-blocking.
122
+ Silent-skip allowed.
123
+ - **`submission`** — The four mandatory audits (proof-checker,
124
+ paper-claim-audit, citation-audit, kill-argument) are treated as load-bearing gates. Each
125
+ sub-audit must emit its JSON artifact (PASS / WARN / FAIL / NOT_APPLICABLE /
126
+ BLOCKED / ERROR) — never silent-skip. Phase 6 runs
127
+ `verify_paper_audits.sh` (canonical name; resolved per
128
+ [`shared-references/integration-contract.md`](../shared-references/integration-contract.md) §2);
129
+ a non-zero exit blocks the Final Report.
130
+
131
+ **Escape hatch:** a user wanting the old "beast = depth-only, no audit gate"
132
+ can pass `— effort: beast, assurance: draft` explicitly. Legal but
133
+ discouraged for actual submissions. See
134
+ `shared-references/assurance-contract.md` for the full contract.
135
+
136
+ **Announce the resolved level in-line before Phase 1:**
137
+
138
+ ```
139
+ 📋 Assurance: <level> (derived from effort: <effort>)
140
+ <either "current behavior, no audit gate" OR "mandatory audits gated by verify_paper_audits.sh (resolved per integration-contract §2)">
141
+ ```
142
+
143
+ ### Phase 1: Paper Plan
144
+
145
+ Invoke `/paper-plan` to create the structural outline:
146
+
147
+ ```
148
+ /paper-plan "$ARGUMENTS"
149
+ ```
150
+
151
+ If `— style-ref: <source>` was passed in `$ARGUMENTS` and the helper succeeded above, append `— style-ref: <source>` to the invocation: `/paper-plan "<topic> — style-ref: <source>"`. (Writer-side phase — forwarding is allowed; reviewer/auditor phases below must not see the style ref.)
152
+
153
+ **What this does:**
154
+ - Parse NARRATIVE_REPORT.md for claims, evidence, and figure descriptions
155
+ - Build a **Claims-Evidence Matrix** — every claim maps to evidence, every experiment supports a claim
156
+ - Design section structure (5-8 sections depending on paper type)
157
+ - Plan figure/table placement with data sources
158
+ - Scaffold citation structure
159
+ - GPT-5.6-Sol reviews the plan for completeness
160
+
161
+ **Output:** `PAPER_PLAN.md` with section plan, figure plan, citation scaffolding.
162
+
163
+ **Checkpoint:** Present the plan summary to the user.
164
+
165
+ ```
166
+ 📐 Paper plan complete:
167
+ - Title: [proposed title]
168
+ - Sections: [N] ([list])
169
+ - Figures: [N] auto-generated + [M] manual
170
+ - Target: [VENUE], [PAGE_LIMIT] pages
171
+
172
+ Shall I proceed with figure generation?
173
+ ```
174
+
175
+ - **User approves** (or AUTO_PROCEED=true) → proceed to Phase 1.5.
176
+ - **User requests changes** → adjust plan and re-present.
177
+
178
+ ### Phase 1.5: Negotiated Acceptance Contract (before any writing)
179
+
180
+ The plan says what the paper will contain; the CONTRACT says what "done" means
181
+ — a checklist of testable assertions, negotiated ADVERSARIALLY before the first
182
+ section is written, and graded at the end. (The plan is the boundary; the
183
+ contract is what gets graded.)
184
+
185
+ 1. **Executor proposes.** From `PAPER_PLAN.md` + `NARRATIVE_REPORT.md`, draft
186
+ `PAPER_ACCEPTANCE_CONTRACT.md`: **10–20 testable assertions** covering —
187
+ every headline claim has a named evidence source (file/table); every
188
+ number in the abstract traces to a results file; scope qualifiers the title
189
+ /abstract must carry; figures that must exist and what each must show;
190
+ section-level completeness (e.g. "limitations names ≥2 real limitations,
191
+ not hedges"); venue constraints (page limit, anonymization). Each assertion
192
+ must be CHECKABLE by reading the final PDF + results files — no vibes
193
+ ("writing is clear" is not an assertion; "every acronym is defined at first
194
+ use" is). Fewer than ~10 assertions and the gate rubber-stamps; beyond ~20
195
+ the negotiation stalls on trivia.
196
+
197
+ 2. **Reviewer pushes back** (fresh thread — the negotiation is adversarial):
198
+
199
+ ```
200
+ mcp__codex__codex:
201
+ model: gpt-5.6-sol
202
+ config: {"model_reasoning_effort": "xhigh"}
203
+ prompt: |
204
+ You are negotiating the acceptance contract for a paper BEFORE it is
205
+ written. Read these files directly:
206
+ - Plan: <abs path>/PAPER_PLAN.md
207
+ - Proposed contract: <abs path>/PAPER_ACCEPTANCE_CONTRACT.md
208
+ - Evidence inventory: <abs path>/NARRATIVE_REPORT.md (+ results/ paths)
209
+
210
+ Push back on the contract, not the plan: (a) assertions that are
211
+ untestable or vibes — demand a checkable rewrite; (b) missing
212
+ assertions — claims in the plan that no assertion covers, numbers with
213
+ no traceability assertion, foreseeable overclaim risks with no scope
214
+ assertion; (c) assertions the evidence inventory cannot possibly
215
+ satisfy — flag now, not after writing. End with exactly one line:
216
+ CONTRACT_ACCEPTED: yes or CONTRACT_ACCEPTED: no
217
+ followed by your numbered revision demands if no.
218
+
219
+ === SCOPE LIMITS (these bound what you PROPOSE, never what you look for) ===
220
+ Report anything that is actually wrong here — including a rare-looking case, if
221
+ this repo actually produces it. Then keep the fix in scope:
222
+ 1. This is a RESEARCH-WORKFLOW tool, not a security paper. Verification is
223
+ welcome; over-defense is not. Assume a cooperating operator on their own
224
+ machine — a malicious local user is NOT in the threat model.
225
+ 2. Do NOT propose SHA / hash / content-fingerprint / digest-binding schemes.
226
+ Reporting a real defect in hashing code that already exists is fine.
227
+ 3. NO speculative machinery: do not add feature flags, migration frameworks,
228
+ compat layers, wrappers, pins, or similar mechanisms unless evidence shows
229
+ a current repo defect they fix or an explicit existing invariant they must
230
+ preserve. "Load-bearing", "compatibility", and "not scaffolding" are labels,
231
+ not evidence. Point to the failing path/artifact or invariant, and check the
232
+ proposal's factual premises, such as whether a named package version exists.
233
+ 4. NO corner-case obsession: exotic encodings, symlink races, RTL text and
234
+ millisecond races are out of scope unless you can show the case arises here.
235
+ 5. Where a rubric or checklist is genuinely needed, do not over-mechanize
236
+ judgement. A clear sentence a human reads beats a scored table nobody
237
+ maintains.
238
+ Exception: code that runs remote commands, starts a network service, or installs
239
+ an MCP server runs on the user's machine with their credentials — trust-boundary
240
+ findings there are in scope and the default is strict.
241
+ Say plainly when something is correct. Do not manufacture findings.
242
+ ```
243
+
244
+ A reply with a missing or malformed `CONTRACT_ACCEPTED:` line is treated as
245
+ `no`; request a corrected verdict via `codex-reply` — that correction
246
+ exchange does not consume a negotiation round.
247
+
248
+ 3. **Iterate.** On `no`, revise the contract per the demands and resubmit via
249
+ `mcp__codex__codex-reply` (same thread — the negotiation is one
250
+ conversation). **Max 3 rounds.**
251
+
252
+ 4. **Fallback — never stall the pipeline.** If round 3 still ends in `no`:
253
+ record the unresolved demands verbatim in a "## Disputed" section of the
254
+ contract and mark it `status: contested`. A contested contract is precisely
255
+ the "insert a human when the CONTRACT is wrong" trigger, so it OVERRIDES
256
+ `AUTO_PROCEED` for this one decision: pause and present the dispute for a
257
+ human tie-break. If no human responds (unattended/overnight run), proceed —
258
+ but a contested contract caps the outcome: Phase 6.0 gates on the UNDISPUTED
259
+ assertions and the Final Report must set `Submission-ready: no` with the
260
+ dispute reproduced verbatim; the tie-break happens when the human returns.
261
+
262
+ **Output:** `PAPER_ACCEPTANCE_CONTRACT.md` (`status: accepted | contested`,
263
+ round count, reviewer thread id). The contract is FROZEN once accepted —
264
+ Phases 2–5 implement against it; they do not edit it. If writing reveals an
265
+ assertion is genuinely wrong (not merely inconvenient), that is a contract
266
+ question: surface it at a checkpoint, don't silently rewrite.
267
+
268
+ **Boundary:** `/paper-claim-audit` (Phases 4.7, 5.5) stays zero-context — the
269
+ contract is a WRITER-side gate and is never passed to the claim auditor (its
270
+ independence is the point; two different nets).
271
+
272
+ ### Phase 2: Figure Generation
273
+
274
+ If `— style-ref: <source>` was passed in `$ARGUMENTS` and the helper succeeded above, append `— style-ref: <source>` to every writer-side sub-skill invocation in this pipeline (Phases 1, 2b, 3, 5). Do **not** append it to reviewer/auditor invocations (Phases 4.5, 4.7, 5.5, 5.8).
275
+
276
+ Invoke `/paper-figure` to generate data-driven plots and tables:
277
+
278
+ ```
279
+ /paper-figure "PAPER_PLAN.md"
280
+ ```
281
+
282
+ **What this does:**
283
+ - Read figure plan from PAPER_PLAN.md
284
+ - Generate matplotlib/seaborn plots from JSON/CSV data
285
+ - Generate LaTeX comparison tables
286
+ - Create `figures/latex_includes.tex` for easy insertion
287
+ - GPT-5.6-Sol reviews figure quality and captions
288
+
289
+ **Output:** `figures/` directory with PDFs, generation scripts, and LaTeX snippets.
290
+
291
+ > **Scope:** `paper-figure` covers data plots and comparison tables. Architecture diagrams, pipeline figures, and method illustrations are handled in Phase 2b below.
292
+
293
+ #### Phase 2b: Architecture & Illustration Generation
294
+
295
+ **Skip this step entirely if `illustration: false`.**
296
+
297
+ If the paper plan includes architecture diagrams, pipeline figures, audit cascades, or method illustrations, invoke the appropriate generator based on the `illustration` parameter:
298
+
299
+ **When `illustration: figurespec`** (default) — invoke `/figure-spec`:
300
+ ```
301
+ /figure-spec "[architecture/workflow description from PAPER_PLAN.md]"
302
+ ```
303
+ - Deterministic JSON → SVG vector rendering (editable, reproducible)
304
+ - Best for: system architecture, workflow pipelines, audit cascades, layered topology
305
+ - Output: `figures/*.svg` + `figures/*.pdf` (via rsvg-convert) + `figures/specs/*.json`
306
+ - No external API, runs fully local
307
+
308
+ If `— style-ref: <source>` was passed and the helper succeeded above, append `— style-ref: <source>` to the invocation below as well.
309
+
310
+ **When `illustration: gemini`** — invoke `/paper-illustration`:
311
+ ```
312
+ /paper-illustration "[method description from PAPER_PLAN.md or NARRATIVE_REPORT.md]"
313
+ ```
314
+ - Claude plans → Gemini optimizes → Nano Banana Pro renders → Claude reviews (score ≥ 9)
315
+ - Best for: qualitative method illustrations, natural-style diagrams, result grids
316
+ - Output: `figures/ai_generated/*.png`
317
+ - Requires `GEMINI_API_KEY` environment variable
318
+
319
+ **When `illustration: mermaid`** — invoke `/mermaid-diagram`:
320
+ ```
321
+ /mermaid-diagram "[method description from PAPER_PLAN.md]"
322
+ ```
323
+ - Generates Mermaid syntax diagrams (flowchart, sequence, class, state, etc.)
324
+ - Best for: lightweight flowcharts, state machines, simple sequence diagrams
325
+ - Output: `figures/*.mmd` + `figures/*.png`
326
+ - Free, no API key needed
327
+
328
+ **When `illustration: codex-image2`** — invoke `/paper-illustration-image2`:
329
+ ```
330
+ /paper-illustration-image2 "[method description from PAPER_PLAN.md or NARRATIVE_REPORT.md]"
331
+ ```
332
+ - Claude plans → Codex native image generation renders → Claude reviews (same multi-stage workflow as `gemini`, different renderer)
333
+ - Best for: users who want a GPT-image-style renderer without needing `GEMINI_API_KEY`; uses your existing Codex / ChatGPT Plus/Pro quota
334
+ - Output: `figures/ai_generated/figure_final.png` + `latex_include.tex` + `review_log.json` (emitted via the `/paper-illustration-image2` SKILL's `finalize` step, which delegates to the canonical `paper_illustration_image2.py` helper resolved per [integration-contract §2](../shared-references/integration-contract.md#2-canonical-helper--one-implementation-not-copy-pasted))
335
+ - **Prerequisites** (beyond ARIS's standard Claude Code + Codex coexistence): the local Codex app-server must be signed in (`codex debug app-server send-message-v2 "ping"` succeeds), and the dedicated MCP bridge must be registered — see `mcp-servers/codex-image2/README.md` for the one-time `claude mcp add` command. Delegate the preflight to `/paper-illustration-image2` (which resolves the helper via the canonical chain), or invoke the helper directly via the shim at `tools/paper_illustration_image2.py preflight --workspace .` to confirm before relying on this path.
336
+ - **Experimental**: this renderer shells through the Codex debug app-server, which Codex documents as an unstable surface. Prefer `figurespec` or `gemini` for production submission flows until `codex-image2` stabilizes.
337
+
338
+ **When `illustration: false`** — skip entirely. All non-data figures must be created manually (draw.io, Figma, TikZ) and placed in `figures/` before Phase 3.
339
+
340
+ **Choosing the right mode:**
341
+ - Formal architecture / workflow / topology figures → `figurespec` (default)
342
+ - Method concept illustrations with natural style, have `GEMINI_API_KEY` → `gemini`
343
+ - Method concept illustrations, prefer ChatGPT Plus/Pro quota over Gemini key → `codex-image2`
344
+ - Quick flowchart / state machine → `mermaid`
345
+ - Full manual control → `false`
346
+
347
+ These are complementary, not mutually exclusive: you can run multiple generators for different figures in the same paper by re-invoking with different `illustration` overrides.
348
+
349
+ **Checkpoint:** List generated vs manual figures.
350
+
351
+ ```
352
+ 📊 Figures complete:
353
+ - Data plots (auto, Phase 2): [list]
354
+ - Architecture/illustrations (auto, Phase 2b, mode=<illustration>): [list]
355
+ - Manual (need your input): [list]
356
+ - LaTeX snippets: figures/latex_includes.tex
357
+
358
+ [If manual figures needed]: Please add them to figures/ before I proceed.
359
+ [If all auto]: Shall I proceed with LaTeX writing?
360
+ ```
361
+
362
+ ### Phase 3: LaTeX Writing
363
+
364
+ Invoke `/paper-write` to generate section-by-section LaTeX:
365
+
366
+ ```
367
+ /paper-write "PAPER_PLAN.md"
368
+ ```
369
+
370
+ If `— style-ref: <source>` was passed in `$ARGUMENTS` and the helper succeeded above, append `— style-ref: <source>` to the invocation: `/paper-write "PAPER_PLAN.md — style-ref: <source>"`.
371
+
372
+ **What this does:**
373
+ - Write each section following the plan, with proper LaTeX formatting
374
+ - Insert figure/table references from `figures/latex_includes.tex`
375
+ - Build `references.bib` from citation scaffolding
376
+ - Clean stale files from previous section structures
377
+ - Automated bib cleaning (remove uncited entries)
378
+ - De-AI polish (remove "delve", "pivotal", "landscape"...)
379
+ - GPT-5.6-Sol reviews each section for quality
380
+
381
+ **Output:** `paper/` directory with `main.tex`, `sections/*.tex`, `references.bib`, `math_commands.tex`.
382
+
383
+ **Checkpoint:** Report section completion.
384
+
385
+ ```
386
+ ✍️ LaTeX writing complete:
387
+ - Sections: [N] written ([list])
388
+ - Citations: [N] unique keys in references.bib
389
+ - Stale files cleaned: [list, if any]
390
+
391
+ Shall I proceed with compilation?
392
+ ```
393
+
394
+ ### Phase 4: Compilation
395
+
396
+ Invoke `/paper-compile` to build the PDF:
397
+
398
+ ```
399
+ /paper-compile "paper/"
400
+ ```
401
+
402
+ **What this does:**
403
+ - `latexmk -pdf` with automatic multi-pass compilation
404
+ - Auto-fix common errors (missing packages, undefined refs, BibTeX syntax)
405
+ - Up to 3 compilation attempts
406
+ - Post-compilation checks: undefined refs, page count, font embedding
407
+ - Precise page verification via `pdftotext`
408
+ - Stale file detection
409
+
410
+ **Output:** `paper/main.pdf`
411
+
412
+ **Checkpoint:** Report compilation results.
413
+
414
+ ```
415
+ 🔨 Compilation complete:
416
+ - Status: SUCCESS
417
+ - Pages: [X] (main body) + [Y] (references) + [Z] (appendix)
418
+ - Within page limit: YES/NO
419
+ - Undefined references: 0
420
+ - Undefined citations: 0
421
+
422
+ Shall I proceed with the improvement loop?
423
+ ```
424
+
425
+ ### Phase 4.5: Proof Verification (theory papers only)
426
+
427
+ **Skip this phase if the paper contains no theorems, lemmas, or proofs.**
428
+
429
+ ```
430
+ if paper contains \begin{theorem} or \begin{lemma} or \begin{proof}:
431
+ Run /proof-checker "paper/"
432
+ This invokes GPT-5.6-Sol xhigh to:
433
+ - Verify all proof steps (hypothesis discharge, interchange justification, etc.)
434
+ - Check for logic gaps, quantifier errors, missing domination conditions
435
+ - Attempt counterexamples on key lemmas
436
+ - Generate PROOF_AUDIT.md with issue list + severity
437
+
438
+ If FATAL or CRITICAL issues found:
439
+ Fix before proceeding to improvement loop
440
+ If only MAJOR/MINOR:
441
+ Proceed, improvement loop may address remaining issues
442
+ else:
443
+ skip — no proofs, no action
444
+ ```
445
+
446
+ ### Phase 4.7: Paper Claim Audit
447
+
448
+ **Skip if no result files exist (e.g., survey/position papers with no experiments).**
449
+
450
+ ```
451
+ if results/*.json or results/*.csv or outputs/*.json exist:
452
+ Run /paper-claim-audit "paper/"
453
+ Fresh zero-context reviewer compares every number in the paper
454
+ against raw result files. Catches rounding inflation, best-seed
455
+ cherry-pick, config mismatch, delta errors.
456
+
457
+ If FAIL:
458
+ Fix mismatched numbers before improvement loop
459
+ If WARN:
460
+ Proceed, but flag for manual verification
461
+ else:
462
+ skip — no experimental results to verify
463
+ ```
464
+
465
+ ### Phase 5: Auto Improvement Loop
466
+
467
+ Invoke `/auto-paper-improvement-loop` to polish the paper:
468
+
469
+ ```
470
+ /auto-paper-improvement-loop "paper/"
471
+ ```
472
+
473
+ If `— style-ref: <source>` was passed in `$ARGUMENTS` and the helper succeeded above, append `— style-ref: <source>` to the invocation: `/auto-paper-improvement-loop "paper/ — style-ref: <source>"`. The improvement loop's reviewer sub-agent will still NOT see the style ref (the loop's own SKILL forbids it); only the fix-implementation phase consumes it.
474
+
475
+ **What this does (2 rounds):**
476
+
477
+ **Round 1:** GPT-5.6-Sol xhigh reviews the full paper → identifies CRITICAL/MAJOR/MINOR issues → Claude Code implements fixes → recompile → save `main_round1.pdf`
478
+
479
+ **Round 2:** GPT-5.6-Sol xhigh re-reviews with conversation context → identifies remaining issues → Claude Code implements fixes → recompile → save `main_round2.pdf`
480
+
481
+ **Typical improvements:**
482
+ - Fix assumption-model mismatches
483
+ - Soften overclaims to match evidence
484
+ - Add missing interpretations and notation
485
+ - Strengthen limitations section
486
+ - Add theory-aligned experiments if needed
487
+
488
+ **Output:** Three PDFs for comparison + `PAPER_IMPROVEMENT_LOG.md`.
489
+
490
+ **Format check** (included in improvement loop Step 8): After final recompilation, auto-detect and fix overfull hboxes (content exceeding margins), verify page count vs venue limit, and ensure compact formatting. Location-aware thresholds: any main-body overfull blocks completion regardless of size; appendix overfulls block only if >10pt; bibliography overfulls block only if >20pt.
491
+
492
+ ### Phase 5.5: Final Paper Claim Audit (MANDATORY submission gate)
493
+
494
+ After `/auto-paper-improvement-loop` finishes, **rerun** `/paper-claim-audit` before the final report whenever the paper contains numeric claims and machine-readable raw result files exist.
495
+
496
+ Use the same detectors as Phase 4.7:
497
+ - numeric-claim regex over `paper/main.tex` and `paper/sections/*.tex`
498
+ - raw-evidence file search in `results/`, `outputs/`, `experiments/`, and `figures/` for `.json`, `.jsonl`, `.csv`, `.tsv`, `.yaml`, or `.yml`
499
+
500
+ This phase is **mandatory** if both detectors are positive. It blocks the final report.
501
+ If numeric claims exist but no raw result files are found, stop and warn the user before declaring the paper complete.
502
+ If no numeric claims exist, skip.
503
+
504
+ ```bash
505
+ NUMERIC_CLAIMS=$(rg -n -e '[0-9]+(\.[0-9]+)?\s*(%|\\%|±|\\pm|x|×)' \
506
+ -e '(accuracy|BLEU|F1|AUC|mAP|top-1|top-5|error|loss|perplexity|speedup|improvement)' \
507
+ paper/main.tex paper/sections 2>/dev/null || true)
508
+
509
+ RAW_RESULT_FILES=$(find results outputs experiments figures -type f \
510
+ \( -name '*.json' -o -name '*.jsonl' -o -name '*.csv' -o -name '*.tsv' -o -name '*.yaml' -o -name '*.yml' \) 2>/dev/null | head -200)
511
+
512
+ if [ -n "$NUMERIC_CLAIMS" ] && [ -n "$RAW_RESULT_FILES" ]; then
513
+ Run /paper-claim-audit "paper/"
514
+ If FAIL:
515
+ Fix mismatched numbers before the final report
516
+ elif [ -n "$NUMERIC_CLAIMS" ]; then
517
+ Stop and warn: the paper contains numeric claims but no raw evidence files were found
518
+ fi
519
+ ```
520
+
521
+ **Empirical motivation:** in a real submission run, the final paper claimed a narrower experiment grid than the raw JSON actually contained, and a tolerance value was rounded down past the actual relative error. Both were caught only after manual `paper-claim-audit` invocation in the final round; the improvement loop did not detect them.
522
+
523
+ ### Phase 5.6: Kill-Argument Adversarial Review (theory / scope-heavy papers)
524
+
525
+ After Phase 5.5 (claim audit) passes, run `/kill-argument` whenever the paper is theory-heavy or makes explicit scope/generality claims in the title or abstract. This is a final adversarial check that complements the claim/citation/proof audits: those verify *local correctness* (numbers match, cites resolve, theorems prove); kill-argument tests *headline-level* survival — whether the paper as a whole answers the worst rejection paragraph a senior area chair would write.
526
+
527
+ ```bash
528
+ THEORY_ENV_COUNT=$(rg -c '\\begin\{(theorem|lemma|proposition|corollary)\}' paper/main.tex paper/sections 2>/dev/null | awk -F: '{s+=$2} END {print s+0}')
529
+ SCOPE_HINT=$(rg -i 'general(ization)?|broad|universal|across|any [A-Za-z]+ model|holds for' paper/sections/0*abstract* 2>/dev/null | head -1)
530
+
531
+ if [ "$THEORY_ENV_COUNT" -ge 5 ] || [ -n "$SCOPE_HINT" ]; then
532
+ /kill-argument "paper/"
533
+ KILL_VERDICT=$(jq -r '.verdict' paper/KILL_ARGUMENT.json)
534
+ KILL_REASON=$(jq -r '.reason_code' paper/KILL_ARGUMENT.json)
535
+ fi
536
+ ```
537
+
538
+ **Gating** (depends on the resolved `assurance` level from Phase 0):
539
+
540
+ | Assurance level | THEORY/SCOPE detected | Behavior |
541
+ |---|---|---|
542
+ | `submission` | yes | **MANDATORY**. `FAIL` blocks the final report; `WARN` requires explicit user acknowledgment; `BLOCKED`/`ERROR` blocks the final report (cannot ship without an adversarial pass). |
543
+ | `submission` | no | Skip — `KILL_ARGUMENT.json` is written with `verdict: NOT_APPLICABLE, reason_code: not_theory_or_scope_paper` so the submission verifier sees a record. |
544
+ | `internal` / `draft` | yes | **Advisory**. Run if the user passed `— kill-argument: true`; otherwise skip. `WARN`/`FAIL` is logged but does not block. |
545
+ | `internal` / `draft` | no | Skip. |
546
+
547
+ `/kill-argument` itself never edits the paper; it writes `KILL_ARGUMENT.{md,json}`. If `still_unresolved critical` points are surfaced, queue them for the next `/auto-paper-improvement-loop` round (Step 5.5 of that skill auto-merges the findings into its fix list).
548
+
549
+ **Why this is the right place:** Phase 5 (loop) optimizes for score, Phase 5.5 (claim audit) verifies numbers, Phase 5.8 (citation audit) verifies cites — none of these catches the case where every local component is correct but the paper still oversells what it actually proves. Kill-argument is the dedicated headline-scope check.
550
+
551
+ ### Phase 5.8: Citation Audit (submission gate)
552
+
553
+ After the final paper-claim-audit passes, run `/citation-audit` to verify every `\cite{...}` along three axes: existence, metadata correctness, and context appropriateness. This is the fourth and final layer of the evidence-and-claim assurance stack (`experiment-audit` → `result-to-claim` → `paper-claim-audit` → `citation-audit`).
554
+
555
+ ```
556
+ if paper/references.bib (or paper.bib) exists and contains entries cited from sec/*.tex:
557
+ Run /citation-audit "paper/"
558
+ Fresh cross-family reviewer (gpt-5.6-sol via Codex MCP) with web/DBLP/arXiv lookup
559
+ verifies each entry:
560
+ (i) EXISTENCE — paper resolves at claimed arXiv ID / DOI / venue
561
+ (ii) METADATA — author names, year, venue, title match canonical sources
562
+ (iii) CONTEXT — cited paper actually establishes the claim it supports
563
+
564
+ Output:
565
+ - CITATION_AUDIT.md (human-readable per-entry verdict report)
566
+ - CITATION_AUDIT.json (machine-readable verdict ledger)
567
+ - Per-entry verdicts: KEEP / FIX / REPLACE / REMOVE
568
+
569
+ If any REPLACE or REMOVE verdicts:
570
+ Surface to user for human approval — never auto-modify content claims
571
+ If only FIX verdicts (metadata corrections):
572
+ Apply with user confirmation, then recompile
573
+ If all KEEP:
574
+ Pass — bibliography clean for submission
575
+ else:
576
+ skip — no bib file or no citations
577
+ ```
578
+
579
+ **Why this is the most diagnostic of the four audit layers:** wildly fake citations are easy to spot. The dangerous failure mode is a real paper used to support a claim it does not actually establish (wrong-context citations) — these slip past metadata-only checks and damage submission credibility. Run cost is wall-clock heavy (web lookup per entry); run once per submission, not per save.
580
+
581
+ **Empirical motivation:** in a real submission run, several real papers were cited in contexts they did not actually support, and at least one bib entry shipped with `author = "Anonymous"` because the metadata had not been resolved. None were caught by the improvement loop or numeric claim audit; only fresh web-lookup review surfaced them.
582
+
583
+ ### Phase 5.9: Integrity Forensics (submission self-audit — default ON)
584
+
585
+ Run the [`/integrity-forensics`](../integrity-forensics/SKILL.md) launcher on
586
+ `paper/` (ABSOLUTE path): the SHA-pinned Anti-Autoresearch sweep — evidence
587
+ ledger, nine auditor dimensions, deterministic adjudication — followed by the
588
+ typed policy gate and the append-only obligations ledger. Self-auditing runs
589
+ at whatever observability the artifacts allow (with `code/` + `results/`
590
+ present that is L2 — stricter than anything an external reviewer can run).
591
+
592
+ **When it runs** (re-derive here — do NOT trust `.aris/assurance.txt` alone;
593
+ a resumed run whose Phase 0 never executed, or whose file went stale, must
594
+ not silently skip the default-ON gate):
595
+
596
+ 1. Re-derive the assurance level from `$ARGUMENTS` with the **same rule as
597
+ Phase 0 / Phase 6.0** (explicit `— assurance:` wins; else `max`/`beast` →
598
+ `submission`; else `draft`).
599
+ 2. Parse `$ARGUMENTS` for `— self_forensics: true | false`.
600
+ 3. Then:
601
+ - `submission` → **ON by default**. Opt out only with an explicit
602
+ `— self_forensics: false` — persist the receipt as a record:
603
+ `mkdir -p paper/.aris/forensics && echo "opted-out: — self_forensics: false in \$ARGUMENTS" > paper/.aris/forensics/opt_out.txt`
604
+ (recorded in the Final Report as `Forensics: skipped (opted out)`).
605
+ The receipt documents THIS run's decision; it does not authorize any
606
+ later run to skip — Phase 6.0 re-parses `$ARGUMENTS` itself.
607
+ - `draft` → off unless `— self_forensics: true`.
608
+
609
+ **Gate handling** (exit 1 = `BLOCK`: upstream `HARD_FLAGS`,
610
+ `REVIEW_UNAVAILABLE`, or an OPEN critical obligation):
611
+ - Refuse the Final Report — same discipline as a verifier `FAIL`. Surface the
612
+ upstream `REPORT.md` and the obligations verbatim; never paraphrase-soften.
613
+ - Route each obligation to its repair door (the family table in
614
+ `/integrity-forensics` Step 3): numeric → recompute from result files;
615
+ citations → `/citation-audit`; proof → `/proof-checker`; scope/baseline/
616
+ eval-design → `/auto-review-loop` as reviewer input, or the human.
617
+ - Close obligations ONLY via `forensics_gate.py resolve` (typed, hashed
618
+ evidence) or a human `waive`. Since 2026-08 upstream reports every proposal an
619
+ auditor made rather than deciding which ones do not count, so expect more
620
+ obligations and expect some to be proposals you judge wrong — `waive` with a
621
+ reason is the normal disposition for those, not a last resort. **Never edit the
622
+ paper with the objective "make the sweep stop flagging"** — a
623
+ vanished-but-unresolved finding keeps the gate closed
624
+ (`UNRESOLVED_DISAPPEARANCE`).
625
+ - `WARN` (SOFT_FLAGS / open non-critical obligations): proceed, but the Final
626
+ Report must list them under `Forensics` — including the dimensions the sweep
627
+ never ran, which `evaluate` and `fresh` both print. A WARN can sit on top of an
628
+ incomplete sweep: upstream folds incompleteness into the verdict only when it
629
+ would otherwise read clean.
630
+ - Zero-weight AIS style impressions: FYI only — may feed
631
+ `/auto-paper-improvement-loop` context, never gate.
632
+
633
+ ### Phase 6: Final Report
634
+
635
+ **Phase 6.0 — Submission Gate**
636
+
637
+ Before writing the Final Report, resolve the active assurance level. This
638
+ uses the **same derivation rule as Phase 0** so a run where Phase 0 was
639
+ skipped or its write failed cannot silently downgrade a `beast` / `max` /
640
+ `— assurance: submission` invocation back to draft.
641
+
642
+ **Resolution at the gate** (re-derive; do not trust `.aris/assurance.txt`
643
+ alone):
644
+
645
+ 1. Parse `$ARGUMENTS` for an explicit `— assurance: draft | submission` or
646
+ an `— effort: lite | balanced | max | beast` directive.
647
+ 2. Derive the expected level:
648
+ - explicit `assurance:` wins
649
+ - else `lite` / `balanced` → `draft`, `max` / `beast` → `submission`
650
+ - else `draft`
651
+ 3. Read `paper/.aris/assurance.txt`. If the file is missing, write it now
652
+ with the derived level.
653
+ 4. If the file's value **disagrees** with the derived level (e.g. file
654
+ says `draft` but `$ARGUMENTS` says `beast`), **overwrite** the file
655
+ with the derived level and surface a one-line warning in-chat:
656
+ `⚠️ .aris/assurance.txt was draft but $ARGUMENTS says submission; overriding.`
657
+ 5. Use the re-derived level as authoritative for the rest of Phase 6.
658
+
659
+ ```bash
660
+ # Final authoritative value, written and read from the same source
661
+ ASSURANCE=<derived-from-$ARGUMENTS> # draft | submission
662
+ mkdir -p paper/.aris
663
+ echo "$ASSURANCE" > paper/.aris/assurance.txt
664
+ ```
665
+
666
+ If `ASSURANCE=draft`, skip directly to the Final Report template below —
667
+ **current behavior, no change** for the default `balanced` user.
668
+
669
+ If `ASSURANCE=submission`, run the pre-flight checklist below, then the
670
+ verifier. The verifier's exit code is the source of truth — do NOT
671
+ self-declare "audits complete" based on conversation memory.
672
+
673
+ #### Submission pre-flight checklist
674
+
675
+ Print this checklist verbatim at the start of Phase 6.0 and confirm each row
676
+ before proceeding. This resists the common failure mode of the model
677
+ skipping audits while claiming to have run them.
678
+
679
+ ```
680
+ 📋 Submission audits required before Final Report:
681
+ [ ] 0. PAPER_ACCEPTANCE_CONTRACT.md (Phase 1.5): re-read every assertion
682
+ against the final PDF + results files; each → satisfied / violated /
683
+ disputed-at-negotiation. ANY violated undisputed assertion blocks the
684
+ Final Report until fixed or the human explicitly waives it (waivers
685
+ recorded in the contract file). Contract absent (pre-1.5 run) → mark
686
+ "no contract" and continue.
687
+ [ ] 1. /proof-checker → paper/PROOF_AUDIT.json
688
+ [ ] 2. /paper-claim-audit → paper/PAPER_CLAIM_AUDIT.json
689
+ [ ] 3. /citation-audit → paper/CITATION_AUDIT.json
690
+ [ ] 4. Resolve $AUDIT_VERIFIER per integration-contract.md §2 (Policy A),
691
+ then: bash "$AUDIT_VERIFIER" paper/ --assurance submission
692
+ [ ] 5. Integrity forensics (Phase 5.9, default ON at submission). FIRST
693
+ re-parse the CURRENT $ARGUMENTS — an opt_out.txt receipt left by a
694
+ PREVIOUS run never carries over; it is a record for the report line,
695
+ not an authorization.
696
+ - current $ARGUMENTS has `— self_forensics: false` → skipping is
697
+ legal; write/refresh paper/.aris/forensics/opt_out.txt.
698
+ - otherwise the whole check is ONE command:
699
+ `python3 "$GATE_HELPER" fresh --paper-dir paper/ --anti-ar-commit
700
+ "$ANTI_AR_COMMIT"` (the pin constant from /integrity-forensics;
701
+ an old-pin gate must be re-audited) — exit 0 ⟺ a
702
+ gate exists ∧ no paper file changed after it ∧ it matches the
703
+ current obligations ledger ∧ its decision is pass-capable (an
704
+ ALLOWLIST: WARN / NO_NEW_BLOCKER — an unknown or missing token
705
+ never passes). Exit 1 → the sweep never saw this text (or the
706
+ gate is BLOCK): run Phase 5.9 NOW, before the Final Report —
707
+ BLOCK is blocked, same as a verifier FAIL.
708
+ [ ] 6. Block Final Report iff verifier exit code != 0 OR row 0 found a
709
+ violated undisputed assertion OR row 5 is red. (THREE separate
710
+ gates: row 0 is graded by instruction against the contract; the
711
+ verifier checks audit JSONs only — verify_paper_audits.sh does NOT
712
+ read the contract; row 5 reads the forensics gate artifact.)
713
+ ```
714
+
715
+ > The resolver in "Running the verifier" below tries
716
+ > `.aris/tools/verify_paper_audits.sh` (created by `install_aris.sh`),
717
+ > then `tools/verify_paper_audits.sh` (in-repo run), then
718
+ > `$ARIS_REPO/tools/verify_paper_audits.sh` (env-var-set or manifest-derived
719
+ > path), then the same `$ARIS_REPO/tools/verify_paper_audits.sh` resolved via
720
+ > the global pointer file `~/.aris/repo` (#366). The chain always tries
721
+ > layers 1 → 2 → 3 → 4 in order; setting `export ARIS_REPO=~/…` only ensures
722
+ > layer 3 has a valid target if layers 1 and 2 are absent, and layer 4 only
723
+ > fires when neither the env var nor the project manifest set `ARIS_REPO`.
724
+
725
+ #### Invoking the four audits
726
+
727
+ Each sub-audit runs in a **fresh Codex thread** (never `codex-reply`,
728
+ never pass prior audit output as context — this preserves reviewer
729
+ independence per `shared-references/reviewer-independence.md`).
730
+
731
+ Each sub-audit **always** emits its JSON artifact, even when the content
732
+ detector is negative. A detector-negative run emits verdict
733
+ `NOT_APPLICABLE`; a silent skip is forbidden. See the "Submission artifact
734
+ emission" section of each audit's SKILL.md.
735
+
736
+ Order:
737
+
738
+ 1. `/proof-checker "paper/"` → writes `paper/PROOF_AUDIT.json` (emits
739
+ `NOT_APPLICABLE` if the paper contains no theorems / lemmas / proofs)
740
+ 2. `/paper-claim-audit "paper/"` → writes `paper/PAPER_CLAIM_AUDIT.json`
741
+ (emits `NOT_APPLICABLE` if the paper has no numeric claims; emits
742
+ `BLOCKED` if numeric claims exist but raw result files are missing)
743
+ 3. `/citation-audit "paper/"` → writes `paper/CITATION_AUDIT.json`
744
+ (emits `NOT_APPLICABLE` if no `.bib` file or no `\cite{...}` usage)
745
+ 4. `paper/KILL_ARGUMENT.json` was already written in Phase 5.6 (including the
746
+ `NOT_APPLICABLE` record for non-theory papers) — the verifier requires all four.
747
+
748
+ #### Running the verifier
749
+
750
+ Resolve `$AUDIT_VERIFIER` via the canonical strict-safe chain (see
751
+ [`shared-references/integration-contract.md`](../shared-references/integration-contract.md)
752
+ §2, Policy A — gate). Under `assurance: submission` the verifier is
753
+ load-bearing: if the helper is unresolved the SKILL aborts the Final
754
+ Report rather than producing an unverified `submission-ready` claim.
755
+
756
+ ```bash
757
+ # Resolve the audit verifier (Policy A — gate).
758
+ cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
759
+ if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
760
+ ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
761
+ fi
762
+ if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
763
+ ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
764
+ fi
765
+ AUDIT_VERIFIER=".aris/tools/verify_paper_audits.sh"
766
+ [ -f "$AUDIT_VERIFIER" ] || AUDIT_VERIFIER="tools/verify_paper_audits.sh"
767
+ [ -f "$AUDIT_VERIFIER" ] || { [ -n "${ARIS_REPO:-}" ] && AUDIT_VERIFIER="$ARIS_REPO/tools/verify_paper_audits.sh"; }
768
+ [ -f "$AUDIT_VERIFIER" ] || {
769
+ echo "ERROR: verify_paper_audits.sh not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
770
+ echo " assurance=submission requires the verifier; aborting Final Report." >&2
771
+ echo " Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
772
+ exit 1
773
+ }
774
+
775
+ bash "$AUDIT_VERIFIER" paper/ --assurance submission
776
+ ```
777
+
778
+ - **Exit 0** — All mandatory audits present, JSON schema-valid, hashes fresh,
779
+ no blocking verdicts. **Before writing the Final Report, read
780
+ `overall_assurance` from `paper/.aris/audit-verifier-report.json`** — exit 0
781
+ covers BOTH `accepted` (cross-family/independent review) and `provisional`
782
+ (same-family or legacy review that may proceed but must not claim
783
+ independent acceptance). The Final Report's Submission-ready line comes from
784
+ that field, never from the exit code alone.
785
+ - **Exit 1** — Surface `paper/.aris/audit-verifier-report.json` to the user
786
+ verbatim, **refuse to generate the Final Report**, and list the specific
787
+ remediation for each failing row:
788
+ - `MISSING` → rerun that audit
789
+ - `STALE` → paper files edited after the audit ran; rerun the affected audit
790
+ - `BLOCKING_VERDICT` (FAIL / BLOCKED / ERROR) → fix the underlying issue,
791
+ then rerun the audit
792
+ - `SCHEMA_INVALID` → audit artifact malformed; rerun the audit
793
+
794
+ The verifier is cheap to rerun (< 1 s). After fixing any issue, rerun it
795
+ before claiming green.
796
+
797
+ #### Optional hardening (not default)
798
+
799
+ Teams that want hook-level enforcement — i.e., the harness physically
800
+ prevents a Stop event while the verifier is red — can register a Stop hook
801
+ in `~/.claude/settings.json`:
802
+
803
+ ```json
804
+ {
805
+ "hooks": {
806
+ "Stop": [
807
+ {"command": "bash <ARIS_REPO>/tools/verify_paper_audits.sh paper/ --assurance submission"}
808
+ ]
809
+ }
810
+ }
811
+ ```
812
+
813
+ This is documented here, not required. Phase 6.0's verifier-as-truth
814
+ pattern is the default repo behavior.
815
+
816
+ ---
817
+
818
+ **Phase 6.1 — Final Report** (runs only after the submission gate is green,
819
+ or directly if `assurance=draft`)
820
+
821
+ ```markdown
822
+ # Paper Writing Pipeline Report
823
+
824
+ **Input**: [NARRATIVE_REPORT.md or topic]
825
+ **Venue**: [ICLR/NeurIPS/ICML/CVPR/ACL/AAAI/ACM/IEEE_JOURNAL/IEEE_CONF]
826
+ **Assurance**: [draft | submission]
827
+ **Submission-ready**: [yes | provisional | no] <!-- yes iff assurance=submission AND verifier exit 0 AND overall_assurance=accepted; provisional iff exit 0 with overall_assurance=provisional (same-family/legacy review — do NOT present as independently accepted); no otherwise -->
828
+ **Forensics**: [NO_NEW_BLOCKER | WARN: <n> open obligations | BLOCK | skipped (opted out) | skipped (draft)] <!-- from .aris/forensics/gate.json — upstream verdict verbatim in parentheses; NO_NEW_BLOCKER means "no flag found", never an acquittal -->
829
+ **Date**: [today]
830
+
831
+ ## Pipeline Summary
832
+
833
+ | Phase | Status | Output |
834
+ |-------|--------|--------|
835
+ | 0. Assurance Setup | ✅ | paper/.aris/assurance.txt = [draft\|submission] |
836
+ | 1. Paper Plan | ✅ | PAPER_PLAN.md |
837
+ | 1.5 Acceptance Contract | [accepted\|contested\|no contract] ([N] rounds) | PAPER_ACCEPTANCE_CONTRACT.md |
838
+ | 2. Figures | ✅ | figures/ ([N] auto + [M] manual) |
839
+ | 3. LaTeX Writing | ✅ | paper/sections/*.tex ([N] sections, [M] citations) |
840
+ | 4. Compilation | ✅ | paper/main.pdf ([X] pages) |
841
+ | 5. Improvement | ✅ | [score0]/10 → [score2]/10 |
842
+ | 4.5 Proof Audit | [PASS\|WARN\|FAIL\|NOT_APPLICABLE\|BLOCKED\|ERROR] | PROOF_AUDIT.{md,json} |
843
+ | 5.5 Paper Claim Audit | [PASS\|WARN\|FAIL\|NOT_APPLICABLE\|BLOCKED\|ERROR] | PAPER_CLAIM_AUDIT.{md,json} |
844
+ | 5.8 Citation Audit | [PASS\|WARN\|FAIL\|NOT_APPLICABLE\|BLOCKED\|ERROR] | CITATION_AUDIT.{md,json} |
845
+ | 6.0 Assurance Verifier | [OK\|STALE\|BLOCKING_VERDICT\|HAS_ISSUES\|SCHEMA_INVALID\|MISSING] per audit; exit [0\|1] overall (N/A if draft) | .aris/audit-verifier-report.json |
846
+
847
+ ## Improvement Scores
848
+ | Round | Score | Key Changes |
849
+ |-------|-------|-------------|
850
+ | Round 0 | X/10 | Baseline |
851
+ | Round 1 | Y/10 | [summary] |
852
+ | Round 2 | Z/10 | [summary] |
853
+
854
+ ## Deliverables
855
+ - paper/main.pdf — Final polished paper
856
+ - paper/main_round0_original.pdf — Before improvement
857
+ - paper/main_round1.pdf — After round 1
858
+ - paper/main_round2.pdf — After round 2
859
+ - paper/PAPER_IMPROVEMENT_LOG.md — Full review log
860
+ - paper/PROOF_AUDIT.{md,json} — Proof-obligation verification (always emitted at `assurance=submission`; `NOT_APPLICABLE` when no theorems)
861
+ - paper/PAPER_CLAIM_AUDIT.{md,json} — Numerical claim verification (always emitted at `assurance=submission`; `NOT_APPLICABLE` when no numeric claims; omitted in `draft` mode if Phase 5.5 detector was negative)
862
+ - paper/CITATION_AUDIT.{md,json} — Bibliography verification (always emitted at `assurance=submission`; `NOT_APPLICABLE` when no `.bib` or no `\cite{...}`; omitted in `draft` mode if Phase 5.8 detector was negative)
863
+ - paper/.aris/audit-verifier-report.json — External verifier report (submission only)
864
+
865
+ ## Remaining Issues (if any)
866
+ - [items from final review that weren't addressed]
867
+
868
+ ## Next Steps
869
+ - [ ] Visual inspection of PDF
870
+ - [ ] Add any missing manual figures
871
+ - [ ] Submit to [venue] via OpenReview / CMT / HotCRP
872
+ ```
873
+
874
+ ## Output Protocols
875
+
876
+ > Follow these shared protocols for all output files:
877
+ > - **[Output Versioning Protocol](../shared-references/output-versioning.md)** — write timestamped file first, then copy to fixed name
878
+ > - **[Output Manifest Protocol](../shared-references/output-manifest.md)** — log every output to MANIFEST.md
879
+ > - **[Output Language Protocol](../shared-references/output-language.md)** — note: paper-writing always outputs English LaTeX for venue submission
880
+
881
+ ## Key Rules
882
+
883
+ - **Large file handling**: If the Write tool fails due to file size, immediately retry using Bash (`cat << 'EOF' > file`) to write in chunks. Do NOT ask the user for permission — just do it silently.
884
+ - **Don't skip phases.** Each phase builds on the previous one — skipping leads to errors.
885
+ - **Checkpoint between phases** when AUTO_PROCEED=false. Present results and wait for approval.
886
+ - **Manual figures first.** If the paper needs architecture diagrams or qualitative results, the user must provide them before Phase 3.
887
+ - **Compilation must succeed** before entering the improvement loop. Fix all errors first.
888
+ - **Preserve all PDFs.** The user needs round0/round1/round2 for comparison.
889
+ - **Document everything.** The pipeline report should be self-contained.
890
+ - **Respect page limits.** If the paper exceeds the venue limit, suggest specific cuts before the improvement loop.
891
+
892
+ ## Composing with Other Workflows
893
+
894
+ ```
895
+ /idea-discovery "direction" ← Workflow 1: find ideas
896
+ implement ← write code
897
+ /run-experiment ← deploy experiments
898
+ /auto-review-loop "paper topic" ← Workflow 2: iterate research
899
+ /paper-writing "NARRATIVE_REPORT.md" ← Workflow 3: you are here
900
+ submit! 🎉
901
+
902
+ Or use /research-pipeline for the Workflow 1+2 end-to-end flow,
903
+ then /paper-writing for the final writing step.
904
+ ```
905
+
906
+ ## Typical Timeline
907
+
908
+ | Phase | Duration | Can sleep? |
909
+ |-------|----------|------------|
910
+ | 1. Paper Plan | 5-10 min | No |
911
+ | 2. Figures | 5-15 min | No |
912
+ | 3. LaTeX Writing | 15-30 min | Yes ✅ |
913
+ | 4. Compilation | 2-5 min | No |
914
+ | 5. Improvement | 15-30 min | Yes ✅ |
915
+
916
+ **Total: ~45-90 min** for a full paper from narrative report to polished PDF.