Agent SkillsAgent Skills
WILLOSCAR

arxiv-search

@WILLOSCAR/arxiv-search
WILLOSCAR
421
29 forks
Updated 4/29/2026
View on GitHub

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)。 **Skip if**: 已经有可用的 `papers/papers_raw.jsonl`,或数据源不是 arXiv。 **Network**: 在线检索需要网络;离线 `--input <export.*>` 不需要网络。 **Guardrail**: 只做 metadata;不要在 `output/` 写长 prose。

Installation

$npx agent-skills-cli install @WILLOSCAR/arxiv-search
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

Path.codex/skills/arxiv-search/SKILL.md
Branchmain
Scoped Name@WILLOSCAR/arxiv-search

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

npx agent-skills-cli list

Skill Instructions


name: arxiv-search description: | 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)。 Skip if: 已经有可用的 papers/papers_raw.jsonl,或数据源不是 arXiv。 Network: 在线检索需要网络;离线 --input <export.*> 不需要网络。 Guardrail: 只做 metadata;不要在 output/ 写长 prose。

arXiv Search (metadata-first)

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.

Load Order

Always read:

  • references/domain_pack_overview.md — how domain packs drive topic-specific behavior

Domain packs (loaded by topic match):

  • assets/domain_packs/llm_agents.json — pinned IDs, query rewrite rules for LLM agent topics

Script Boundary

Use scripts/run.py only for:

  • arXiv API retrieval and XML parsing
  • offline export conversion (CSV/JSON/JSONL normalization)
  • metadata enrichment via id_list backfill

Do not treat run.py as the place for:

  • hardcoded topic detection or query rewriting (use domain packs)
  • domain-specific pinned paper lists (externalize to assets/domain_packs/)

Input

  • queries.md (keywords, excludes, time window)

Outputs

  • papers/papers_raw.jsonl (JSONL; 1 paper per line)
    • Each record includes at least: title, authors, year, url, abstract
    • When using the arXiv API online mode, records also include helpful metadata: arxiv_id, pdf_url, categories, primary_category, published, updated, doi, journal_ref, comment
  • Convenience index (optional but generated by the script):
    • papers/papers_raw.csv

Decision: online vs offline

  • If you have network access: run arXiv API retrieval.
  • If not: import an export the user provides (CSV/JSON/JSONL) and normalize fields.
  • Hybrid: if you import offline but still have network later, you can enrich missing fields (abstract/authors/categories) via arXiv id_list using --enrich-metadata or queries.md enrich_metadata: true.

Workflow (heuristic)

  1. Read queries.md and expand into concrete query strings.
  2. Retrieve results (online) or import an export (offline).
  3. Normalize every record to include at least:
    • title, authors (array), year, url, abstract
  4. Keep the set broad at this stage; dedupe/ranking comes next.
  5. Apply time window and max_results if specified.

Quality checklist

  • papers/papers_raw.jsonl exists.
  • Each line is valid JSON and contains title, authors, year, url.

Side effects

  • Allowed: create/overwrite papers/papers_raw.jsonl; append notes to STATUS.md.
  • Not allowed: write prose sections in output/ before writing is approved.

Script

Quick Start

  • python .codex/skills/arxiv-search/scripts/run.py --help
  • Online: python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace_dir> --query "<query>" --max-results 200
  • Offline import: python .codex/skills/arxiv-search/scripts/run.py --workspace <workspace_dir> --input <export.csv|json|jsonl>

All Options

  • --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_metadata

Examples

  • Online (multi-query + excludes):
    • python .codex/skills/arxiv-search/scripts/run.py --workspace <ws> --query "LLM agent" --query "tool use" --exclude "survey" --max-results 300
  • Fetch a single paper by arXiv ID (direct id_list fetch):
    • python .codex/skills/arxiv-search/scripts/run.py --workspace <ws> --query 2509.02547 --max-results 1
  • Offline auto-detect (no flags):
    • Place papers/import.csv (or .json/.jsonl) under the workspace, then run: python .codex/skills/arxiv-search/scripts/run.py --workspace <ws>
  • Offline import + time window (via queries.md):
    • Set - time window: { from: 2022, to: 2025 } then run offline import normally

Troubleshooting

Common Issues

Issue: papers/papers_raw.jsonl is empty

Symptom:

  • Script exits with “No results returned …” or output file is empty.

Causes:

  • Network is blocked (online mode).
  • Queries are too narrow or queries.md is empty.

Solutions:

  • Use offline import: place papers/import.csv|json|jsonl in the workspace or pass --input.
  • Broaden keywords and reduce excludes in queries.md.
  • Run with explicit --query to sanity-check the parser.

Issue: Offline import records miss fields

Symptom:

  • Downstream steps fail because records miss authors/year/abstract/url.

Causes:

  • Export columns don’t match expected fields; upstream export is incomplete.

Solutions:

  • Ensure the export contains at least title, authors, year, url, abstract.
  • If you later have network, use --enrich-metadata to backfill missing fields (best effort).

Recovery Checklist

  • Confirm queries.md has non-empty keywords (or pass --query).
  • If offline: confirm workspace has papers/import.* and rerun.
  • Spot-check 3–5 JSONL lines: valid JSON + required fields.

More by WILLOSCAR

View all
subsection-polisher
421

Polish a single H3 unit file under `sections/` into survey-grade prose (de-template + contrast/eval/limitation), without changing citation keys. **Trigger**: subsection polisher, per-subsection polish, polish section file, 小节润色, 去模板, 结构化段落. **Use when**: `sections/S*.md` exists but reads rigid/template-y; you want to fix quality locally before `section-merger`. **Skip if**: subsection files are missing, evidence packs are incomplete, or `Approve C2` is not recorded. **Network**: none. **Guardrail**: do not invent facts/citations; do not add/remove citation keys; keep citations within the same H3; keep citations subsection-scoped.

writer-context-pack
421

Build per-H3 writer context packs (NO PROSE): merge briefs + evidence packs + anchor facts + allowed citations into a single deterministic JSONL, so drafting is less hollow and less brittle. **Trigger**: writer context pack, context pack, drafting pack, paragraph plan pack, 写作上下文包. **Use when**: `outline/subsection_briefs.jsonl` + `outline/evidence_drafts.jsonl` + `outline/anchor_sheet.jsonl` exist and you want to make C5 drafting easier/more consistent. **Skip if**: upstream evidence is missing or scaffolded (fix `paper-notes` / `evidence-binder` / `evidence-draft` / `anchor-sheet` first). **Network**: none. **Guardrail**: NO PROSE; do not invent facts/citations; only use citation keys present in `citations/ref.bib`.

claim-evidence-matrix
421

Build a section-by-section claim–evidence matrix (`outline/claim_evidence_matrix.md`) from the outline and paper notes. **Trigger**: claim–evidence matrix, evidence mapping, 证据矩阵, 主张-证据对齐. **Use when**: 写 prose 之前需要把每个小节的可检验主张与证据来源显式化(outline + paper notes 已就绪)。 **Skip if**: 缺少 `outline/outline.yml` 或 `papers/paper_notes.jsonl`。 **Network**: none. **Guardrail**: bullets-only(NO PROSE);每个 claim 至少 2 个证据来源(或显式说明例外)。

evaluation-anchor-checker
421

Audit and rewrite evaluation/numeric claims to ensure they carry minimal protocol context (task + metric + constraint) and avoid underspecified model naming. **Trigger**: evaluation anchor checker, numeric claim hygiene, underspecified numbers, protocol context, 评测锚点检查, 数字断言, 指标上下文. **Use when**: before final merge/polish, or when reviewers would likely flag claims as underspecified (numbers without task/metric/budget), or `pipeline-auditor` warns about suspicious model naming. **Skip if**: evidence is too thin to justify numeric claims (route upstream to C3/C4), or you are pre-C2 (NO PROSE). **Network**: none. **Guardrail**: do not invent numbers; do not add/remove/move citation keys; if protocol context is missing, weaken/remove the numeric claim rather than guessing.