@bohuyeshan/openagent-labforge-core 3.11.5 → 3.13.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 (272) hide show
  1. package/README.ja.md +130 -343
  2. package/README.ko.md +128 -337
  3. package/README.md +229 -584
  4. package/README.ru.md +131 -364
  5. package/README.zh-cn.md +231 -547
  6. package/bin/openagent-labforge.js +95 -9
  7. package/bin/platform.test.ts +20 -21
  8. package/dist/agents/article-writer.d.ts +7 -0
  9. package/dist/agents/atlas/default.d.ts +1 -1
  10. package/dist/agents/atlas/gemini.d.ts +1 -1
  11. package/dist/agents/atlas/gpt.d.ts +1 -1
  12. package/dist/agents/bio-methodologist.d.ts +1 -1
  13. package/dist/agents/bio-orchestrator.d.ts +7 -0
  14. package/dist/agents/bio-skill-guidance.d.ts +1 -0
  15. package/dist/agents/builtin-agents/general-agents.d.ts +0 -1
  16. package/dist/agents/builtin-agents/sisyphus-agent.d.ts +16 -0
  17. package/dist/agents/dynamic-agent-prompt-builder.d.ts +0 -2
  18. package/dist/agents/engineering-capability.d.ts +7 -0
  19. package/dist/agents/env-context.d.ts +1 -1
  20. package/dist/agents/github-scout.d.ts +7 -0
  21. package/dist/agents/index.d.ts +0 -1
  22. package/dist/agents/metis.d.ts +1 -1
  23. package/dist/agents/momus.d.ts +1 -1
  24. package/dist/agents/prometheus/behavioral-summary.d.ts +1 -1
  25. package/dist/agents/prometheus/gemini.d.ts +1 -1
  26. package/dist/agents/prometheus/gpt.d.ts +1 -1
  27. package/dist/agents/prometheus/interview-mode.d.ts +1 -1
  28. package/dist/agents/prometheus/plan-generation.d.ts +1 -1
  29. package/dist/agents/prometheus/plan-template.d.ts +1 -1
  30. package/dist/agents/prometheus/system-prompt.d.ts +1 -1
  31. package/dist/agents/scientific-writer.d.ts +7 -0
  32. package/dist/agents/sisyphus-junior/gpt-5-3-codex.d.ts +1 -1
  33. package/dist/agents/sisyphus-junior/gpt-5-4.d.ts +1 -1
  34. package/dist/agents/sisyphus-junior/gpt.d.ts +1 -1
  35. package/dist/agents/tech-scout.d.ts +7 -0
  36. package/dist/agents/types.d.ts +1 -1
  37. package/dist/agents/wase.d.ts +8 -0
  38. package/dist/agents/wet-lab-designer.d.ts +7 -0
  39. package/dist/agents/writing-style-rules.d.ts +1 -0
  40. package/dist/cli/config-manager/bun-install.d.ts +1 -6
  41. package/dist/cli/config-manager/cleanup-managed-mcp-from-opencode-config.d.ts +2 -0
  42. package/dist/cli/config-manager/cleanup-stale-managed-agents.d.ts +2 -0
  43. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +2 -0
  44. package/dist/cli/config-manager/plugin-name-with-version.d.ts +1 -1
  45. package/dist/cli/config-manager/sync-static-agent-to-opencode-config.d.ts +2 -0
  46. package/dist/cli/config-manager/sync-static-mcp-to-opencode-config.d.ts +2 -0
  47. package/dist/cli/config-manager/write-bootstrap-skill.d.ts +15 -0
  48. package/dist/cli/config-manager.d.ts +5 -0
  49. package/dist/cli/index.js +24986 -15362
  50. package/dist/cli/install-validators.d.ts +0 -1
  51. package/dist/cli/model-fallback-types.d.ts +0 -1
  52. package/dist/cli/run/index.d.ts +0 -1
  53. package/dist/cli/run/types.d.ts +0 -1
  54. package/dist/cli/types.d.ts +0 -3
  55. package/dist/config/schema/agent-names.d.ts +36 -3
  56. package/dist/config/schema/agent-overrides.d.ts +504 -0
  57. package/dist/config/schema/background-task.d.ts +0 -2
  58. package/dist/config/schema/experimental.d.ts +5 -0
  59. package/dist/config/schema/git-master.d.ts +0 -1
  60. package/dist/config/schema/hooks.d.ts +0 -2
  61. package/dist/config/schema/mcp-policy.d.ts +1 -0
  62. package/dist/config/schema/oh-my-opencode-config.d.ts +526 -54
  63. package/dist/config/schema.d.ts +0 -1
  64. package/dist/create-hooks.d.ts +0 -13
  65. package/dist/features/background-agent/compaction-aware-message-resolver.d.ts +1 -16
  66. package/dist/features/background-agent/constants.d.ts +2 -1
  67. package/dist/features/background-agent/manager.d.ts +5 -20
  68. package/dist/features/background-agent/process-cleanup.d.ts +1 -1
  69. package/dist/features/background-agent/task-history.d.ts +0 -1
  70. package/dist/features/background-agent/task-poller.d.ts +0 -1
  71. package/dist/features/background-agent/types.d.ts +0 -4
  72. package/dist/features/builtin-commands/commands.d.ts +4 -1
  73. package/dist/features/builtin-skills/skills/bio-methods.d.ts +2 -0
  74. package/dist/features/builtin-skills/skills/bio-pipeline.d.ts +2 -0
  75. package/dist/features/builtin-skills/skills/bio-tools.d.ts +2 -0
  76. package/dist/features/builtin-skills/skills/bio-visualization.d.ts +2 -0
  77. package/dist/features/builtin-skills/skills/cell-annotation.d.ts +2 -0
  78. package/dist/features/builtin-skills/skills/differential-expression.d.ts +2 -0
  79. package/dist/features/builtin-skills/skills/geo-query.d.ts +2 -0
  80. package/dist/features/builtin-skills/skills/index.d.ts +14 -0
  81. package/dist/features/builtin-skills/skills/paper-evidence.d.ts +2 -0
  82. package/dist/features/builtin-skills/skills/pubmed-search.d.ts +2 -0
  83. package/dist/features/builtin-skills/skills/scrna-preprocessing.d.ts +2 -0
  84. package/dist/features/builtin-skills/skills/sequence-analysis.d.ts +2 -0
  85. package/dist/features/builtin-skills/skills/structural-biology.d.ts +2 -0
  86. package/dist/features/builtin-skills/skills/vector-design.d.ts +2 -0
  87. package/dist/features/builtin-skills/skills/wet-lab-design.d.ts +2 -0
  88. package/dist/features/claude-code-agent-loader/loader.d.ts +3 -3
  89. package/dist/features/claude-code-agent-loader/types.d.ts +1 -8
  90. package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +5 -0
  91. package/dist/features/claude-code-mcp-loader/index.d.ts +1 -0
  92. package/dist/features/claude-code-mcp-loader/types.d.ts +3 -0
  93. package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +2 -2
  94. package/dist/features/claude-code-plugin-loader/loader.d.ts +2 -2
  95. package/dist/features/claude-code-plugin-loader/types.d.ts +1 -1
  96. package/dist/features/claude-code-session-state/state.d.ts +5 -0
  97. package/dist/features/opencode-skill-loader/git-master-template-injection.d.ts +1 -1
  98. package/dist/features/opencode-skill-loader/project-skill-directory-discovery.d.ts +1 -0
  99. package/dist/features/opencode-skill-loader/skill-metadata-validator.d.ts +8 -0
  100. package/dist/features/skill-mcp-manager/types.d.ts +0 -4
  101. package/dist/features/tmux-subagent/index.d.ts +0 -1
  102. package/dist/features/tmux-subagent/manager.d.ts +0 -5
  103. package/dist/features/tmux-subagent/types.d.ts +0 -2
  104. package/dist/hooks/atlas/tool-execute-after.d.ts +0 -2
  105. package/dist/hooks/atlas/types.d.ts +0 -2
  106. package/dist/hooks/atlas/verification-reminders.d.ts +0 -4
  107. package/dist/hooks/auto-slash-command/hook.d.ts +0 -7
  108. package/dist/hooks/auto-update-checker/checker.d.ts +1 -3
  109. package/dist/hooks/auto-update-checker/constants.d.ts +2 -2
  110. package/dist/hooks/comment-checker/downloader.d.ts +1 -1
  111. package/dist/hooks/compaction-context-injector/hook.d.ts +1 -5
  112. package/dist/hooks/context-window-monitor.d.ts +5 -2
  113. package/dist/hooks/index.d.ts +0 -2
  114. package/dist/hooks/keyword-detector/detector.d.ts +1 -1
  115. package/dist/hooks/keyword-detector/hook.d.ts +2 -2
  116. package/dist/hooks/keyword-detector/index.d.ts +1 -0
  117. package/dist/hooks/keyword-detector/semantic-hint.d.ts +4 -0
  118. package/dist/hooks/keyword-detector/ultrawork/autonomous.d.ts +8 -0
  119. package/dist/hooks/preemptive-compaction.d.ts +5 -2
  120. package/dist/hooks/runtime-fallback/hook.d.ts +3 -2
  121. package/dist/hooks/runtime-fallback/message-update-handler.d.ts +2 -1
  122. package/dist/hooks/runtime-fallback/types.d.ts +3 -56
  123. package/dist/hooks/session-notification-scheduler.d.ts +3 -5
  124. package/dist/hooks/session-notification.d.ts +0 -2
  125. package/dist/hooks/session-recovery/tool-pairing.d.ts +16 -0
  126. package/dist/hooks/start-work/index.d.ts +1 -1
  127. package/dist/hooks/start-work/worktree-detector.d.ts +0 -7
  128. package/dist/hooks/todo-continuation-enforcer/compaction-guard.d.ts +4 -0
  129. package/dist/hooks/todo-continuation-enforcer/constants.d.ts +6 -5
  130. package/dist/hooks/todo-continuation-enforcer/handler.d.ts +0 -1
  131. package/dist/hooks/todo-continuation-enforcer/idle-event.d.ts +0 -1
  132. package/dist/hooks/todo-continuation-enforcer/resolve-message-info.d.ts +3 -0
  133. package/dist/hooks/todo-continuation-enforcer/session-state.d.ts +1 -1
  134. package/dist/hooks/todo-continuation-enforcer/types.d.ts +8 -3
  135. package/dist/hooks/tool-output-truncator.d.ts +0 -1
  136. package/dist/index.js +56627 -56933
  137. package/dist/mcp/extended.d.ts +4 -2
  138. package/dist/mcp/index.d.ts +2 -1
  139. package/dist/mcp/types.d.ts +2 -3
  140. package/dist/openagent-labforge.schema.json +1362 -83
  141. package/dist/plugin/hooks/create-continuation-hooks.d.ts +1 -2
  142. package/dist/plugin/hooks/create-core-hooks.d.ts +0 -1
  143. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -2
  144. package/dist/plugin/ultrawork-model-override.d.ts +11 -1
  145. package/dist/plugin-dispose.d.ts +12 -10
  146. package/dist/plugin-handlers/agent-config-handler.d.ts +0 -1
  147. package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -1
  148. package/dist/plugin-state.d.ts +0 -5
  149. package/dist/shared/agent-display-names.d.ts +1 -0
  150. package/dist/shared/data-path.d.ts +1 -1
  151. package/dist/shared/dynamic-truncator.d.ts +7 -4
  152. package/dist/shared/external-plugin-detector.d.ts +7 -0
  153. package/dist/shared/index.d.ts +5 -3
  154. package/dist/shared/jsonc-parser.d.ts +4 -0
  155. package/dist/shared/mcp-local-command-normalizer.d.ts +1 -0
  156. package/dist/shared/migrate-legacy-config-file.d.ts +1 -0
  157. package/dist/shared/model-error-classifier.d.ts +1 -2
  158. package/dist/shared/opencode-command-dirs.d.ts +0 -1
  159. package/dist/shared/plugin-identity.d.ts +2 -3
  160. package/dist/shared/project-discovery-dirs.d.ts +4 -0
  161. package/dist/shared/session-model-state.d.ts +1 -2
  162. package/dist/shared/system-directive.d.ts +5 -6
  163. package/dist/tools/call-omo-agent/background-executor.d.ts +1 -2
  164. package/dist/tools/call-omo-agent/constants.d.ts +2 -2
  165. package/dist/tools/call-omo-agent/sync-executor.d.ts +3 -11
  166. package/dist/tools/call-omo-agent/tools.d.ts +2 -2
  167. package/dist/tools/call-omo-agent/types.d.ts +13 -0
  168. package/dist/tools/delegate-task/constants.d.ts +1 -1
  169. package/dist/tools/delegate-task/model-selection.d.ts +0 -1
  170. package/dist/tools/delegate-task/model-string-parser.d.ts +3 -1
  171. package/dist/tools/delegate-task/parent-context-resolver.d.ts +22 -0
  172. package/dist/tools/lsp/constants.d.ts +0 -1
  173. package/dist/tools/lsp/lsp-client-transport.d.ts +2 -4
  174. package/dist/tools/lsp/lsp-client-wrapper.d.ts +1 -2
  175. package/generated/skills-bundles/catalog.json +1 -1
  176. package/generated/skills-bundles/full/skills/data-analysis/experiment-monitoring/auto-claude__monitor-experiment/SKILL.md +56 -55
  177. package/generated/skills-bundles/full/skills/data-analysis/experiment-ops/auto-claude__run-experiment/SKILL.md +105 -104
  178. package/generated/skills-bundles/full/skills/data-analysis/optimization/auto-claude__dse-loop/SKILL.md +272 -271
  179. package/generated/skills-bundles/full/skills/data-analysis/statistics/auto-claude__analyze-results/SKILL.md +40 -39
  180. package/generated/skills-bundles/full/skills/data-analysis/visualization/auto-claude__paper-figure/SKILL.md +274 -273
  181. package/generated/skills-bundles/full/skills/productivity/visual-design/auto-claude__pixel-art/SKILL.md +131 -130
  182. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-compile/SKILL.md +245 -244
  183. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-plan/SKILL.md +247 -246
  184. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/SKILL.md +303 -302
  185. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/iclr2026.tex +84 -84
  186. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/icml2025.tex +87 -87
  187. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/math_commands.tex +48 -48
  188. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-write/templates/neurips2025.tex +80 -80
  189. package/generated/skills-bundles/full/skills/research/document-authoring/auto-claude__paper-writing/SKILL.md +31 -31
  190. package/generated/skills-bundles/full/skills/research/literature-and-web-search/auto-claude__arxiv/SKILL.md +126 -125
  191. package/generated/skills-bundles/full/skills/research/literature-and-web-search/auto-claude__novelty-check/SKILL.md +80 -79
  192. package/generated/skills-bundles/full/skills/research/literature-and-web-search/auto-claude__research-lit/SKILL.md +187 -186
  193. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__idea-creator/SKILL.md +11 -11
  194. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__idea-discovery/SKILL.md +18 -18
  195. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__idea-discovery-robot/SKILL.md +20 -20
  196. package/generated/skills-bundles/full/skills/research/research-ideation/auto-claude__research-pipeline/SKILL.md +15 -15
  197. package/generated/skills-bundles/full/skills/research/theory-writing/auto-claude__proof-writer/SKILL.md +217 -216
  198. package/generated/skills-bundles/paper/skills/data-analysis/experiment-monitoring/auto-claude__monitor-experiment/SKILL.md +56 -55
  199. package/generated/skills-bundles/paper/skills/data-analysis/experiment-ops/auto-claude__run-experiment/SKILL.md +105 -104
  200. package/generated/skills-bundles/paper/skills/data-analysis/optimization/auto-claude__dse-loop/SKILL.md +272 -271
  201. package/generated/skills-bundles/paper/skills/data-analysis/statistics/auto-claude__analyze-results/SKILL.md +40 -39
  202. package/generated/skills-bundles/paper/skills/data-analysis/visualization/auto-claude__paper-figure/SKILL.md +274 -273
  203. package/generated/skills-bundles/paper/skills/productivity/visual-design/auto-claude__pixel-art/SKILL.md +131 -130
  204. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-compile/SKILL.md +245 -244
  205. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-plan/SKILL.md +247 -246
  206. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/SKILL.md +303 -302
  207. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/iclr2026.tex +84 -84
  208. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/icml2025.tex +87 -87
  209. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/math_commands.tex +48 -48
  210. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-write/templates/neurips2025.tex +80 -80
  211. package/generated/skills-bundles/paper/skills/research/document-authoring/auto-claude__paper-writing/SKILL.md +31 -31
  212. package/generated/skills-bundles/paper/skills/research/literature-and-web-search/auto-claude__arxiv/SKILL.md +126 -125
  213. package/generated/skills-bundles/paper/skills/research/literature-and-web-search/auto-claude__novelty-check/SKILL.md +80 -79
  214. package/generated/skills-bundles/paper/skills/research/literature-and-web-search/auto-claude__research-lit/SKILL.md +187 -186
  215. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__idea-creator/SKILL.md +11 -11
  216. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__idea-discovery/SKILL.md +18 -18
  217. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__idea-discovery-robot/SKILL.md +20 -20
  218. package/generated/skills-bundles/paper/skills/research/research-ideation/auto-claude__research-pipeline/SKILL.md +15 -15
  219. package/generated/skills-bundles/paper/skills/research/theory-writing/auto-claude__proof-writer/SKILL.md +217 -216
  220. package/package.json +36 -32
  221. package/dist/cli/openai-only-model-catalog.d.ts +0 -3
  222. package/dist/cli/run/model-resolver.d.ts +0 -4
  223. package/dist/config/schema/git-env-prefix.d.ts +0 -5
  224. package/dist/features/background-agent/remove-task-toast-tracking.d.ts +0 -1
  225. package/dist/features/background-agent/subagent-spawn-limits.d.ts +0 -23
  226. package/dist/features/claude-code-agent-loader/claude-model-mapper.d.ts +0 -4
  227. package/dist/features/tmux-subagent/pane-state-parser.d.ts +0 -8
  228. package/dist/features/tmux-subagent/tracked-session-state.d.ts +0 -8
  229. package/dist/hooks/atlas/boulder-session-lineage.d.ts +0 -6
  230. package/dist/hooks/atlas/final-wave-approval-gate.d.ts +0 -4
  231. package/dist/hooks/atlas/idle-event.d.ts +0 -8
  232. package/dist/hooks/atlas/resolve-active-boulder-session.d.ts +0 -11
  233. package/dist/hooks/auto-slash-command/processed-command-store.d.ts +0 -7
  234. package/dist/hooks/auto-update-checker/checker/sync-package-json.d.ts +0 -7
  235. package/dist/hooks/compaction-context-injector/compaction-context-prompt.d.ts +0 -1
  236. package/dist/hooks/compaction-context-injector/constants.d.ts +0 -5
  237. package/dist/hooks/compaction-context-injector/recovery-prompt-config.d.ts +0 -6
  238. package/dist/hooks/compaction-context-injector/recovery.d.ts +0 -6
  239. package/dist/hooks/compaction-context-injector/session-id.d.ts +0 -2
  240. package/dist/hooks/compaction-context-injector/session-prompt-config-resolver.d.ts +0 -16
  241. package/dist/hooks/compaction-context-injector/tail-monitor.d.ts +0 -13
  242. package/dist/hooks/compaction-context-injector/types.d.ts +0 -43
  243. package/dist/hooks/compaction-context-injector/validated-model.d.ts +0 -13
  244. package/dist/hooks/delegate-task-english-directive/hook.d.ts +0 -14
  245. package/dist/hooks/delegate-task-english-directive/index.d.ts +0 -1
  246. package/dist/hooks/gpt-permission-continuation/assistant-message.d.ts +0 -23
  247. package/dist/hooks/gpt-permission-continuation/constants.d.ts +0 -4
  248. package/dist/hooks/gpt-permission-continuation/detector.d.ts +0 -1
  249. package/dist/hooks/gpt-permission-continuation/handler.d.ts +0 -12
  250. package/dist/hooks/gpt-permission-continuation/index.d.ts +0 -13
  251. package/dist/hooks/gpt-permission-continuation/session-state.d.ts +0 -15
  252. package/dist/hooks/ralph-loop/pending-verification-handler.d.ts +0 -16
  253. package/dist/hooks/runtime-fallback/fallback-bootstrap-model.d.ts +0 -10
  254. package/dist/hooks/runtime-fallback/fallback-retry-dispatcher.d.ts +0 -11
  255. package/dist/hooks/runtime-fallback/last-user-retry-parts.d.ts +0 -4
  256. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +0 -7
  257. package/dist/hooks/runtime-fallback/session-messages.d.ts +0 -9
  258. package/dist/hooks/runtime-fallback/session-status-handler.d.ts +0 -3
  259. package/dist/hooks/runtime-fallback/visible-assistant-response.d.ts +0 -3
  260. package/dist/hooks/session-notification-content.d.ts +0 -30
  261. package/dist/plugin/normalize-tool-arg-schemas.d.ts +0 -2
  262. package/dist/plugin/ultrawork-variant-availability.d.ts +0 -6
  263. package/dist/shared/compaction-agent-config-checkpoint.d.ts +0 -11
  264. package/dist/shared/context-limit-resolver.d.ts +0 -5
  265. package/dist/shared/fallback-chain-from-models.d.ts +0 -3
  266. package/dist/shared/question-denied-session-permission.d.ts +0 -6
  267. package/dist/shared/retry-status-utils.d.ts +0 -2
  268. package/dist/shared/vision-capable-models-cache.d.ts +0 -4
  269. package/dist/tools/delegate-task/cancel-unstable-agent-task.d.ts +0 -2
  270. package/dist/tools/look-at/multimodal-fallback-chain.d.ts +0 -4
  271. package/dist/tools/lsp/directory-diagnostics.d.ts +0 -1
  272. package/dist/tools/lsp/server-path-bases.d.ts +0 -1
@@ -6,247 +6,248 @@ allowed-tools: "Bash(*), Read, Write, Edit, Grep, Glob"
6
6
  metadata:
7
7
  category: "research/document-authoring"
8
8
  ---
9
- # Paper Compile: LaTeX to Submission-Ready PDF
10
-
11
- Compile the LaTeX paper and fix any issues: **$ARGUMENTS**
12
-
13
- ## Constants
14
-
15
- - **COMPILER = `latexmk`** — LaTeX build tool. Handles multi-pass compilation automatically.
16
- - **ENGINE = `pdflatex`** — LaTeX engine. Options: `pdflatex` (default), `xelatex` (for CJK/custom fonts), `lualatex`.
17
- - **MAX_COMPILE_ATTEMPTS = 3**Maximum attempts to fix errors and recompile.
18
- - **PAPER_DIR = `paper/`**Directory containing LaTeX source files.
19
- - **MAX_PAGES** Main body page limit (to end of Conclusion, excluding references & appendix). ICLR=9, NeurIPS=9, ICML=8.
20
-
21
- ## Workflow
22
-
23
- ### Step 1: Verify Prerequisites
24
-
25
- Check that the compilation environment is ready:
26
-
27
- ```bash
28
- # Check LaTeX installation
29
- which pdflatex && which latexmk && which bibtex
30
-
31
- # If not installed, provide instructions:
32
- # macOS: brew install --cask mactex-no-gui
33
- # Ubuntu: sudo apt-get install texlive-full
34
- # Server: conda install -c conda-forge texlive-core
35
- ```
36
-
37
- Verify all required files exist:
38
-
39
- ```bash
40
- # Must exist
41
- ls $PAPER_DIR/main.tex
42
-
43
- # Should exist
44
- ls $PAPER_DIR/references.bib
45
- ls $PAPER_DIR/sections/*.tex
46
- ls $PAPER_DIR/figures/*.pdf 2>/dev/null || ls $PAPER_DIR/figures/*.png 2>/dev/null
47
- ```
48
-
49
- ### Step 2: First Compilation Attempt
50
-
51
- ```bash
52
- cd $PAPER_DIR
53
-
54
- # Clean previous build artifacts
55
- latexmk -C
56
-
57
- # Full compilation (pdflatex + bibtex + pdflatex × 2)
58
- latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex 2>&1 | tee compile.log
59
- ```
60
-
61
- ### Step 3: Error Diagnosis and Auto-Fix
62
-
63
- If compilation fails, read `compile.log` and fix common errors:
64
-
65
- **Missing packages:**
66
- ```
67
- ! LaTeX Error: File `somepackage.sty' not found.
68
- ```
69
- → Install via `tlmgr install somepackage` or remove the `\usepackage` if unused.
70
-
71
- **Undefined references:**
72
- ```
73
- LaTeX Warning: Reference `fig:xyz' on page 3 undefined
74
- ```
75
- → Check `\label{fig:xyz}` exists in the correct figure environment.
76
-
77
- **Missing figures:**
78
- ```
79
- ! LaTeX Error: File `figures/fig1.pdf' not found.
80
- ```
81
- → Check if the file exists with a different extension (.png vs .pdf). Update the `\includegraphics` path.
82
-
83
- **Citation undefined:**
84
- ```
85
- LaTeX Warning: Citation `smith2024' undefined
86
- ```
87
- → Add the missing entry to `references.bib` or fix the citation key.
88
-
89
- **`[VERIFY]` markers in text:**
90
- → Search for `[VERIFY]` markers left by `/paper-write`. These indicate unverified citations or facts. Search for the correct information or flag to the user.
91
-
92
- **Overfull hbox:**
93
- ```
94
- Overfull \hbox (12.5pt too wide) in paragraph at lines 42--45
95
- ```
96
- → Minor: usually ignorable. If severe (>20pt), rephrase the text or adjust figure width.
97
-
98
- **BibTeX errors:**
99
- ```
100
- I was expecting a `,' or a `}'---line 15 of references.bib
101
- ```
102
- → Fix BibTeX syntax (missing comma, unmatched braces, special characters in title).
103
-
104
- **`\crefname` undefined for custom theorem types:**
105
- → Ensure `\crefname{assumption}{Assumption}{Assumptions}` and similar are in the preamble after `\newtheorem{assumption}`.
106
-
107
- ### Step 4: Iterative Fix Loop
108
-
109
- ```
110
- for attempt in 1..MAX_COMPILE_ATTEMPTS:
111
- compile()
112
- if success:
113
- break
114
- parse_errors()
115
- auto_fix()
116
- ```
117
-
118
- For each error:
119
- 1. Read the error message from `compile.log`
120
- 2. Locate the source file and line number
121
- 3. Apply the fix
122
- 4. Recompile
123
-
124
- ### Step 5: Post-Compilation Checks
125
-
126
- After successful compilation, verify the output:
127
-
128
- ```bash
129
- # Check PDF exists and has content
130
- ls -la main.pdf
131
- # Check page count
132
- pdfinfo main.pdf | grep Pages
133
-
134
- # macOS: open for visual inspection
135
- # open main.pdf
136
- ```
137
-
138
- **Automated checks:**
139
-
140
- - [ ] PDF file exists and is > 100KB (not empty/corrupt)
141
- - [ ] Total page count is reasonable (MAX_PAGES + appendix + references)
142
- - [ ] No "??" in the PDF (undefined references grep the log)
143
- - [ ] No "[?]" in the PDF (undefined citations — grep the log)
144
- - [ ] Figures are rendered (not missing image placeholders)
145
-
146
- ```bash
147
- # Check for undefined references
148
- grep -c "LaTeX Warning.*undefined" compile.log
149
-
150
- # Check for missing citations
151
- grep -c "Citation.*undefined" compile.log
152
- ```
153
-
154
- ### Step 6: Page Count Verification
155
-
156
- **CRITICAL**: Verify main body fits within MAX_PAGES.
157
-
158
- Main body = first page through end of Conclusion section (not necessarily §5 — could be §6, §7, or §8 depending on structure).
159
- References and appendix are NOT counted.
160
-
161
- **Precise check using `pdftotext`:**
162
- ```bash
163
- # Extract text and find where Conclusion ends vs References begin
164
- pdftotext main.pdf - | python3 -c "
165
- import sys
166
- text = sys.stdin.read()
167
- pages = text.split('\f')
168
- for i, page in enumerate(pages):
169
- if 'Ethics Statement' in page or 'Reproducibility' in page:
170
- print(f'Conclusion ends on page {i+1}')
171
- if any(w in page for w in ['References', 'Bibliography']):
172
- lines = [l for l in page.split('\n') if l.strip()]
173
- for l in lines[:3]:
174
- if 'References' in l or 'Bibliography' in l:
175
- print(f'References start on page {i+1}')
176
- break
177
- "
178
- ```
179
-
180
- If Conclusion ends mid-page and References start on the same page, the main body is that page number (e.g., if both are on page 9, main body = ~8.5 pages, which is fine for a 9-page limit since it leaves room for the References header).
181
-
182
- If over limit:
183
- - Identify which sections are longest
184
- - Suggest specific cuts (move proofs to appendix, compress tables, tighten writing)
185
- - Report: "Main body is X pages (limit: MAX_PAGES). Suggestion: move [specific content] to appendix."
186
-
187
- ### Step 6.5: Stale File Detection
188
-
189
- Check for orphaned section files not referenced by `main.tex`:
190
-
191
- ```bash
192
- # Find all .tex files in sections/ and check which are \input'ed by main.tex
193
- for f in paper/sections/*.tex; do
194
- base=$(basename "$f")
195
- if ! grep -q "$base" paper/main.tex; then
196
- echo "WARNING: $f is not referenced by main.tex — consider removing"
197
- fi
198
- done
199
- ```
200
-
201
- This prevents confusion from leftover files when section structure changes (e.g., old `5_conclusion.tex` left behind after restructuring to 7 sections).
202
-
203
- ### Step 7: Submission Readiness
204
-
205
- For conference submission, additional checks:
206
-
207
- - [ ] **Anonymous**: no author names, affiliations, or self-citations that reveal identity
208
- - [ ] **Page limit**: main body within MAX_PAGES (to end of Conclusion)
209
- - [ ] **Font embedding**: all fonts embedded in PDF
210
- ```bash
211
- pdffonts main.pdf | grep -v "yes" # should return nothing (or only header)
212
- ```
213
- - [ ] **No supplementary mixed in**: appendix clearly after `\newpage\appendix`
214
- - [ ] **File size**: reasonable (< 50MB for most venues, < 10MB preferred)
215
- - [ ] **No `[VERIFY]` markers**: search the PDF text for leftover markers
216
-
217
- ### Step 8: Output Summary
218
-
219
- ```markdown
220
- ## Compilation Report
221
-
222
- - **Status**: SUCCESS / FAILED
223
- - **PDF**: paper/main.pdf
224
- - **Pages**: X (main body to Conclusion) + Y (references) + Z (appendix)
225
- - **Within page limit**: YES/NO (MAX_PAGES = N)
226
- - **Errors fixed**: [list of auto-fixed issues]
227
- - **Warnings remaining**: [list of non-critical warnings]
228
- - **Undefined references**: 0
229
- - **Undefined citations**: 0
230
-
231
- ### Next Steps
232
- - [ ] Visual inspection of PDF
233
- - [ ] Run `/paper-write` to fix any content issues
234
- - [ ] Submit to [venue] via OpenReview / CMT / HotCRP
235
- ```
236
-
237
- ## Key Rules
238
-
239
- - **Never delete the user's source files** — only modify to fix errors
240
- - **Keep compile.log** — useful for debugging
241
- - **Don't suppress warnings** — report them, let the user decide
242
- - **If LaTeX is not installed**, provide clear installation instructions rather than failing silently
243
- - **Font embedding is critical** some venues reject PDFs with non-embedded fonts
244
- - **Page count = main body to Conclusion** — this is the metric that matters for submission
245
-
246
- ## Common Venue Requirements
247
-
248
- | Venue | Style File | Citation | Page Limit (main body) | Submission |
249
- |-------|-----------|----------|------------------------|------------|
250
- | ICLR 2026 | `iclr2026_conference.sty` | `natbib` (`\citep`/`\citet`) | 9 pages (to Conclusion end) | OpenReview |
251
- | NeurIPS 2025 | `neurips_2025.sty` | `natbib` (`\citep`/`\citet`) | 9 pages (to Conclusion end) | OpenReview |
252
- | ICML 2025 | `icml2025.sty` | `natbib` (`\citep`/`\citet`) | 8 pages (to Conclusion end) | OpenReview |
9
+
10
+ # Paper Compile: LaTeX to Submission-Ready PDF
11
+
12
+ Compile the LaTeX paper and fix any issues: **$ARGUMENTS**
13
+
14
+ ## Constants
15
+
16
+ - **COMPILER = `latexmk`** — LaTeX build tool. Handles multi-pass compilation automatically.
17
+ - **ENGINE = `pdflatex`**LaTeX engine. Options: `pdflatex` (default), `xelatex` (for CJK/custom fonts), `lualatex`.
18
+ - **MAX_COMPILE_ATTEMPTS = 3**Maximum attempts to fix errors and recompile.
19
+ - **PAPER_DIR = `paper/`** Directory containing LaTeX source files.
20
+ - **MAX_PAGES** — Main body page limit (to end of Conclusion, excluding references & appendix). ICLR=9, NeurIPS=9, ICML=8.
21
+
22
+ ## Workflow
23
+
24
+ ### Step 1: Verify Prerequisites
25
+
26
+ Check that the compilation environment is ready:
27
+
28
+ ```bash
29
+ # Check LaTeX installation
30
+ which pdflatex && which latexmk && which bibtex
31
+
32
+ # If not installed, provide instructions:
33
+ # macOS: brew install --cask mactex-no-gui
34
+ # Ubuntu: sudo apt-get install texlive-full
35
+ # Server: conda install -c conda-forge texlive-core
36
+ ```
37
+
38
+ Verify all required files exist:
39
+
40
+ ```bash
41
+ # Must exist
42
+ ls $PAPER_DIR/main.tex
43
+
44
+ # Should exist
45
+ ls $PAPER_DIR/references.bib
46
+ ls $PAPER_DIR/sections/*.tex
47
+ ls $PAPER_DIR/figures/*.pdf 2>/dev/null || ls $PAPER_DIR/figures/*.png 2>/dev/null
48
+ ```
49
+
50
+ ### Step 2: First Compilation Attempt
51
+
52
+ ```bash
53
+ cd $PAPER_DIR
54
+
55
+ # Clean previous build artifacts
56
+ latexmk -C
57
+
58
+ # Full compilation (pdflatex + bibtex + pdflatex × 2)
59
+ latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex 2>&1 | tee compile.log
60
+ ```
61
+
62
+ ### Step 3: Error Diagnosis and Auto-Fix
63
+
64
+ If compilation fails, read `compile.log` and fix common errors:
65
+
66
+ **Missing packages:**
67
+ ```
68
+ ! LaTeX Error: File `somepackage.sty' not found.
69
+ ```
70
+ → Install via `tlmgr install somepackage` or remove the `\usepackage` if unused.
71
+
72
+ **Undefined references:**
73
+ ```
74
+ LaTeX Warning: Reference `fig:xyz' on page 3 undefined
75
+ ```
76
+ → Check `\label{fig:xyz}` exists in the correct figure environment.
77
+
78
+ **Missing figures:**
79
+ ```
80
+ ! LaTeX Error: File `figures/fig1.pdf' not found.
81
+ ```
82
+ → Check if the file exists with a different extension (.png vs .pdf). Update the `\includegraphics` path.
83
+
84
+ **Citation undefined:**
85
+ ```
86
+ LaTeX Warning: Citation `smith2024' undefined
87
+ ```
88
+ → Add the missing entry to `references.bib` or fix the citation key.
89
+
90
+ **`[VERIFY]` markers in text:**
91
+ → Search for `[VERIFY]` markers left by `/paper-write`. These indicate unverified citations or facts. Search for the correct information or flag to the user.
92
+
93
+ **Overfull hbox:**
94
+ ```
95
+ Overfull \hbox (12.5pt too wide) in paragraph at lines 42--45
96
+ ```
97
+ → Minor: usually ignorable. If severe (>20pt), rephrase the text or adjust figure width.
98
+
99
+ **BibTeX errors:**
100
+ ```
101
+ I was expecting a `,' or a `}'---line 15 of references.bib
102
+ ```
103
+ → Fix BibTeX syntax (missing comma, unmatched braces, special characters in title).
104
+
105
+ **`\crefname` undefined for custom theorem types:**
106
+ → Ensure `\crefname{assumption}{Assumption}{Assumptions}` and similar are in the preamble after `\newtheorem{assumption}`.
107
+
108
+ ### Step 4: Iterative Fix Loop
109
+
110
+ ```
111
+ for attempt in 1..MAX_COMPILE_ATTEMPTS:
112
+ compile()
113
+ if success:
114
+ break
115
+ parse_errors()
116
+ auto_fix()
117
+ ```
118
+
119
+ For each error:
120
+ 1. Read the error message from `compile.log`
121
+ 2. Locate the source file and line number
122
+ 3. Apply the fix
123
+ 4. Recompile
124
+
125
+ ### Step 5: Post-Compilation Checks
126
+
127
+ After successful compilation, verify the output:
128
+
129
+ ```bash
130
+ # Check PDF exists and has content
131
+ ls -la main.pdf
132
+ # Check page count
133
+ pdfinfo main.pdf | grep Pages
134
+
135
+ # macOS: open for visual inspection
136
+ # open main.pdf
137
+ ```
138
+
139
+ **Automated checks:**
140
+
141
+ - [ ] PDF file exists and is > 100KB (not empty/corrupt)
142
+ - [ ] Total page count is reasonable (MAX_PAGES + appendix + references)
143
+ - [ ] No "??" in the PDF (undefined references — grep the log)
144
+ - [ ] No "[?]" in the PDF (undefined citations grep the log)
145
+ - [ ] Figures are rendered (not missing image placeholders)
146
+
147
+ ```bash
148
+ # Check for undefined references
149
+ grep -c "LaTeX Warning.*undefined" compile.log
150
+
151
+ # Check for missing citations
152
+ grep -c "Citation.*undefined" compile.log
153
+ ```
154
+
155
+ ### Step 6: Page Count Verification
156
+
157
+ **CRITICAL**: Verify main body fits within MAX_PAGES.
158
+
159
+ Main body = first page through end of Conclusion section (not necessarily §5 — could be §6, §7, or §8 depending on structure).
160
+ References and appendix are NOT counted.
161
+
162
+ **Precise check using `pdftotext`:**
163
+ ```bash
164
+ # Extract text and find where Conclusion ends vs References begin
165
+ pdftotext main.pdf - | python3 -c "
166
+ import sys
167
+ text = sys.stdin.read()
168
+ pages = text.split('\f')
169
+ for i, page in enumerate(pages):
170
+ if 'Ethics Statement' in page or 'Reproducibility' in page:
171
+ print(f'Conclusion ends on page {i+1}')
172
+ if any(w in page for w in ['References', 'Bibliography']):
173
+ lines = [l for l in page.split('\n') if l.strip()]
174
+ for l in lines[:3]:
175
+ if 'References' in l or 'Bibliography' in l:
176
+ print(f'References start on page {i+1}')
177
+ break
178
+ "
179
+ ```
180
+
181
+ If Conclusion ends mid-page and References start on the same page, the main body is that page number (e.g., if both are on page 9, main body = ~8.5 pages, which is fine for a 9-page limit since it leaves room for the References header).
182
+
183
+ If over limit:
184
+ - Identify which sections are longest
185
+ - Suggest specific cuts (move proofs to appendix, compress tables, tighten writing)
186
+ - Report: "Main body is X pages (limit: MAX_PAGES). Suggestion: move [specific content] to appendix."
187
+
188
+ ### Step 6.5: Stale File Detection
189
+
190
+ Check for orphaned section files not referenced by `main.tex`:
191
+
192
+ ```bash
193
+ # Find all .tex files in sections/ and check which are \input'ed by main.tex
194
+ for f in paper/sections/*.tex; do
195
+ base=$(basename "$f")
196
+ if ! grep -q "$base" paper/main.tex; then
197
+ echo "WARNING: $f is not referenced by main.tex — consider removing"
198
+ fi
199
+ done
200
+ ```
201
+
202
+ This prevents confusion from leftover files when section structure changes (e.g., old `5_conclusion.tex` left behind after restructuring to 7 sections).
203
+
204
+ ### Step 7: Submission Readiness
205
+
206
+ For conference submission, additional checks:
207
+
208
+ - [ ] **Anonymous**: no author names, affiliations, or self-citations that reveal identity
209
+ - [ ] **Page limit**: main body within MAX_PAGES (to end of Conclusion)
210
+ - [ ] **Font embedding**: all fonts embedded in PDF
211
+ ```bash
212
+ pdffonts main.pdf | grep -v "yes" # should return nothing (or only header)
213
+ ```
214
+ - [ ] **No supplementary mixed in**: appendix clearly after `\newpage\appendix`
215
+ - [ ] **File size**: reasonable (< 50MB for most venues, < 10MB preferred)
216
+ - [ ] **No `[VERIFY]` markers**: search the PDF text for leftover markers
217
+
218
+ ### Step 8: Output Summary
219
+
220
+ ```markdown
221
+ ## Compilation Report
222
+
223
+ - **Status**: SUCCESS / FAILED
224
+ - **PDF**: paper/main.pdf
225
+ - **Pages**: X (main body to Conclusion) + Y (references) + Z (appendix)
226
+ - **Within page limit**: YES/NO (MAX_PAGES = N)
227
+ - **Errors fixed**: [list of auto-fixed issues]
228
+ - **Warnings remaining**: [list of non-critical warnings]
229
+ - **Undefined references**: 0
230
+ - **Undefined citations**: 0
231
+
232
+ ### Next Steps
233
+ - [ ] Visual inspection of PDF
234
+ - [ ] Run `/paper-write` to fix any content issues
235
+ - [ ] Submit to [venue] via OpenReview / CMT / HotCRP
236
+ ```
237
+
238
+ ## Key Rules
239
+
240
+ - **Never delete the user's source files** — only modify to fix errors
241
+ - **Keep compile.log** — useful for debugging
242
+ - **Don't suppress warnings** report them, let the user decide
243
+ - **If LaTeX is not installed**, provide clear installation instructions rather than failing silently
244
+ - **Font embedding is critical** — some venues reject PDFs with non-embedded fonts
245
+ - **Page count = main body to Conclusion** — this is the metric that matters for submission
246
+
247
+ ## Common Venue Requirements
248
+
249
+ | Venue | Style File | Citation | Page Limit (main body) | Submission |
250
+ |-------|-----------|----------|------------------------|------------|
251
+ | ICLR 2026 | `iclr2026_conference.sty` | `natbib` (`\citep`/`\citet`) | 9 pages (to Conclusion end) | OpenReview |
252
+ | NeurIPS 2025 | `neurips_2025.sty` | `natbib` (`\citep`/`\citet`) | 9 pages (to Conclusion end) | OpenReview |
253
+ | ICML 2025 | `icml2025.sty` | `natbib` (`\citep`/`\citet`) | 8 pages (to Conclusion end) | OpenReview |