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,278 @@
1
+ ---
2
+ name: "paper-plan"
3
+ description: "Generate a structured paper outline from review conclusions and experiment results. Use when user says \\\"\u5199\u5927\u7eb2\\\", \\\"paper outline\\\", \\\"plan the paper\\\", \\\"\u8bba\u6587\u89c4\u5212\\\", or wants to create a paper plan before writing."
4
+ ---
5
+
6
+ # Paper Plan: From Review Conclusions to Paper Outline
7
+
8
+ Generate a structured, section-by-section paper outline from: **$ARGUMENTS**
9
+
10
+ ## Constants
11
+
12
+ - **REVIEWER_MODEL = `gpt-5.6-sol`** — Model used via a secondary Codex agent for outline review. Must be an OpenAI model.
13
+ - **TARGET_VENUE = `ICLR`** — Default venue. User can override (e.g., `/paper-plan "topic" — venue: NeurIPS`). Supported: `ICLR`, `NeurIPS`, `ICML`, `CVPR`, `ACL`, `AAAI`, `ACM`, `IEEE_JOURNAL` (IEEE Transactions / Letters), `IEEE_CONF` (IEEE conferences).
14
+ - **MAX_PAGES** — Page limit. For ML conferences: main body to Conclusion end (excluding references, appendix). ICLR=9, NeurIPS=9, ICML=8, AAAI=7 technical-content pages plus references unless the current AAAI CFP says otherwise. **For IEEE venues: references ARE included in page count.** IEEE journal Transactions ≈ 12-14 pages total, Letters ≈ 4-5 pages total; IEEE conference ≈ 5-8 pages total (including references).
15
+
16
+ ## Inputs
17
+
18
+ The skill expects one or more of these in the project directory:
19
+
20
+ 1. **NARRATIVE_REPORT.md** or **STORY.md** — research narrative with claims and evidence
21
+ 2. **review-stage/AUTO_REVIEW.md** — auto-review loop conclusions *(fall back to `./AUTO_REVIEW.md` if not found)*
22
+ 3. **Experiment results** — JSON files in `figures/`, screen logs, tables
23
+ 4. **idea-stage/IDEA_REPORT.md** — from idea-discovery pipeline (if applicable) *(fall back to `./IDEA_REPORT.md` if not found)*
24
+ 5. **CLAIMS_FROM_RESULTS.md** — structured claim judgment from `/result-to-claim` (preferred if available)
25
+
26
+ If none exist, ask the user to describe the paper's contribution in 3-5 sentences.
27
+
28
+ ## Orchestra-Guided Writing Overlay
29
+
30
+ Keep the existing workflow and outputs, but use the shared references below to improve the quality of the story and outline:
31
+
32
+ - Read `../shared-references/writing-principles.md` when framing the Abstract, Introduction, Related Work, or hero figure
33
+ - Read `../shared-references/venue-checklists.md` before freezing the outline for a specific venue
34
+ - Load these references only when they help; they are support material, not a new workflow phase
35
+
36
+ ## Workflow
37
+
38
+ ### Step 1: Extract Claims and Evidence
39
+
40
+ **First check for `CLAIMS_FROM_RESULTS.md`** — if its first line is `verdict: REVIEW_UNAVAILABLE`, treat the file as ABSENT for claim extraction (fall through to the narrative documents below) and then: under `— assurance: submission` (`shared-references/assurance-contract.md`; implied by `— effort: max|beast`) STOP — the claims were never adjudicated, rerun `/result-to-claim` first; under `assurance: draft` continue but tag every claim `[unadjudicated]`. Otherwise, if it exists, use it as the starting point for claims and merge it with any additional evidence from the narrative documents below.
41
+
42
+ Read all available narrative documents and extract:
43
+
44
+ 1. **Core claims** (3-5 main contributions)
45
+ 2. **Evidence** for each claim (which experiments, which metrics, which figures)
46
+ 3. **Known weaknesses** (from reviewer feedback)
47
+ 4. **Suggested framing** (from review conclusions)
48
+
49
+ Build a **Claims-Evidence Matrix**:
50
+
51
+ ```markdown
52
+ | Claim | Evidence | Status | Section |
53
+ |-------|----------|--------|---------|
54
+ | [claim 1] | [exp A, metric B] | Supported | §3.2 |
55
+ | [claim 2] | [exp C] | Partially supported | §4.1 |
56
+ ```
57
+
58
+ ### Step 2: Determine Paper Type and Structure
59
+
60
+ Based on TARGET_VENUE and paper content, classify and select structure.
61
+
62
+ Before committing to a structure, apply the narrative principle from `../shared-references/writing-principles.md`:
63
+
64
+ - The paper should tell one coherent technical story
65
+ - By the end of the Introduction, the outline should make the **What**, **Why**, and **So What** explicit
66
+ - Front-load the most important material: title, abstract, introduction, and hero figure
67
+
68
+ **IMPORTANT**: The section count is FLEXIBLE (5-8 sections). Choose what fits the content best. The templates below are starting points, not rigid constraints.
69
+
70
+ **Empirical/Diagnostic paper:**
71
+ ```
72
+ 1. Introduction (1.5 pages)
73
+ 2. Related Work (1 page)
74
+ 3. Method / Setup (1.5 pages)
75
+ 4. Experiments (3 pages)
76
+ 5. Analysis / Discussion (1 page)
77
+ 6. Conclusion (0.5 pages)
78
+ ```
79
+
80
+ **Theory + Experiments paper:**
81
+ ```
82
+ 1. Introduction (1.5 pages)
83
+ 2. Related Work (1 page)
84
+ 3. Preliminaries & Modeling (1.5 pages)
85
+ 4. Experiments (1.5 pages)
86
+ 5. Theory Part A (1.5 pages)
87
+ 6. Theory Part B (1.5 pages)
88
+ 7. Conclusion (0.5 pages)
89
+ — Total: 9 pages
90
+ ```
91
+ Theory papers often need 7 sections (splitting theory into estimation + optimization, or setup + analysis). The total page budget MUST sum to MAX_PAGES.
92
+
93
+ Theory papers should:
94
+ - Include **proof sketch** locations (not just theorem statements)
95
+ - Plan a **comparison table** of prior theoretical bounds vs. this paper's bounds
96
+ - Identify which proofs go in appendix vs. main body
97
+
98
+ **Method paper:**
99
+ ```
100
+ 1. Introduction (1.5 pages)
101
+ 2. Related Work (1 page)
102
+ 3. Method (2 pages)
103
+ 4. Experiments (2.5 pages)
104
+ 5. Ablation / Analysis (1 page)
105
+ 6. Conclusion (0.5 pages)
106
+ ```
107
+
108
+ ### Step 3: Section-by-Section Planning
109
+
110
+ For each section, specify:
111
+
112
+ ```markdown
113
+ ### §0 Abstract
114
+ - **One-sentence problem**: [what gap this paper addresses]
115
+ - **Approach**: [what we do, in one sentence]
116
+ - **Key result**: [most compelling quantitative finding]
117
+ - **Implication**: [why it matters]
118
+ - **Estimated length**: 150-250 words
119
+ - **Self-contained check**: can a reader understand this without the paper?
120
+
121
+ ### §1 Introduction
122
+ - **Opening hook**: [1-2 sentences that motivate the problem]
123
+ - **Gap**: [what's missing in prior work]
124
+ - **Key questions**: [the research questions this paper answers]
125
+ - **Contributions**: [numbered list, matching Claims-Evidence Matrix]
126
+ - **Hero figure**: [describe what Figure 1 should show — MUST include clear comparison if applicable]
127
+ - **Estimated length**: 1.5 pages
128
+ - **Key citations**: [3-5 papers to cite here]
129
+
130
+ ### §2 Related Work
131
+ - **Subtopics**: [2-4 categories of related work]
132
+ - **Positioning**: [how this paper differs from each category]
133
+ - **Minimum length**: 1 full page (at least 3-4 paragraphs with substantive synthesis)
134
+ - **Must NOT be just a list** — synthesize, compare, and position
135
+
136
+ ### §3 Method / Setup / Preliminaries
137
+ - **Notation**: [key symbols and their meanings]
138
+ - **Problem formulation**: [formal setup]
139
+ - **Method description**: [algorithm, model, or experimental design]
140
+ - **Formal statements**: [theorems, propositions if applicable]
141
+ - **Proof sketch locations**: [which key steps appear here vs. appendix]
142
+ - **Estimated length**: 1.5-2 pages
143
+
144
+ ### §4 Experiments / Main Results
145
+ - **Figures planned**:
146
+ - Fig 1: [description, type: bar/line/table/architecture, WHAT COMPARISON it shows]
147
+ - Fig 2: [description]
148
+ - Table 1: [what it shows, which methods/baselines compared]
149
+ - **Data source**: [which JSON files / experiment results]
150
+
151
+ ### §5 Conclusion
152
+ - **Restatement**: [contributions rephrased, not copy-pasted from intro]
153
+ - **Limitations**: [honest assessment — reviewers value this]
154
+ - **Future work**: [1-2 concrete directions]
155
+ - **Estimated length**: 0.5 pages
156
+ ```
157
+
158
+ ### Step 4: Figure Plan
159
+
160
+ List every figure and table:
161
+
162
+ ```markdown
163
+ ## Figure Plan
164
+
165
+ | ID | Type | Description | Data Source | Priority |
166
+ |----|------|-------------|-------------|----------|
167
+ | Fig 1 | Hero/Architecture | System overview + comparison | manual | HIGH |
168
+ | Fig 2 | Line plot | Training curves comparison | figures/exp_A.json | HIGH |
169
+ | Fig 3 | Bar chart | Ablation results | figures/ablation.json | MEDIUM |
170
+ | Table 1 | Comparison table | Main results vs. baselines | figures/main_results.json | HIGH |
171
+ | Table 2 | Theory comparison | Prior bounds vs. ours | manual | HIGH (theory papers) |
172
+ ```
173
+
174
+ **CRITICAL for Figure 1 / Hero Figure**: Describe in detail what the figure should contain, including:
175
+ - Which methods are being compared
176
+ - What the visual difference should demonstrate
177
+ - Caption draft that clearly states the comparison
178
+
179
+ ### Step 5: Citation Scaffolding
180
+
181
+ For each section, list required citations:
182
+
183
+ ```markdown
184
+ ## Citation Plan
185
+ - §1 Intro: [paper1], [paper2], [paper3] (problem motivation)
186
+ - §2 Related: [paper4]-[paper10] (categorized by subtopic)
187
+ - §3 Method: [paper11] (baseline), [paper12] (technique we build on)
188
+ ```
189
+
190
+ **Citation rules** (from claude-scholar + Imbad0202/academic-research-skills):
191
+ 1. NEVER generate BibTeX from memory — always verify via search or existing .bib files
192
+ 2. Every citation must be verified: correct authors, year, venue
193
+ 3. Flag any citation you're unsure about with `[VERIFY]`
194
+ 4. Prefer published versions over arXiv preprints when available
195
+
196
+ ### Step 6: Cross-Review with REVIEWER_MODEL
197
+
198
+ Send the complete outline to GPT-5.6-Sol xhigh for feedback:
199
+
200
+ ```
201
+ spawn_agent:
202
+ model: gpt-5.6-sol
203
+ reasoning_effort: xhigh
204
+ message: |
205
+ Review this paper outline for a [VENUE] submission.
206
+ [full outline including Claims-Evidence Matrix]
207
+
208
+ Score 1-10 on:
209
+ 1. Logical flow — does the story build naturally?
210
+ 2. Claim-evidence alignment — every claim backed?
211
+ 3. Missing experiments or analysis
212
+ 4. Positioning relative to prior work
213
+ 5. Page budget feasibility (MAX_PAGES = main body to Conclusion end, excluding refs/appendix)
214
+
215
+ For each weakness, suggest the MINIMUM fix.
216
+ Be specific and actionable — "add X" not "consider more experiments".
217
+ ```
218
+
219
+ Apply feedback before finalizing.
220
+
221
+ ### Step 7: Output
222
+
223
+ Save the final outline to `PAPER_PLAN.md` in the project root:
224
+
225
+ ```markdown
226
+ # Paper Plan
227
+
228
+ **Title**: [working title]
229
+ **Venue**: [target venue]
230
+ **Type**: [empirical/theory/method]
231
+ **Date**: [today]
232
+ **Page budget**: [MAX_PAGES] pages (main body to Conclusion end, excluding references & appendix)
233
+ **Section count**: [N] (must match the number of section files that will be created)
234
+
235
+ ## Claims-Evidence Matrix
236
+ [from Step 1]
237
+
238
+ ## Structure
239
+ [from Step 2-3, section by section]
240
+
241
+ ## Figure Plan
242
+ [from Step 4, with detailed hero figure description]
243
+
244
+ ## Citation Plan
245
+ [from Step 5]
246
+
247
+ ## Reviewer Feedback
248
+ [from Step 6, summarized]
249
+
250
+ ## Next Steps
251
+ - [ ] /paper-figure to generate all figures
252
+ - [ ] /paper-write to draft LaTeX
253
+ - [ ] /paper-compile to build PDF
254
+ ```
255
+
256
+ ## Key Rules
257
+
258
+ - **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.
259
+
260
+ - **Do NOT generate author information** — leave author block as placeholder or anonymous
261
+ - **Be honest about evidence gaps** — mark claims as "needs experiment" rather than overclaiming
262
+ - **Page budget is hard** — if content exceeds MAX_PAGES, suggest what to move to appendix
263
+ - **MAX_PAGES counting differs by venue** — ML conferences: main body to Conclusion end, references/appendix NOT counted; AAAI main track is typically 7 technical-content pages plus references. **IEEE venues: references ARE counted toward the page limit.**
264
+ - **Venue-specific norms** — ML conferences (ICLR/NeurIPS/ICML) use `natbib` (`\citep`/`\citet`); **IEEE venues use `cite` package (`\cite{}`, numeric style)**
265
+ - **Claims-Evidence Matrix is the backbone** — every claim must map to evidence, every experiment must support a claim
266
+ - **Figures need detailed descriptions** — especially the hero figure, which must clearly specify comparisons and visual expectations
267
+ - **Section count is flexible** — 5-8 sections depending on paper type. Don't force content into a rigid 5-section template.
268
+
269
+ ## Acknowledgements
270
+
271
+ Outline methodology inspired by [Research-Paper-Writing-Skills](https://github.com/Master-cai/Research-Paper-Writing-Skills) (claim-evidence mapping), [claude-scholar](https://github.com/Galaxy-Dawn/claude-scholar) (citation verification), and [Imbad0202/academic-research-skills](https://github.com/Imbad0202/academic-research-skills) (claim verification protocol).
272
+
273
+ ## Output Protocols
274
+
275
+ > Follow these shared protocols for all output files:
276
+ > - **[Output Versioning Protocol](../../shared-references/output-versioning.md)** — write timestamped file first, then copy to fixed name
277
+ > - **[Output Manifest Protocol](../../shared-references/output-manifest.md)** — log every output to MANIFEST.md
278
+ > - **[Output Language Protocol](../../shared-references/output-language.md)** — respect the project's language setting
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: paper-poster
3
+ description: "DEPRECATED — superseded by /paper-poster-html. Kept only as a redirect for muscle memory; do not use for new posters."
4
+ argument-hint: "[paper-dir-or-pdf]"
5
+ allowed-tools: Read
6
+ ---
7
+
8
+ # Paper Poster (DEPRECATED → /paper-poster-html)
9
+
10
+ This skill is retired. The LaTeX/tcbposter pipeline it described produced posters with
11
+ unbounded color palettes, no real paper figures, and no print-canvas verification, and
12
+ has been replaced by the measurement-gated HTML/CSS pipeline.
13
+
14
+ **Immediately proceed with `/paper-poster-html`**, passing through all of the user's
15
+ arguments unchanged. Do not attempt the legacy LaTeX flow.
16
+
17
+ The full legacy implementation remains available in git history
18
+ (`git log -- skills/skills-codex/paper-poster/SKILL.md`) if a venue ever mandates
19
+ LaTeX poster source — none is known to.
@@ -0,0 +1,377 @@
1
+ ---
2
+ name: paper-poster-html
3
+ description: "DEFAULT poster pipeline — build an academic conference poster (ICML/NeurIPS/ICLR/CVPR/...) as a single HTML/CSS file with measurement-driven hard gates, real paper figures, a two-hue design-token system, and print-ready PDF via headless Chromium. Use when the user says \"做海报\", \"poster\", \"conference poster\", \"paper poster\", or asks to design/redo a research poster."
4
+ argument-hint: "[paper-dir-or-pdf] [— venue: ICLR, canvas: 185x90cm landscape, venue-colors: true]"
5
+ allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob
6
+ ---
7
+
8
+ # Paper Poster (HTML): measurement-gated poster generation
9
+
10
+ One HTML file styled for an exact print canvas (`@page { size: W H }`), rendered to PDF
11
+ via Playwright print emulation. **Iterate by measuring, not eyeballing** — the screen
12
+ preview lies; only print emulation at the correct viewport tells the truth. Core gate
13
+ machinery is adapted from [posterly](https://github.com/Chenruishuo/posterly) (MIT, ©
14
+ 2026 Ruishuo Chen — see `NOTICE.md` and `LICENSES/posterly-MIT.txt` in the mainline
15
+ skill directory); ARIS adds style discipline gates, figure-provenance gates, the
16
+ fresh-agent review loop (same-family provisional in the base mirror), and the anti-patch-loop fix vocabulary.
17
+
18
+ ## Why this skill exists (the failure it prevents)
19
+
20
+ A predecessor pipeline produced a poster with **30+ colors, zero real paper figures, a
21
+ screen-pixel canvas, and tiny formulas floating in oversized boxes**, then spent 12+
22
+ review rounds making it *worse* — each round added a new badge color or bespoke SVG
23
+ patch. The cure is structural, not exhortative:
24
+
25
+ 1. **Hard gates run before any aesthetic opinion** (alignment, style, assets must PASS
26
+ first — a reviewer never sees an unmeasured poster).
27
+ 2. **A closed fix vocabulary** — visual-review fixes can only touch design tokens,
28
+ whole catalogued components, content rebalance, assets, or canvas choice. New inline
29
+ styles / new hex values / bespoke decorations are structurally forbidden.
30
+ 3. **Two-hue discipline as a machine check**, not a style suggestion.
31
+ 4. **Real paper figures with provenance manifest**, or the gate fails.
32
+
33
+ ## Mental model
34
+
35
+ ```
36
+ paper (.tex / PDF) ──► content plan + claim→evidence audit (fresh reviewer agent)
37
+ │
38
+ figures extracted ─────────┤ FIGURE_MANIFEST.json (provenance, sha256)
39
+ (real paper figures ONLY) ▼
40
+ template scaffold ──► fill ──► run_gates.py ◄─── HARD, loop here
41
+ preflight → style → asset → measure → polish
42
+ │ all hard gates PASS
43
+ ▼
44
+ executor visual review (≤3 issues × ≤3 rounds, fix-vocabulary only)
45
+ │ score ≥ 9
46
+ ▼
47
+ final fresh-agent review (same-family provisional, full HTML+PDF)
48
+ │ pass
49
+ ▼
50
+ verify-final → poster.pdf + GATE_REPORT.json
51
+ ```
52
+
53
+ ## Constants
54
+
55
+ - **SKILL_SCRIPTS** — helpers and templates are single-owner and ship inside the
56
+ mainline skill (Arch C) at `skills/paper-poster-html/scripts/` and
57
+ `skills/paper-poster-html/templates/`. Resolve them in this order:
58
+
59
+ ```bash
60
+ SKILL_HOME=""
61
+ [ -d ".agents/skills/paper-poster-html/scripts" ] && SKILL_HOME=".agents/skills/paper-poster-html"
62
+ if [ -z "$SKILL_HOME" ] && [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills-codex.txt ]; then
63
+ ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills-codex.txt 2>/dev/null) || true
64
+ fi
65
+ [ -z "$SKILL_HOME" ] && [ -d "skills/paper-poster-html/scripts" ] && SKILL_HOME="skills/paper-poster-html"
66
+ [ -z "$SKILL_HOME" ] && [ -n "${ARIS_REPO:-}" ] && [ -d "$ARIS_REPO/skills/paper-poster-html/scripts" ] && SKILL_HOME="$ARIS_REPO/skills/paper-poster-html"
67
+ [ -z "$SKILL_HOME" ] && [ -d "$HOME/.codex/skills/paper-poster-html/scripts" ] && SKILL_HOME="$HOME/.codex/skills/paper-poster-html"
68
+ if [ -z "$SKILL_HOME" ]; then
69
+ echo "ERROR: paper-poster-html scripts not resolved. Re-run the ARIS Codex install." >&2
70
+ fi
71
+ SKILL_SCRIPTS="$SKILL_HOME/scripts"
72
+ ```
73
+
74
+ If unresolved, the install is broken: abort and tell the user to re-install (Policy A
75
+ — the gates ARE the skill; never improvise replacements).
76
+ - **REVIEWER_MODEL** = `gpt-5.6-sol`, reasoning effort `xhigh`, **fresh reviewer agent per
77
+ review call** (a new `spawn_agent:` every time; never reuse a reviewer agent across
78
+ review boundaries).
79
+ - **CANVAS** — from the venue's official spec, looked up live in Phase 0. Never assume.
80
+ (Known anchor: ICLR 2026 main = 185×90 cm landscape per its official printing
81
+ service; ICML/NeurIPS commonly 60×36 in landscape; workshop posters often 61×91 cm
82
+ portrait. Specs change yearly — verify.)
83
+ - **PALETTE** — default = `templates/tokens/generic.json` (slate-blue `#2D5F8B` accent
84
+ + gold `#C9A24A` highlight + neutrals) for **all** venues. Venue packs are opt-in via
85
+ `— venue-colors: true`. Purple-dominant accents (hue 250–285) are banned unless the
86
+ user passes `— allow-purple: true`.
87
+ - **AUTO_PROCEED = false** — wait for explicit confirmation at every 🚦 checkpoint.
88
+ - **OUTPUT_DIR** = `poster_html/` in the working directory.
89
+
90
+ ## Workflow
91
+
92
+ ### Phase 0 — Resume, dependencies, venue spec
93
+
94
+ 1. **Resume**: if `poster_html/POSTER_STATE.json` exists with `status: in_progress`
95
+ (< 24 h), resume from the saved phase.
96
+ 2. **Dependencies** (degradation chain, in order):
97
+ - Playwright + bundled Chromium → if missing, `python3 -m playwright install
98
+ chromium` → if install fails but system Chrome exists, scripts fall back to
99
+ `channel="chrome"` → if all fail: you may produce the content plan and scaffold
100
+ only, label everything **"not print verified"**, and must NOT emit a final PDF.
101
+ If print rendering, PNG review, or PDF verification is impossible in the current
102
+ environment, stop and tell the user what to configure. Do not silently degrade
103
+ this skill into an unmeasured text-only poster draft.
104
+ - `pdfinfo` missing → PyMuPDF reads PDF dimensions. At least one of
105
+ pdftoppm / PyMuPDF must exist for PNG review renders.
106
+ - MathJax: download `tex-svg.js` once into `poster_html/assets/mathjax/` and
107
+ reference it locally in the HTML. CDN is acceptable only for drafts; the measure
108
+ gate hard-fails on unrendered MathJax either way.
109
+ 3. **Venue spec lookup (live)**: consult the venue's official poster-instructions page
110
+ (search + fetch). Extract dimensions, orientation, font floor, logo policy,
111
+ anonymity rules, file format. Record `{spec, source_url, retrieved}` into
112
+ `POSTER_STATE.json` — specs change yearly; never reuse a cached spec silently.
113
+
114
+ **🚦 Checkpoint**: echo the venue spec table (canvas, orientation, source URL) and the
115
+ chosen template. Wait.
116
+
117
+ ### Phase 0.5 — Design discovery (one question batch)
118
+
119
+ Ask the user once, ≤4 questions: layout template (from `templates/README.md`), palette
120
+ (default generic pack / venue pack / custom within constraints), logos + venue mark
121
+ (paths or "none" — never fabricate; check the venue's logo policy), QR target (paper /
122
+ code / project page / none — generate **offline** with `qrencode` or python-`qrcode`;
123
+ never a remote QR-service URL). Persist answers in `POSTER_STATE.json` as
124
+ `design_decisions` — re-read before any later "improvement" so deliberate choices are
125
+ never reverted.
126
+
127
+ ### Phase 1 — Paper ingest, content plan, claim audit
128
+
129
+ 1. Read the paper source (`.tex` ideal; PDF otherwise). Extract: title/authors/affils,
130
+ the 3–5 headline numbers, core method (equations verbatim), main results
131
+ (tables/figures and what they show), takeaways. Build
132
+ `poster_html/POSTER_CONTENT_PLAN.md` — what goes in which column, word budget per
133
+ card. **Target density** (excluding table cells, captions, author line, footer):
134
+ standard poster **550–850 words**; dense theory+empirical poster **750–1050 words**,
135
+ allowed only when ≥2 compact components are used (`eqn-anatomy`, `flow-strip`,
136
+ `derived-col`, `claim-pills`, `keybox--4`). Warn yourself below 500 words on a
137
+ 4-column landscape (it will read as sparse next to professionally dense posters)
138
+ unless the template is hero/visual-first; warn above 1100 unless the user asked for
139
+ dense mode. Bullets ≤ 8 words when possible — density comes from *structure*, not
140
+ long prose. **Prefer compact structure over prose**: if the paper contains an
141
+ explicit objective, algorithm, theorem mechanism, or baseline comparison, extract at
142
+ least two of: (1) empirical objective / loss stack; (2) term-by-term equation
143
+ anatomy; (3) a method-flow strip grounded in paper variables; (4) a derived-Δ column
144
+ for method-vs-baseline rows; (5) a 4-up implementation/theory keybox; (6) a
145
+ claim/evidence pill table for numeric-heavy posters. **Do not invent an algorithm.**
146
+ If the paper has only an objective, label the component "objective flow" or "loss
147
+ anatomy", never "algorithm".
148
+ 2. **Fresh-agent content audit** (same-family provisional): give it the content plan path
149
+ + paper source path(s) — paths only, no summaries — and ask for a claim→evidence
150
+ table. Save to `poster_html/CLAIM_EVIDENCE.md`.
151
+
152
+ ```text
153
+ spawn_agent:
154
+ model: gpt-5.6-sol
155
+ reasoning_effort: xhigh
156
+ message: |
157
+ Audit a conference-poster content plan against its source paper.
158
+ Read these files yourself (no other context is provided):
159
+ - poster_html/POSTER_CONTENT_PLAN.md
160
+ - [paper source path(s)]
161
+ For EVERY claim, number, equation, and attribution in the plan, output one row:
162
+ | claim on poster | paper file:line | paper says (verbatim) | match? |
163
+ with match ∈ {OK, NUMERIC-MISMATCH, OVERCLAIM, MISSING-PRECONDITION,
164
+ NOT-IN-PAPER, SCOPE-NARROWED}. End with a count per category.
165
+ ```
166
+ 3. Fix every non-OK row or record it as a user-acknowledged tradeoff.
167
+
168
+ **🚦 Checkpoint**: content plan + audit summary. Wait.
169
+
170
+ ### Phase 2 — Real paper figures (provenance-gated)
171
+
172
+ Source preference chain:
173
+ 1. Paper source `figures/` (vector SVG/PDF → convert to SVG via
174
+ `inkscape`/`pdf2svg` if available, else rasterize ≥ 2× rendered px).
175
+ 2. PDF-only: `extract_pdf_figures.py contact-sheet` + `auto` to list candidate
176
+ regions → pick crops (**🚦 human confirms crop choices**) → `crop` at 300–450 DPI.
177
+ 3. Last resort: user supplies explicit `page,x0,y0,x1,y1` bboxes.
178
+
179
+ Then `preprocess_figures.py --autocrop` every asset. Every paper-derived image gets a
180
+ `FIGURE_MANIFEST.json` entry (source hash, page, bbox, dpi, sha256, natural_px) and is
181
+ embedded as `<img data-source="paper" data-asset-id="...">`.
182
+
183
+ **Hard rule**: ≥ 2 paper-derived visuals or the asset gate fails. Theory-only papers
184
+ may waive the *total-area* rule (`--waive-total-area`) at a human checkpoint — never
185
+ silently. Never draw bespoke decorative SVG "figures" as substitutes.
186
+
187
+ **Figure-area bands** (asset gate, fractions of *body*): total target **14–22 %**
188
+ (warn < 12 % / > 24 %, hard < 10 % / > 28 %); per ordinary figure target 4–8 % (warn
189
+ > 10 %, hard > 13 %); `figure--duo` combined 8–12 %. Hero templates pass `--hero`
190
+ (centerpiece may take 30–40 %). The failure mode is symmetric: too small reads as
191
+ decoration, too big crowds out content. Sibling figures that share axes or tell a
192
+ before→after story belong in one `figure--duo` card, not two cards.
193
+
194
+ ### Phase 3 — Scaffold + tokens
195
+
196
+ `cp "$SKILL_HOME/templates/<chosen>.html" poster_html/poster.html`; retarget `@page`
197
+ + `.poster` dims to the venue canvas (two edits, same values); apply the chosen token
198
+ pack onto the `:root` DESIGN TOKENS block; fill content per the plan; embed manifest
199
+ figures. Run `preflight` + `style_check` — both must PASS before any layout iteration.
200
+ (A fresh scaffold is *expected* to fail `measure` — that gate judges a filled poster.)
201
+
202
+ ### Phase 4 — Layout hard loop
203
+
204
+ After every layout change:
205
+
206
+ ```bash
207
+ python3 "$SKILL_SCRIPTS/run_gates.py" poster_html/poster.html \
208
+ --tokens <pack.json> --manifest poster_html/FIGURE_MANIFEST.json \
209
+ --report poster_html/GATE_REPORT.json
210
+ ```
211
+
212
+ Canonical order: preflight → style → asset → measure → polish. Targets: column-bottom
213
+ **spread < 5 px** (aim < 3), footer gap ∈ [30, 50] px, intercard gap ∈ [12, 50] px,
214
+ canvas-fill ∈ [95, 101] %, poster bbox aligned to page within ±2 px. Fix guidance for
215
+ each failure mode lives in the gate output and `templates/COMPONENTS.md`. **Do not
216
+ proceed while any hard gate fails. Do not let a reviewer see an unmeasured poster.**
217
+ Balance under-filled columns with *content from the paper* (Gate C), never with
218
+ whitespace, `space-between`, or stretched cards.
219
+
220
+ ### Phase 5 — Executor visual review (gated aesthetics)
221
+
222
+ Render and read the result yourself:
223
+
224
+ ```bash
225
+ python3 "$SKILL_SCRIPTS/render_preview.py" poster_html/poster.html
226
+ pdftoppm -r 100 poster_html/poster_preview.pdf poster_html/review_full -png -f 1 -l 1
227
+ # plus 2-4 region crops at higher res (header / one column / equations) via PIL
228
+ ```
229
+
230
+ **Calibrate first** (per
231
+ [`taste-calibration.md`](../shared-references/taste-calibration.md)): if **human-curated**
232
+ `references/good/` + `references/bad/` exist under this skill dir (or the
233
+ project supplies its own pair), score those 3+3 reference posters on the axes
234
+ below BEFORE the target, anchoring the scale. Never select, search for, or
235
+ generate anchors yourself; if no reference sets exist, proceed uncalibrated and
236
+ mark `CALIBRATION: none` — never fabricate anchor scores. Axes (weights sum
237
+ 1.0): Design 0.35 · Craft 0.30 · Functionality 0.20 · Originality 0.15.
238
+ Mapping: `SCORE = min(round(1 + 9 × COMPOSITE), lowest triggered cap)` — caps
239
+ apply AFTER the mapping, and the loop's `Score ≥ 9` threshold always reads this
240
+ final capped `SCORE`, never the raw composite.
241
+
242
+ The visual review writes `CALIBRATION: anchored|none`, per-axis scores, and the
243
+ mandatory GAP paragraph. A fresh Codex review may drive another layout round but
244
+ its positive result is `acceptance_status: provisional`.
245
+
246
+ Score strictly 1–10. **Critical caps** (hard floors — a calibrated composite
247
+ never overrides them): < 2 real paper figures → ≤ 3; broken canvas /
248
+ clipped content / unreadable math → ≤ 4; ≥ 4 visible hue families or gradient-heavy
249
+ header → ≤ 4; large blank cards or columns → ≤ 5; fabricated visual claim → ≤ 3.
250
+ Checks: posterly-showcase gestalt (would this hang next to a professionally designed
251
+ poster without looking like a patched dashboard?), single-accent discipline, real
252
+ figures readable and central, print hierarchy (title → headline stats → figures →
253
+ detail), column fill, **equation prominence** (no tiny math in oversized boxes),
254
+ serif-body/sans-display pairing, no gradient kitsch, component consistency, 60-second
255
+ narrative. Output format:
256
+
257
+ ```
258
+ SCORE: N/10 (= min(round(1 + 9 × COMPOSITE), lowest cap); drives the loop)
259
+ COMPOSITE: 0.xx (weighted; list the four per-axis scores)
260
+ CALIBRATION: anchored | none
261
+ GAP: <which reference poster the target falls short of / exceeds, on which axis, and why — one paragraph; omit only when CALIBRATION: none>
262
+ CAPS_TRIGGERED: ...
263
+ TOP_ISSUES: (max 3)
264
+ ALLOWED_FIX_TYPE per issue: token | component | rebalance | asset | template/canvas
265
+ PATCH_LOOP_RISK: low | medium | high
266
+ ```
267
+
268
+ Loop: fix (fix vocabulary below) → re-run Phase 4 gates → re-score. **≤ 3 issues per
269
+ round, ≤ 3 rounds.** Score ≥ 9 → Phase 6. Still < 9 after 3 rounds → STOP patching;
270
+ escalate to template / canvas / content re-choice (back to Phase 3) or a human
271
+ decision. Never enter round 4 of cosmetic patching.
272
+
273
+ #### Fix vocabulary (closed set — the anti-patch-loop core)
274
+
275
+ Allowed: **(a)** edit a `:root` token value; **(b)** swap/remove/add a whole component
276
+ instance from `templates/COMPONENTS.md`; **(c)** content rebalance (move a card across
277
+ columns, trim/grow text *from the paper*, resize a figure within its AR band);
278
+ **(d)** template/canvas re-choice; **(e)** global edits to an existing component's CSS
279
+ that reference only tokens; **(f)** switching predefined variants (`.eqn--large`,
280
+ `.card--compact`, `.figure--wide`, `.nowrap`, …); **(g)** asset fixes (re-crop, swap
281
+ for a clearer figure from the same paper, re-preprocess).
282
+
283
+ Forbidden: new inline styles, new hex values anywhere, bespoke decorative SVG,
284
+ per-element font-size overrides. **A new component may not be born inside the visual
285
+ loop** — stop, get a human checkpoint, add it to `COMPONENTS.md`, re-run from Phase 3.
286
+
287
+ ### Phase 6 — Final review (fresh reviewer agent, same-family provisional)
288
+
289
+ All hard gates PASS + polish warnings zero-or-waived + visual ≥ 9 first. Then a fresh
290
+ reviewer agent reviews the **final artifacts** (not the content plan) — paths only, no
291
+ executor framing:
292
+
293
+ ```text
294
+ spawn_agent:
295
+ model: gpt-5.6-sol
296
+ reasoning_effort: xhigh
297
+ message: |
298
+ Final print-readiness audit of a conference poster. Read these files yourself:
299
+ - poster_html/poster.html (final single-file poster)
300
+ - poster_html/poster_preview.png (rendered preview — view it)
301
+ - [paper source path(s)]
302
+ - poster_html/GATE_REPORT.json
303
+ - poster_html/CLAIM_EVIDENCE.md
304
+ Check: (1) fidelity & overclaims RE-CHECKED on the final text (polish introduces
305
+ new claims), (2) residue (\ref{, TODO, raw < in math, missing images, remote
306
+ URLs), (3) visual rhetoric (headline numbers prominent, banner readable from
307
+ 2 m), (4) gate-log coherence.
308
+ Verdict: PRINT-READY or NEEDS-FIX with a numbered, severity-ordered issue list.
309
+ ```
310
+
311
+ The reviewer recommends; it does not edit. Any fix → back through Phase 4/5 gates —
312
+ never straight to re-review.
313
+
314
+ ### Phase 7 — Final verification + report
315
+
316
+ ```bash
317
+ python3 "$SKILL_SCRIPTS/poster_check.py" verify-final poster_html/poster_preview.pdf \
318
+ --from-html poster_html/poster.html --max-size-mb 20
319
+ ```
320
+
321
+ Page count 1, dimensions match `@page`, size ≤ 20 MB, no TODO/residue, no remote
322
+ assets. Report: PDF path, final spread px, footer-gap range, gate summary table,
323
+ unresolved waivers, reviewer verdict. Update `POSTER_STATE.json` → `done`.
324
+
325
+ ## State persistence
326
+
327
+ `poster_html/POSTER_STATE.json`: `{phase, venue, canvas{w,h,orientation,source_url,
328
+ retrieved}, template, token_pack, design_decisions{...}, figures_selected[],
329
+ visual_rounds, reviewer_verdicts{audit, final}, status, timestamp}` — written after
330
+ every phase; enables compact-recovery resume.
331
+
332
+ ## Key rules
333
+
334
+ - **Measure, don't eyeball.** No layout claim without `run_gates.py` output.
335
+ - **Gates before aesthetics.** A reviewer only ever sees a poster whose hard gates
336
+ PASS. This ordering is what kills the patch-loop death spiral.
337
+ - **Never invent paper numbers or figures.** Numbers come from the paper source;
338
+ visuals carry manifest provenance. Fabrication = critical cap ≤ 3.
339
+ - **Two hues, one system.** Accent + gold + neutrals. The style gate enforces it;
340
+ don't negotiate with the gate.
341
+ - **Real figures are the poster.** A poster without the paper's own figures is a
342
+ dashboard, not a poster.
343
+ - **Fix vocabulary is closed.** If a fix isn't expressible as token / component /
344
+ rebalance / asset / canvas, it's the wrong fix.
345
+ - **Review-class verdicts.** The executor drives the loop and scores visuals;
346
+ acceptance of content fidelity comes from the fresh reviewer agent (a loop can
347
+ drive, never acquit).
348
+ - **Preserve user decisions.** Re-read `design_decisions` before "improving" anything.
349
+ - **Vendor boundary.** `poster_check.py`, `render_preview.py`, `_posterly/` are
350
+ vendored from posterly — keep diffs minimal; ARIS-side logic goes in the new
351
+ scripts, not in vendored files.
352
+
353
+ ## Review tracing
354
+
355
+ Save every reviewer call's trace per `../shared-references/review-tracing.md` to
356
+ `.aris/traces/paper-poster-html/<date>_run<NN>/` (audit + final agents, raw responses).
357
+
358
+ ## Output contract
359
+
360
+ ```
361
+ poster_html/
362
+ ├── poster.html # single-file source of truth
363
+ ├── poster_preview.pdf # print-emulated, verify-final-checked
364
+ ├── poster_preview.png # thumbnail
365
+ ├── POSTER_STATE.json # resume state
366
+ ├── GATE_REPORT.json # canonical gate ledger (schema v1)
367
+ ├── POSTER_CONTENT_PLAN.md # what-goes-where + word budgets
368
+ ├── CLAIM_EVIDENCE.md # reviewer claim→evidence audit
369
+ ├── FIGURE_MANIFEST.json # figure provenance (sha256, page, bbox, dpi)
370
+ └── assets/{paper_figures,logos,qr,mathjax}/
371
+ ```
372
+
373
+ ## When NOT to use
374
+
375
+ - Slides, not a poster → `/paper-talk` / `/slides-polish`.
376
+ - The paper's headline isn't stable yet — fix the paper first; a poster amplifies
377
+ whatever story it's given.