arxiv-search — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited arxiv-search (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.
Search arXiv through its official API for discovery, shortlists, recent-preprint tracking, and local Markdown notes for known arXiv IDs.
/biorxiv-search for biology preprints and /polars-dovmed for peer-reviewed PMC full text.scripts/search; scripts/summarize writes Markdown notes. Paths below are relative to this skill's directory, installed at ~/.agents/skills/arxiv-search.all: terms joined with AND. Add --phrase to match the words as one phrase.ti:, au:, abs:, co:, jr:, cat:, rn:, all:, submittedDate:, AND, OR, ANDNOT) passes through unchanged.--category (for example cs.LG, stat.ML, q-bio.QM) or a raw cat: term.--sort submittedDate --order descending. --days N filters the returned page locally by published date, so request enough results to cover the window. A server-side window is a raw term such as submittedDate:[202609010000 TO 202609302359] (returned results on 2026-10-01).au:"Peter Nugent" and au:"P. Nugent". Report the two result sets separately and label initial-form matches as possibly a different person.HTTP 429 with backoff. Prefer one scoped query plus local filtering over many small queries; use OAI-PMH for bulk harvesting.scripts/summarize when the user wants stable local notes for specific arXiv IDs.| Task | Action | |||
|---|---|---|---|---|
| Search | scripts/search "<query>" [max_results] (default 10) | |||
| Exact phrase | --phrase | |||
| Category | --category cs.LG | |||
| Recent first | --sort submittedDate --order descending | |||
| Sort fields | `--sort relevance\ | lastUpdatedDate\ | submittedDate, --order ascending\ | descending` |
| Local date filter | --days 30 | |||
| Paging | --start N | |||
| ID lookup | --ids 2501.01234,2406.00001 | |||
| Markdown notes | scripts/summarize 2501.01234 --output-dir arxiv-summaries [--force] | |||
| Network timeout | --timeout 20 | |||
| Cache and pacing | --cache-dir PATH (or ARXIV_SEARCH_CACHE_DIR), --no-cache, --cache-ttl 86400, --min-interval 3.1, --retries 2, --retry-backoff 60 |
PATH and network access to export.arxiv.org.--output-dir (default arxiv-summaries), and --force to overwrite existing files.scripts/search prints JSON with:query, compiled_query, query_mode (raw or plain text), start, max_results, sort_by, sort_order, request_urldays_filter when --days is set, and warnings for local workaroundstotal_results, items_per_page, start_index, feed_updatedresults: title, summary, authors, arxiv_id, abs_url, pdf_url, published, updated, primary_category, categories, and comment, journal_ref, doi when presentscripts/summarize prints JSON listing written files and missing IDs, and writes one Markdown file per arXiv ID with metadata, abstract, citation, and an empty ## Notes section.submittedDate; a --days filter is reported as a local filter on the returned page.--category or cat:.# Recent machine-learning preprints, newest first, last 30 days
scripts/search "protein language model" 50 --phrase --category cs.LG \
--sort submittedDate --order descending --days 30
# Raw arXiv syntax
scripts/search 'cat:cs.LG AND ti:"diffusion" ANDNOT abs:"survey"' 15
# Author variants, reported separately
scripts/search 'au:"Peter Nugent"' 20 --sort submittedDate --order descending
scripts/search 'au:"P. Nugent"' 20 --sort submittedDate --order descending
# Records and notes for known IDs
scripts/search --ids 2501.01234,2406.00001
scripts/summarize 2501.01234 2406.00001 --output-dir arxiv-summariesIssue: Results are too broad or too sparse. Solution: Add or drop --category and --phrase, switch to raw ti:/abs: fields, or broaden with OR.
Issue: --days returns few results. Solution: The filter applies to the returned page only. Raise max_results with --sort submittedDate --order descending, or use a raw submittedDate:[... TO ...] term.
Issue: HTTP 429 Rate exceeded persists after retries. Solution: Wait several minutes, reduce the number of queries, reuse cached results, or check final IDs on arxiv.org.
Issue: The request hangs or times out. Solution: Lower max_results, raise --timeout modestly, and check that export.arxiv.org is reachable.
/crossref-lookup: citation metadata for arXiv DOIs/biorxiv-search: biology preprints/polars-dovmed: peer-reviewed PMC full text~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.