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,604 @@
1
+ ---
2
+ name: paper-write
3
+ description: "Draft LaTeX paper section by section from an outline. Use when user says \"写论文\", \"write paper\", \"draft LaTeX\", \"开始写\", or wants to generate LaTeX content from a paper plan."
4
+ argument-hint: "[venue-or-section] [— style-ref: <source>]"
5
+ allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, WebSearch, WebFetch, mcp__codex__codex, mcp__codex__codex-reply
6
+ ---
7
+
8
+ # Paper Write: Section-by-Section LaTeX Generation
9
+
10
+ Draft a LaTeX paper based on: **$ARGUMENTS**
11
+
12
+ ## Constants
13
+
14
+ - **REVIEWER_MODEL = `gpt-5.6-sol`** — Model used via Codex MCP for section review. Must be an OpenAI model.
15
+ - **TARGET_VENUE = `ICLR`** — Default venue. Supported: `ICLR`, `NeurIPS`, `ICML`, `CVPR` (also ICCV/ECCV), `ACL` (also EMNLP/NAACL), `AAAI`, `ACM` (ACM MM, SIGIR, KDD, CHI, etc.), `IEEE_JOURNAL` (IEEE Transactions / Letters, e.g., T-PAMI, JSAC, TWC, TCOM, TSP, TIP), `IEEE_CONF` (IEEE conferences, e.g., ICC, GLOBECOM, INFOCOM, ICASSP). Determines style file and formatting.
16
+ - **ANONYMOUS = true** — If true, use anonymous author block. Set `false` for camera-ready. Note: most IEEE venues do NOT use anonymous submission — set `false` for IEEE.
17
+ - **MAX_PAGES = 9** — Main body page limit. For ML conferences: counts from first page to end of Conclusion section, references and appendix NOT counted. **For IEEE venues: references ARE counted toward the page limit.** Typical limits: IEEE journal = no strict limit (but 12-14 pages typical for Transactions, 4-5 for Letters), IEEE conference = 5-8 pages including references.
18
+ - **DBLP_BIBTEX = true** — Fetch real BibTeX from DBLP/CrossRef instead of LLM-generated entries. Eliminates hallucinated citations. Zero install required. Set `false` to use legacy behavior (LLM search + `[VERIFY]` markers).
19
+
20
+ ## Inputs
21
+
22
+ 1. **PAPER_PLAN.md** — outline with claims-evidence matrix, section plan, figure plan (from `/paper-plan`)
23
+ 2. **NARRATIVE_REPORT.md** — the research narrative (primary source of content)
24
+ 3. **Generated figures** — PDF/PNG files in `figures/` (from `/paper-figure`)
25
+ 4. **LaTeX includes** — `figures/latex_includes.tex` (from `/paper-figure`)
26
+ 5. **Bibliography** — existing `.bib` file, or will create one
27
+
28
+ If no PAPER_PLAN.md exists, ask the user to run `/paper-plan` first or provide a brief outline.
29
+
30
+ ## Orchestra-Guided Writing Overlay
31
+
32
+ Keep the existing `insleep` workflow, file layout, and defaults. Use the shared references below only when they improve writing quality:
33
+
34
+ - Read `../shared-references/writing-principles.md` before drafting the Abstract, Introduction, Related Work, or when prose feels generic.
35
+ - Read `../shared-references/venue-checklists.md` during the final write-up and submission-readiness pass.
36
+ - Read `../shared-references/citation-discipline.md` only when the built-in DBLP/CrossRef workflow is insufficient.
37
+
38
+ These references are support material, not extra workflow phases.
39
+
40
+ ## Optional: Style reference (`— style-ref: <source>`, opt-in)
41
+
42
+ Lets the user steer **structural** style (section ordering, theorem density, sentence cadence, figure density, bibliography style) toward a reference paper. **Default OFF — when the user does not pass `— style-ref`, do nothing differently from before.**
43
+
44
+ Only when `— style-ref: <source>` appears in `$ARGUMENTS`, run the helper FIRST, before drafting:
45
+
46
+ ```bash
47
+ # Resolve $STYLE_HELPER via the canonical strict-safe chain (see
48
+ # shared-references/integration-contract.md §2). Policy A — gate:
49
+ # unresolved helper means --style-ref cannot be satisfied, so abort.
50
+ cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
51
+ if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
52
+ ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
53
+ fi
54
+ if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
55
+ ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
56
+ fi
57
+ STYLE_HELPER=".aris/tools/extract_paper_style.py"
58
+ [ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
59
+ [ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
60
+ [ -f "$STYLE_HELPER" ] || {
61
+ echo "ERROR: extract_paper_style.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
62
+ 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
63
+ echo " --style-ref cannot be satisfied; aborting." >&2
64
+ exit 1
65
+ }
66
+ STYLE_STATUS=0
67
+ CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
68
+ case "$STYLE_STATUS" in
69
+ 0) ;; # use $CACHE/style_profile.md as structural guidance
70
+ 2) echo "warning: style-ref skipped (missing optional dep)" >&2 ;;
71
+ 3) echo "error: --style-ref source failed; aborting draft" >&2 ; exit 1 ;;
72
+ *) echo "error: helper failed unexpectedly; aborting draft" >&2 ; exit 1 ;;
73
+ esac
74
+ ```
75
+
76
+ Sources accepted: local TeX dir / file, local PDF, arXiv id (`2501.12345` or `arxiv:2501.12345`), http(s) URL. Overleaf URLs and project IDs are rejected — clone via `/overleaf-sync setup <id>` first and pass the local clone path.
77
+
78
+ **Strict rules** (full contract in `tools/extract_paper_style.py` docstring):
79
+
80
+ - Use `style_profile.md` as **structural** guidance only. Match section count, section ordering tendency, theorem-environment density, caption-length distribution, sentence cadence, math display ratio, citation style.
81
+ - **Never copy prose, claims, examples, or terminology** from anything reachable through the cache. The profile is intentionally aggregate; if you need substance, use the user's own outline.
82
+ - **Never pass `— style-ref` (or the cache contents) to reviewer / auditor sub-agents.** Cross-model review independence (`../shared-references/reviewer-independence.md`) requires reviewers see only the artifact and the user's prompt, not the author's stylistic context.
83
+
84
+ ### `<!-- DATA_NEEDED -->` markers (when `GAP_REPORT.md` exists)
85
+
86
+ If `/paper-plan` ran with `— style-ref:` it will have emitted `GAP_REPORT.md` alongside `PAPER_PLAN.md`. This file lists structural slots (ablation tables, scaling experiments, failure-case analyses, …) the exemplar implies but the user has **no evidence to fill**.
87
+
88
+ When `GAP_REPORT.md` is present and a section slot is classified as `status: missing`:
89
+
90
+ 1. **Do not fabricate numerical results, figure references, or qualitative claims** to fill that slot.
91
+ 2. Emit an HTML-comment placeholder at the exact location the missing content would go:
92
+
93
+ ```latex
94
+ <!-- DATA_NEEDED: GAP_S5_ABLATION — ablation table comparing X across the 3 axes implied by exemplar -->
95
+ ```
96
+
97
+ 3. Slot ID and one-line description come straight from `GAP_REPORT.md`. **Never invent Slot IDs.** Never reword the description to be more confident than the report.
98
+ 4. The marker is intentionally an HTML comment so it is invisible in the rendered PDF but **searchable via `grep -r "DATA_NEEDED" sec/`** for human triage / `/experiment-bridge` follow-up.
99
+ 5. For `status: partial`, write what the user has and emit `<!-- DATA_NEEDED: <Slot ID> — <what specifically is short> -->` at the gap point in the same paragraph (do not split the section).
100
+
101
+ **Carve-out from "no placeholder" rule.** The default `/paper-write` discipline (no placeholders such as "see supplementary" or "TBD") still applies for everything **except** GAP_REPORT-listed missing slots. The marker is the principled way to surface genuine evidence deficits without compromising claim integrity.
102
+
103
+ Original idea: @zhangpelf in [#217](https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep/issues/217).
104
+
105
+ ## Templates
106
+
107
+ ### Venue-Specific Setup
108
+
109
+ The skill includes conference templates in `templates/`. Select based on TARGET_VENUE:
110
+
111
+ **ICLR:**
112
+ ```latex
113
+ \documentclass{article}
114
+ \usepackage{iclr2026_conference,times}
115
+ % \iclrfinalcopy % Uncomment for camera-ready
116
+ ```
117
+
118
+ **NeurIPS:**
119
+ ```latex
120
+ \documentclass{article}
121
+ \usepackage[preprint]{neurips_2025}
122
+ % \usepackage[final]{neurips_2025} % Camera-ready
123
+ ```
124
+
125
+ **ICML:**
126
+ ```latex
127
+ \documentclass[accepted]{icml2025}
128
+ % Use [accepted] for camera-ready
129
+ ```
130
+
131
+ **IEEE Journal** (Transactions, Letters):
132
+ ```latex
133
+ \documentclass[journal]{IEEEtran}
134
+ \usepackage{cite} % IEEE uses \cite{}, NOT natbib
135
+ % Author block uses \author{Name~\IEEEmembership{Member,~IEEE}}
136
+ ```
137
+
138
+ **IEEE Conference** (ICC, GLOBECOM, INFOCOM, ICASSP, etc.):
139
+ ```latex
140
+ \documentclass[conference]{IEEEtran}
141
+ \usepackage{cite} % IEEE uses \cite{}, NOT natbib
142
+ % Author block uses \IEEEauthorblockN / \IEEEauthorblockA
143
+ ```
144
+
145
+ ### Project Structure
146
+
147
+ Generate this file structure:
148
+
149
+ ```
150
+ paper/
151
+ ├── main.tex # master file (includes sections)
152
+ ├── iclr2026_conference.sty # or neurips_2025.sty / icml2025.sty / IEEEtran.cls + IEEEtran.bst
153
+ ├── math_commands.tex # shared math macros
154
+ ├── references.bib # bibliography (filtered — only cited entries)
155
+ ├── sections/
156
+ │ ├── 0_abstract.tex
157
+ │ ├── 1_introduction.tex
158
+ │ ├── 2_related_work.tex
159
+ │ ├── 3_method.tex # or preliminaries, setup, etc.
160
+ │ ├── 4_experiments.tex
161
+ │ ├── 5_conclusion.tex
162
+ │ └── A_appendix.tex # proof details, extra experiments
163
+ └── figures/ # symlink or copy from project figures/
164
+ ```
165
+
166
+ **Section files are FLEXIBLE**: If the paper plan has 6-8 sections, create corresponding files (e.g., `4_theory.tex`, `5_experiments.tex`, `6_analysis.tex`, `7_conclusion.tex`).
167
+
168
+ ## Workflow
169
+
170
+ ### Step 0: Backup and Clean
171
+
172
+ If `paper/` already exists, back up to `paper-backup-{timestamp}/` before overwriting. Never silently destroy existing work.
173
+
174
+ **CRITICAL: Clean stale files.** When changing section structure (e.g., 5 sections → 7 sections), delete section files that are no longer referenced by `main.tex`. Stale files (e.g., old `5_conclusion.tex` left behind when conclusion moved to `7_conclusion.tex`) cause confusion and waste space.
175
+
176
+ ### Step 1: Initialize Project
177
+
178
+ 1. Create `paper/` directory
179
+ 2. Copy venue template from `templates/` — the template already includes:
180
+ - All standard packages (amsmath, hyperref, cleveref, booktabs, etc.)
181
+ - Theorem environments with `\crefname{assumption}` fix
182
+ - Anonymous author block
183
+ 3. Generate `math_commands.tex` with paper-specific notation
184
+ 4. Create section files matching PAPER_PLAN structure
185
+
186
+ **Author block (anonymous mode):**
187
+ ```latex
188
+ \author{Anonymous Authors}
189
+ ```
190
+
191
+ ### Step 2: Generate math_commands.tex
192
+
193
+ Create shared math macros based on the paper's notation:
194
+
195
+ ```latex
196
+ % math_commands.tex — shared notation
197
+ \newcommand{\R}{\mathbb{R}}
198
+ \newcommand{\E}{\mathbb{E}}
199
+ \DeclareMathOperator*{\argmin}{arg\,min}
200
+ \DeclareMathOperator*{\argmax}{arg\,max}
201
+ % Add paper-specific notation here
202
+ ```
203
+
204
+ ### Step 3: Write Each Section
205
+
206
+ Process sections in order. For each section:
207
+
208
+ 1. **Read the plan** — what claims, evidence, citations belong here
209
+ 2. **Read NARRATIVE_REPORT.md** — extract relevant content, findings, and quantitative results
210
+ 3. **Draft content** — write complete LaTeX (no fabricated placeholders). **Exception:** if `GAP_REPORT.md` exists and the section has slots with `status: missing`, emit `<!-- DATA_NEEDED: <Slot ID> — <description> -->` at those points instead of inventing data — see the DATA_NEEDED markers subsection above.
211
+ 4. **Insert figures/tables** — use snippets from `figures/latex_includes.tex`
212
+ 5. **Add citations** — for ML conferences (ICLR/NeurIPS/ICML/CVPR/ACL/AAAI): use `\citep{}` / `\citet{}` (natbib). **For IEEE venues**: use `\cite{}` (numeric style via `cite` package). Never mix natbib and cite commands.
213
+
214
+ Before drafting the front matter, re-read the one-sentence contribution from `PAPER_PLAN.md`. The Abstract and Introduction should make that takeaway obvious before the reader reaches the full method.
215
+
216
+ #### Section-Specific Guidelines
217
+
218
+ **§0 Abstract:**
219
+ - Use the 5-part flow from `../shared-references/writing-principles.md`: what, why hard, how, evidence, strongest result
220
+ - Must be self-contained (understandable without reading the paper)
221
+ - Start with the paper's specific contribution, not generic field-level background
222
+ - Include one concrete quantitative result
223
+ - 150-250 words (check venue limit)
224
+ - No citations, no undefined acronyms
225
+ - No `\begin{abstract}` — that's in main.tex
226
+
227
+ **§1 Introduction:**
228
+ - Open with a compelling hook (1-2 sentences, problem motivation)
229
+ - State the gap clearly ("However, ...")
230
+ - Give a brief approach overview before the reader gets lost in details
231
+ - List 2-4 specific, falsifiable contributions as a numbered or bulleted list
232
+ - Preview the strongest result early instead of saving it for the experiments section
233
+ - End with a brief roadmap ("The rest of this paper is organized as...")
234
+ - Include the main result figure if space allows
235
+ - Target: 1-1.5 pages
236
+ - Methods should begin by page 2-3 at the latest
237
+
238
+ **§2 Related Work:**
239
+ - **MINIMUM 1 full page** (3-4 substantive paragraphs). Short related work sections are a common reviewer complaint.
240
+ - Organize by category using `\paragraph{Category Name.}`
241
+ - Organize methodologically, by assumption class, or by research question; do not write paper-by-paper mini-summaries
242
+ - Each category: 1 paragraph summarizing the line of work + 1-2 sentences positioning this paper
243
+ - Do NOT just list papers — synthesize and compare
244
+ - End each paragraph with how this paper relates/differs
245
+
246
+ **§3 Method / Preliminaries / Setup:**
247
+ - Define notation early (reference math_commands.tex)
248
+ - Use `\begin{definition}`, `\begin{theorem}` environments for formal statements
249
+ - For theory papers: include proof sketches of key results in main body, full proofs in appendix
250
+ - For theory papers: include a **comparison table** of prior bounds vs. this paper
251
+ - Include algorithm pseudocode if applicable (`algorithm2e` or `algorithmic`)
252
+ - Target: 1.5-2 pages
253
+
254
+ **§4 Experiments:**
255
+ - Start with experimental setup (datasets, baselines, metrics, implementation details)
256
+ - Main results table/figure first
257
+ - Then ablations and analysis
258
+ - Every claim from the introduction must have supporting evidence here
259
+ - For each major experiment, make explicit what claim it supports and what the reader should notice
260
+ - Target: 2.5-3 pages
261
+
262
+ **§5 Conclusion:**
263
+ - Summarize contributions (NOT copy-paste from intro — rephrase)
264
+ - Limitations (be honest — reviewers appreciate this)
265
+ - Future work (1-2 concrete directions)
266
+ - Ethics statement and reproducibility statement (if venue requires)
267
+ - Target: 0.5 pages
268
+
269
+ **Appendix:**
270
+ - Proof details (full proofs of main-body theorems)
271
+ - Additional experiments, ablations
272
+ - Implementation details, hyperparameter tables
273
+ - Additional visualizations
274
+
275
+ ### Step 3.5: Theory Paper Consistency Pass (theory papers only)
276
+
277
+ Run this pass after drafting all sections and before building the bibliography.
278
+
279
+ **Trigger heuristic:** treat the paper as theory-heavy if `PAPER_PLAN.md` labels it as theory/analysis, or if the drafted sections contain 5 or more formal result environments (`\begin{theorem}`, `\begin{lemma}`, `\begin{proposition}`, `\begin{corollary}`).
280
+
281
+ **Proof source search:** search the workspace for any standalone full-proof source file whose name or contents indicate a canonical proof version (`proof`, `appendix`, `full`, `complete`, `supplement`, `supplementary`). If such a file exists, prompt the user exactly:
282
+
283
+ `Inline full proofs from {file}? [Y/n]`
284
+
285
+ Default to `Y`.
286
+
287
+ If the user accepts:
288
+ - import the full theorem/lemma statement plus proof block into the appendix source (`A_appendix.tex` or the appendix file named by the plan)
289
+ - use the main-body theorem statement as the canonical public statement; the appendix copy must match it unless the main-body statement is being revised in the same pass
290
+ - do **not** leave placeholders such as "see supplementary proof document" or "proof omitted for brevity"
291
+ - preserve theorem labels, equation labels, and proof structure exactly
292
+ - keep the main body proof sketches short, but never let the appendix be a sketch-only placeholder when a full proof source exists
293
+
294
+ If no standalone full-proof source exists:
295
+ - use proof sketches only when they are actually written as proof sketches, not placeholders
296
+ - do not fabricate an external proof document reference
297
+
298
+ **Restatement audit:**
299
+ - Compare every theorem/lemma/proposition statement that is restated in the appendix against the main-body version
300
+ - Do not diff proof bodies; only audit statements, hypotheses, case splits, quantifiers, domains, notation, variable names, and terminology for defined objects
301
+ - Treat `stationary` vs `terminal`, changed assumption names, or missing case splits as mismatches unless explicitly documented
302
+ - If the appendix needs different wording, add an explicit notation bridge instead of silently renaming concepts
303
+ - Resolve all mismatches before Step 4
304
+
305
+ **Empirical motivation:** in a real theory-paper run, the default behavior generated `"see supplementary proof document"` placeholders in the appendix. The author had to manually pull hundreds of lines of full proofs from a standalone proofs file (e.g. `proof_full.tex`). Without this pass, theory papers ship with sketch-only appendices that fail at theory venues.
306
+
307
+ ### Step 4: Build Bibliography
308
+
309
+ **CRITICAL: Only include entries that are actually cited in the paper.**
310
+
311
+ 1. Scan all citation references in the drafted sections (`\citep{}`/`\citet{}` for ML conferences, `\cite{}` for IEEE venues)
312
+ 2. Build a citation key list
313
+ 3. For each citation key:
314
+ - Check existing `.bib` files in the project/narrative docs
315
+ - If not found and **DBLP_BIBTEX = true**, use the verified fetch chain below
316
+ - If not found and **DBLP_BIBTEX = false**, search arXiv/Scholar for correct BibTeX
317
+ - **NEVER fabricate BibTeX entries** — mark unknown ones with `[VERIFY]` comment
318
+ 4. Write `references.bib` containing ONLY cited entries (no bloat)
319
+
320
+ #### Verified BibTeX Fetch (when DBLP_BIBTEX = true)
321
+
322
+ Three-step fallback chain — zero install, zero auth, all real BibTeX:
323
+
324
+ **Step A: DBLP (best quality — full venue, pages, editors)**
325
+ ```bash
326
+ # 1. Search by title + first author
327
+ curl -s "https://dblp.org/search/publ/api?q=TITLE+AUTHOR&format=json&h=3"
328
+ # 2. Extract DBLP key from result (e.g., conf/nips/VaswaniSPUJGKP17)
329
+ # 3. Fetch real BibTeX
330
+ curl -s "https://dblp.org/rec/{key}.bib"
331
+ ```
332
+
333
+ **Step B: CrossRef DOI (fallback — works for arXiv preprints)**
334
+ ```bash
335
+ # If paper has a DOI or arXiv ID (arXiv DOI = 10.48550/arXiv.{id})
336
+ curl -sLH "Accept: application/x-bibtex" "https://doi.org/{doi}"
337
+ ```
338
+
339
+ **Step C: Mark `[VERIFY]` (last resort)**
340
+ If both DBLP and CrossRef return nothing, mark the entry with `% [VERIFY]` comment. Do NOT fabricate.
341
+
342
+ **Why this matters:** LLM-generated BibTeX frequently hallucinates venue names, page numbers, or even co-authors. DBLP and CrossRef return publisher-verified metadata. Upstream skills (`/research-lit`, `/novelty-check`) may mention papers from LLM memory — this fetch chain is the gate that prevents hallucinated citations from entering the final `.bib`.
343
+
344
+ If the DBLP/CrossRef flow is not enough, load `../shared-references/citation-discipline.md` for stricter fallback rules before adding placeholders.
345
+
346
+ **Automated bib cleaning** — use this Python pattern to extract only cited entries:
347
+
348
+ ```python
349
+ import re
350
+ # 1. Grep all \citep{...}, \citet{...}, and \cite{...} from all .tex files
351
+ # 2. Extract unique keys (handle multi-cite like \citep{a,b,c} or \cite{a,b,c})
352
+ # 3. Parse the full .bib file, keep only entries whose key is in the cited set
353
+ # 4. Write the filtered bib
354
+ ```
355
+
356
+ This prevents bib bloat (e.g., 948 lines → 215 lines in testing).
357
+
358
+ **Enforced Bib Hygiene Validation** — run immediately after the filtered `references.bib` is written.
359
+
360
+ ```bash
361
+ python3 - <<'PY'
362
+ import io, json, re, sys, urllib.parse, urllib.request
363
+ from pathlib import Path
364
+
365
+ try:
366
+ import bibtexparser
367
+ except ImportError:
368
+ sys.exit("Missing dependency: pip install bibtexparser")
369
+
370
+ ROOT = Path("paper")
371
+ tex_paths = [ROOT / "main.tex", *sorted((ROOT / "sections").glob("*.tex"))]
372
+ tex = "\n".join(p.read_text(errors="ignore") for p in tex_paths if p.exists())
373
+
374
+ cited = set()
375
+ for m in re.finditer(r'\\cite[a-zA-Z]*\{([^}]*)\}', tex):
376
+ cited.update(k.strip() for k in m.group(1).split(',') if k.strip())
377
+
378
+ with (ROOT / "references.bib").open() as fh:
379
+ bib = bibtexparser.load(fh)
380
+
381
+ entries = {e["ID"]: e for e in bib.entries}
382
+ dead = sorted(set(entries) - cited)
383
+ if dead:
384
+ print("DEAD ENTRIES:")
385
+ for key in dead:
386
+ print(" ", key)
387
+
388
+ def norm(s):
389
+ return re.sub(r'[^a-z0-9]+', ' ', (s or '').lower()).strip()
390
+
391
+ def dblp_hits(title):
392
+ q = urllib.parse.quote(title)
393
+ url = f"https://dblp.org/search/publ/api?q={q}&format=json&h=3"
394
+ with urllib.request.urlopen(url, timeout=20) as r:
395
+ data = json.load(r)
396
+ return [h.get("info", {}) for h in data.get("result", {}).get("hits", {}).get("hit", [])]
397
+
398
+ def crossref_entry(doi):
399
+ req = urllib.request.Request(f"https://doi.org/{doi}", headers={"Accept": "application/x-bibtex"})
400
+ with urllib.request.urlopen(req, timeout=20) as r:
401
+ parsed = bibtexparser.loads(r.read().decode("utf-8", "ignore"))
402
+ return parsed.entries[0] if parsed.entries else {}
403
+
404
+ for key in sorted(cited & set(entries)):
405
+ e = entries[key]
406
+ title = e.get("title", "").strip("{}")
407
+ hits = dblp_hits(title) if title else []
408
+ hit = hits[0] if hits else None
409
+ source = "DBLP"
410
+ if hit is None and e.get("doi"):
411
+ try:
412
+ hit = crossref_entry(e["doi"])
413
+ source = "CrossRef"
414
+ except Exception:
415
+ hit = None
416
+ if hit is None:
417
+ print(f"VERIFY {key}: no DBLP/CrossRef hit")
418
+ continue
419
+
420
+ issues = []
421
+ year_a = str(e.get("year", "")).strip()
422
+ year_b = str(hit.get("year", "")).strip()
423
+ if year_a and year_b and year_a != year_b:
424
+ issues.append(f"year {year_a} != {year_b}")
425
+
426
+ venue_a = e.get("journal") or e.get("booktitle") or ""
427
+ venue_b = hit.get("journal") or hit.get("booktitle") or hit.get("venue") or ""
428
+ if norm(venue_a) and norm(venue_b) and norm(venue_a) != norm(venue_b):
429
+ issues.append(f"venue {venue_a} != {venue_b}")
430
+
431
+ authors_a = [norm(a) for a in re.split(r'\s+and\s+', e.get("author", "")) if a.strip()]
432
+ authors_b = [norm(a) for a in re.split(r'\s+and\s+', hit.get("author", "")) if a.strip()]
433
+ if authors_a and authors_b and authors_a[:2] != authors_b[:2]:
434
+ issues.append("author list differs")
435
+
436
+ if issues:
437
+ print(f"MISMATCH {key} ({source}): " + "; ".join(issues))
438
+ PY
439
+ ```
440
+
441
+ If `DEAD ENTRIES` is printed, remove those keys from `references.bib` before continuing.
442
+ If `VERIFY` or `MISMATCH` is printed, do not invent metadata:
443
+ - prefer DBLP when it returns a clear hit
444
+ - if DBLP misses and a DOI is available, fall back to CrossRef
445
+ - if both disagree or still cannot verify, keep the entry only with a `% [VERIFY]` marker
446
+ - uncited entries must be deleted, not left behind as dead bibliography bloat
447
+
448
+ **Citation reachability rule:** an entry is dead if its key does not appear in any `\cite...{}` command in `paper/main.tex` or any `paper/sections/*.tex` file.
449
+
450
+ **Empirical motivation:** in a real submission run, several dead bib entries sat in `references.bib` for many improvement rounds, and at least one entry had a key/year mismatch. Neither was flagged by the existing automated cleaning.
451
+
452
+ **Citation verification rules (from claude-scholar + Imbad0202):**
453
+ 1. Every BibTeX entry must have: author, title, year, venue/journal
454
+ 2. Prefer published venue versions over arXiv preprints (if published)
455
+ 3. Use consistent key format: `{firstauthor}{year}{keyword}` (e.g., `ho2020denoising`)
456
+ 4. Double-check year and venue for every entry
457
+ 5. Remove duplicate entries (same paper with different keys)
458
+
459
+ ### Step 5: Scientific Writing Quality Pass (5 audit passes)
460
+
461
+ After drafting all sections, run five sequential audit passes. Based on Sainani's "Writing in the Sciences" methodology: every word must earn its place.
462
+
463
+ **Pass 1: Clutter Extraction** — Strip sentences to cleanest components.
464
+
465
+ | Cluttered phrase | Replace with |
466
+ |------------------|--------------|
467
+ | Due to the fact that | Because |
468
+ | In order to | To |
469
+ | A number of | Several |
470
+ | It is worth noting that | (delete — just state the point) |
471
+ | It is important to note that | (delete) |
472
+ | At the present time | Now |
473
+ | On the basis of | Based on |
474
+ | In light of the fact that | Because |
475
+ | Have an effect on | Affect |
476
+ | Give rise to | Cause |
477
+
478
+ Also remove redundancies: "completely eliminate" → "eliminate", "future plans" → "plans", "unexpected surprise" → "surprise".
479
+
480
+ Remove AI-isms: delve, pivotal, landscape, tapestry, underscore, noteworthy, intriguingly.
481
+
482
+ **Pass 2: Active Voice and Verb Vitality** — Identify who did what.
483
+
484
+ - Spot passive: "to-be" verb + past participle ("was observed", "were analyzed")
485
+ - Convert: find the actor, reconstruct as Subject–Verb–Object
486
+ - Resurrect smothered verbs (nominalizations):
487
+ - "We made an investigation" → "We investigated"
488
+ - "Failure of the system occurs" → "The system fails"
489
+ - "Provides a description of" → "Describes"
490
+
491
+ Passive voice IS acceptable for: established facts, methods where agent is irrelevant, or when required by venue style.
492
+
493
+ **Pass 3: Sentence Architecture** — Structure and flow.
494
+
495
+ - Flag sentences > 40 words for splitting
496
+ - Ensure subject and verb are close together (no long parenthetical insertions between them)
497
+ - Put familiar context first, new information later
498
+ - Place the most important point near the end of the sentence
499
+ - Let each paragraph do one job
500
+ - Don't start consecutive sentences with "This" or "We"
501
+ - Check paragraph transitions — each paragraph's first sentence should connect to the previous
502
+
503
+ **Pass 4: Keyword Consistency** — The Banana Rule.
504
+
505
+ **Do not call a "banana" an "elongated yellow fruit" to avoid repetition.** If the Methods say "obese group," the Results must not switch to "heavier group." Synonym variation for technical terms forces the reader to wonder whether a new category has been introduced.
506
+
507
+ - Extract all key terms from Method section (group names, variable names, technique names, abbreviations)
508
+ - Verify exact same terms appear in Results, Discussion, Tables, Figure captions
509
+ - Flag every synonym substitution for a defined term
510
+ - Acronym austerity: flag non-standard acronyms created only for convenience; verify every acronym is defined at first use
511
+
512
+ **Pass 5: Numerical and Citation Integrity**
513
+
514
+ - Does sample size (N) in Abstract match Table 1?
515
+ - Do percentages in Results match raw numbers in Tables?
516
+ - Are significant figures consistent and appropriate?
517
+ - Do Figure graphics match Table values?
518
+ - Flag statistics cited only through secondary sources (reviews, textbooks) — recommend verifying primary source
519
+
520
+ ### Step 6: Cross-Review with REVIEWER_MODEL
521
+
522
+ Send the complete draft to GPT-5.6-Sol xhigh:
523
+
524
+ ```
525
+ mcp__codex__codex:
526
+ model: gpt-5.6-sol
527
+ config: {"model_reasoning_effort": "xhigh"}
528
+ prompt: |
529
+ Review this [VENUE] paper draft (main body, excluding appendix).
530
+
531
+ Focus on:
532
+ 1. Does each claim from the intro have supporting evidence?
533
+ 2. Is the writing clear, concise, and free of AI-isms?
534
+ 3. Any logical gaps or unclear explanations?
535
+ 4. Does it fit within [MAX_PAGES] pages (to end of Conclusion)?
536
+ 5. Is related work sufficiently comprehensive (≥1 page)?
537
+ 6. For theory papers: are proof sketches adequate?
538
+ 7. Are figures/tables clearly described and properly referenced?
539
+ 8. Would a skim reader understand the contribution from the title, abstract, introduction, and Figure 1?
540
+
541
+ For each issue, specify: severity (CRITICAL/MAJOR/MINOR), location, and fix.
542
+
543
+ [paste full draft text]
544
+ ```
545
+
546
+ Apply CRITICAL and MAJOR fixes. Document MINOR issues for the user.
547
+
548
+ ### Step 7: Reverse Outline Test (from Research-Paper-Writing-Skills)
549
+
550
+ After drafting all sections:
551
+
552
+ 1. **Extract topic sentences** — pull the first sentence of every paragraph
553
+ 2. **Read them in sequence** — they should form a coherent narrative on their own
554
+ 3. **Check claim coverage** — every claim from the Claims-Evidence Matrix must appear
555
+ 4. **Check evidence mapping** — every experiment/figure must support a stated claim
556
+ 5. **Fix gaps** — if a topic sentence doesn't advance the story, rewrite the paragraph
557
+
558
+ ### Step 8: Final Checks
559
+
560
+ Before declaring done:
561
+
562
+ - [ ] All `\ref{}` and `\label{}` match (no undefined references)
563
+ - [ ] All citation commands (`\citep{}`/`\citet{}` for ML conferences, `\cite{}` for IEEE) have corresponding BibTeX entries
564
+ - [ ] No author information in anonymous mode
565
+ - [ ] Figure/table numbering is correct
566
+ - [ ] Page count within MAX_PAGES (main body to Conclusion end)
567
+ - [ ] No TODO/FIXME/XXX markers left in the text
568
+ - [ ] No `[VERIFY]` markers left unchecked
569
+ - [ ] Abstract is self-contained (understandable without reading the paper)
570
+ - [ ] Title is specific and informative (not generic)
571
+ - [ ] Related work is ≥1 full page
572
+ - [ ] references.bib contains ONLY cited entries (no bloat)
573
+ - [ ] **No stale section files** — every .tex in `sections/` is `\input`ed by `main.tex`
574
+ - [ ] **Section files match main.tex** — file numbering and `\input` paths are consistent
575
+ - [ ] Venue-specific required sections/checklists satisfied (read `../shared-references/venue-checklists.md` if needed)
576
+ - [ ] A skim reader can recover the main claim from the title, abstract, introduction, and Figure 1/captions
577
+
578
+ ## Key Rules
579
+
580
+ - **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.
581
+ - **Do NOT generate author names, emails, or affiliations** — use anonymous block or placeholder
582
+ - **Write complete sections, not outlines** — the output should be compilable LaTeX
583
+ - **One file per section** — modular structure for easy editing
584
+ - **Every claim must cite evidence** — cross-reference the Claims-Evidence Matrix
585
+ - **Compile-ready** — the output should compile with `latexmk` without errors (modulo missing figures)
586
+ - **No over-claiming** — use hedging language ("suggests", "indicates") for weak evidence
587
+ - **Venue style matters** — ML conferences (ICLR/NeurIPS/ICML) use `natbib` (`\citep`/`\citet`); **IEEE venues use `cite` package (`\cite{}`, numeric)**. Never mix.
588
+ - **Page limit rules differ by venue** — ML conferences: main body to Conclusion, references/appendix NOT counted. **IEEE: references ARE counted toward the page limit.**
589
+ - **Clean bib** — references.bib must only contain entries that are actually `\cite`d
590
+ - **Section count is flexible** — match PAPER_PLAN structure, don't force into 5 sections
591
+ - **Backup before overwrite** — never destroy existing `paper/` directory without backing up
592
+ - **Front-load the contribution** — do not hide the payoff until the experiments or appendix
593
+
594
+ ## Writing Quality Reference
595
+
596
+ - `../shared-references/writing-principles.md` — story framing, abstract/introduction patterns, sentence-level clarity, reviewer reading order
597
+ - `../shared-references/venue-checklists.md` — ICLR/NeurIPS/ICML/IEEE submission requirements to check before declaring done
598
+ - `../shared-references/citation-discipline.md` — stricter fallback for ambiguous citations
599
+
600
+ Keep using the reverse-outline test and anti-inflation polish from the main workflow above; the shared references are there to improve quality without adding a new phase.
601
+
602
+ ## Acknowledgements
603
+
604
+ Writing methodology adapted from [Research-Paper-Writing-Skills](https://github.com/Master-cai/Research-Paper-Writing-Skills) (CCF award-winning methodology). Citation verification from [claude-scholar](https://github.com/Galaxy-Dawn/claude-scholar) and [Imbad0202/academic-research-skills](https://github.com/Imbad0202/academic-research-skills). This hybrid pack's writing-guidance overlay is adapted from Orchestra Research's paper-writing materials.