ML Paper Writing for Top AI Conferences
Expert-level guidance for writing publication-ready papers targeting NeurIPS, ICML, ICLR, ACL, AAAI, COLM. This skill combines writing philosophy from top researchers (Nanda, Farquhar, Karpathy, Lipton, Steinhardt) with practical tools: LaTeX templates, citation verification APIs, and conference checklists.
For systems venues (OSDI, NSDI, ASPLOS, SOSP), use the systems-paper-writing skill, which provides paragraph-level structural blueprints, writing patterns, venue-specific checklists, and LaTeX templates for systems conferences.
Core Philosophy: Collaborative Writing
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:
- Understand the project by exploring the repo, results, and existing documentation
- Deliver a complete first draft when confident about the contribution
- Search literature using web search and APIs to find relevant citations
- Refine through feedback cycles when the scientist provides input
- Ask for clarification only when genuinely uncertain about key decisions
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.
⚠️ CRITICAL: Never Hallucinate Citations
This is the most important rule in academic writing with AI assistance.
The Problem
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.
The Rule
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 | Guess the reference |
| Can't find exact paper | Note: "placeholder - verify" | Invent similar-sounding paper |
When You Can't Verify a Citation
If you cannot programmatically verify a citation, you MUST:
latex
% 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."
Recommended: Install Exa MCP for Paper Search
For the best paper search experience, install Exa MCP which provides real-time academic search:
Claude Code:
bash
claude mcp add exa -- npx -y mcp-remote "https://mcp.exa.ai/mcp"
Cursor / VS Code (add to MCP settings):
json
{
"mcpServers": {
"exa": {
"type": "http",
"url": "https://mcp.exa.ai/mcp"
}
}
}
Exa MCP enables searches like:
- "Find papers on RLHF for language models published after 2023"
- "Search for transformer architecture papers by Vaswani"
- "Get recent work on sparse autoencoders for interpretability"
Then verify results with Semantic Scholar API and fetch BibTeX via DOI.
Workflow 0: Starting from a Research Repository
When the user points you at a code repository (results, configs, logs) instead of a draft, follow the repository-exploration workflow in references/from-research-repo.md to extract the contribution, results and existing citations before writing.
When to Use This Skill
Use this skill when:
- Starting from a research repo to write a paper
- Drafting or revising specific sections
- Finding and verifying citations for related work
- Formatting for conference submission
- Resubmitting to a different venue (format conversion)
- Iterating on drafts with scientist feedback
Always remember: First drafts are starting points for discussion, not final outputs.
Balancing Proactivity and Collaboration
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:
- Target venue is unclear (affects page limits, framing)
- Multiple contradictory framings seem equally valid
- Results seem incomplete or inconsistent
- Explicit request to review before continuing
Don't block for:
- Word choice decisions
- Section ordering
- Which specific results to show (make a choice, flag it)
- Citation completeness (draft with what you find, note gaps)
The Narrative Principle
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.
Paper Structure Workflow
Workflow 1: Writing a Complete Paper (Iterative)
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:
- What is the single thing your paper contributes?
- What was not obvious or present before your work?
"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.
- Convey core idea, approach, or most compelling result
- Use vector graphics (PDF/EPS for plots)
- Write captions that stand alone without main text
- Ensure readability in black-and-white (8% of men have color vision deficiency)
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:
- 2-4 bullet contribution list (max 1-2 lines each in two-column format)
- Clear problem statement
- Brief approach overview
- Methods should start by page 2-3 maximum
Step 5: Methods Section
Enable reimplementation:
- Conceptual outline or pseudocode
- All hyperparameters listed
- Architectural details sufficient for reproduction
- Present final design decisions; ablations go in experiments
Step 6: Experiments Section
For each experiment, explicitly state:
- What claim it supports
- How it connects to main contribution
- Experimental setting (details in appendix)
- What to observe: "the blue line shows X, which demonstrates Y"
Requirements:
- Error bars with methodology (standard deviation vs standard error)
- Hyperparameter search ranges
- Compute infrastructure (GPU type, total hours)
- Seed-setting methods
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:
- Reviewers are instructed not to penalize honest limitation acknowledgment
- Pre-empt criticisms by identifying weaknesses first
- Explain why limitations don't undermine core claims
Step 9: Paper Checklist
NeurIPS, ICML, and ICLR all require paper checklists. See references/checklists.md.
Writing Philosophy for Top ML Conferences
Sentence-level clarity, word choice, time allocation and what reviewers actually read are covered in references/writing-philosophy.md. Read it before polishing prose.
Conference Requirements Quick Reference
ML/AI Conferences
| 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 | Focus on language models |
Systems Conferences (OSDI, NSDI, ASPLOS, SOSP): See the systems-paper-writing skill for page limits, templates, deadlines, and submission rules.
Universal Requirements:
- Double-blind review (anonymize submissions)
- References don't count toward page limit
- Appendices unlimited but reviewers not required to read
- LaTeX required for all venues
LaTeX Templates: See templates/ directory for all conference templates.
Using LaTeX Templates and Converting Between Venues
Starting a paper from a bundled template (Workflow 4), compiling, template pitfalls, and converting between venues after a rejection (Workflow 3) are covered in
references/latex-templates-and-conversion.md. Always copy the complete template directory from
rather than writing LaTeX preambles from memory.
Citation Workflow (Hallucination Prevention)
⚠️ CRITICAL: AI-generated citations have ~40% error rate. Never write BibTeX from memory.
The Golden Rule
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
Workflow 2: Adding Citations
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
python
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
python
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:
latex
% 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."
Summary: Citation Rules
| 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 , 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.
Troubleshooting, Reviewer Criteria and Figures
Troubleshooting common writing problems, the criteria reviewers score on, and table/figure conventions are in references/issues-reviewers-figures.md.
References & Resources
Reference Documents (Deep Dives)
| 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 |
| sources.md | Complete bibliography of all sources |
| from-research-repo.md | Workflow 0: turning a code repository into a paper |
| writing-philosophy.md | Time allocation, clarity, word choice, what reviewers read |
| latex-templates-and-conversion.md | Template setup, compilation, pitfalls, venue conversion |
| issues-reviewers-figures.md | Common issues, reviewer criteria, tables and figures |
LaTeX Templates
- ML/AI: ICML 2026, ICLR 2026, NeurIPS 2025, ACL/EMNLP, AAAI 2026, COLM 2025
- Systems (OSDI, NSDI, ASPLOS, SOSP): See systems-paper-writing skill
Compiling to PDF:
- VS Code/Cursor: Install LaTeX Workshop extension + TeX Live → Save to auto-compile
- Command line: or + workflow
- Online: Upload to Overleaf
See templates/README.md for detailed setup instructions.
Key External Sources
Writing Philosophy:
ML/AI Venues: NeurIPS |
ICML |
ICLR |
ACL
Systems Venues: See the systems-paper-writing skill for OSDI, NSDI, ASPLOS, SOSP links and guides
Related skills
- : Provides paragraph-level structural blueprints for 10-12 page systems papers targeting OSDI, SOSP, ASPLOS, NSDI, and EuroSys.
rebuttal-and-response-to-reviewers
: Plan and write responses to peer review, including journal "response to reviewers" letters for revise-and-resubmit, conference rebuttals un…
reproducibility-statement
: Prepare the reproducibility, transparency and open-science parts of a paper, including data and code availability statements, reproducibili…