# Paper Write

> 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.

- Skill: `moonlarry/paper-write` (Agent Skill, multi-file: 25 files)
- Install (CLI): `npx skillmds@latest add moonlarry/paper-write`
- Raw SKILL.md: https://api.skillmd.com/api/skills/moonlarry/paper-write/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: moonlarry (https://skillmd.com/u/moonlarry)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/moonlarry/paper-write

---


# 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

1. **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`
2. **NARRATIVE_REPORT.md** — the research narrative (primary source of content)
3. **Generated figures** — PDF/PNG files in `figures/` (from `/paper-figure`)
4. **LaTeX includes** — `figures/latex_includes.tex` (from `/paper-figure`)
5. **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:**
```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
```

### 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

1. Create `paper/` directory
2. 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
3. Generate `math_commands.tex` with paper-specific notation
4. Create `paper/drafts/` and `paper/sections/` files matching PAPER_PLAN structure

**Author block (anonymous mode):**
```latex
\author{Anonymous Authors}
```

### Step 2: Generate math_commands.tex

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
```

### 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.

1. **Read the plan** — what claims, evidence, citations belong here
2. **Read NARRATIVE_REPORT.md** — extract relevant content, findings, and quantitative results
3. **Use problem alignment** — map each section to `Problem Definition Lock`, `Problem-Story Alignment Matrix`, and the Claims-Evidence Matrix
4. **Draft Markdown** — write complete prose, not bullet placeholders
5. **Add evidence placeholders** — mark planned figure/table locations and citation keys

Each Markdown draft must include a short hidden planning block at the top:

```markdown
<!--
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/`.

1. Preserve the Markdown draft's technical content and paragraph order unless LaTeX formatting requires minor restructuring.
2. Replace Markdown figure/table placeholders with snippets from `figures/latex_includes.tex`.
3. 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.
4. 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.**

1. Scan all `\citep{}` and `\citet{}` references in the drafted sections
2. Build a citation key list
3. 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
4. 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)**
```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 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:

```python
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).

**Citation verification rules (from claude-scholar + Imbad0202):**
1. Every BibTeX entry must have: author, title, year, venue/journal
2. Prefer published venue versions over arXiv preprints (if published)
3. Use consistent key format: `{firstauthor}{year}{keyword}` (e.g., `ho2020denoising`)
4. Double-check year and venue for every entry
5. 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:

- [ ] It starts from engineering/scientific demand, not from the algorithm.
- [ ] It derives the paper problem from that demand.
- [ ] It proves the problem is important and worth studying.
- [ ] It summarizes the main existing method categories.
- [ ] It states 2-3 limitations, each in a separate paragraph.
- [ ] Each limitation paragraph's first sentence states the limitation clearly.
- [ ] Each limitation paragraph explains only that limitation.
- [ ] It uses one sentence to introduce the proposed algorithm/framework based on the above.
- [ ] It contains 3-4 contribution items.
- [ ] Each contribution item starts by naming the contribution.
- [ ] Each contribution item explains the improvement mechanism and effect in 3-4 sentences.
- [ ] If experiments exist, the final contribution reports baseline improvement.
- [ ] It ends with section organization.

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:

```text
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:

1. **Extract topic sentences** — pull the first sentence of every paragraph
2. **Read them in sequence** — they should form a coherent narrative on their own
3. **Check claim coverage** — every claim from the Claims-Evidence Matrix must appear
4. **Check evidence mapping** — every experiment/figure must support a stated claim
5. **Fix gaps** — if a topic sentence doesn't advance the story, rewrite the paragraph

### Step 9: 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)
- [ ] Complete Markdown drafts exist under `paper/drafts/`
- [ ] Every section has one Markdown draft and one matching LaTeX section file
- [ ] Introduction passes the Introduction Structure Check
- [ ] Related Work categories align with Introduction method categories and limitations
- [ ] Results/Analysis paragraphs map back to Problem IDs or Contribution IDs
- [ ] Title is specific and informative (not generic)
- [ ] Related work is ≥1 full page
- [ ] references.bib contains ONLY cited entries (no bloat)
- [ ] **No stale section files** — every .tex in `sections/` is `\input`ed by `main.tex`
- [ ] **Section files match main.tex** — file numbering and `\input` paths are consistent
- [ ] Venue-specific required sections/checklists satisfied (read `../shared-references/venue-checklists.md` if needed)
- [ ] A skim reader can recover the main claim from the title, abstract, introduction, and Figure 1/captions

## 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 `\cite`d
- **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](https://github.com/Master-cai/Research-Paper-Writing-Skills):

1. **One message per paragraph** — each paragraph makes exactly one point
2. **Topic sentence first** — the first sentence states the paragraph's message
3. **Explicit transitions** — connect paragraphs with logical connectors
4. **Reverse outline test** — extract topic sentences; they should form a coherent narrative

De-AI patterns from [kgraph57/paper-writer-skill](https://github.com/kgraph57/paper-writer-skill):

5. **No AI watch words** — delve, pivotal, landscape, tapestry, underscore
6. **No significance inflation** — groundbreaking, revolutionary, paradigm shift
7. **No formulaic structures** — vary sentence openings and transitions

## Acknowledgements

Writing methodology adapted from [Research-Paper-Writing-Skills](https://github.com/Master-cai/Research-Paper-Writing-Skills) (CCF award-winning methodology). Citation verification from [claude-scholar](https://github.com/Galaxy-Dawn/claude-scholar) and [Imbad0202/academic-research-skills](https://github.com/Imbad0202/academic-research-skills). De-AI polish from [kgraph57/paper-writer-skill](https://github.com/kgraph57/paper-writer-skill). Backup mechanism from [baoyu-skills](https://github.com/jimliu/baoyu-skills).

