arxiv-prep — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited arxiv-prep (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
arXiv runs latex (with TeX Live) on uploaded sources to produce the PDF. It does NOT run biber or bibtex. This is the single most-violated rule. The submission must include a pre-generated .bbl for the bibliography to render.
Sources of truth: https://info.arxiv.org/help/submit_tex.html, https://info.arxiv.org/help/faq/index.html.
Before bundling, verify:
| Check | How | |
|---|---|---|
| Document compiles cleanly locally | Invoke /academic-latex:compile, fail-fast on errors | |
Bibliography produces a .bbl (biblatex+biber OR natbib+bibtex) | ls main.bbl | |
All \includegraphics figures are PDF/PNG/JPG | grep -nE '\\includegraphics' main.tex and check file extensions | |
No .eps figures (unless using DVI mode — uncommon) | find . -name '*.eps' | |
| No absolute paths to figures | `grep '\\includegraphics' main.tex \ | grep '/'` |
No system-specific includes (\input{/Users/...}) | grep -E '\\input\{/' main.tex |
If any check fails, stop and surface to the user.
Multi-file documents (\input{chapter1.tex}, \include{...}, etc.) work on arXiv but are easier to debug when flat. Flatten with latexpand:
latexpand --empty-comments main.tex > arxiv/main.tex--empty-comments strips comments, keeping line numbers — this prevents minor source-format quirks from confusing arXiv's auto-detection.
Source: https://ctan.org/pkg/latexpand.
If the document has a custom class (mybook.cls) or style (mystyle.sty) bundled locally, copy them to the arxiv directory unchanged — arXiv ignores .tex/.cls/.sty distinction and reads everything from the archive root.
cp main.bbl arxiv/main.bblThe .bbl filename basename must match the main .tex basename. Don't include the .bib (arXiv stores it but doesn't use it; it's bytes you pay for).
If you used biblatex+biber, regenerate the .bbl from the LATEST tex/biber run before copying — a stale .bbl produces a wrong bibliography. Latexmk's last .bbl is what you want; check timestamps:
ls -la main.bbl main.tex # bbl should be newer or equal-timeNote: arXiv supports current bbl formats. As of 2026-05, TeX Live 2025 (default at arXiv) produces bbl format 3.3; TL 2023 produced 3.2 — both supported. If you used a much older biber, regenerate.
mkdir -p arxiv/figures
cp -r figures/*.{pdf,png,jpg,jpeg} arxiv/figures/ 2>/dev/nullStrip files arXiv doesn't need:
.tex.bak, *.aux, *.log, *.out, *.synctex.gz, *.fls, *.fdb_latexmk.DS_Store, __MACOSX/, Thumbs.db.git/, .svn/, .hg/\includegraphics-dfind arxiv -name '*.aux' -delete
find arxiv -name '*.log' -delete
find arxiv -name '*.out' -delete
find arxiv -name '*.synctex.gz' -delete
find arxiv -name '*.fls' -delete
find arxiv -name '*.fdb_latexmk' -delete
find arxiv -name '.DS_Store' -delete
find arxiv -name 'Thumbs.db' -delete
find arxiv -type d -name '__MACOSX' -exec rm -rf {} +
find arxiv -type d -name '.git' -exec rm -rf {} +Recompile from inside the bundle directory:
cd arxiv
latexmk -pdf -interaction=nonstopmode main.texIf the compile fails — fix and re-bundle. arXiv will hit the same failure.
Visually verify the produced PDF matches the original (run /academic-latex:verify-visual with the original PDF as reference).
tar czf submission.tar.gz -C arxiv .
ls -lah submission.tar.gzarXiv's upload size limit is generous (50MB usually) but smaller is better. If the archive is large, the figure files are usually the cause:
du -h arxiv/figures/* | sort -h | tailRe-render large figures at a more reasonable DPI, or convert PNG to JPG where lossy is acceptable.
arxiv-latex-cleaner)For an automated cleanup, Google ships a tool that handles many edge cases:
pip install arxiv-latex-cleaner
arxiv-latex-cleaner ./paper # produces ./paper_arXiv/It strips comments, handles included figures, removes auxiliary files, and (optionally) shrinks figures. Useful when the project has many ad-hoc files.
Source: https://github.com/google-research/arxiv-latex-cleaner.
| Symptom | Cause | Fix |
|---|---|---|
| "Bibliography did not produce" | No bundled .bbl or .bbl basename mismatch | Bundle .bbl with matching basename |
| "Figure file not found" | Wrong path or wrong extension after bundling | Use relative paths; ensure figures are .pdf/.png/.jpg |
| "Compilation timed out" | Pathological TikZ figures | Externalize TikZ figures locally and submit pre-rendered PDFs |
| "Too many files" | Submitting cache/aux directories | Strip .aux, .log, etc. (see Step 3) |
| "Wrong main file" | arXiv guesses wrong | Rename main file ms.tex or put it FIRST in the archive |
arXiv requires the same kind of single-file-or-bundle approach for replacement versions. Save the working arxiv/ directory; for a v2, edit and re-bundle.
For arXiv-specific edge cases (long compile times, special encodings, journal-cross-listing), delegate to /academic-latex:docs-lookup to fetch the relevant section of info.arxiv.org/help. Don't guess.
2026-05-09 — arxiv.org/help/submit_tex.html, arxiv-latex-cleaner repo, latexpand on CTAN.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.