Local CLI checks for AI paper submission and camera-ready LaTeX projects.
It catches the boring but expensive mistakes before upload: leftover TODOs, broken labels, missing figures, unresolved citations, absolute local paths, anonymity leaks, huge figures, and camera-ready placeholders.
Image source: public Overleaf homepage screenshot, https://www.overleaf.com/. Used as a visual reference for LaTeX paper-writing workflows; not an endorsement by Overleaf.
papercheck ./paper --mode submission --output paper-ready-report.md
papercheck ./paper --mode camera-ready --fail-on warningMost paper repos break at the least interesting moment: the night before ICML, NeurIPS, ICLR, CVPR, AAAI, ACL, SIGGRAPH, or IEEE camera-ready upload. The model is trained, the tables are frozen, the rebuttal is over, and then the final zip still contains a local /Users/... path, an Anonymous Authors block, a missing figures/teaser.pdf, or a duplicated \label{fig:main}.
paper-ready-checklist is a small local guardrail for that final pass.
| Check | What it catches |
|---|---|
| Placeholders | TODO, FIXME, TBD, XXX, ??, placeholder refs/cites |
| Paths | /Users/..., /home/..., Windows absolute paths |
| Labels | duplicated labels, refs without matching labels |
| Bibliography | citation keys missing from .bib, citations without .bib files |
| Figures | missing files, uncommon extensions, large image files |
| Submission mode | acknowledgements, \thanks, non-empty author block |
| Camera-ready mode | Anonymous leftovers |
| Project shape | missing obvious main .tex, many bibliography files |
The output is a Markdown report designed to be pasted into an issue, PR, lab checklist, or release note.
Backup and build-like directories such as _backup*, backup*, .git, build, dist, and out are skipped by default because real paper folders often contain archived TeX copies. Use --include-backups when you want a full forensic scan.
From GitHub:
pipx install git+https://github.com/StaryMoon/paper-ready-checklist.gitFor local development:
git clone https://github.com/StaryMoon/paper-ready-checklist.git
cd paper-ready-checklist
python3 -m pip install -e .
papercheck examples/sample_paper --mode submissionNo LaTeX distribution is required. The tool scans source files only.
Check an anonymous submission:
papercheck /path/to/icml-paper --mode submissionWrite a report:
papercheck /path/to/paper --mode submission --output report.mdUse a stricter CI gate:
papercheck . --mode camera-ready --fail-on warningWarn on smaller figures:
papercheck . --max-image-mb 3Scan archived copies too:
papercheck . --include-backups# Paper Ready Report
- Project: `/path/to/paper`
- Mode: `submission`
- Status: **NEEDS ATTENTION**
- Errors: 2
- Warnings: 7
- Info: 0
## Findings
- **ERROR** `duplicate-label` at `main.tex:24`
- Duplicate label `fig:teaser` appears 2 times.
- Hint: Labels must be unique.
- **WARNING** `ack-in-submission` at `.`
- Acknowledgements usually should be removed for anonymous submission.
- Hint: Confirm the venue anonymity policy.See examples/sample_report.md for a generated report.
Add a lightweight paper-readiness check to your paper repo:
name: paper-ready
on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install git+https://github.com/StaryMoon/paper-ready-checklist.git
- run: papercheck . --mode submission --fail-on errorsubmission mode assumes anonymous review and warns about author identity leaks.
camera-ready mode assumes the paper is accepted and warns about anonymous placeholders that should have been restored.
This tool does not replace venue-specific instructions. It is a local sanity check for common paper-project failures.
- optional JSON output for editor integrations
- venue presets for ICML/NeurIPS/ICLR/CVPR/AAAI/ACL
- arXiv packaging checklist
- Overleaf zip audit mode
MIT
