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,581 @@
1
+ ---
2
+ name: "auto-paper-improvement-loop"
3
+ description: "Autonomously improve a generated paper via Claude review through claude-review MCP → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper."
4
+ ---
5
+
6
+ > Override for Codex users who want **Claude Code**, not a second Codex agent, to act as the reviewer. Install this package **after** `skills/skills-codex/*`.
7
+ >
8
+ > This reviewer is a different model family from the Codex executor. Every overlay trace/audit records:
9
+ >
10
+ > ```yaml
11
+ > review_independence: cross-family
12
+ > acceptance_status: accepted
13
+ > ```
14
+
15
+ # Auto Paper Improvement Loop: Review → Fix → Recompile
16
+
17
+ Autonomously improve the paper at: **$ARGUMENTS**
18
+
19
+ ## Context
20
+
21
+ This skill is designed to run **after** Workflow 3 (`/paper-plan` → `/paper-figure` → `/paper-write` → `/paper-compile`). It takes a compiled paper and iteratively improves it through external LLM review.
22
+
23
+ Unlike `/auto-review-loop` (which iterates on **research** — running experiments, collecting data, rewriting narrative), this skill iterates on **paper writing quality** — fixing theoretical inconsistencies, softening overclaims, adding missing content, and improving presentation.
24
+
25
+ ## Constants
26
+
27
+ - **MAX_ROUNDS = 2** — Two rounds of review→fix→recompile. Empirically, Round 1 catches structural issues (4→6/10), Round 2 catches remaining presentation issues (6→7/10). Diminishing returns beyond 2 rounds for writing-only improvements.
28
+ - **REVIEWER_MODEL = `claude-review`** — Claude reviewer invoked through the local `claude-review` MCP bridge. Set `CLAUDE_REVIEW_MODEL` if you need a specific Claude model override.
29
+ - **REVIEWER_BIAS_GUARD = true** — When `true`, every review round uses a fresh `mcp__claude-review__review_start` reviewer with no prior review context. Do not use stale self-reported context for review rounds. Set to `false` only for deliberate debugging of the legacy behavior. **Empirical evidence:** running the same paper with continuation replies plus "since last round we did X" prompts inflated scores from real 3/10 → fake 8/10 across multiple rounds; switching to fresh threads recovered the true 3/10 assessment.
30
+ - **REVIEW_LOG = `PAPER_IMPROVEMENT_LOG.md`** — Cumulative log of all rounds, stored in paper directory.
31
+ - **HUMAN_CHECKPOINT = false** — When `true`, pause after each round's review and present score + weaknesses to the user. The user can approve fixes, provide custom modification instructions, skip specific fixes, or stop early. When `false` (default), runs fully autonomously.
32
+ - **EDIT_WHITELIST = `null`** — Optional path to a YAML/JSON whitelist file constraining which paths and operations the fix-implementation step may touch. When `null` (default), all edits proceed unconstrained. When set via `— edit-whitelist <path>` (also accepts `— edit_whitelist <path>`), the loop loads the file at startup and consults it before each edit; rejected edits are logged to `PAPER_IMPROVEMENT_LOG.md` rather than silently dropped. See "Optional: Edit Whitelist" below.
33
+
34
+ > 💡 Override: `/auto-paper-improvement-loop "paper/" — human checkpoint: true`
35
+
36
+ ## Optional: Edit Whitelist (`— edit-whitelist <path>`, opt-in)
37
+
38
+ Lets the caller hard-constrain which files and operations the **fix-implementation** step (Step 3 / Step 6) is allowed to touch. **Default OFF — when the user does not pass `— edit-whitelist` (or the alias `— edit_whitelist`), the loop applies all reviewer-driven edits without restriction, exactly as before.**
39
+
40
+ This is the parameter that upstream pipelines (e.g. `/resubmit-pipeline` Phase 2) use to enforce text-only resubmit microedits: no `.bib` mutations, no `.sty` / `.bst` mutations, no edits to prior-submission directories, no new `\cite{...}`, no new theorem environments, no new numerical claims.
41
+
42
+ ### Schema
43
+
44
+ The whitelist file is YAML or JSON. All four sections are optional:
45
+
46
+ ```yaml
47
+ allowed_paths:
48
+ - sec/*.tex
49
+ - main.tex
50
+ - figures/*.tex
51
+ forbidden_paths:
52
+ - "**/*.bib"
53
+ - "**/*.sty"
54
+ - "**/*.bst"
55
+ - "../OldSubmission/**"
56
+ forbidden_operations:
57
+ - new_cite # blocks \cite{...}, \citep{...}, \citet{...}, \citeauthor{...} additions
58
+ - new_bibitem # blocks \bibitem{...} additions
59
+ - new_theorem_env # blocks \begin{theorem|lemma|proposition|corollary} additions
60
+ - numerical_claim # blocks adding new numbers / percentages / metrics
61
+ forbidden_deletions: # operations that block REMOVALS, not additions
62
+ - delete_existing_cite # blocks removal of \cite{...} from the body (use citation-audit --soft-only instead)
63
+ - delete_theorem_env # blocks removal of an existing \begin{theorem|...} block
64
+ requires_user_approval_for: # operations that don't auto-reject but pause for explicit user OK
65
+ - rewrite_abstract
66
+ - rewrite_intro_first_para
67
+ - delete_section
68
+ max_edits_per_round: 30 # hard cap on accepted edits per round (rejections not counted)
69
+ rationale: "Resubmit mode: text-only microedits, paper structure frozen by user constraint."
70
+ ```
71
+
72
+ ### Resolution rules
73
+
74
+ - **`allowed_paths` empty AND `forbidden_paths` empty** → whitelist is a no-op (advisory: the file is loaded and `rationale` echoed to the log, but no path filtering is applied).
75
+ - **`allowed_paths` empty, `forbidden_paths` non-empty** → all paths NOT matched by `forbidden_paths` are mutable.
76
+ - **`allowed_paths` non-empty, `forbidden_paths` empty** → only paths matching `allowed_paths` are mutable.
77
+ - **Both non-empty** → an edit is allowed iff the target matches `allowed_paths` AND does NOT match `forbidden_paths`. `forbidden_paths` always wins on overlap.
78
+ - **`forbidden_operations` missing or empty** → no operation-level guard; only path-level filtering applies.
79
+
80
+ ### Glob semantics
81
+
82
+ Use bash `extglob` / Python `fnmatch.fnmatch` semantics. `**` matches any depth (zero or more directory segments). Patterns are matched against the path **relative to the paper directory** (e.g. `paper/sec/intro.tex` matches `sec/*.tex` when paper-directory is `paper/`).
83
+
84
+ ### Forbidden-operation detectors
85
+
86
+ For each candidate edit's diff (the new lines being added — deletions are exempt), the loop runs these regex checks and rejects if any forbidden operation matches:
87
+
88
+ | Operation | Detector (added lines only) |
89
+ |-----------|------------------------------|
90
+ | `new_cite` | `\\cite[a-zA-Z]*\{[^}]+\}` (catches `\cite`, `\citep`, `\citet`, `\citeauthor`, `\citeyear`, `\citealp`, etc.) |
91
+ | `new_bibitem` | `\\bibitem\{[^}]+\}` |
92
+ | `new_theorem_env` | `\\begin\{(theorem|lemma|proposition|corollary)\*?\}` |
93
+ | `numerical_claim` | New token matching `\b\d+(\.\d+)?%?\b` that did NOT appear in the deleted/replaced lines (i.e. genuinely new numbers, not edits to existing ones) |
94
+
95
+ ### Behavior at loop start (before Round 1 fix-implementation)
96
+
97
+ 1. If `— edit-whitelist <path>` is present in `$ARGUMENTS`, set `EDIT_WHITELIST = <path>`.
98
+ 2. Load the file (`yaml.safe_load`; if it fails, fall back to `json.loads`). On load failure, abort the loop with a clear error — do NOT silently proceed unconstrained.
99
+ 3. Echo `rationale` (if present) into `PAPER_IMPROVEMENT_LOG.md` under a new "Edit Whitelist" preamble section so the audit trail records why edits were constrained.
100
+
101
+ ### Behavior during fix-implementation (Steps 3 and 6)
102
+
103
+ Before applying each proposed edit:
104
+
105
+ 1. Resolve target file path relative to the paper directory.
106
+ 2. Path check: if `allowed_paths` is non-empty, target must match at least one pattern. Then if `forbidden_paths` is non-empty, target must NOT match any pattern. If either fails → reject as `path` violation.
107
+ 3. Operation check: build the unified diff (or just the set of newly-added lines) for the proposed edit. For each entry in `forbidden_operations`, run its detector on the added lines. If any detector matches → reject as `operation` violation.
108
+ 4. If all checks pass, apply the edit normally.
109
+ 5. If rejected, append an entry to `PAPER_IMPROVEMENT_LOG.md` under a `## Rejected by edit_whitelist (Round N)` heading with this schema:
110
+ ```
111
+ - file: <relative path>
112
+ reason: path | operation
113
+ pattern: <the offending forbidden_path glob, OR the offending forbidden_operation name + the matched substring>
114
+ reviewer_concern: <the original Round-N weakness that motivated this edit>
115
+ ```
116
+ 6. Continue with the remaining edits in the round. Do NOT abort the whole round on a single rejection.
117
+
118
+ ### End-of-round surfacing
119
+
120
+ At the end of each round (after the recompile, before moving to the next round), if any edits were rejected during that round's fix step:
121
+
122
+ - Print a one-line summary to the round's checkpoint output: `Edit whitelist rejected N edits this round (M path, K operation). See PAPER_IMPROVEMENT_LOG.md "Rejected by edit_whitelist (Round N)".`
123
+ - If `HUMAN_CHECKPOINT = true`, include the rejection list in the checkpoint shown to the user before they approve next-round fixes.
124
+
125
+ ### Example invocations
126
+
127
+ ```bash
128
+ # Resubmit-pipeline Phase 2 caller (text-only mode):
129
+ /auto-paper-improvement-loop "paper/" — edit-whitelist .resubmit/edit_whitelist.yaml
130
+
131
+ # Aliased form is accepted:
132
+ /auto-paper-improvement-loop "paper/" — edit_whitelist .resubmit/edit_whitelist.yaml
133
+
134
+ # Combined with other flags:
135
+ /auto-paper-improvement-loop "paper/" — human checkpoint: true — edit-whitelist constraints.yaml
136
+ ```
137
+
138
+ ### Rationale
139
+
140
+ Without a whitelist, the loop's reviewer-driven fix step is free to add citations, introduce new theorem environments, or tweak numerical claims — all of which are reasonable for first-submission polish but **forbidden** in resubmit / camera-ready / rebuttal-only modes where the paper structure is frozen by external constraint. Routing those constraints through a first-class parameter (rather than relying on the LLM to "remember" not to do them) makes the constraint enforceable, auditable via `PAPER_IMPROVEMENT_LOG.md`, and visible to the user at each round's checkpoint.
141
+
142
+ ## Inputs
143
+
144
+ 1. **Compiled paper** — `paper/main.pdf` + LaTeX source files
145
+ 2. **All section `.tex` files** — concatenated for review prompt
146
+
147
+ ## State Persistence (Compact Recovery)
148
+
149
+ If the context window fills up mid-loop, Claude Code auto-compacts. To recover, this skill writes `PAPER_IMPROVEMENT_STATE.json` after each round:
150
+
151
+ ```json
152
+ {
153
+ "current_round": 1,
154
+ "threadId": "019ce736-...",
155
+ "last_score": 6,
156
+ "status": "in_progress",
157
+ "timestamp": "2026-03-13T21:00:00"
158
+ }
159
+ ```
160
+
161
+ **On startup**: if `PAPER_IMPROVEMENT_STATE.json` exists with `"status": "in_progress"` AND `timestamp` is within 24 hours, read it + `PAPER_IMPROVEMENT_LOG.md` to recover context, then resume from the next round. Otherwise (file absent, `"status": "completed"`, or older than 24 hours), start fresh.
162
+
163
+ **After each round**: overwrite the state file. **On completion**: set `"status": "completed"`.
164
+
165
+ ## Reviewer Independence Protocol
166
+
167
+ The reviewer must be context-naive on every round. Prior-round summaries, fix lists, and executor explanations are not evidence; they are a source of confirmation bias. If the reviewer is told what changed, scores tend to drift upward even when the manuscript itself has not materially improved.
168
+
169
+ Rules:
170
+ - Every round starts with a fresh `mcp__claude-review__review_start` reviewer call, not a stale continuation prompt.
171
+ - Never pass a prior threadId into the next review prompt.
172
+ - Never include "since last round", "we fixed", "after applying", or any fix summary in the reviewer prompt.
173
+ - The only acceptable evidence of improvement is the current `.tex` source and compiled PDF.
174
+ - If a fix cannot be observed in the files, the reviewer should not be told it happened.
175
+ - If recovery metadata is needed, store the returned threadId for crash recovery only; do not use it to preserve review context.
176
+
177
+ Set `REVIEWER_BIAS_GUARD = false` only if you explicitly want the legacy, context-carrying behavior for debugging.
178
+
179
+ ## Workflow
180
+
181
+ ### Step 0: Preserve Original
182
+
183
+ ```bash
184
+ cp paper/main.pdf paper/main_round0_original.pdf
185
+ ```
186
+
187
+ ### Step 1: Collect Paper Text
188
+
189
+ Concatenate all section files into a single text block for the review prompt:
190
+
191
+ ```bash
192
+ # Collect all sections in order
193
+ for f in paper/sections/*.tex; do
194
+ echo "% === $(basename $f) ==="
195
+ cat "$f"
196
+ done > /tmp/paper_full_text.txt
197
+ ```
198
+
199
+ ### Step 2: Round 1 Review
200
+
201
+ Send the full paper text AND compiled PDF to Claude review:
202
+
203
+ ```
204
+ mcp__claude-review__review_start:
205
+ prompt: |
206
+ You are reviewing a [VENUE] paper. Please provide a detailed, structured review.
207
+
208
+ ## Paper Files:
209
+ - LaTeX source: [list all section .tex files]
210
+ - Compiled PDF: paper/main.pdf
211
+ - Figures: [list figure files]
212
+
213
+ Read BOTH the LaTeX source (for content/logic) AND the compiled PDF (for visual presentation).
214
+
215
+ ## Review Instructions
216
+ Please act as a senior ML reviewer ([VENUE] level). Provide:
217
+ 1. **Overall Score** (1-10, where 6 = weak accept, 7 = accept)
218
+ 2. **Summary** (2-3 sentences)
219
+ 3. **Strengths** (bullet list, ranked)
220
+ 4. **Weaknesses** (bullet list, ranked: CRITICAL > MAJOR > MINOR)
221
+ 5. **For each CRITICAL/MAJOR weakness**: A specific, actionable fix
222
+ 6. **Missing References** (if any)
223
+ 7. **Visual Review** (from the PDF):
224
+ - Figure quality: readable? labels legible? colors distinguishable in grayscale?
225
+ - Figure-caption alignment: does each caption match its figure?
226
+ - Layout: orphaned headers, awkward page breaks, figures far from references?
227
+ - Table formatting: aligned columns, consistent decimals, bold for best results?
228
+ - Visual consistency: same color scheme across all figures?
229
+ 8. **Verdict**: Ready for submission? Yes / Almost / No
230
+
231
+ Focus on: theoretical rigor, claims vs evidence alignment, writing clarity,
232
+ self-containedness, notation consistency, AND visual presentation quality.
233
+ ```
234
+
235
+ After this start call, immediately save the returned `jobId` and poll `mcp__claude-review__review_status` with a bounded `waitSeconds` until `done=true`. Treat the completed status payload's `response` as the reviewer output, and save the completed `threadId` for any follow-up round.
236
+
237
+ Save the completed threadId for Round 2.
238
+
239
+ ### Step 2b: Human Checkpoint (if enabled)
240
+
241
+ **Skip if `HUMAN_CHECKPOINT = false`.**
242
+
243
+ Present the review results and wait for user input:
244
+
245
+ ```
246
+ 📋 Round 1 review complete.
247
+
248
+ Score: X/10 — [verdict]
249
+ Key weaknesses (by severity):
250
+ 1. [CRITICAL] ...
251
+ 2. [MAJOR] ...
252
+ 3. [MINOR] ...
253
+
254
+ Reply "go" to implement all fixes, give custom instructions, "skip 2" to skip specific fixes, or "stop" to end.
255
+ ```
256
+
257
+ Parse user response same as `/auto-review-loop`: approve / custom instructions / skip / stop.
258
+
259
+ ### Step 3: Implement Round 1 Fixes
260
+
261
+ Parse the review and implement fixes by severity:
262
+
263
+ **Priority order:**
264
+ 1. CRITICAL fixes (assumption mismatches, internal contradictions)
265
+ 2. MAJOR fixes (overclaims, missing content, notation issues)
266
+ 3. MINOR fixes (if time permits)
267
+
268
+ **Edit-whitelist gate (if set):** If `EDIT_WHITELIST` is set, before applying each proposed edit, check the target path against `allowed_paths` / `forbidden_paths` and the new-lines diff against `forbidden_operations` per the "Optional: Edit Whitelist" section. Rejections are logged to `PAPER_IMPROVEMENT_LOG.md` under `## Rejected by edit_whitelist (Round 1)` with file, reason (`path` or `operation`), the offending pattern, and the original reviewer concern. The loop continues with remaining edits — a rejection never aborts the round. Surface a rejection summary at the end of the round.
269
+
270
+ **Common fix patterns:**
271
+
272
+ | Issue | Fix Pattern |
273
+ |-------|-------------|
274
+ | Assumption-model mismatch | Rewrite assumption to match the model, add formal proposition bridging the gap |
275
+ | Overclaims | Soften language: "validate" → "demonstrate practical relevance", "comparable" → "qualitatively competitive" |
276
+ | Missing metrics | Add quantitative table with honest parameter counts and caveats |
277
+ | Theorem not self-contained | Add "Interpretation" paragraph listing all dependencies |
278
+ | Notation confusion | Rename conflicting symbols globally, add Notation paragraph |
279
+ | Missing references | Add to `references.bib`, cite in appropriate locations |
280
+ | Theory-practice gap | Explicitly frame theory as idealized; add synthetic validation subsection |
281
+ | Proof gap (theory papers) | Run `/proof-checker` if PROOF_AUDIT.md doesn't exist yet; fix FATAL/CRITICAL issues |
282
+ | Writing clutter / passive voice | Apply sciwrite 5-pass audit: clutter extraction → active voice → sentence architecture → keyword consistency → numerical integrity. See `paper-write` Step 5 |
283
+ | Number mismatch (paper vs results) | Run `/paper-claim-audit` if PAPER_CLAIM_AUDIT.md doesn't exist; fix any `number_mismatch` or `aggregation_mismatch` claims |
284
+ | Keyword inconsistency | The "Banana Rule": if Methods says "obese group", Results must not say "heavier group". Extract key terms, verify consistency across all sections |
285
+
286
+ ### Step 4: Recompile Round 1
287
+
288
+ ```bash
289
+ cd paper && latexmk -C && latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex
290
+ cp main.pdf main_round1.pdf
291
+ ```
292
+
293
+ Verify: 0 undefined references, 0 undefined citations.
294
+
295
+ ### Step 4.5: Restatement Regression Test
296
+
297
+ After every recompilation, rerun a theorem-statement consistency check so fix rounds cannot reintroduce appendix drift. **Run this after Step 4 and again after Step 7 before the final format check.**
298
+
299
+ **Scope**
300
+ - Compare only theorem/lemma/proposition/corollary statements, not proof bodies.
301
+ - Classify files by `main.tex` input order: files before `\appendix` are main body; files after `\appendix` are appendix.
302
+
303
+ **Normalized comparison logic**
304
+ - Strip comments, `\label{...}`, `\ref{...}`, `\eqref{...}`, `\cite...{...}`, and whitespace-only differences.
305
+ - Collapse formatting-only macros such as `\emph{}`, `\textbf{}`, `\textit{}`, `\mathrm{}`, `\mathbf{}`, `\mathcal{}`, and `\operatorname{}` to their contents.
306
+ - Preserve quantifiers, case splits, assumptions, and the literal names of defined objects.
307
+ - Compare by theorem label when available; otherwise compare by theorem type and order.
308
+ - Flag any change in hypotheses, case splits, quantifier order, or terminology (`stationary` vs `terminal`) as regression drift.
309
+
310
+ ```bash
311
+ python3 - <<'PY'
312
+ import re
313
+ def normalize(s):
314
+ s = re.sub(r'%.*', '', s)
315
+ s = re.sub(r'\\label\{[^}]*\}', '', s)
316
+ s = re.sub(r'\\(?:ref|eqref|cref|Cref|cite[a-zA-Z]*)\{[^}]*\}', '', s)
317
+ s = re.sub(r'\\(?:emph|textbf|textit|mathrm|mathbf|mathsf|mathcal|operatorname)\{([^{}]*)\}', r'\1', s)
318
+ s = re.sub(r'\\begin\{[^}]+\}|\\end\{[^}]+\}', '', s)
319
+ s = re.sub(r'\s+', ' ', s)
320
+ return s.strip().lower()
321
+ # Compare normalized theorem blocks from the current main-body files
322
+ # against their appendix restatements. Any mismatch blocks completion.
323
+ PY
324
+ ```
325
+
326
+ **Empirical motivation:** in a real submission run, a key theorem had a multi-case split in the main text but a single-case statement in the appendix; a key variable was named one way in main and another in appendix. These drifted multiple times across fix rounds because no automated check caught regression.
327
+
328
+ ### Step 5: Round 2 Review
329
+
330
+ If `REVIEWER_BIAS_GUARD = true` (default), use a **fresh** `mcp__claude-review__review_start` reviewer for Round 2. Do not ask the reviewer to reward the Round 1 fix summary for prompting. Save the returned threadId only for recovery bookkeeping.
331
+
332
+ ```
333
+ mcp__claude-review__review_start:
334
+ prompt: |
335
+ You are reviewing a [VENUE] paper. This is a fresh, zero-context review.
336
+ Ignore any prior review rounds, prior fix lists, or executor explanations.
337
+ Judge the paper only from the current LaTeX source and compiled PDF.
338
+
339
+ ## Paper Files:
340
+ - LaTeX source: [list all section .tex files]
341
+ - Compiled PDF: paper/main.pdf
342
+ - Figures: [list figure files]
343
+
344
+ Read BOTH the LaTeX source (for content/logic) AND the compiled PDF (for visual presentation).
345
+
346
+ ## Review Instructions
347
+ Please act as a senior ML reviewer ([VENUE] level). Provide:
348
+ 1. **Overall Score** (1-10, where 6 = weak accept, 7 = accept)
349
+ 2. **Summary** (2-3 sentences)
350
+ 3. **Strengths** (bullet list, ranked)
351
+ 4. **Weaknesses** (bullet list, ranked: CRITICAL > MAJOR > MINOR)
352
+ 5. **For each CRITICAL/MAJOR weakness**: A specific, actionable fix
353
+ 6. **Missing References** (if any)
354
+ 7. **Visual Review** (from the PDF):
355
+ - Figure quality: readable? labels legible? colors distinguishable in grayscale?
356
+ - Figure-caption alignment: does each caption match its figure?
357
+ - Layout: orphaned headers, awkward page breaks, figures far from references?
358
+ - Table formatting: aligned columns, consistent decimals, bold for best results?
359
+ - Visual consistency: same color scheme across all figures?
360
+ 8. **Verdict**: Ready for submission? Yes / Almost / No
361
+
362
+ Focus on: theoretical rigor, claims vs evidence alignment, writing clarity,
363
+ self-containedness, notation consistency, and visual presentation quality.
364
+ ```
365
+
366
+ After this start call, immediately save the returned `jobId` and poll `mcp__claude-review__review_status` with a bounded `waitSeconds` until `done=true`. Treat the completed status payload's `response` as the reviewer output, and save the completed `threadId` for any follow-up round.
367
+
368
+ If `REVIEWER_BIAS_GUARD = false` (legacy debugging only), use `mcp__claude-review__review_reply_start` with the saved reviewer id; this is **not** the recommended path.
369
+
370
+ ### Step 5.5: Kill Argument Exercise (theory / scope-heavy papers only)
371
+
372
+ Run this only if the paper is theory-heavy (≥5 `\begin{theorem}|\begin{lemma}|\begin{proposition}|\begin{corollary}` environments in the source) or has explicit scope/generality claims in title/abstract, and only on the final scheduled round (`current_round == MAX_ROUNDS`).
373
+
374
+ **Delegate to the `kill-argument` skill** (extracted in May 2026 as a standalone primitive). This step does NOT re-implement the Attack-and-Adjudication prompt template; instead, invoke the skill and read its output. The Codex-CLI form is to call the installed skill the same way you would call any other ARIS skill from the agent's tool list, then parse `KILL_ARGUMENT.json` from the paper directory.
375
+
376
+ **Merge rule** (auto-loop's responsibility — `kill-argument` itself is detect-only):
377
+
378
+ - Read `details.decomposed_points` from `KILL_ARGUMENT.json`.
379
+ - For each point with `verdict == "still_unresolved"` or `verdict == "partially_answered"` at `severity_if_unresolved == "critical"`:
380
+ - Dedupe against the Round 2 weakness list by semantic overlap (~85% similarity threshold).
381
+ - If novel, append it to the Step 6 fix list with the recommended_fix as the action description.
382
+ - If the adjudication shows the issue is `answered_by_current_text`, only downgrade an existing weakness item after verifying the cited file:line evidence yourself.
383
+ - Record both `KILL_ARGUMENT.md` and the merge decision in `PAPER_IMPROVEMENT_LOG.md`.
384
+ - If `HUMAN_CHECKPOINT = true`, include the merged findings in the checkpoint summary before asking the user to proceed.
385
+
386
+ This phase feeds directly into Step 6. The merged findings must land before the final recompile.
387
+
388
+ If kill-argument returns `verdict: NOT_APPLICABLE`, skip Step 5.5 entirely and proceed to Step 6. If it returns `BLOCKED` or `ERROR`, log the reason in `PAPER_IMPROVEMENT_LOG.md` and proceed without merging — the loop should not stall on an adversarial check that cannot run.
389
+
390
+ **Empirical motivation:** in a real submission run, after several rounds of standard improvement (score 7-8/10), the kill-argument exercise surfaced framing weaknesses that no prior review caught (e.g., a setting being mostly conditional rather than truly general, or a baseline being irrelevant to real systems). Author rebuttal forced explicit scope qualifications in abstract and discussion.
391
+
392
+ ### Step 5b: Human Checkpoint (if enabled)
393
+
394
+ **Skip if `HUMAN_CHECKPOINT = false`.** Same as Step 2b — present Round 2 review, wait for user input.
395
+
396
+ ### Step 6: Implement Round 2 Fixes
397
+
398
+ Same process as Step 3. Typical Round 2 fixes:
399
+ - Add controlled synthetic experiments validating theory
400
+ - Further soften any remaining overclaims
401
+ - Formalize informal arguments (e.g., truncation → formal proposition)
402
+ - Strengthen limitations section
403
+
404
+ **Edit-whitelist gate (if set):** Same as Step 3 — if `EDIT_WHITELIST` is set, run the path + forbidden-operation checks before applying each proposed edit. Rejections are logged to `PAPER_IMPROVEMENT_LOG.md` under `## Rejected by edit_whitelist (Round 2)` and the loop continues. Surface a rejection summary at the end of the round.
405
+
406
+ ### Step 7: Recompile Round 2
407
+
408
+ ```bash
409
+ cd paper && latexmk -C && latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex
410
+ cp main.pdf main_round2.pdf
411
+ ```
412
+
413
+ ### Step 8: Format Check
414
+
415
+ After the final recompilation, run a **location-aware** format compliance check.
416
+
417
+ ```bash
418
+ # If the log lacks file/line data, rerun the final compile once with -file-line-error.
419
+ cd paper && latexmk -pdf -file-line-error -interaction=nonstopmode -halt-on-error main.tex
420
+ ```
421
+
422
+ ```bash
423
+ # 1. Page count vs venue limit
424
+ PAGES=$(pdfinfo paper/main.pdf | grep Pages | awk '{print $2}')
425
+ echo "Pages: $PAGES (limit: 9 main body for ICLR/NeurIPS)"
426
+
427
+ # 2. Duplicate labels: HARD BLOCK
428
+ DUP_LABELS=$(grep -Rho "\\\\label{[^}]*}" paper/main.tex paper/sections 2>/dev/null | sort | uniq -d || true)
429
+ if [ -n "$DUP_LABELS" ]; then
430
+ echo "Duplicate labels found (BLOCKING):"
431
+ echo "$DUP_LABELS"
432
+ fi
433
+
434
+ # 3. Overfull warnings with location classification
435
+ OVERFULLS=$(grep -n "Overfull \\\\hbox" paper/main.log 2>/dev/null || true)
436
+
437
+ # Main body = source files before \appendix in main.tex.
438
+ # Appendix = source files after \appendix, or files whose path contains "appendix".
439
+ # Bibliography = paper.bbl, references.bib, or bibliography-generated output.
440
+ MAIN_BODY_OVERFULL=$(echo "$OVERFULLS" | grep -v -E 'appendix|paper\.bbl|references\.bib' || true)
441
+ APPENDIX_OVERFULL=$(echo "$OVERFULLS" | grep -E 'appendix' || true)
442
+ BIB_OVERFULL=$(echo "$OVERFULLS" | grep -E 'paper\.bbl|references\.bib' || true)
443
+
444
+ echo "Main-body overfulls (any size BLOCKS):"
445
+ echo "$MAIN_BODY_OVERFULL"
446
+ echo "Appendix overfulls (>10pt blocks):"
447
+ echo "$APPENDIX_OVERFULL"
448
+ echo "Bibliography overfulls (>20pt blocks):"
449
+ echo "$BIB_OVERFULL"
450
+ ```
451
+
452
+ **Stop criteria:**
453
+ - Any duplicate label blocks completion.
454
+ - Any overfull in the main body blocks completion, regardless of size.
455
+ - Appendix overfulls block completion only if they exceed 10pt or are visibly clipping.
456
+ - Bibliography overfulls block completion only if they exceed 20pt or are visibly clipping.
457
+ - Underfull hboxes remain warnings unless they create obvious layout damage.
458
+
459
+ **Auto-fix patterns (location-aware):**
460
+
461
+ | Issue | Fix |
462
+ |-------|-----|
463
+ | Main-body overfull in equation | Split with `aligned` / `split` / `multline`, or shorten notation |
464
+ | Main-body overfull in table | Reduce font, resize table, or break table across rows |
465
+ | Main-body overfull in text | Rephrase; do not hide it with global `\sloppy` |
466
+ | Appendix overfull ≤ 10pt | Warn only unless visibly clipping |
467
+ | Appendix overfull > 10pt | Apply the same fix if the spill is visible |
468
+ | Bibliography overfull ≤ 20pt | Warn only unless caused by malformed entry or clipping |
469
+ | Bibliography overfull > 20pt | Fix malformed entry, URL, or DOI formatting |
470
+ | Over page limit | Move content to appendix, compress tables, reduce figure sizes |
471
+
472
+ **Location-aware interpretation:**
473
+ - Classify by the source file reported in the `-file-line-error` log.
474
+ - If a warning cannot be classified, treat it as main body and fix it.
475
+
476
+ **Empirical motivation:** in a real submission run, dozens of overfull hbox warnings (the largest well over 100pt in an appendix proof) survived multiple improvement rounds because the previous blanket "overfull > 10pt blocks" rule was too lax and treated all locations equally.
477
+
478
+ ### Step 9: Document Results
479
+
480
+ Create `PAPER_IMPROVEMENT_LOG.md` in the paper directory:
481
+
482
+ ```markdown
483
+ # Paper Improvement Log
484
+
485
+ ## Score Progression
486
+
487
+ | Round | Score | Verdict | Key Changes |
488
+ |-------|-------|---------|-------------|
489
+ | Round 0 (original) | X/10 | No/Almost/Yes | Baseline |
490
+ | Round 1 | Y/10 | No/Almost/Yes | [summary of fixes] |
491
+ | Round 2 | Z/10 | No/Almost/Yes | [summary of fixes] |
492
+
493
+ ## Round 1 Review & Fixes
494
+
495
+ <details>
496
+ <summary>Claude Review (Round 1)</summary>
497
+
498
+ [Full raw review text, verbatim]
499
+
500
+ </details>
501
+
502
+ ### Fixes Implemented
503
+ 1. [Fix description]
504
+ 2. [Fix description]
505
+ ...
506
+
507
+ ## Round 2 Review & Fixes
508
+
509
+ <details>
510
+ <summary>Claude Review (Round 2)</summary>
511
+
512
+ [Full raw review text, verbatim]
513
+
514
+ </details>
515
+
516
+ ### Fixes Implemented
517
+ 1. [Fix description]
518
+ 2. [Fix description]
519
+ ...
520
+
521
+ ## PDFs
522
+ - `main_round0_original.pdf` — Original generated paper
523
+ - `main_round1.pdf` — After Round 1 fixes
524
+ - `main_round2.pdf` — Final version after Round 2 fixes
525
+ ```
526
+
527
+ ### Step 9: Summary
528
+
529
+ Report to user:
530
+ - Score progression table
531
+ - Number of CRITICAL/MAJOR/MINOR issues fixed per round
532
+ - Final page count
533
+ - Remaining issues (if any)
534
+
535
+ ### Feishu Notification (if configured)
536
+
537
+ After each round's review AND at final completion, check `~/.codex/feishu.json`:
538
+ - **After each round**: Send `review_scored` — "Round N: X/10 — [key changes]"
539
+ - **After final round**: Send `pipeline_done` — score progression table + final page count
540
+ - If config absent or mode `"off"`: skip entirely (no-op)
541
+
542
+ ## Output
543
+
544
+ ```
545
+ paper/
546
+ ├── main_round0_original.pdf # Original
547
+ ├── main_round1.pdf # After Round 1
548
+ ├── main_round2.pdf # After Round 2 (final)
549
+ ├── main.pdf # = main_round2.pdf
550
+ └── PAPER_IMPROVEMENT_LOG.md # Full review log with scores
551
+ ```
552
+
553
+ ## Key Rules
554
+
555
+ - **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.
556
+
557
+ - **Preserve all PDF versions** — user needs to compare progression
558
+ - **Save FULL raw review text** — do not summarize or truncate Claude responses
559
+ - **Reviewer independence (Round 2+)**: when `REVIEWER_BIAS_GUARD = true` (default), use a **fresh** `mcp__claude-review__review_start` reviewer for every review round; never use stale reviewer continuation and never include "since last round" / fix summaries in the prompt. See the Reviewer Independence Protocol section above.
560
+ - **Always recompile after fixes** — verify 0 errors before proceeding
561
+ - **Do not fabricate experimental results** — synthetic validation must describe methodology, not invent numbers
562
+ - **Respect the paper's claims** — soften overclaims rather than adding unsupported new claims
563
+ - **Global consistency** — when renaming notation or softening claims, check ALL files (abstract, intro, method, experiments, theory sections, conclusion, tables, figure captions)
564
+ - **Edit-whitelist rejections are LOGGED, not silently dropped** — when `EDIT_WHITELIST` is set and an edit is rejected for a path or forbidden-operation violation, the rejection MUST be appended to `PAPER_IMPROVEMENT_LOG.md` with file, reason, offending pattern, and the original reviewer concern. The loop reports a rejection summary at the end of every round (and in the checkpoint, if `HUMAN_CHECKPOINT = true`). Never silently swallow a whitelist rejection — the audit trail is the whole point of the parameter.
565
+
566
+ ## Typical Score Progression
567
+
568
+ Based on end-to-end testing on a real theory-paper run:
569
+
570
+ | Round | Score | Key Improvements |
571
+ |-------|-------|-----------------|
572
+ | Round 0 | 4/10 (content) | Baseline: assumption-model mismatch, overclaims, notation issues |
573
+ | Round 1 | 6/10 (content) | Fixed assumptions, softened claims, added interpretation, renamed notation |
574
+ | Round 2 | 7/10 (content) | Added synthetic validation, formal truncation proposition, stronger limitations |
575
+ | Round 3 | 5→8.5/10 (format) | Removed hero fig, appendix, compressed conclusion, fixed overfull hbox |
576
+
577
+ **+4.5 points across 3 rounds** (2 content + 1 format) is typical for a well-structured but rough first draft. Final state at submission: clean overfull-hbox count and venue-format-compliant length.
578
+
579
+ ## Review Tracing
580
+
581
+ After each `mcp__claude-review__review_start`, `mcp__claude-review__review_reply_start`, or adversarial reviewer call, save the trace following `../shared-references/review-tracing.md`. Write files directly to `.aris/traces/auto-paper-improvement-loop/<date>_run<NN>/`. Respect the `--- trace:` parameter when present (default: `full`).