ml-paper-writing by orchestra-research/ai-research-skills
npx skills add https://github.com/orchestra-research/ai-research-skills --skill ml-paper-writing针对 NeurIPS、ICML、ICLR、ACL、AAAI、COLM(机器学习/人工智能会议)和 OSDI、NSDI、ASPLOS、SOSP(系统会议)撰写符合发表要求的论文的专家级指导。本技能结合了顶级研究者(Nanda、Farquhar、Karpathy、Lipton、Steinhardt)的写作理念与实用工具:LaTeX 模板、引文验证 API 和会议清单。
论文写作是协作性的,但 Claude 应积极主动地交付草稿。
典型的工作流程始于一个包含代码、结果和实验产物的研究仓库。Claude 的角色是:
关键原则:积极主动。如果仓库和结果清晰,就交付完整草稿。不要因为等待每个部分的反馈而停滞不前——科学家们很忙。提供一些具体的东西让他们可以做出反应,然后根据他们的反馈进行迭代。
这是人工智能辅助学术写作中最重要的规则。
人工智能生成的引文错误率约为 40%。捏造的参考文献——不存在的论文、错误的作者、不正确的年份、伪造的 DOI——是一种严重的学术不端行为,可能导致直接拒稿或撤稿。
切勿凭记忆生成 BibTeX 条目。务必通过程序化方式获取。
| 操作 | ✅ 正确 | ❌ 错误 |
|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 添加引文 | 搜索 API → 验证 → 获取 BibTeX | 凭记忆编写 BibTeX |
| 对某篇论文不确定 | 标记为 [CITATION NEEDED] | 猜测参考文献 |
| 找不到确切的论文 | 注明:"placeholder - verify" | 编造听起来相似的论文 |
如果无法通过程序化方式验证引文,则必须:
% 显式占位符 - 需要人工验证
\cite{PLACEHOLDER_author2024_verify_this} % TODO: 验证此引文是否存在
务必告知科学家:"我已将 [X] 条引文标记为需要验证的占位符。我无法确认这些论文是否存在。"
为了获得最佳的论文搜索体验,请安装 Exa MCP,它提供实时学术搜索:
Claude Code:
claude mcp add exa -- npx -y mcp-remote "https://mcp.exa.ai/mcp"
Cursor / VS Code(添加到 MCP 设置):
{
"mcpServers": {
"exa": {
"type": "http",
"url": "https://mcp.exa.ai/mcp"
}
}
}
Exa MCP 支持如下搜索:
然后使用 Semantic Scholar API 验证结果并通过 DOI 获取 BibTeX。
开始论文写作时,首先要理解项目:
项目理解:
- [ ] 步骤 1:探索仓库结构
- [ ] 步骤 2:阅读 README、现有文档和关键结果
- [ ] 步骤 3:与科学家一起确定主要贡献
- [ ] 步骤 4:查找代码库中已引用的论文
- [ ] 步骤 5:搜索其他相关文献
- [ ] 步骤 6:共同拟定论文结构大纲
- [ ] 步骤 7:通过反馈迭代起草各个部分
步骤 1:探索仓库
# 理解项目结构
ls -la
find . -name "*.py" | head -20
find . -name "*.md" -o -name "*.txt" | xargs grep -l -i "result\|conclusion\|finding"
寻找:
README.md - 项目概述和声明results/、outputs/、experiments/ - 关键发现configs/ - 实验设置.bib 文件或引文参考步骤 2:识别现有引文
检查代码库中已引用的论文:
# 查找现有引文
grep -r "arxiv\|doi\|cite" --include="*.md" --include="*.bib" --include="*.py"
find . -name "*.bib"
这些是"相关工作"部分的高价值起点——科学家已经认为它们相关。
步骤 3:明确贡献
在写作之前,与科学家明确确认:
"根据我对仓库的理解,主要贡献似乎是 [X]。关键结果表明 [Y]。这是您希望论文采用的框架吗?还是我们应该强调不同的方面?"
切勿假设叙述方式——务必与人类验证。
步骤 4:搜索其他文献
使用网络搜索查找相关论文:
尝试的搜索查询:
- "[主要技术] + [应用领域]"
- "[基线方法] 对比"
- "[问题名称] 最新技术"
- 现有引文中的作者姓名
然后使用下面的引文工作流程进行验证并获取 BibTeX。
步骤 5:交付初稿
积极主动——交付完整草稿,而不是为每个部分请求许可。
如果仓库提供了清晰的结果且贡献显而易见:
如果对框架或主要声明确实不确定:
随草稿附上的问题(不要在之前):
在以下情况下使用此技能:
始终记住:初稿是讨论的起点,而非最终输出。
默认:积极主动。交付草稿,然后迭代。
| 置信度 | 行动 |
|---|---|
| 高(仓库清晰,贡献明显) | 撰写完整草稿,交付,根据反馈迭代 |
| 中(存在一些模糊性) | 撰写草稿并标记不确定性,继续 |
| 低(存在重大未知) | 提出 1-2 个有针对性的问题,然后起草 |
先起草,随草稿提问(不要在之前):
| 部分 | 自主起草 | 随草稿标记 |
|---|---|---|
| 摘要 | 是 | "将贡献阐述为 X——如果需要请调整" |
| 引言 | 是 | "强调了问题 Y——如果错误请纠正" |
| 方法 | 是 | "包含了细节 A、B、C——添加遗漏的部分" |
| 实验 | 是 | "突出了结果 1、2、3——如果需要请重新排序" |
| 相关工作 | 是 | "引用了论文 X、Y、Z——添加我遗漏的任何论文" |
仅在以下情况下才暂停等待输入:
不要因为以下原因而暂停:
最关键的一点:你的论文不是一系列实验的集合——它是一个由一个清晰贡献支持的故事,并有证据支撑。
每一篇成功的机器学习论文都围绕 Neel Nanda 所说的"叙述"展开:一个简短、严谨、基于证据的技术故事,其结论是读者所关心的。
三大支柱(必须在引言结束时清晰明了):
| 支柱 | 描述 | 示例 |
|---|---|---|
| 是什么 | 1-3 个具体的新颖声明,主题连贯 | "我们证明在条件 Z 下,X 实现了 Y" |
| 为什么 | 支持声明的严谨经验证据 | 强有力的基线,区分假设的实验 |
| 所以呢 | 读者为何应该关心 | 与公认的社区问题的联系 |
如果你不能用一句话说明你的贡献,那么你还没有一篇论文。
复制此清单并跟踪进度。每个步骤都涉及起草 → 反馈 → 修订:
论文写作进度:
- [ ] 步骤 1:定义一句话贡献(与科学家一起)
- [ ] 步骤 2:起草图 1 → 获取反馈 → 修订
- [ ] 步骤 3:起草摘要 → 获取反馈 → 修订
- [ ] 步骤 4:起草引言 → 获取反馈 → 修订
- [ ] 步骤 5:起草方法 → 获取反馈 → 修订
- [ ] 步骤 6:起草实验 → 获取反馈 → 修订
- [ ] 步骤 7:起草相关工作 → 获取反馈 → 修订
- [ ] 步骤 8:起草局限性 → 获取反馈 → 修订
- [ ] 步骤 9:完成论文清单(必需)
- [ ] 步骤 10:最终审阅周期和提交
步骤 1:定义一句话贡献
此步骤需要科学家的明确确认。
在撰写任何内容之前,阐明并验证:
"我建议将贡献阐述为:'[一句话]'。这抓住了您认为的主要结论吗?我们应该调整重点吗?"
步骤 2:起草图 1
图 1 值得特别关注——许多读者会直接跳到它。
步骤 3:撰写摘要(5 句话公式)
来自 Sebastian Farquhar(DeepMind):
1. 你实现了什么:"我们引入了..."、"我们证明了..."、"我们展示了..."
2. 为什么这很难且很重要
3. 你如何做到(使用专业关键词以提高可发现性)
4. 你有什么证据
5. 你最显著的数字/结果
删除 通用开头,如"大型语言模型取得了显著成功..."
步骤 4:撰写引言(最多 1-1.5 页)
必须包括:
步骤 5:方法部分
确保可复现:
步骤 6:实验部分
对于每个实验,明确说明:
要求:
步骤 7:相关工作
按方法论组织,而非逐篇论文:
好:"一系列工作使用了 Floogledoodle 的假设 [引用],而我们使用 Doobersnoddle 的假设,因为..."
差:"Snap 等人引入了 X,而 Crackle 等人引入了 Y。"
慷慨引用——审稿人很可能撰写了相关论文。
步骤 8:局限性部分(必需)
所有主要会议都要求此部分。反直觉的是,诚实有助于:
步骤 9:论文清单
NeurIPS、ICML 和 ICLR 都要求论文清单。参见 references/checklists.md。
本节提炼了来自领先机器学习研究者的最重要写作原则。 这些不是可选的风格建议——它们是区分录用论文和被拒论文的关键。
"一篇论文是一个简短、严谨、基于证据的技术故事,其结论是读者所关心的。" —— Neel Nanda
本技能综合了在顶级会议上发表过大量论文的研究者的写作理念:
| 来源 | 关键贡献 | 链接 |
|---|---|---|
| Neel Nanda(Google DeepMind) | 叙述原则,是什么/为什么/所以呢框架 | 如何撰写机器学习论文 |
| Sebastian Farquhar(DeepMind) | 5 句话摘要公式 | 如何撰写机器学习论文 |
| Gopen & Swan | 读者期望的 7 条原则 | 科学写作的科学 |
| Zachary Lipton | 措辞选择,消除模糊表达 | 科学写作的启发式方法 |
| Jacob Steinhardt(加州大学伯克利分校) | 精确性,一致的术语 | 写作技巧 |
| Ethan Perez(Anthropic) | 微观层面的清晰度技巧 | 简单的论文写作技巧 |
| Andrej Karpathy | 单一贡献焦点 | 各种讲座 |
要深入了解其中任何一点,请参阅:
大致平均分配时间给以下各项:
为什么? 大多数审稿人在看到你的方法之前就已经形成了判断。读者接触你的论文的顺序是:标题 → 摘要 → 引言 → 图表 → 可能看其余部分。
这些原则基于读者实际处理文本的方式。违反它们会迫使读者将认知努力花在结构而非内容上。
| 原则 | 规则 | 示例 |
|---|---|---|
| 主语-动词邻近性 | 保持主语和动词接近 | ❌ "The model, which was trained on..., achieves" → ✅ "The model achieves... after training on..." |
| 强调位置 | 将重点放在句子末尾 | ❌ "Accuracy improves by 15% when using attention" → ✅ "When using attention, accuracy improves by 15% " |
| 主题位置 | 先放背景,后放新信息 | ✅ "Given these constraints, we propose..." |
| 旧信息在新信息之前 | 熟悉的信息 → 不熟悉的信息 | 向后链接,然后引入新的 |
| 一个单元,一个功能 | 每个段落阐述一个要点 | 拆分包含多个要点的段落 |
| 动词中的动作 | 使用动词,而非名词化 | ❌ "We performed an analysis" → ✅ "We analyzed" |
| 新信息之前的背景 | 在呈现之前设定舞台 | 在展示方程之前解释 |
完整的 7 条原则及详细示例: 参见 references/writing-guide.md
这些微小的改变累积起来会形成显著更清晰的文本:
完整的微观技巧及示例: 参见 references/writing-guide.md
理解审稿人的行为有助于优先分配你的精力:
| 论文部分 | 阅读的审稿人比例 | 启示 |
|---|---|---|
| 摘要 | 100% | 必须完美 |
| 引言 | 90%+(略读) | 前置贡献 |
| 图表 | 在方法之前检查 | 图 1 至关重要 |
| 方法 | 仅在感兴趣时 | 不要埋没重点 |
| 附录 | 很少 | 仅放补充细节 |
底线:如果你的摘要和引言没有吸引审稿人,他们可能永远不会阅读你精彩的方法部分。
| 会议 | 页数限制 | 最终版额外页数 | 关键要求 |
|---|---|---|---|
| NeurIPS 2025 | 9 页 | +0 | 强制性清单,录用后需提供通俗摘要 |
| ICML 2026 | 8 页 | +1 | 需要更广泛影响声明 |
| ICLR 2026 | 9 页 | +1 | 需要大型语言模型使用披露,互惠评审 |
| ACL 2025 | 8 页(长文) | 可变 | 局限性部分为强制性 |
| AAAI 2026 | 7 页 | +1 | 严格遵守样式文件 |
| COLM 2025 | 9 页 | +1 | 专注于语言模型 |
| 会议 | 页数限制 | 最终版额外页数 | 关键要求 | 模板 |
|---|---|---|---|---|
| OSDI 2026 | 12 页 | +2(14 页) | 研究 + 操作系统两个方向 | USENIX |
| NSDI 2027 | 12 页 | 可变 | 通过引言进行预筛选;3 个方向 | USENIX |
| ASPLOS 2027 | 12 页(ACM) | 可变 | 前 2 页快速评审;双周期 | ACM SIGPLAN |
| SOSP 2026 | 12 页 | 可变 | 可选工件评估;作者回复 | ACM SIGPLAN |
详细的系统会议信息:参见 references/systems-conferences.md 了解截止日期、方向描述、投稿规则和格式转换指南。
通用要求:
.sty;ACM 使用 acmart.clsLaTeX 模板: 参见 templates/ 目录获取所有会议模板。
始终先复制整个模板目录,然后在其中写作。
模板设置清单:
- [ ] 步骤 1:将整个模板目录复制到新项目
- [ ] 步骤 2:验证模板在未修改状态下能编译(在进行任何更改之前)
- [ ] 步骤 3:阅读模板的示例内容以理解结构
- [ ] 步骤 4:逐节替换示例内容
- [ ] 步骤 5:将模板注释/示例保留为参考,直到完成
- [ ] 步骤 6:仅在最后清理模板残留物
步骤 1:复制完整模板
# 使用完整模板创建你的论文目录
cp -r templates/neurips2025/ ~/papers/my-new-paper/
cd ~/papers/my-new-paper/
# 验证结构完整
ls -la
# 应该看到:main.tex, neurips.sty, Makefile 等。
⚠️ 重要:复制整个目录,而不仅仅是 main.tex。模板包括:
.sty)- 编译所需.bst)- 参考文献所需步骤 2:首先验证模板能编译
在进行任何更改之前,按原样编译模板:
# 使用 latexmk(推荐)
latexmk -pdf main.tex
# 或手动编译
pdflatex main.tex
bibtex main
pdflatex main.tex
pdflatex main.tex
如果未修改的模板无法编译,请先解决此问题。常见问题:
tlmgr install <package> 安装步骤 3:保留模板内容作为参考
不要立即删除所有示例内容。而是:
% 在写作时,将模板示例注释掉并保留
% 这向你展示了预期的格式
% 模板示例(保留作为参考):
% \begin{figure}[t]
% \centering
% \includegraphics[width=0.8\linewidth]{example-image}
% \caption{模板展示了图注样式}
% \end{figure}
% 你的实际图表:
\begin{figure}[t]
\centering
\includegraphics[width=0.8\linewidth]{your-figure.pdf}
\caption{你的图注,遵循相同的样式。}
\end{figure}
步骤 4:逐节替换内容
系统地处理论文:
替换顺序:
1. 标题和作者(投稿时匿名化)
2. 摘要
3. 引言
4. 方法
5. 实验
6. 相关工作
7. 结论
8. 参考文献(你的 .bib 文件)
9. 附录
对于每个部分:
步骤 5:使用模板宏
模板通常定义有用的宏。检查序言部分:
% 常用的模板宏:
\newcommand{\method}{YourMethodName} % 一致的方法命名
\newcommand{\eg}{e.g.,\xspace} % 正确的缩写
\newcommand{\ie}{i.e.,\xspace}
\newcommand{\etal}{\textit{et al.}\xspace}
步骤 6:仅在最后清理
仅在论文接近完成时移除模板残留物:
% 在提交之前 - 移除这些:
% - 注释掉的模板示例
% - 未使用的包
% - 模板的示例图表/表格
% - Lorem ipsum 或占位符文本
% 保留这些:
% - 所有样式文件(.sty)
% - 参考文献样式(.bst)
% - 模板所需的所有包
% - 你正在使用的任何自定义宏
| 陷阱 | 问题 | 解决方案 |
|---|---|---|
仅复制 main.tex | 缺少 .sty,无法编译 | 复制整个目录 |
修改 .sty 文件 | 破坏会议格式 | 切勿编辑样式文件 |
| 添加随机包 | 冲突,破坏模板 | 仅在必要时添加 |
| 过早删除模板内容 | 失去格式参考 | 保留为注释直到完成 |
| 不频繁编译 | 错误累积 | 每节之后编译 |
| 会议 | 主文件 | 关键样式文件 | 备注 |
|---|---|---|---|
| NeurIPS 2025 | main.tex | neurips.sty | 有 Makefile |
| ICML 2026 | example_paper.tex | icml2026.sty | 包含算法包 |
| ICLR 2026 | iclr2026_conference.tex | iclr2026_conference.sty | 有 math_commands.tex |
| ACL | acl_latex.tex | acl.sty | 严格的格式 |
| AAAI 2026 | aaai2026-unified-template.tex | aaai2026.sty | 非常严格的合规性 |
| COLM 2025 | colm2025_conference.tex | colm2025_conference.sty | 类似于 ICLR |
| 会议 | 主文件 | 关键样式文件 | 备注 |
|---|---|---|---|
| OSDI 2026 | main.tex | usenix-2020-09.sty | USENIX 格式,12 页,双栏,10pt |
| NSDI 2027 | main.tex | usenix-2020-09.sty | 与 OSDI 相同的 USENIX 格式 |
| ASPLOS 2027 | main.tex | acmart.cls (sigplan) | ACM SIGPLAN 格式,12 页 |
| SOSP 2026 | main.tex | acmart.cls (sigplan) | ACM SIGPLAN,与 ASPLOS 相同 |
当一篇论文被某个会议拒绝或撤回并重新投稿到另一个会议时,需要进行格式转换。这是机器学习研究中的常见工作流程。
格式转换清单:
- [ ] 步骤 1:识别源模板和目标模板的差异
- [ ] 步骤 2:使用目标模板创建新项目
- [ ] 步骤 3:复制内容部分(非序言)
- [ ] 步骤 4:调整页数限制和内容
- [ ] 步骤 5:更新会议特定要求
- [ ] 步骤 6:验证编译和格式
步骤 1:关键模板差异
| 从 → 到 | 页数变化 | 关键调整 |
|---|---|---|
| NeurIPS → ICML | 9 → 8 页 | 删减 1 页,添加更广泛影响声明(如果缺失) |
| ICML → ICLR | 8 → 9 页 | 可以扩展实验,添加大型语言模型使用披露 |
| NeurIPS → ACL | 9 → 8 页 | 为自然语言处理惯例重构,添加局限性 |
| ICLR → AAAI | 9 → 7 页 | 需要大幅删减,严格遵守样式 |
| 任何 → COLM | 可变 → 9 | 为语言模型重点重新构建 |
| 从 → 到 | 关键调整 |
|---|---|
| ML → OSDI/NSDI | USENIX 模板;添加系统设计 + 实现部分 |
| ML → ASPLOS/SOSP | ACM SIGPLAN 模板;为系统贡献重新构建 |
| OSDI ↔ SOSP | USENIX ↔ ACM SIGPLAN;相似的页数限制,不同的样式文件 |
完整的转换指南:参见 references/systems-conferences.md 获取详细指导。
步骤 2:内容迁移(非模板合并)
切勿在模板之间复制 LaTeX 序言。 而是:
# 1. 使用目标模板重新开始
cp -r templates/icml2026/ new_submission/
# 2. 仅从旧论文复制内容部分
# - 摘要文本
# - 章节内容(在 \section{} 命令之间)
# - 图表和表格
# - 参考文献条目
# 3. 粘贴到目标模板结构中
步骤 3:调整页数限制
当需要删减页数时(例如,NeurIPS 9 → AAAI 7):
当需要扩展页数时(例如,ICML 8 → ICLR 9):
步骤 4:会议特定调整
| 目标会议 | 必需添加项 |
|---|---|
| ICML | 更广泛影响声明(在结论之后) |
| ICLR | 大型语言模型使用披露,互惠评审协议 |
| ACL/EMNLP | 局限性部分(强制性),伦理声明 |
| AAAI | 严格遵守样式文件(无修改) |
| NeurIPS | 论文清单(附录),录用后需提供通俗摘要 |
| 目标会议 | 关键必需添加项 |
|---|---|
| OSDI 2026 | 选择研究或操作系统方向;匿名化系统名称 |
| NSDI 2027 | 强有力的引言(预筛选);选择方向 |
| ASPLOS 2027 | 前 2 页自包含(快速评审);重新投稿说明 |
| SOSP 2026 | ACM SIGPLAN 格式;可选工件评估 |
完整要求:参见 references/systems-conferences.md 了解详情。
步骤 5:更新参考文献
% 移除可能暴露身份的自我引用(用于盲审)
% 更新任何"在审"引用为已发表版本
% 添加自上次投稿以来发表的新相关工作
步骤 6:处理之前的审稿意见
在被拒后重新投稿时:
常见的转换陷阱:
\usepackage 命令(导致冲突)\bibliography{} 路径⚠️ 关键:人工智能生成的引文错误率约为 40%。切勿凭记忆编写 BibTeX。
IF 你无法通过程序化方式获取引文:
→ 将其标记为 [CITATION NEEDED] 或 [PLACEHOLDER - VERIFY]
→ 明确告知科学家
→ 切勿编造听起来合理的参考文献
引文验证(每条引文都必须执行):
- [ ] 步骤 1:使用 Exa MCP 或 Semantic Scholar API 搜索
- [ ] 步骤 2:在 2+ 个来源中验证论文存在(Semantic Scholar + arXiv/CrossRef)
- [ ] 步骤 3:通过 DOI 获取 BibTeX(程序化,而非凭记忆)
- [ ] 步骤 4:验证你引用的声明确实出现在论文中
- [ ] 步骤 5:将验证过的 BibTeX 添加到参考文献
- [ ] 步骤 6:如果任何步骤失败 → 标记为占位符,通知科学家
步骤 0:使用 Exa MCP 进行初始搜索(推荐)
如果安装了 Exa MCP,使用它查找相关论文:
搜索:"RLHF language model alignment 2023"
搜索:"sparse autoencoders interpretability"
搜索:"attention mechanism transformers Vaswani"
然后使用 Semantic Scholar 验证每个结果,并通过 DOI 获取 BibTeX。
步骤 1:搜索 Semantic Scholar
from semanticscholar import SemanticScholar
sch = SemanticScholar()
results = sch.search_paper("attention mechanism transformers", limit=5)
for paper in results:
print(f"{paper.title} - {paper.paperId}")
print(f" DOI: {paper.externalIds.get('DOI', 'N/A')}")
步骤 2:验证存在性
确认论文至少出现在两个来源中(Semantic Scholar + CrossRef/arXiv)。
步骤 3:通过 DOI 获取 BibTeX
import requests
def doi_to_bibtex(doi: str) -> str:
"""通过 CrossRef 从 DOI 获取验证过的 BibTeX。"""
response = requests.get(
f"https://doi.org/{doi}",
headers={"Accept": "application/x-bibtex"}
)
response.
Expert-level guidance for writing publication-ready papers targeting NeurIPS, ICML, ICLR, ACL, AAAI, COLM (ML/AI venues) and OSDI, NSDI, ASPLOS, SOSP (Systems venues). This skill combines writing philosophy from top researchers (Nanda, Farquhar, Karpathy, Lipton, Steinhardt) with practical tools: LaTeX templates, citation verification APIs, and conference checklists.
Paper writing is collaborative, but Claude should be proactive in delivering drafts.
The typical workflow starts with a research repository containing code, results, and experimental artifacts. Claude's role is to:
Key Principle : Be proactive. If the repo and results are clear, deliver a full draft. Don't block waiting for feedback on every section—scientists are busy. Produce something concrete they can react to, then iterate based on their response.
This is the most important rule in academic writing with AI assistance.
AI-generated citations have a ~40% error rate. Hallucinated references—papers that don't exist, wrong authors, incorrect years, fabricated DOIs—are a serious form of academic misconduct that can result in desk rejection or retraction.
NEVER generate BibTeX entries from memory. ALWAYS fetch programmatically.
| Action | ✅ Correct | ❌ Wrong |
|---|---|---|
| Adding a citation | Search API → verify → fetch BibTeX | Write BibTeX from memory |
| Uncertain about a paper | Mark as [CITATION NEEDED] | Guess the reference |
| Can't find exact paper | Note: "placeholder - verify" | Invent similar-sounding paper |
If you cannot programmatically verify a citation, you MUST:
% EXPLICIT PLACEHOLDER - requires human verification
\cite{PLACEHOLDER_author2024_verify_this} % TODO: Verify this citation exists
Always tell the scientist : "I've marked [X] citations as placeholders that need verification. I could not confirm these papers exist."
For the best paper search experience, install Exa MCP which provides real-time academic search:
Claude Code:
claude mcp add exa -- npx -y mcp-remote "https://mcp.exa.ai/mcp"
Cursor / VS Code (add to MCP settings):
{
"mcpServers": {
"exa": {
"type": "http",
"url": "https://mcp.exa.ai/mcp"
}
}
}
Exa MCP enables searches like:
Then verify results with Semantic Scholar API and fetch BibTeX via DOI.
When beginning paper writing, start by understanding the project:
Project Understanding:
- [ ] Step 1: Explore the repository structure
- [ ] Step 2: Read README, existing docs, and key results
- [ ] Step 3: Identify the main contribution with the scientist
- [ ] Step 4: Find papers already cited in the codebase
- [ ] Step 5: Search for additional relevant literature
- [ ] Step 6: Outline the paper structure together
- [ ] Step 7: Draft sections iteratively with feedback
Step 1: Explore the Repository
# Understand project structure
ls -la
find . -name "*.py" | head -20
find . -name "*.md" -o -name "*.txt" | xargs grep -l -i "result\|conclusion\|finding"
Look for:
README.md - Project overview and claimsresults/, outputs/, experiments/ - Key findingsconfigs/ - Experimental settings.bib files or citation referencesStep 2: Identify Existing Citations
Check for papers already referenced in the codebase:
# Find existing citations
grep -r "arxiv\|doi\|cite" --include="*.md" --include="*.bib" --include="*.py"
find . -name "*.bib"
These are high-signal starting points for Related Work—the scientist has already deemed them relevant.
Step 3: Clarify the Contribution
Before writing, explicitly confirm with the scientist:
"Based on my understanding of the repo, the main contribution appears to be [X]. The key results show [Y]. Is this the framing you want for the paper, or should we emphasize different aspects?"
Never assume the narrative—always verify with the human.
Step 4: Search for Additional Literature
Use web search to find relevant papers:
Search queries to try:
- "[main technique] + [application domain]"
- "[baseline method] comparison"
- "[problem name] state-of-the-art"
- Author names from existing citations
Then verify and retrieve BibTeX using the citation workflow below.
Step 5: Deliver a First Draft
Be proactive—deliver a complete draft rather than asking permission for each section.
If the repo provides clear results and the contribution is apparent:
If genuinely uncertain about framing or major claims:
Questions to include with the draft (not before):
Use this skill when:
Always remember : First drafts are starting points for discussion, not final outputs.
Default: Be proactive. Deliver drafts, then iterate.
| Confidence Level | Action |
|---|---|
| High (clear repo, obvious contribution) | Write full draft, deliver, iterate on feedback |
| Medium (some ambiguity) | Write draft with flagged uncertainties, continue |
| Low (major unknowns) | Ask 1-2 targeted questions, then draft |
Draft first, ask with the draft (not before):
| Section | Draft Autonomously | Flag With Draft |
|---|---|---|
| Abstract | Yes | "Framed contribution as X—adjust if needed" |
| Introduction | Yes | "Emphasized problem Y—correct if wrong" |
| Methods | Yes | "Included details A, B, C—add missing pieces" |
| Experiments | Yes | "Highlighted results 1, 2, 3—reorder if needed" |
| Related Work | Yes | "Cited papers X, Y, Z—add any I missed" |
Only block for input when:
Don't block for:
The single most critical insight : Your paper is not a collection of experiments—it's a story with one clear contribution supported by evidence.
Every successful ML paper centers on what Neel Nanda calls "the narrative": a short, rigorous, evidence-based technical story with a takeaway readers care about.
Three Pillars (must be crystal clear by end of introduction):
| Pillar | Description | Example |
|---|---|---|
| The What | 1-3 specific novel claims within cohesive theme | "We prove that X achieves Y under condition Z" |
| The Why | Rigorous empirical evidence supporting claims | Strong baselines, experiments distinguishing hypotheses |
| The So What | Why readers should care | Connection to recognized community problems |
If you cannot state your contribution in one sentence, you don't yet have a paper.
Copy this checklist and track progress. Each step involves drafting → feedback → revision:
Paper Writing Progress:
- [ ] Step 1: Define the one-sentence contribution (with scientist)
- [ ] Step 2: Draft Figure 1 → get feedback → revise
- [ ] Step 3: Draft abstract → get feedback → revise
- [ ] Step 4: Draft introduction → get feedback → revise
- [ ] Step 5: Draft methods → get feedback → revise
- [ ] Step 6: Draft experiments → get feedback → revise
- [ ] Step 7: Draft related work → get feedback → revise
- [ ] Step 8: Draft limitations → get feedback → revise
- [ ] Step 9: Complete paper checklist (required)
- [ ] Step 10: Final review cycle and submission
Step 1: Define the One-Sentence Contribution
This step requires explicit confirmation from the scientist.
Before writing anything, articulate and verify:
"I propose framing the contribution as: '[one sentence]'. Does this capture what you see as the main takeaway? Should we adjust the emphasis?"
Step 2: Draft Figure 1
Figure 1 deserves special attention—many readers skip directly to it.
Step 3: Write Abstract (5-Sentence Formula)
From Sebastian Farquhar (DeepMind):
1. What you achieved: "We introduce...", "We prove...", "We demonstrate..."
2. Why this is hard and important
3. How you do it (with specialist keywords for discoverability)
4. What evidence you have
5. Your most remarkable number/result
Delete generic openings like "Large language models have achieved remarkable success..."
Step 4: Write Introduction (1-1.5 pages max)
Must include:
Step 5: Methods Section
Enable reimplementation:
Step 6: Experiments Section
For each experiment, explicitly state:
Requirements:
Step 7: Related Work
Organize methodologically, not paper-by-paper:
Good: "One line of work uses Floogledoodle's assumption [refs] whereas we use Doobersnoddle's assumption because..."
Bad: "Snap et al. introduced X while Crackle et al. introduced Y."
Cite generously—reviewers likely authored relevant papers.
Step 8: Limitations Section (REQUIRED)
All major conferences require this. Counter-intuitively, honesty helps:
Step 9: Paper Checklist
NeurIPS, ICML, and ICLR all require paper checklists. See references/checklists.md.
This section distills the most important writing principles from leading ML researchers. These aren't optional style suggestions—they're what separates accepted papers from rejected ones.
"A paper is a short, rigorous, evidence-based technical story with a takeaway readers care about." — Neel Nanda
This skill synthesizes writing philosophy from researchers who have published extensively at top venues:
| Source | Key Contribution | Link |
|---|---|---|
| Neel Nanda (Google DeepMind) | The Narrative Principle, What/Why/So What framework | How to Write ML Papers |
| Sebastian Farquhar (DeepMind) | 5-sentence abstract formula | How to Write ML Papers |
| Gopen & Swan | 7 principles of reader expectations | Science of Scientific Writing |
| Zachary Lipton | Word choice, eliminating hedging | Heuristics for Scientific Writing |
| Jacob Steinhardt (UC Berkeley) | Precision, consistent terminology |
For deeper dives into any of these, see:
Spend approximately equal time on each of:
Why? Most reviewers form judgments before reaching your methods. Readers encounter your paper as: title → abstract → introduction → figures → maybe the rest.
These principles are based on how readers actually process prose. Violating them forces readers to spend cognitive effort on structure rather than content.
| Principle | Rule | Example |
|---|---|---|
| Subject-verb proximity | Keep subject and verb close | ❌ "The model, which was trained on..., achieves" → ✅ "The model achieves... after training on..." |
| Stress position | Place emphasis at sentence ends | ❌ "Accuracy improves by 15% when using attention" → ✅ "When using attention, accuracy improves by 15% " |
| Topic position | Put context first, new info after | ✅ "Given these constraints, we propose..." |
| Old before new | Familiar info → unfamiliar info | Link backward, then introduce new |
| One unit, one function | Each paragraph makes one point | Split multi-point paragraphs |
| Action in verb | Use verbs, not nominalizations | ❌ "We performed an analysis" → ✅ "We analyzed" |
| Context before new |
Full 7 principles with detailed examples: See references/writing-guide.md
These small changes accumulate into significantly clearer prose:
Full micro-tips with examples: See references/writing-guide.md
Understanding reviewer behavior helps prioritize your effort:
| Paper Section | % Reviewers Who Read | Implication |
|---|---|---|
| Abstract | 100% | Must be perfect |
| Introduction | 90%+ (skimmed) | Front-load contribution |
| Figures | Examined before methods | Figure 1 is critical |
| Methods | Only if interested | Don't bury the lede |
| Appendix | Rarely | Put only supplementary details |
Bottom line : If your abstract and intro don't hook reviewers, they may never read your brilliant methods section.
| Conference | Page Limit | Extra for Camera-Ready | Key Requirement |
|---|---|---|---|
| NeurIPS 2025 | 9 pages | +0 | Mandatory checklist, lay summary for accepted |
| ICML 2026 | 8 pages | +1 | Broader Impact Statement required |
| ICLR 2026 | 9 pages | +1 | LLM disclosure required, reciprocal reviewing |
| ACL 2025 | 8 pages (long) | varies | Limitations section mandatory |
| AAAI 2026 | 7 pages | +1 | Strict style file adherence |
| COLM 2025 | 9 pages | +1 |
| Conference | Page Limit | Extra for Camera-Ready | Key Requirement | Template |
|---|---|---|---|---|
| OSDI 2026 | 12 pages | +2 (14 pages) | Research + Operational Systems tracks | USENIX |
| NSDI 2027 | 12 pages | varies | Prescreening via Introduction; 3 tracks | USENIX |
| ASPLOS 2027 | 12 pages (ACM) | varies | Rapid review on first 2 pages; dual cycles | ACM SIGPLAN |
| SOSP 2026 | 12 pages | varies | Optional artifact evaluation; author response | ACM SIGPLAN |
Detailed Systems conference info : See references/systems-conferences.md for deadlines, track descriptions, submission rules, and format conversion guides.
Universal Requirements:
.sty; ACM uses acmart.clsLaTeX Templates: See templates/ directory for all conference templates.
Always copy the entire template directory first, then write within it.
Template Setup Checklist:
- [ ] Step 1: Copy entire template directory to new project
- [ ] Step 2: Verify template compiles as-is (before any changes)
- [ ] Step 3: Read the template's example content to understand structure
- [ ] Step 4: Replace example content section by section
- [ ] Step 5: Keep template comments/examples as reference until done
- [ ] Step 6: Clean up template artifacts only at the end
Step 1: Copy the Full Template
# Create your paper directory with the complete template
cp -r templates/neurips2025/ ~/papers/my-new-paper/
cd ~/papers/my-new-paper/
# Verify structure is complete
ls -la
# Should see: main.tex, neurips.sty, Makefile, etc.
⚠️ IMPORTANT : Copy the ENTIRE directory, not just main.tex. Templates include:
.sty) - required for compilation.bst) - required for referencesStep 2: Verify Template Compiles First
Before making ANY changes, compile the template as-is:
# Using latexmk (recommended)
latexmk -pdf main.tex
# Or manual compilation
pdflatex main.tex
bibtex main
pdflatex main.tex
pdflatex main.tex
If the unmodified template doesn't compile, fix that first. Common issues:
tlmgr install <package>Step 3: Keep Template Content as Reference
Don't immediately delete all example content. Instead:
% KEEP template examples commented out as you write
% This shows you the expected format
% Template example (keep for reference):
% \begin{figure}[t]
% \centering
% \includegraphics[width=0.8\linewidth]{example-image}
% \caption{Template shows caption style}
% \end{figure}
% Your actual figure:
\begin{figure}[t]
\centering
\includegraphics[width=0.8\linewidth]{your-figure.pdf}
\caption{Your caption following the same style.}
\end{figure}
Step 4: Replace Content Section by Section
Work through the paper systematically:
Replacement Order:
1. Title and authors (anonymize for submission)
2. Abstract
3. Introduction
4. Methods
5. Experiments
6. Related Work
7. Conclusion
8. References (your .bib file)
9. Appendix
For each section:
Step 5: Use Template Macros
Templates often define useful macros. Check the preamble for:
% Common template macros to use:
\newcommand{\method}{YourMethodName} % Consistent method naming
\newcommand{\eg}{e.g.,\xspace} % Proper abbreviations
\newcommand{\ie}{i.e.,\xspace}
\newcommand{\etal}{\textit{et al.}\xspace}
Step 6: Clean Up Only at the End
Only remove template artifacts when paper is nearly complete:
% BEFORE SUBMISSION - remove these:
% - Commented-out template examples
% - Unused packages
% - Template's example figures/tables
% - Lorem ipsum or placeholder text
% KEEP these:
% - All style files (.sty)
% - Bibliography style (.bst)
% - Required packages from template
% - Any custom macros you're using
| Pitfall | Problem | Solution |
|---|---|---|
Copying only main.tex | Missing .sty, won't compile | Copy entire directory |
Modifying .sty files | Breaks conference formatting | Never edit style files |
| Adding random packages | Conflicts, breaks template | Only add if necessary |
| Deleting template content too early | Lose formatting reference | Keep as comments until done |
| Not compiling frequently | Errors accumulate | Compile after each section |
| Conference | Main File | Key Style File | Notes |
|---|---|---|---|
| NeurIPS 2025 | main.tex | neurips.sty | Has Makefile |
| ICML 2026 | example_paper.tex | icml2026.sty | Includes algorithm packages |
| ICLR 2026 | iclr2026_conference.tex | iclr2026_conference.sty |
| Conference | Main File | Key Style File | Notes |
|---|---|---|---|
| OSDI 2026 | main.tex | usenix-2020-09.sty | USENIX format, 12pp, two-column, 10pt |
| NSDI 2027 | main.tex | usenix-2020-09.sty | Same USENIX format as OSDI |
| ASPLOS 2027 | main.tex | acmart.cls () |
When a paper is rejected or withdrawn from one venue and resubmitted to another, format conversion is required. This is a common workflow in ML research.
Format Conversion Checklist:
- [ ] Step 1: Identify source and target template differences
- [ ] Step 2: Create new project with target template
- [ ] Step 3: Copy content sections (not preamble)
- [ ] Step 4: Adjust page limits and content
- [ ] Step 5: Update conference-specific requirements
- [ ] Step 6: Verify compilation and formatting
Step 1: Key Template Differences
| From → To | Page Change | Key Adjustments |
|---|---|---|
| NeurIPS → ICML | 9 → 8 pages | Cut 1 page, add Broader Impact if missing |
| ICML → ICLR | 8 → 9 pages | Can expand experiments, add LLM disclosure |
| NeurIPS → ACL | 9 → 8 pages | Restructure for NLP conventions, add Limitations |
| ICLR → AAAI | 9 → 7 pages | Significant cuts needed, strict style adherence |
| Any → COLM | varies → 9 | Reframe for language model focus |
| From → To | Key Adjustments |
|---|---|
| ML → OSDI/NSDI | USENIX template; add system design + implementation sections |
| ML → ASPLOS/SOSP | ACM SIGPLAN template; reframe for systems contribution |
| OSDI ↔ SOSP | USENIX ↔ ACM SIGPLAN; similar page limits, different style files |
Full conversion guide : See references/systems-conferences.md for detailed guidance.
Step 2: Content Migration (NOT Template Merge)
Never copy LaTeX preambles between templates. Instead:
# 1. Start fresh with target template
cp -r templates/icml2026/ new_submission/
# 2. Copy ONLY content sections from old paper
# - Abstract text
# - Section content (between \section{} commands)
# - Figures and tables
# - Bibliography entries
# 3. Paste into target template structure
Step 3: Adjusting for Page Limits
When cutting pages (e.g., NeurIPS 9 → AAAI 7):
When expanding (e.g., ICML 8 → ICLR 9):
Step 4: Conference-Specific Adjustments
| Target Venue | Required Additions |
|---|---|
| ICML | Broader Impact Statement (after conclusion) |
| ICLR | LLM usage disclosure, reciprocal reviewing agreement |
| ACL/EMNLP | Limitations section (mandatory), Ethics Statement |
| AAAI | Strict adherence to style file (no modifications) |
| NeurIPS | Paper checklist (appendix), lay summary if accepted |
| Target Venue | Key Required Additions |
|---|---|
| OSDI 2026 | Choose Research or Operational Systems track; anonymize system name |
| NSDI 2027 | Strong Introduction (prescreening); choose track |
| ASPLOS 2027 | Self-contained first 2 pages (rapid review); resubmission note |
| SOSP 2026 | ACM SIGPLAN format; optional Artifact Evaluation |
Full requirements : See references/systems-conferences.md for details.
Step 5: Update References
% Remove self-citations that reveal identity (for blind review)
% Update any "under review" citations to published versions
% Add new relevant work published since last submission
Step 6: Addressing Previous Reviews
When resubmitting after rejection:
Common Conversion Pitfalls:
\usepackage commands (causes conflicts)\bibliography{} path⚠️ CRITICAL : AI-generated citations have ~40% error rate. Never write BibTeX from memory.
IF you cannot programmatically fetch a citation:
→ Mark it as [CITATION NEEDED] or [PLACEHOLDER - VERIFY]
→ Tell the scientist explicitly
→ NEVER invent a plausible-sounding reference
Citation Verification (MANDATORY for every citation):
- [ ] Step 1: Search using Exa MCP or Semantic Scholar API
- [ ] Step 2: Verify paper exists in 2+ sources (Semantic Scholar + arXiv/CrossRef)
- [ ] Step 3: Retrieve BibTeX via DOI (programmatically, not from memory)
- [ ] Step 4: Verify the claim you're citing actually appears in the paper
- [ ] Step 5: Add verified BibTeX to bibliography
- [ ] Step 6: If ANY step fails → mark as placeholder, inform scientist
Step 0: Use Exa MCP for Initial Search (Recommended)
If Exa MCP is installed, use it to find relevant papers:
Search: "RLHF language model alignment 2023"
Search: "sparse autoencoders interpretability"
Search: "attention mechanism transformers Vaswani"
Then verify each result with Semantic Scholar and fetch BibTeX via DOI.
Step 1: Search Semantic Scholar
from semanticscholar import SemanticScholar
sch = SemanticScholar()
results = sch.search_paper("attention mechanism transformers", limit=5)
for paper in results:
print(f"{paper.title} - {paper.paperId}")
print(f" DOI: {paper.externalIds.get('DOI', 'N/A')}")
Step 2: Verify Existence
Confirm paper appears in at least two sources (Semantic Scholar + CrossRef/arXiv).
Step 3: Retrieve BibTeX via DOI
import requests
def doi_to_bibtex(doi: str) -> str:
"""Get verified BibTeX from DOI via CrossRef."""
response = requests.get(
f"https://doi.org/{doi}",
headers={"Accept": "application/x-bibtex"}
)
response.raise_for_status()
return response.text
# Example
bibtex = doi_to_bibtex("10.48550/arXiv.1706.03762")
print(bibtex)
Step 4: Verify Claims
Before citing for a specific claim, access the paper and confirm the attributed claim actually appears.
Step 5: Handle Failures Explicitly
If you cannot verify a citation at ANY step:
% Option 1: Explicit placeholder
\cite{PLACEHOLDER_smith2023_verify} % TODO: Could not verify - scientist must confirm
% Option 2: Note in text
... as shown in prior work [CITATION NEEDED - could not verify Smith et al. 2023].
Always inform the scientist:
"I could not verify the following citations and have marked them as placeholders:
- Smith et al. 2023 on reward hacking - could not find in Semantic Scholar
- Jones 2022 on scaling laws - found similar paper but different authors Please verify these before submission."
| Situation | Action |
|---|---|
| Found paper, got DOI, fetched BibTeX | ✅ Use the citation |
| Found paper, no DOI | ✅ Use arXiv BibTeX or manual entry from paper |
| Paper exists but can't fetch BibTeX | ⚠️ Mark placeholder, inform scientist |
| Uncertain if paper exists | ❌ Mark [CITATION NEEDED], inform scientist |
| "I think there's a paper about X" | ❌ NEVER cite - search first or mark placeholder |
🚨 NEVER generate BibTeX from memory—always fetch programmatically. 🚨
See references/citation-workflow.md for complete API documentation.
Issue: Abstract too generic
Delete first sentence if it could be prepended to any ML paper. Start with your specific contribution.
Issue: Introduction exceeds 1.5 pages
Split background into Related Work. Front-load contribution bullets. Methods should start by page 2-3.
Issue: Experiments lack explicit claims
Add sentence before each experiment: "This experiment tests whether [specific claim]..."
Issue: Reviewers find paper hard to follow
Issue: Missing statistical significance
Always include:
Reviewers assess papers on four dimensions:
| Criterion | What Reviewers Look For |
|---|---|
| Quality | Technical soundness, well-supported claims |
| Clarity | Clear writing, reproducible by experts |
| Significance | Community impact, advances understanding |
| Originality | New insights (doesn't require new method) |
Scoring (NeurIPS 6-point scale):
See references/reviewer-guidelines.md for detailed reviewer instructions.
Use booktabs LaTeX package for professional tables:
\usepackage{booktabs}
\begin{tabular}{lcc}
\toprule
Method & Accuracy ↑ & Latency ↓ \\
\midrule
Baseline & 85.2 & 45ms \\
\textbf{Ours} & \textbf{92.1} & 38ms \\
\bottomrule
\end{tabular}
Rules:
| Document | Contents |
|---|---|
| writing-guide.md | Gopen & Swan 7 principles, Ethan Perez micro-tips, word choice |
| citation-workflow.md | Citation APIs, Python code, BibTeX management |
| checklists.md | NeurIPS 16-item, ICML, ICLR, ACL requirements |
| reviewer-guidelines.md | Evaluation criteria, scoring, rebuttals |
| systems-conferences.md | OSDI/NSDI/ASPLOS/SOSP deadlines, tracks, rules |
| sources.md | Complete bibliography of all sources |
Templates in templates/ directory:
Compiling to PDF:
latexmk -pdf main.tex or pdflatex + bibtex workflowSee templates/README.md for detailed setup instructions.
Writing Philosophy:
APIs: Semantic Scholar | CrossRef | arXiv
ML/AI Venues: NeurIPS | ICML | ICLR | ACL
Systems Venues: OSDI 2026 | NSDI 2027 | ASPLOS 2027 | SOSP 2026
Weekly Installs
203
Repository
GitHub Stars
5.5K
First Seen
Jan 29, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
codex181
claude-code164
opencode118
gemini-cli113
github-copilot109
cursor104
超能力技能使用指南:AI助手技能调用优先级与工作流程详解
45,100 周安装
企业级智能体运维指南:云端AI系统生命周期管理、可观测性与安全控制
1,100 周安装
CTF密码学挑战速查指南 | 经典/现代密码攻击、RSA/ECC/流密码实战技巧
1,100 周安装
Replicas Agent 云工作空间编码代理指南:预览URL创建与跨服务配置
1,300 周安装
Gemini Live API 开发指南:实时语音视频交互、WebSockets集成与SDK使用
1,300 周安装
dbs-hook:短视频开头优化AI工具,诊断开头问题并生成优化方案,提升视频吸引力
1,300 周安装
Vue.js开发指南:最佳实践、组件设计与响应式编程核心原则
1,500 周安装
| Ethan Perez (Anthropic) | Micro-level clarity tips | Easy Paper Writing Tips |
| Andrej Karpathy | Single contribution focus | Various lectures |
| Set stage before presenting |
| Explain before showing equation |
| Focus on language models |
| Has math_commands.tex |
| ACL | acl_latex.tex | acl.sty | Strict formatting |
| AAAI 2026 | aaai2026-unified-template.tex | aaai2026.sty | Very strict compliance |
| COLM 2025 | colm2025_conference.tex | colm2025_conference.sty | Similar to ICLR |
sigplan| ACM SIGPLAN format, 12pp |
| SOSP 2026 | main.tex | acmart.cls (sigplan) | ACM SIGPLAN, same as ASPLOS |