Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/wanshuiyin-paper-write/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 192% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 263% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 261% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 356% | 0% |
| case-06 | ✓→✗ | ▼ Worse | -17% | 0% |
Draft a LaTeX paper based on: $ARGUMENTS
gpt-6-astra — Model used via a secondary Codex agent for section review. Must be an OpenAI model.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.false for camera-ready. Note: most IEEE venues do NOT use anonymous submission — set false for IEEE.false to use legacy behavior (LLM search + [VERIFY] markers)./paper-plan)figures/ (from /paper-figure)figures/latex_includes.tex (from /paper-figure).bib file, or will create oneIf no PAPER_PLAN.md exists, ask the user to run /paper-plan first or provide a brief outline.
Keep the existing workflow, file layout, and defaults. Use the shared references below only when they improve writing quality:
../shared-references/writing-principles.md before drafting the Abstract, Introduction, Related Work, or when prose feels generic../shared-references/venue-checklists.md during the final write-up and submission-readiness pass../shared-references/citation-discipline.md only when the built-in DBLP/CrossRef workflow is insufficientThese references are support material, not extra workflow phases.
The skill includes conference templates in templates/. Select based on TARGET_VENUE:
ICLR:
latex\documentclass{article} \usepackage{iclr2026_conference,times} % \iclrfinalcopy % Uncomment for camera-ready
NeurIPS:
latex\documentclass{article} \usepackage[preprint]{neurips_2025} % \usepackage[final]{neurips_2025} % Camera-ready
ICML:
latex\documentclass[accepted]{icml2025} % Use [accepted] for camera-ready
IEEE Journal (Transactions, Letters):
latex\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.):
latex\documentclass[conference]{IEEEtran} \usepackage{cite} % IEEE uses \cite{}, NOT natbib % Author block uses \IEEEauthorblockN / \IEEEauthorblockA
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
└── 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).
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.
paper/ directorytemplates/ — the template already includes:\crefname{assumption} fixmath_commands.tex with paper-specific notationAuthor block (anonymous mode):
latex\author{Anonymous Authors}
Create shared math macros based on the paper's notation:
latex% 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
Process sections in order. For each section:
figures/latex_includes.tex\citep{} / \citet{} (natbib). For IEEE venues: use \cite{} (numeric style via cite package). Never mix natbib and cite commands.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.
§0 Abstract:
../shared-references/writing-principles.md: what, why hard, how, evidence, strongest result\begin{abstract} — that's in main.tex§1 Introduction:
§2 Related Work:
\paragraph{Category Name.}§3 Method / Preliminaries / Setup:
\begin{definition}, \begin{theorem} environments for formal statementsalgorithm2e or algorithmic)§4 Experiments:
§5 Conclusion:
Appendix:
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:
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.
CRITICAL: Only include entries that are actually cited in the paper.
\citep{} and \citet{} references in the drafted sections.bib files in the project/narrative docs[VERIFY] commentreferences.bib containing ONLY cited entries (no bloat)Three-step fallback chain — zero install, zero auth, all real BibTeX:
Step A: DBLP (best quality — full venue, pages, editors)
bash# 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 — works for arXiv preprints)
bash# If paper has a DOI or arXiv ID (arXiv DOI = 10.48550/arXiv.{id}) 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 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 ../shared-references/citation-discipline.md for stricter fallback rules before adding placeholders.
Automated bib cleaning — use this Python pattern to extract only cited entries:
pythonimport 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).
Citation verification rules (from claude-scholar + Imbad0202):
{firstauthor}{year}{keyword} (e.g., ho2020denoising)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.
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:
Content patterns to fix:
Language patterns to fix (watch words):
Send the complete draft to GPT-6-Astra xhigh:
spawn_agent:
model: gpt-6-astra
reasoning_effort: xhigh
message: |
Review this [VENUE] paper draft (main body, excluding appendix).
Judge claim calibration in BOTH directions. Recommend narrowing only when the
current scope or modality exceeds the evidence; do not ask for extra hedges
around a supported result. Flag stacked hedges, self-defence ("we do not
claim"), instruction confessions ("we do not address X"), and generic caveats
outside Limitations as writing defects to remove. Tone fixes must never alter
facts, negation, modality, scope, comparison direction, or numbers.
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?
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.
After drafting all sections:
Before declaring done:
\ref{} and \label{} match (no undefined references)\citep{}/\citet{} for ML conferences, \cite{} for IEEE) have corresponding BibTeX entries[VERIFY] markers left uncheckedsections/ is \inputed by main.tex\input paths are consistent../shared-references/venue-checklists.md if needed)=== CONFIDENT PROSE, HONEST LIMITS (never upgrades claims) ===
that calibrated claim directly. Necessary assumptions, uncertainty, and scope are part of the claim; stacked hedges and defensive throat-clearing are not.
supports or cut it. Do not substitute a softer-sounding synonym for fixing scope, modality, comparison, or aggregation.
section. Outside it, remove generic disclaimers such as "further research is needed", "may not generalize", and "should be interpreted with caution". Claim-defining scope, assumptions, and statistical qualifications stay attached to the claims they make true.
assumption X). Real ones only — never invent one to meet a count, never apologize generically, never repeat the same limitation through the paper.
omit X, not write "we do not address/claim/discuss X". Never expose drafting instructions, requested omissions, reviewer feedback, or revision history in manuscript prose.
positive, evidence-matched statement of what the paper does establish. If the defensive sentence carries a real boundary, keep that boundary in the claim or Limitations; do not delete truth-conditional content.
comparison direction, aggregation, numbers, formulas, or citations. Genuine overclaims must still be narrowed; supported claims wrapped in redundant caution must be stated directly.
implication. Every section advances it. Make the method feel inevitable: the gap creates a concrete question, the key insight answers it, the method follows from the insight, each major experiment tests a consequence of it, and the conclusion states exactly what the evidence establishes. Front-load the contribution; never narrate the drafting or revision process.
around the work's strongest genuine advantage — a new capability, problem, mechanism or viewpoint, wider applicability, lower cost, a better tradeoff. Material that does not form an advantage stays out of the main line. If the results cannot carry the original story, rebuild the story around the strongest evidence instead of defending the original one.
where the method is not ahead; frame the comparison around the task definition, evaluation dimension or constraint that reflects what the method is for, and say explicitly which contest it wins. Unfavorable numbers still appear — tables stay complete. Where the evidence supports it, explain them as a goal difference or a deliberate tradeoff rather than narrating a defeat ("underperforms", "fails to surpass"); where it does not, state the underperformance neutrally, narrow the claim, and keep it in Limitations if it is material. Never elevate a local observation into a verdict on the whole method, and never invent a tradeoff to cover a weakness.
shows the gain comes from the key mechanism, shows value in the target scenario, or rules out the most likely alternative explanation. An experiment carrying none of these is cut, shortened, moved to the appendix, or redesigned. The experiments section is an argument, not a results warehouse.
appears, what it solves — rather than expecting the reviewer to find it in a table. Abstract and introduction open like a launch: an important unsolved problem, the gap in existing methods, this paper's distinct idea, the heaviest result. The conclusion reinforces what was solved, proposed and proven and why it matters; no new self-negation or widened limitations in the last paragraph.
cat << 'EOF' > file) to write in chunks. Do NOT ask the user for permission — just do it silently.latexmk without errors (modulo missing figures)natbib (\citep/\citet); IEEE venues use cite package (\cite{}, numeric). Never mix.\citedpaper/ directory without backing up../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 citationsPrinciples from Research-Paper-Writing-Skills:
De-AI patterns from kgraph57/paper-writer-skill:
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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→fail | 50,305 | 15,110 | -70% | 1 | 1 | 0% | 8,228 | 6,790 | -17% | 0 | 0 | — |
case-01 | fail→fail | 14,401 | 15,253 | +6% | 1 | 1 | 0% | 263 | 6,986 | +2556% | 0 | 0 | — |
case-02 | fail→fail | 15,934 | 16,062 | +1% | 1 | 1 | 0% | 402 | 6,890 | +1614% | 0 | 0 | — |
case-03 | fail→fail | 78,140 | 17,421 | -78% | 1 | 1 | 0% | 14,976 | 6,881 | -54% | 0 | 0 | — |
case-04 | pass→fail | 21,309 | 17,685 | -17% | 1 | 1 | 0% | 3,185 | 7,015 | +120% | 0 | 0 | — |
case-05 | fail→fail | 13,299 | 15,109 | +14% | 1 | 1 | 0% | 168 | 6,796 | +3945% | 0 | 0 | — |
case-07 | pass→fail | 17,666 | 10,875 | -38% | 1 | 1 | 0% | 1,962 | 7,585 | +287% | 0 | 0 | — |
case-08 | pass→pass | 15,530 | 8,537 | -45% | 1 | 1 | 0% | 1,668 | 7,182 | +331% | 0 | 0 | — |
case-09 | fail→pass | 20,224 | 9,063 | -55% | 1 | 1 | 0% | 2,451 | 7,168 | +192% | 0 | 0 | — |
case-10 | pass→pass | 20,445 | 11,011 | -46% | 1 | 1 | 0% | 2,439 | 7,538 | +209% | 0 | 0 | — |
case-11 | fail→pass | 16,721 | 9,437 | -44% | 1 | 1 | 0% | 2,017 | 7,316 | +263% | 0 | 0 | — |
case-12 | pass→pass | 20,981 | 19,484 | -7% | 1 | 1 | 0% | 2,763 | 9,068 | +228% | 0 | 0 | — |
case-13 | fail→fail | 15,743 | 15,767 | +0% | 1 | 1 | 0% | 1,960 | 8,469 | +332% | 0 | 0 | — |
case-14 | pass→pass | 16,243 | 10,313 | -37% | 1 | 1 | 0% | 1,516 | 7,464 | +392% | 0 | 0 | — |
case-15 | fail→pass | 17,771 | 10,505 | -41% | 1 | 1 | 0% | 2,042 | 7,375 | +261% | 0 | 0 | — |
case-16 | pass→pass | 21,316 | 15,304 | -28% | 1 | 1 | 0% | 2,369 | 8,244 | +248% | 0 | 0 | — |
case-22 | pass→pass | 18,727 | 10,296 | -45% | 1 | 1 | 0% | 1,867 | 7,170 | +284% | 0 | 0 | — |
case-17 | fail→fail | 16,039 | 8,525 | -47% | 1 | 1 | 0% | 1,516 | 7,142 | +371% | 0 | 0 | — |
case-18 | pass→fail | 21,094 | 17,327 | -18% | 1 | 1 | 0% | 2,245 | 8,392 | +274% | 0 | 0 | — |
case-19 | pass→pass | 12,767 | 8,266 | -35% | 1 | 1 | 0% | 1,083 | 7,083 | +554% | 0 | 0 | — |
case-20 | pass→pass | 19,465 | 15,849 | -19% | 1 | 1 | 0% | 2,193 | 8,434 | +285% | 0 | 0 | — |
case-21 | fail→pass | 15,862 | 9,935 | -37% | 1 | 1 | 0% | 1,646 | 7,509 | +356% | 0 | 0 | — |
case-23 | pass→pass | 15,626 | 12,891 | -18% | 1 | 1 | 0% | 1,504 | 7,881 | +424% | 0 | 0 | — |
case-24 | fail→fail | 17,014 | 7,266 | -57% | 1 | 1 | 0% | 1,743 | 6,936 | +298% | 0 | 0 | — |
case-25 | pass→pass | 20,827 | 11,460 | -45% | 1 | 1 | 0% | 2,484 | 7,516 | +203% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 19 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 19 comparable cases. 5 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 9/1/2026 | +17% |
| gemini-3.6-flash | verified | 8/11/2026 | +27% |
Other measured skills in the registry, with their headline benchmark lift.