Parent epic: #11
Depends on: D1 (#12) TemplateAdapter base
Estimate: ~1 dev-day (~5h Opus + 模板下载 1-2h)
范围 Scope
把路由集合从 ICLR + arXiv(2 个)扩到 6 个 AI 顶会。新增 NeurIPS 2024、ICML 2024、ACL-ARR、CVPR 2024 共 4 个 adapter。
改动 Changes
新建模板资产
third_party/neurips2024/ — 官方 neurips_2024.sty + bib + tex 样板
third_party/icml2024/ — 官方 icml2024.sty + 配套
third_party/acl_arr/ — ACL Rolling Review 模板(acl.sty + acl_natbib.bst)
third_party/cvpr2024/ — IEEE CVPR 模板包
每个模板目录必须有 README.md,写清来源 URL、license、下载日期和是否允许再分发。
新建 Adapter
agents/manuscript_templates/neurips2024.py
agents/manuscript_templates/icml2024.py
agents/manuscript_templates/acl_arr.py
agents/manuscript_templates/cvpr2024.py
编辑
manuscript_venues/venues_v1.yaml — 注册 4 venue(family / triggers / rejects / max_pages / bibstyle)
agents/manuscript_templates/__init__.py — get_adapter 注册新 venue
验收 Acceptance
AI 可验收证据包(必须)
PR 必须生成:
artifacts/d2_top_venue_adapters_acceptance.json
字段至少包含:
{
"base_ref": "...",
"commit": "...",
"venues": {
"neurips2024": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/neurips2024.py"},
"icml2024": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/icml2024.py"},
"acl_arr": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/acl_arr.py"},
"cvpr2024": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/cvpr2024.py"}
},
"router_fixture_results": [
{"fixture": "cv_state", "chosen": "cvpr2024"},
{"fixture": "nlp_state", "chosen": "acl_arr"},
{"fixture": "ml_algorithm_state", "chosen": "icml2024 or neurips2024"}
],
"compile_results": [
{"venue": "neurips2024", "status": "pass|skipped|fail", "log_path": "..."},
{"venue": "icml2024", "status": "pass|skipped|fail", "log_path": "..."},
{"venue": "acl_arr", "status": "pass|skipped|fail", "log_path": "..."},
{"venue": "cvpr2024", "status": "pass|skipped|fail", "log_path": "..."}
],
"test_command": "...",
"test_summary": "..."
}
防伪 / 防硬编码要求
- 每个 adapter 必须能独立
get_adapter("<venue>") 加载。
- 每个模板 copy 后必须生成 venue-specific 的
main.tex 或等价入口文件。
- router fixture 必须覆盖 CV、NLP、general ML 三类输入。
- 如果 LaTeX dry-compile 被跳过,证据包必须包含
latex_binary_found=false 或明确跳过原因,不能只写“本地没装”。
- 不允许只通过文件存在判断成功,至少要检查 preamble/bibstyle/max_pages 等 venue-specific 字段。
风险 Risks
- 部分会议官方包要求注册或非自由分发 → 选 fallback:用对应会议的 arXiv mirror 模板(如 NeurIPS 用
neuripspaper.sty 公版)
- LaTeX 工具链本地未装 → CI 可跳过 dry-compile,但证据包必须记录跳过原因和替代验证
范围外 Out of scope
- 多轮 revision(不在本 epic)
- 期刊模板(IEEE TPAMI 等,未来 PR)
Parent epic: #11
Depends on: D1 (#12) TemplateAdapter base
Estimate: ~1 dev-day (~5h Opus + 模板下载 1-2h)
范围 Scope
把路由集合从 ICLR + arXiv(2 个)扩到 6 个 AI 顶会。新增 NeurIPS 2024、ICML 2024、ACL-ARR、CVPR 2024 共 4 个 adapter。
改动 Changes
新建模板资产
third_party/neurips2024/— 官方neurips_2024.sty+ bib + tex 样板third_party/icml2024/— 官方icml2024.sty+ 配套third_party/acl_arr/— ACL Rolling Review 模板(acl.sty+acl_natbib.bst)third_party/cvpr2024/— IEEE CVPR 模板包每个模板目录必须有
README.md,写清来源 URL、license、下载日期和是否允许再分发。新建 Adapter
agents/manuscript_templates/neurips2024.pyagents/manuscript_templates/icml2024.pyagents/manuscript_templates/acl_arr.pyagents/manuscript_templates/cvpr2024.py编辑
manuscript_venues/venues_v1.yaml— 注册 4 venue(family / triggers / rejects / max_pages / bibstyle)agents/manuscript_templates/__init__.py—get_adapter注册新 venue验收 Acceptance
README.md标注来源 URL + license)latexmk -interaction=nonstopmode -draftmode或等价)venues_v1.yaml6 venue 配置完整tests/test_top_venue_adapters.py≥ 8 case(每模板 2 个)AI 可验收证据包(必须)
PR 必须生成:
字段至少包含:
{ "base_ref": "...", "commit": "...", "venues": { "neurips2024": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/neurips2024.py"}, "icml2024": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/icml2024.py"}, "acl_arr": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/acl_arr.py"}, "cvpr2024": {"source_url": "...", "license": "...", "files": ["..."], "adapter": "agents/manuscript_templates/cvpr2024.py"} }, "router_fixture_results": [ {"fixture": "cv_state", "chosen": "cvpr2024"}, {"fixture": "nlp_state", "chosen": "acl_arr"}, {"fixture": "ml_algorithm_state", "chosen": "icml2024 or neurips2024"} ], "compile_results": [ {"venue": "neurips2024", "status": "pass|skipped|fail", "log_path": "..."}, {"venue": "icml2024", "status": "pass|skipped|fail", "log_path": "..."}, {"venue": "acl_arr", "status": "pass|skipped|fail", "log_path": "..."}, {"venue": "cvpr2024", "status": "pass|skipped|fail", "log_path": "..."} ], "test_command": "...", "test_summary": "..." }防伪 / 防硬编码要求
get_adapter("<venue>")加载。main.tex或等价入口文件。latex_binary_found=false或明确跳过原因,不能只写“本地没装”。风险 Risks
neuripspaper.sty公版)范围外 Out of scope