| name | paper-write |
| description | Draft paper content section by section from a paper plan, first as complete Markdown drafts and then as one LaTeX file per section. Use when user says \"写论文\", \"write paper\", \"draft LaTeX\", \"开始写\", wants Markdown-first paper drafting, or wants to generate LaTeX content from a problem-aligned paper plan. |
Paper Write: Markdown-First Section Generation
Draft a paper based on: $ARGUMENTS. Write complete Markdown drafts first, then convert the approved content into compile-ready LaTeX section files.
Constants
- REVIEW_ROLE = paper architect/reviewer — Use the AGENTS.md paper review role for draft diagnosis. Do not hard-code a model.
- TARGET_VENUE =
ICLR — Default venue. Supported: ICLR, NeurIPS, ICML, CVPR (also ICCV/ECCV), ACL (also EMNLP/NAACL), AAAI, ACM (ACM MM, SIGIR, KDD, CHI, etc.), IEEE_JOURNAL (IEEE Transactions / Letters, e.g., T-PAMI, JSAC, TWC, TCOM, TSP, TIP), IEEE_CONF (IEEE conferences, e.g., ICC, GLOBECOM, INFOCOM, ICASSP). Determines style file and formatting.
- 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. Set
false to use legacy behavior (LLM search + [VERIFY] markers).
Inputs
- PAPER_PLAN.md — outline with claims-evidence matrix, section plan, figure plan (from
/paper-plan)
- Prefer plans that include
Problem Definition Lock, Problem-Story Alignment Matrix, and Introduction Blueprint
- 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.
Orchestra-Guided Writing Overlay
Keep the existing workflow, file layout, and defaults. Use the shared references below only when they improve writing quality:
- Read
../shared-references/writing-principles.md before drafting the Abstract, Introduction, Related Work, or when prose feels generic
- Read
../shared-references/venue-checklists.md during the final write-up and submission-readiness pass
- Read
../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 conference templates in templates/. Select based on TARGET_VENUE:
ICLR:
\documentclass{article}
\usepackage{iclr2026_conference,times}
% \iclrfinalcopy % Uncomment for camera-ready
NeurIPS:
\documentclass{article}
\usepackage[preprint]{neurips_2025}
% \usepackage[final]{neurips_2025} % Camera-ready
ICML:
\documentclass[accepted]{icml2025}
% Use [accepted] for camera-ready
IEEE Journal (Transactions, Letters):
\documentclass[journal]{IEEEtran}
\usepackage{cite} % IEEE uses \cite{}, NOT natbib
% Author block uses \author{Name~\IEEEmembership{Member,~IEEE}}
IEEE Conference (ICC, GLOBECOM, INFOCOM, ICASSP, etc.):
\documentclass[conference]{IEEEtran}
\usepackage{cite} % IEEE uses \cite{}, NOT natbib
% Author block uses \IEEEauthorblockN / \IEEEauthorblockA
Project Structure
Generate this file structure:
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
├── drafts/
│ ├── 0_abstract.md
│ ├── 1_introduction.md
│ ├── 2_related_work.md
│ ├── 3_method.md
│ ├── 4_experiments.md
│ └── 5_conclusion.md
└── figures/ # symlink or copy from project figures/
Section files are FLEXIBLE: If the paper plan has 6-8 sections, create corresponding Markdown drafts and LaTeX files (e.g., 4_theory.md/.tex, 5_experiments.md/.tex, 6_analysis.md/.tex, 7_conclusion.md/.tex).
Workflow
Step 0: Backup and Clean
If paper/ already exists, back up to paper-backup-{timestamp}/ before overwriting. Never silently destroy existing work.
CRITICAL: Handle stale files safely. When changing section structure (e.g., 5 sections → 7 sections), list section files that are no longer referenced by main.tex. Archive or delete only files proven to be generated by the current skill run; otherwise ask before removing them.
Step 1: Initialize Project
- Create
paper/ directory
- Copy venue template from
templates/ — 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
paper/drafts/ and paper/sections/ files matching PAPER_PLAN structure
Author block (anonymous mode):
\author{Anonymous Authors}
Step 2: Generate math_commands.tex
Create shared math macros based on the paper's notation:
% math_commands.tex — shared notation
\newcommand{\R}{\mathbb{R}}
\newcommand{\E}{\mathbb{E}}
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator*{\argmax}{arg\,max}
% Add paper-specific notation here
Step 3: Write Markdown Drafts First
Process sections in order. For each section, first write a complete Markdown draft in paper/drafts/. These drafts are not outlines; they are the full paper content in plain prose with figure/table placeholders and citation keys.
- Read the plan — what claims, evidence, citations belong here
- Read NARRATIVE_REPORT.md — extract relevant content, findings, and quantitative results
- Use problem alignment — map each section to
Problem Definition Lock, Problem-Story Alignment Matrix, and the Claims-Evidence Matrix
- Draft Markdown — write complete prose, not bullet placeholders
- Add evidence placeholders — mark planned figure/table locations and citation keys
Each Markdown draft must include a short hidden planning block at the top:
<!--
Problem Alignment Notes:
- Problem IDs covered:
- Contributions supported:
- Evidence used:
- Claims not yet supported:
-->
If Problem Definition Lock or Introduction Blueprint is missing from PAPER_PLAN.md, infer a draft version from the user's materials and pause only if multiple incompatible problem framings would change the paper's claims.
Step 4: Convert Markdown Drafts to LaTeX Section Files
After the Markdown drafts are complete and internally consistent, convert each draft to one LaTeX file in paper/sections/.
- Preserve the Markdown draft's technical content and paragraph order unless LaTeX formatting requires minor restructuring.
- Replace Markdown figure/table placeholders with snippets from
figures/latex_includes.tex.
- 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.
- Keep
main.tex as the master file that only configures the paper and \input{}s section files.
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
§0 Abstract:
- Use the 5-part flow from
../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:
- Follow the
Introduction Blueprint exactly. Do not skip or reorder the narrative chain.
- Paragraph 1: Engineering demand — explain the real engineering or scientific need before introducing the algorithm.
- Paragraph 2: Problem emergence — derive the paper's problem from that demand and show why it is important and must be studied.
- Paragraph 3: Existing method categories — summarize the main categories of existing methods and what each category tries to solve.
- Paragraphs 4-6: 2-3 limitations — each limitation gets one paragraph. The first sentence must state the limitation clearly. The rest of that paragraph must explain only that limitation: why it happens, what it affects, and why existing methods struggle with it.
- Transition paragraph: one sentence in this form: "Based on the above, this paper proposes [algorithm/framework] to [solve P1-P3]."
- Contributions: write 3-4 contribution items. The first sentence of each item names the contribution. The next 3-4 sentences explain what algorithm/framework improvement was made and what effect or role it has. If experiments exist, the final contribution must report improvement over baseline algorithms.
- End with a brief section roadmap.
- Include the main result figure if space allows.
- Target: 1.5 pages
§2 Related Work:
- MINIMUM 1 full page (3-4 substantive paragraphs). Short related work sections are a common reviewer complaint.
- Organize by the existing method categories and limitations from the Introduction.
- Each category must answer: what this line of work solves, which locked problem or limitation it corresponds to, and where this paper improves a different link in the chain.
- 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:
- Start with experimental setup (datasets, baselines, metrics, implementation details)
- Main results table/figure first
- Then ablations and analysis
- Every claim from the introduction must have supporting evidence here
- Every key results paragraph must name the Problem ID or Contribution ID it supports, identify the table/figure/metric that provides evidence, and explain what the improvement over baselines means for the original engineering/scientific demand
- Target: 2.5-3 pages
§5 Conclusion:
- Summarize contributions (NOT copy-paste from intro — rephrase)
- Limitations (be honest — reviewers appreciate this)
- Future work (1-2 concrete directions)
- Ethics statement and reproducibility statement (if venue requires)
- Target: 0.5 pages
Appendix:
- Proof details (full proofs of main-body theorems)
- Additional experiments, ablations
- Implementation details, hyperparameter tables
- Additional visualizations
Step 4.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 5.
Step 5: 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 not found and DBLP_BIBTEX = false, search arXiv/Scholar for correct BibTeX
- 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)
curl -s "https://dblp.org/search/publ/api?q=TITLE+AUTHOR&format=json&h=3"
curl -s "https://dblp.org/rec/{key}.bib"
Step B: CrossRef DOI (fallback — works for arXiv preprints)
curl -sLH "Accept: application/x-bibtex" "https://doi.org/{doi}"
Step C: Mark [VERIFY] (last resort)
If both DBLP and CrossRef return nothing, mark the entry with % [VERIFY] comment. Do NOT fabricate.
Why this matters: LLM-generated BibTeX frequently hallucinates venue names, page numbers, or even co-authors. DBLP and CrossRef return publisher-verified metadata. Upstream literature notes 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 ../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
This prevents bib bloat (e.g., 948 lines → 215 lines in testing).
Citation verification rules (from claude-scholar + Imbad0202):
- Every BibTeX entry must have: author, title, year, venue/journal
- Prefer published venue versions over arXiv preprints (if published)
- 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)
Step 6: Scientific Writing Quality Pass (5 audit passes)
After drafting all sections, run five sequential audit 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.
Introduction Structure Check — verify before converting the Introduction draft to LaTeX:
After drafting all sections, scan for common AI writing patterns and fix them:
First apply the sentence-level clarity rules from ../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)
Language patterns to fix (watch words):
- Replace: delve, pivotal, landscape, tapestry, underscore, noteworthy, intriguingly
- 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 7: Paper Architect/Reviewer Cross-Review
Delegate the complete draft to the paper architect/reviewer role:
Paper architect/reviewer task:
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 sufficiently comprehensive (>=1 page)?
6. For theory papers: are proof sketches adequate?
7. Are figures/tables clearly described and properly referenced?
8. Does the Introduction follow engineering demand -> problem importance -> existing methods -> 2-3 limitations -> proposed method -> 3-4 contributions -> organization?
9. Do Related Work and Results Analysis explicitly align with the locked problems?
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 8: 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 9: Final Checks
Before declaring done:
Key Rules
-
Large file handling: If a large output cannot be written in one pass, use the available project-safe file editing mechanism to write it in smaller chunks and then verify the final file.
-
Do NOT generate author names, emails, or affiliations — use anonymous block or placeholder
-
Markdown first, LaTeX second — draft complete prose in paper/drafts/*.md, then write final content into paper/sections/*.tex
-
Write complete sections, not outlines — both Markdown drafts and LaTeX sections should be complete, not placeholders
-
One file per section — modular structure for easy editing
-
One Markdown draft and one TeX file per section — keep filenames aligned across paper/drafts/ and paper/sections/
-
Every claim must cite evidence — cross-reference the Claims-Evidence Matrix
-
Problem alignment is mandatory — Introduction, Related Work, Method, and Results must all trace back to the locked 2-3 problems
-
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
-
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
Writing Quality Reference
../shared-references/writing-principles.md — story framing, abstract/introduction patterns, sentence-level clarity, reviewer reading order
../shared-references/venue-checklists.md — ICLR/NeurIPS/ICML/IEEE submission requirements to check before declaring done
../shared-references/citation-discipline.md — stricter fallback for ambiguous citations
Principles from Research-Paper-Writing-Skills:
- One message per paragraph — each paragraph makes exactly one point
- Topic sentence first — the first sentence states the paragraph's message
- Explicit transitions — connect paragraphs with logical connectors
- Reverse outline test — extract topic sentences; they should form a coherent narrative
De-AI patterns from kgraph57/paper-writer-skill:
- No AI watch words — delve, pivotal, landscape, tapestry, underscore
- No significance inflation — groundbreaking, revolutionary, paradigm shift
- No formulaic structures — vary sentence openings and transitions
Acknowledgements
Writing methodology adapted from Research-Paper-Writing-Skills (CCF award-winning methodology). Citation verification from claude-scholar and Imbad0202/academic-research-skills. De-AI polish from kgraph57/paper-writer-skill. Backup mechanism from baoyu-skills.