Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Retrieve paper metadata from arXiv using keyword queries and save results as JSONL (`papers/papers_raw.jsonl`). **Trigger**: arXiv, arxiv, paper search, metadata retrieval, 文献检索, 论文检索, 拉取元数据, 离线导入. **Use when**: 需要一个初始论文集合(survey/snapshot 的 Stage C1),来源为 arXiv(在线检索或离线导入 export)。
.claude/skills/willoscar-arxiv-search/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -19% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 28% | 0% |
Collect an initial paper set with enough metadata to support downstream ranking, taxonomy building, and citation generation.
When online, prefer rich arXiv metadata (categories, arxiv_id, pdf_url, published/updated, etc.). When offline, accept an export and convert it cleanly.
Always read:
references/domain_pack_overview.md — how domain packs drive topic-specific behaviorDomain packs (loaded by topic match):
assets/domain_packs/llm_agents.json — pinned IDs, query rewrite rules for LLM agent topicsUse scripts/run.py only for:
id_list backfillDo not treat run.py as the place for:
assets/domain_packs/)quality_contract.retrieval_policy.domain_pack_query_mode: explicit; in that mode, the query list in queries.md remains authoritative and the domain pack must not replace its topic focus.
quality_contract.retrieval_policy.minimum_records turns a Workflow's rawcandidate-pool floor into a strict quality-gate check.
queries.md (keywords, excludes, time window)papers/papers_raw.jsonl (JSONL; 1 paper per line)title, authors, year, url, abstractarxiv_id, pdf_url, categories, primary_category, published, updated, doi, journal_ref, commentpapers/papers_raw.csvid_list using --enrich-metadata or queries.md enrich_metadata: true.queries.md and expand into concrete query strings.title, authors (array), year, url, abstractmax_results if specified.papers/papers_raw.jsonl exists.title, authors, year, url.papers/papers_raw.jsonl; append notes to STATUS.md.output/ before writing is approved.uv run python .codex/skills/arxiv-search/scripts/run.py --helpuv run python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace> --query "<query>" --max-results 200uv run python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace> --input <export.csv|json|jsonl>--query <q>: repeatable; multiple queries are unioned--exclude <term>: repeatable; excludes applied after retrieval--max-results <n>: cap total retrieved--input <export.*>: offline mode (CSV/JSON/JSONL)--enrich-metadata: best-effort enrich via arXiv id_list (needs network)queries.md also supports: keywords, exclude, time window, max_results, enrich_metadatauv run python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace> --query "LLM agent" --query "tool use" --exclude "survey" --max-results 300id_list fetch):uv run python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace> --query 2509.02547 --max-results 1papers/import.csv (or .json/.jsonl) under the workspace, then run: uv run python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace>queries.md):- time window: { from: 2022, to: 2025 } then run offline import normallypapers/papers_raw.jsonl is emptySymptom:
Causes:
queries.md is empty.Solutions:
papers/import.csv|json|jsonl in the workspace or pass --input.queries.md.--query to sanity-check the parser.Symptom:
authors/year/abstract/url.Causes:
Solutions:
title, authors, year, url, abstract.--enrich-metadata to backfill missing fields (best effort).queries.md has non-empty keywords (or pass --query).papers/import.* and rerun.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 11,931 | 5,316 | -55% | 1 | 1 | 0% | 2,785 | 1,823 | -35% | 0 | 0 | — |
case-02 | fail→fail | 11,374 | 5,655 | -50% | 1 | 1 | 0% | 2,546 | 1,863 | -27% | 0 | 0 | — |
case-03 | fail→fail | 6,354 | 6,219 | -2% | 1 | 1 | 0% | 465 | 1,893 | +307% | 0 | 0 | — |
case-04 | pass→pass | 13,442 | 2,989 | -78% | 1 | 1 | 0% | 2,117 | 2,059 | -3% | 0 | 0 | — |
case-05 | fail→pass | 8,246 | 3,811 | -54% | 1 | 1 | 0% | 1,544 | 2,243 | +45% | 0 | 0 | — |
case-06 | pass→pass | 11,752 | 6,861 | -42% | 1 | 1 | 0% | 2,159 | 2,802 | +30% | 0 | 0 | — |
case-07 | fail→pass | 7,496 | 2,758 | -63% | 1 | 1 | 0% | 1,458 | 2,103 | +44% | 0 | 0 | — |
case-08 | fail→pass | 15,223 | 4,581 | -70% | 1 | 1 | 0% | 3,053 | 2,480 | -19% | 0 | 0 | — |
case-09 | pass→pass | 10,446 | 3,671 | -65% | 1 | 1 | 0% | 1,701 | 2,202 | +29% | 0 | 0 | — |
case-10 | fail→pass | 7,795 | 2,196 | -72% | 1 | 1 | 0% | 1,225 | 1,856 | +52% | 0 | 0 | — |
case-11 | fail→pass | 11,228 | 5,624 | -50% | 1 | 1 | 0% | 1,920 | 2,454 | +28% | 0 | 0 | — |
case-12 | pass→fail | 7,715 | 1,259 | -84% | 1 | 1 | 0% | 1,257 | 1,722 | +37% | 0 | 0 | — |
case-13 | fail→fail | 7,970 | 1,225 | -85% | 1 | 1 | 0% | 1,392 | 1,706 | +23% | 0 | 0 | — |
case-14 | fail→pass | 9,529 | 2,315 | -76% | 1 | 1 | 0% | 1,595 | 1,891 | +19% | 0 | 0 | — |
case-15 | fail→pass | 10,725 | 3,707 | -65% | 1 | 1 | 0% | 2,142 | 2,238 | +4% | 0 | 0 | — |
case-16 | pass→pass | 11,398 | 3,240 | -72% | 1 | 1 | 0% | 2,019 | 2,174 | +8% | 0 | 0 | — |
case-17 | fail→pass | 11,584 | 3,098 | -73% | 1 | 1 | 0% | 2,063 | 2,036 | -1% | 0 | 0 | — |
case-18 | pass→pass | 10,575 | 2,923 | -72% | 1 | 1 | 0% | 2,060 | 2,154 | +5% | 0 | 0 | — |
case-19 | fail→pass | 12,807 | 3,714 | -71% | 1 | 1 | 0% | 2,004 | 2,198 | +10% | 0 | 0 | — |
case-20 | fail→fail | 15,332 | 4,773 | -69% | 1 | 1 | 0% | 3,159 | 1,762 | -44% | 0 | 0 | — |
case-21 | fail→fail | 18,676 | 4,471 | -76% | 1 | 1 | 0% | 3,293 | 1,765 | -46% | 0 | 0 | — |
case-22 | fail→fail | 35,622 | 5,337 | -85% | 1 | 1 | 0% | 6,174 | 1,781 | -71% | 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. 22 cases were attempted, and 16 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 +36 percentage points is the difference between those two pass rates over the 16 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
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.
Other measured skills in the registry, with their headline benchmark lift.