Draft LaTeX paper section by section from an outline. Use when user says \"写论文\", \"write paper\", \"draft LaTeX\", \"开始写\", or wants to generate LaTeX content from a paper plan.
Draft LaTeX paper section by section from an outline. Use when user says \"写论文\", \"write paper\", \"draft LaTeX\", \"开始写\", or wants to generate LaTeX content from a paper plan.
Paper Write: Section-by-Section LaTeX Generation
Draft a LaTeX paper based on: $ARGUMENTS
Constants
REVIEWER_MODEL = gpt-5.5 — Model used via a secondary Codex agent for section review. Must be an OpenAI model.
ANONYMOUS = true — If true, use anonymous author block. Set false for camera-ready. Note: most IEEE venues do NOT use anonymous submission — set false for IEEE.
MAX_PAGES = 9 — Main body page limit. For ML conferences: counts from first page to end of Conclusion section, references and appendix NOT counted. For IEEE venues: references ARE counted toward the page limit. Typical limits: IEEE journal = no strict limit (but 12-14 pages typical for Transactions, 4-5 for Letters), IEEE conference = 5-8 pages including references.
DBLP_BIBTEX = true — Fetch real BibTeX from DBLP/CrossRef instead of LLM-generated entries. Eliminates hallucinated citations. Zero install required. Final bibliography entries default to published conference/journal versions; arXiv is a discovery source only unless the user explicitly accepts an unpublished-preprint exception.
Inputs
PAPER_PLAN.md — outline with claims-evidence matrix, section plan, figure plan (from /paper-plan)
NARRATIVE_REPORT.md — the research narrative (primary source of content)
Generated figures — PDF/PNG files in figures/ (from /paper-figure)
LaTeX includes — figures/latex_includes.tex (from /paper-figure)
Bibliography — existing .bib file, or will create one
If no PAPER_PLAN.md exists, ask the user to run /paper-plan first or provide a brief outline.
Draft Readiness and Composition Order
Before prose, re-read the one-sentence contribution and the
Claim–Evidence–Figure Storyboard in PAPER_PLAN.md. If the research question,
main finding, significance, figure evidence, or permitted conclusion is still
unstable, stop and return to /paper-plan or the evidence audit; do not write
around an unresolved result.
Compose the first draft in evidence order, while preserving the plan's
conventional final section order in main.tex:
frozen contribution and figure storyboard;
Methods / setup needed to interpret the evidence;
Results in storyboard order;
Discussion (interpretation, literature comparison, limitations);
Introduction;
Abstract and title.
This is a composition sequence, not a requirement to reorder the submitted
paper. It prevents an attractive Introduction from getting ahead of the
available evidence.
Orchestra-Guided Writing Overlay
Keep the existing workflow, file layout, and defaults. Use the shared references below only when they improve writing quality:
Read ../../skills-codex/shared-references/writing-principles.md before drafting the Abstract, Introduction, Related Work, or when prose feels generic
Read ../../skills-codex/shared-references/paper-writing-rules.md before drafting section prose, citations, math notation, figures/tables, and experiment discussion
Read ../../skills-codex/shared-references/icde-yu-memory-paper-structure.md before initializing a new IEEE/Overleaf paper or drafting a systems, memory, query-processing, or benchmark paper
Read ../../skills-codex/shared-references/venue-checklists.md during the final write-up and submission-readiness pass
Read ../../skills-codex/shared-references/citation-discipline.md only when the built-in DBLP/CrossRef workflow is insufficient
These references are support material, not extra workflow phases.
Templates
Venue-Specific Setup
The skill includes modular paper-package templates under templates/.
Select the concrete skeleton based on TARGET_VENUE:
IEEE_CONF -> templates/ieee_conference.tex
IEEE_JOURNAL -> templates/ieee_journal.tex
non-IEEE venues may use the venue's official template, but should still
follow the same modular package conventions: thin main.tex, section files,
dedicated figure/table assets, and appendix material isolated from the main
narrative
ICLR:
\documentclass{article}
\usepackage{iclr2026_conference,times}
% \iclrfinalcopy % Uncomment for camera-ready
For non-IEEE or existing pipeline projects, this normalized structure remains
acceptable:
paper/
├── main.tex # master file (includes sections)
├── iclr2026_conference.sty # or neurips_2025.sty / icml2025.sty / IEEEtran.cls + IEEEtran.bst
├── math_commands.tex # shared math macros
├── references.bib # bibliography (filtered — only cited entries)
├── sections/
│ ├── 0_abstract.tex
│ ├── 1_introduction.tex
│ ├── 2_related_work.tex
│ ├── 3_method.tex # or preliminaries, setup, etc.
│ ├── 4_experiments.tex
│ ├── 5_conclusion.tex
│ └── A_appendix.tex # proof details, extra experiments
└── figures/ # symlink or copy from project figures/
Section files are FLEXIBLE: If the paper plan has 6-8 sections, create corresponding files (e.g., 4_theory.tex, 5_experiments.tex, 6_analysis.tex, 7_conclusion.tex).
For IEEE-oriented modular starts, prefer copying from:
templates/ieee_conference.tex
templates/ieee_journal.tex
Treat them as package skeletons, then swap in the target venue's official
class/style bundle if submission instructions require a stricter venue package.
Workflow
Step 0: Backup and Clean
If paper/ already exists, back up to paper-backup-{timestamp}/ before overwriting. Never silently destroy existing work.
CRITICAL: Clean stale files. When changing section structure (e.g., 5 sections → 7 sections), delete section files that are no longer referenced by main.tex. Stale files (e.g., old 5_conclusion.tex left behind when conclusion moved to 7_conclusion.tex) cause confusion and waste space.
Step 1: Initialize Project
Create paper/ directory plus Content/ and Figure/ for new
IEEE/Overleaf starts; otherwise follow the existing project convention.
Copy the venue template from templates/ (or the target venue's
official bundle while preserving the same modular layout) — the template
already includes:
All standard packages (amsmath, hyperref, cleveref, booktabs, etc.)
Theorem environments with \crefname{assumption} fix
Anonymous author block
Generate math_commands.tex with paper-specific notation
Create section files matching PAPER_PLAN structure and the selected layout
Author block (anonymous mode):
\author{Anonymous Authors}
Step 2: Generate math_commands.tex
Create shared math macros based on the paper's notation:
Compose in the evidence order defined above: Methods → Results in storyboard
order → Discussion → Introduction → Abstract/title. Then place completed prose
in the final section order specified by PAPER_PLAN.md and main.tex.
For each drafting unit:
Read the plan and storyboard — identify the supported claim, primary
question, evidence locator, permitted conclusion, and excluded conclusion.
Read raw-linked evidence — use NARRATIVE_REPORT.md plus the cited run,
table, figure source, or audit record; do not rely on a narrative claim when
the raw locator conflicts.
Draft content — write complete LaTeX (no fabricated placeholders).
Insert figures/tables — use snippets from figures/latex_includes.tex.
Captions must state the comparison, n/statistics where applicable, and the
conclusion readers may take from the figure.
Add citations — for ML conferences (ICLR/NeurIPS/ICML/CVPR/ACL/AAAI): use
\citep{} / \citet{} (natbib). For IEEE venues: use \cite{}
(numeric style via cite package). Never mix natbib and cite commands.
When using the ICDE-style layout, translate figure snippets to Figure/ paths
inside \includegraphics and write bibliography entries to IEEE.bib.
Before drafting the front matter, re-read the one-sentence contribution from PAPER_PLAN.md. The Abstract and Introduction should make that takeaway obvious before the reader reaches the full method.
Section-Specific Guidelines
Preferred package standard, matching ICDE_YU_Memory quality or better:
main.tex stays thin and declarative.
For new IEEE/Overleaf papers, section prose lives under paper/Content/,
figures under paper/Figure/, and bibliography in paper/IEEE.bib.
Preserve paper/sections/, paper/figures/, and references.bib for
existing projects and non-IEEE templates that already use them.
For system/memory papers, allow names like 2.Methodology.tex,
3.BenchmarkConstruction.tex, 4.Experiment.tex, 5.Discussion.tex,
6.RelatedWork.tex, 7.Conclusion.tex.
For system or benchmark papers, placing Related Work after Experiments is
allowed when the technical story reads more cleanly that way.
For system-, memory-, or query-processing papers, write Methodology with
explicit substructure instead of a single undifferentiated block. Create a
dedicated Benchmark / Dataset Construction section when the benchmark, stress
test, evaluation split, or representative-selection protocol is part of the
contribution. Structure Experiments by research questions (RQ1, RQ2, ...)
when possible, and use a dedicated Discussion section when limitations,
trade-offs, or scope boundaries deserve independent treatment.
§0 Abstract:
Use the 5-part flow from ../../skills-codex/shared-references/writing-principles.md: what, why hard, how, evidence, strongest result
Must be self-contained (understandable without reading the paper)
Structure: problem → approach → key result → implication
Include one concrete quantitative result
150-250 words (check venue limit)
No citations, no undefined acronyms
No \begin{abstract} — that's in main.tex
§1 Introduction:
Open with a compelling hook (1-2 sentences, problem motivation)
State the gap clearly ("However, ...")
List contributions as a numbered or bulleted list
End with a brief roadmap ("The rest of this paper is organized as...")
Include the main result figure if space allows
Target: 1.5 pages
§2 Related Work:
Default compact length: write 2-4 tight synthesis paragraphs. In
IEEE/Overleaf-style two-column papers, Related Work plus Conclusion should
not exceed about 0.8 page unless the venue or user explicitly asks for a
longer survey.
Organize by category using \paragraph{Category Name.}
Each category: 1 paragraph summarizing the line of work + 1-2 sentences positioning this paper
Do NOT just list papers — synthesize and compare
End each paragraph with how this paper relates/differs
§3 Method / Preliminaries / Setup:
Define notation early (reference math_commands.tex)
Use \begin{definition}, \begin{theorem} environments for formal statements
For theory papers: include proof sketches of key results in main body, full proofs in appendix
For theory papers: include a comparison table of prior bounds vs. this paper
Include algorithm pseudocode if applicable (algorithm2e or algorithmic)
Target: 1.5-2 pages
§4 Experiments / Results:
Start with experimental setup (datasets, baselines, metrics, implementation details)
Present main results in Claim–Evidence–Figure Storyboard order, then
ablations and analysis; structure by research questions (RQ1, RQ2, ...)
when possible.
Every claim from the Introduction must have supporting evidence here.
For each primary figure/table, write a four-sentence Results paragraph:
state the question; 2. state the comparison or analysis; 3. report the key
observation; 4. state only the storyboard's bounded conclusion.
Results report observations and comparisons. Do not move mechanism
explanations, literature comparison, limitations, or causal claims not
identified by the storyboard into Results.
Target: 2.5-3 pages.
Discussion (when planned as a separate section):
Interpret the observed results, compare with prior work, explain supported
differences, and state concrete limitations. Do not repeat the Results or add
new unreported evidence.
§5 Conclusion:
Summarize contributions (NOT copy-paste from intro — rephrase)
Ethics statement and reproducibility statement (if venue requires)
Target: 0.25-0.3 pages by default. Keep it as a concise close, not a second
discussion section.
Appendix:
Proof details (full proofs of main-body theorems)
Additional experiments, ablations
Implementation details, hyperparameter tables
Additional visualizations
Step 3.5: Theory Paper Consistency Pass (theory papers only)
Run this pass after drafting all sections and before building the bibliography.
Trigger it when PAPER_PLAN.md labels the paper as theory/analysis, or when the drafted sections contain five or more formal result environments (theorem, lemma, proposition, or corollary).
Proof source search: search the workspace for standalone full-proof sources whose names or contents indicate a canonical proof version (proof, appendix, full, complete, supplement, supplementary). If one exists, ask:
Inline full proofs from {file}? [Y/n]
Default to Y. If accepted:
import the full theorem/lemma statement plus proof block into the appendix source;
use the main-body theorem statement as the canonical public statement;
do not leave placeholders such as "see supplementary proof document" or "proof omitted for brevity";
preserve theorem labels, equation labels, and proof structure exactly;
keep main-body proof sketches short, but never let the appendix be sketch-only when a full proof source exists.
Restatement audit: compare every theorem/lemma/proposition statement restated in the appendix against the main-body version. Audit statements, hypotheses, case splits, quantifiers, domains, notation, variable names, and terminology for defined objects. Resolve all mismatches before Step 4.
Step 4: Build Bibliography
CRITICAL: Only include entries that are actually cited in the paper.
Scan all \citep{} and \citet{} references in the drafted sections
Build a citation key list
For each citation key:
Check existing .bib files in the project/narrative docs
If not found and DBLP_BIBTEX = true, use the verified fetch chain below
If only an arXiv clue is available, resolve it to DBLP, DOI/CrossRef,
Semantic Scholar, OpenAlex, ACL Anthology, IEEE, ACM, or the official
venue page before adding it to the final .bib
If not found and DBLP_BIBTEX = false, search only to identify the
formal publication record; do not add arXiv BibTeX unless the user
explicitly accepts an unpublished-preprint exception
NEVER fabricate BibTeX entries — mark unknown ones with [VERIFY] comment
Write references.bib containing ONLY cited entries (no bloat)
Verified BibTeX Fetch (when DBLP_BIBTEX = true)
Three-step fallback chain — zero install, zero auth, all real BibTeX:
Step A: DBLP (best quality — full venue, pages, editors)
# 1. Search by title + first author
curl -s "https://dblp.org/search/publ/api?q=TITLE+AUTHOR&format=json&h=3"# 2. Extract DBLP key from result (e.g., conf/nips/VaswaniSPUJGKP17)# 3. Fetch real BibTeX
curl -s "https://dblp.org/rec/{key}.bib"
Step B: CrossRef DOI (fallback — published DOI preferred)
# If paper has a DOI, prefer the conference/journal DOI over an arXiv DOI.
curl -sLH "Accept: application/x-bibtex""https://doi.org/{doi}"
Step C: Mark [VERIFY] (last resort)
If DBLP, CrossRef, and other formal metadata sources return nothing, mark the
entry with % [VERIFY] comment. Do NOT fabricate and do NOT silently fall back
to arXiv in the final bibliography.
Why this matters: LLM-generated BibTeX frequently hallucinates venue names, page numbers, or even co-authors. DBLP and CrossRef return publisher-verified metadata. Upstream skills (/research-lit, /novelty-check) may mention papers from LLM memory — this fetch chain is the gate that prevents hallucinated citations from entering the final .bib.
If the DBLP/CrossRef flow is not enough, load ../../skills-codex/shared-references/citation-discipline.md for stricter fallback rules before adding placeholders.
Automated bib cleaning — use this Python pattern to extract only cited entries:
import re
# 1. Grep all \citep{...}, \citet{...}, and \cite{...} from all .tex files# 2. Extract unique keys (handle multi-cite like \citep{a,b,c} or \cite{a,b,c})# 3. Parse the full .bib file, keep only entries whose key is in the cited set# 4. Write the filtered bib
This prevents bib bloat (e.g., 948 lines → 215 lines in testing).
Every BibTeX entry must have: author, title, year, venue/journal
Use published venue versions over arXiv preprints by default
Use consistent key format: {firstauthor}{year}{keyword} (e.g., ho2020denoising)
Double-check year and venue for every entry
Remove duplicate entries (same paper with different keys)
Treat arXiv entries as final-bibliography blockers unless explicitly
accepted as unpublished-preprint exceptions.
Step 5: Evidence and Scientific Writing Quality Pass
Before language polish, run an evidence-story audit:
Confirm the title, abstract, Results, and Discussion state the same bounded
main finding; flag any stronger wording outside the storyboard.
Check every primary figure/table reference, raw-result locator, version/date,
sample size or definition of n, unit, group name, and statistic for
consistency across prose, captions, tables, and source outputs.
Confirm captions include the comparison and statistical details needed to
interpret the claim, and that negative or contradictory results are visible
or explicitly bounded rather than silently omitted.
Check that methods identify sources/samples, key parameters, and an analysis
method appropriate to the data type.
Verify that citations support the claims they accompany, raw data remain
traceable, and unresolved user decisions are listed rather than buried in
prose.
Then run six sequential writing-quality passes. De-AI polish is included as one
part of this quality pass, not a replacement for it.
Pass 1: Clutter Extraction — strip sentences to their cleanest components, remove filler, and remove AI-isms.
Pass 2: Active Voice and Verb Vitality — identify who did what, convert unnecessary passive voice, and resurrect smothered verbs.
Pass 3: Sentence Architecture — flag sentences over 40 words, keep subject and verb close, put familiar context first and new information later, and ensure each paragraph does one job.
Pass 4: Keyword Consistency — apply the Banana Rule: do not rename defined technical terms just to avoid repetition. If Methods defines a group, variable, or technique name, Results, Discussion, tables, and captions must use the same term.
Pass 5: Numerical and Citation Integrity — check sample sizes, percentages, significant figures, figure/table values, and whether citations support the claims they are attached to.
Pass 6: Anti-Defensive Writing — lead with the claim, result, or positive scope instead of what the paper does not claim, prove, cover, or attempt. Delete disclaimers that do not add evidence, scope, logic, conceptual precision, or necessary reader guidance. Keep necessary limitations once, calmly, in Methods, Discussion, Limitations, or the exact sentence whose interpretation depends on the limit. Convert negative scope into positive scope (The analysis focuses on X, not We do not claim to cover Y). Replace vague hedges (may, could, potentially) with precise evidence strength and scope; when uncertainty is real, name its source. Remove reflexive defense patterns unless the contrast is part of the argument: to be clear, it is worth noting, not X but Y, this should not be taken to mean, repeated however/although caveat openings.
After drafting all sections, scan for common AI writing patterns and fix them:
First apply the sentence-level clarity rules from ../../skills-codex/shared-references/writing-principles.md:
keep subject and verb close together
put familiar context first and new information later
place the most important information near the end of the sentence
let each paragraph do one job
use verbs for actions instead of nominalized nouns
Content patterns to fix:
Significance inflation ("groundbreaking", "revolutionary" → use measured language)
Formulaic transitions ("In this section, we..." → remove or vary)
Generic conclusions ("This work opens exciting new avenues" → be specific)
Remove filler: "It is worth noting that", "Importantly,", "Notably,"
Avoid rule-of-three lists ("X, Y, and Z" appearing repeatedly)
Don't start consecutive sentences with "This" or "We"
Step 6: Cross-Review with REVIEWER_MODEL
Send the complete draft to GPT-5.4 xhigh:
spawn_agent:
model: gpt-5.5
reasoning_effort: xhigh
message: |
Review this [VENUE] paper draft (main body, excluding appendix).
Focus on:
1. Does each claim from the intro have supporting evidence?
2. Is the writing clear, concise, and free of AI-isms?
3. Any logical gaps or unclear explanations?
4. Does it fit within [MAX_PAGES] pages (to end of Conclusion)?
5. Is related work concise but sufficient, and do Related Work plus
Conclusion stay within about 0.8 page for IEEE/Overleaf-style papers?
6. For theory papers: are proof sketches adequate?
7. Are figures/tables clearly described and properly referenced?
8. Are there any solid-block paragraphs that nearly fill a two-column
column and should be split?
9. Does any high-impact prose sound defensive: repeated caveats, "we do
not claim" framing, vague hedges, or limitation-first contribution
paragraphs?
For each issue, specify: severity (CRITICAL/MAJOR/MINOR), location, and fix.
[paste full draft text]
Apply CRITICAL and MAJOR fixes. Document MINOR issues for the user.
Step 7: Reverse Outline Test (from Research-Paper-Writing-Skills)
After drafting all sections:
Extract topic sentences — pull the first sentence of every paragraph
Read them in sequence — they should form a coherent narrative on their own
Check claim coverage — every claim from the Claims-Evidence Matrix must appear
Check evidence mapping — every experiment/figure must support a stated claim
Fix gaps — if a topic sentence doesn't advance the story, rewrite the paragraph
Step 8: Final Checks
Before declaring done:
All \ref{} and \label{} match (no undefined references)
All citation commands (\citep{}/\citet{} for ML conferences, \cite{} for IEEE) have corresponding BibTeX entries
No author information in anonymous mode
Figure/table numbering is correct
Page count within MAX_PAGES (main body to Conclusion end)
No TODO/FIXME/XXX markers left in the text
No [VERIFY] markers left unchecked
Abstract is self-contained (understandable without reading the paper)
Title is specific and informative (not generic)
Related Work + Conclusion are compact by default (about 0.8 page total
for IEEE/Overleaf-style two-column papers unless explicitly overridden)
No paragraph is a solid block that nearly fills a whole two-column column
No unnecessary defensive writing remains in high-impact prose; necessary
limitations are stated once in the right section
references.bib contains ONLY cited entries (no bloat)
No arXiv entries remain in the final .bib unless explicitly accepted
as unpublished-preprint exceptions
No stale section files — every .tex in sections/ is \inputed by main.tex
Section files match main.tex — file numbering and \input paths are consistent
Venue-specific required sections/checklists satisfied (read ../../skills-codex/shared-references/venue-checklists.md if needed)
A skim reader can recover the main claim from the title, abstract, introduction, and Figure 1/captions
Title, abstract, Results, and Discussion agree on the same bounded main finding
Every primary figure/table answers one storyboard question and is not used for an excluded conclusion
Sample sizes/n, units, group names, captions, and statistics are consistent with raw-linked evidence
Negative or contradictory results are visible or explicitly scoped; raw data and result versions are traceable
User-facing interpretation or scope decisions remain listed in PAPER_PLAN.md
Key Rules
Large file handling: If the Write tool fails due to file size, immediately retry using Bash (cat << 'EOF' > file) to write in chunks. Do NOT ask the user for permission — just do it silently.
Do NOT generate author names, emails, or affiliations — use anonymous block or placeholder
Write complete sections, not outlines — the output should be compilable LaTeX
One file per section — modular structure for easy editing
Every claim must cite evidence — cross-reference the Claims-Evidence Matrix
Compile-ready — the output should compile with latexmk without errors (modulo missing figures)
No over-claiming — use hedging language ("suggests", "indicates") for weak evidence
Venue style matters — ML conferences (ICLR/NeurIPS/ICML) use natbib (\citep/\citet); IEEE venues use cite package (\cite{}, numeric). Never mix.
Page limit rules differ by venue — ML conferences: main body to Conclusion, references/appendix NOT counted. IEEE: references ARE counted toward the page limit.
Clean bib — references.bib must only contain entries that are actually \cited
Published-only bibliography by default — resolve arXiv clues to formal
venue records and block final bibliography use of arXiv unless the user
explicitly accepts an unpublished-preprint exception.
Section count is flexible — match PAPER_PLAN structure, don't force into 5 sections
Backup before overwrite — never destroy existing paper/ directory without backing up
Front-load the contribution — do not hide the payoff until the experiments or appendix
Anti-defensive prose — state what the paper shows and where it applies;
do not pad abstracts, introductions, contributions, captions, or conclusions
with caveats aimed only at hypothetical objections.
Writing Quality Reference
../../skills-codex/shared-references/writing-principles.md — story framing, abstract/introduction patterns, sentence-level clarity, reviewer reading order
../../skills-codex/shared-references/venue-checklists.md — ICLR/NeurIPS/ICML/IEEE submission requirements to check before declaring done
../../skills-codex/shared-references/citation-discipline.md — stricter fallback for ambiguous citations