Skip to content
Back to skills

arxiv-digest

ASecurity

Fetch daily arXiv announcements (cs.RO), filter by research relevance, generate a structured markdown digest, and sync matched papers to a Zotero collection with arXiv PDFs attached.

  • 14 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added June 5, 2026
toolspythongoshellbashtestingapi

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 10 files and shows the line behind each finding

Scanned June 5, 2026

npx -y skills add tb5z035i/arxiv-digest --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of arxiv-digest?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for arxiv-digest
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tb5z035i-arxiv-digest/badge)](https://www.skillsdirectory.com/skills/tb5z035i-arxiv-digest)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: arxiv-digest
description: >
  Fetch daily arXiv announcements (cs.RO), filter by research relevance,
  generate a structured markdown digest, and sync matched papers to a
  Zotero collection with arXiv PDFs attached.
---

# arXiv Daily Digest

All paths below are relative to this skill's root directory.

## Quick reference

| Item | Value |
|------|-------|
| **Categories** | `cs.RO` |
| **Announce types** | `new` and `cross` only (`replace` / `replace-cross` are ignored) |
| **Zotero collection** | personal library → `arxiv-digest` (auto-created if absent) |
| **Credentials** | `.secret/zotero.env` (`ZOTERO_API_KEY`, `ZOTERO_USER_ID`) |
| **Digest output** | `digests/YYYY-MM-DD.md` |
| **Intermediate data** | `data/papers.json`, `data/relevance.json` |

---

## Invocation protocol

This is a **three-step** skill. Execute the steps in order.
All shell commands assume the working directory is the skill root.

### Step 1 — Fetch papers

```bash
source .venv/bin/activate
python src/main.py fetch
```

Fetches the arXiv RSS Atom feed for `cs.RO`, enriches each paper with
metadata from the arXiv Search API, filters to `new` and `cross`
announcements, and writes the result to `data/papers.json`.

### Step 2 — Judge relevance

Read `data/papers.json`. For **every** paper, judge whether it is
relevant to the research interests defined below based on its **title
and abstract**. Write the verdicts to `data/relevance.json`.

**You MUST use LLM subagents to perform this judgment.** Do NOT apply
keyword matching, heuristics, or any rule-based pre-filtering. Every
paper must be evaluated by an LLM against the research interest
descriptions below.

To avoid timeouts, split the papers into batches of **≤ 30 papers**
and process batches in parallel via subagents. Each subagent receives a
batch and returns a JSON array of verdicts.

#### Output format for `data/relevance.json`

```json
[
  {
    "arxiv_id": "2603.01234",
    "is_relevant": true,
    "theme": "theme_a",
    "reason": "One-sentence explanation of why this paper is relevant"
  },
  {
    "arxiv_id": "2603.01235",
    "is_relevant": false,
    "theme": null,
    "reason": ""
  }
]
```

The file must contain an entry for **every** paper in `data/papers.json`,
including irrelevant ones (`is_relevant: false`).

#### Research interests

**Theme A — NL → Atomic Capability Planning / Execution**

Given atomic capabilities (simple or expert) and a natural-language
command, algorithms that schedule, plan, and execute the atomic actions
to achieve high accuracy and efficiency.

Includes: LLM-based planners / agents, hierarchical policies / skills,
tool-use / skill composition, task planning, task-and-motion planning,
verification and safety for action execution.

**Theme B — Edge-Efficient Robot Learning Inference**

Proposals enabling fast, in-time inference of robot learning algorithms
(planning or action policy) on edge platforms, via platform-based
optimisation or special network design.

Includes: acceleration / compilation / runtime optimisations,
quantisation / distillation, latency-aware architecture design,
efficient VLA / VLM policy inference.

#### Filtering guidelines

- Target **balanced precision and recall**.
- A paper must clearly address one of the two themes to be marked
  relevant. Tangentially related work (e.g. general LLM reasoning
  without robotic application, generic model compression without
  edge / robotics context) should be marked **irrelevant**.
- Judge based on **both title and abstract**.

### Step 3 — Process, digest, and sync

```bash
source .venv/bin/activate   # if not already active
python src/main.py process --relevance data/relevance.json
```

This command:

1. Loads `data/papers.json` and `data/relevance.json`.
2. Enriches each relevant paper with **venue** information (arXiv
   metadata and, when needed, project-page HTML) and **project page**
   URL (extracted from abstract / comments).
3. Writes a structured markdown digest to `digests/YYYY-MM-DD.md`.
4. Adds each paper to Zotero (deduplicated by arXiv ID), with the
   correct item type (`conferencePaper` / `journalArticle` / `preprint`)
   and the arXiv PDF attached.

Append `--dry-run` to skip the Zotero sync (useful for testing).

#### Discord Components v2 Output

For Discord presentation, use the Components v2 formatter which generates
hierarchical, theme-grouped messages:

```python
from src.digest_writer import write_discord_components

# After loading papers and relevance data
messages = write_discord_components(relevant_papers, date_str="2026-03-19")
# Returns list of component payloads, one per theme
```

**Format features:**
- One Discord message per theme (Theme A / Theme B)
- Unicode bullets (•) with fullwidth spaces (U+3000) for visual hierarchy
- Bold `•` for paper titles, indented `•` for arXiv links, venues, and relevance reasons
- Project page links shown inline when available

After this step, **present the contents of `digests/YYYY-MM-DD.md`** to
the user as the daily report.

---

## Scheduling notes

- The arXiv RSS feed updates **daily around midnight US Eastern Time**
  (~13:00 GMT+8 during EST, ~12:00 GMT+8 during EDT).
- **No updates on Saturday or Sunday.** Monday's feed contains Friday's
  submissions. This skill should not be invoked on weekends.
- Invoke this skill once daily, after the RSS feed has updated.

---

## Setup

A Python virtual environment is used to isolate dependencies.

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt -i https://mirrors.ustc.edu.cn/pypi/web/simple
```

If the venv already exists, just activate it before running commands:

```bash
source .venv/bin/activate
```

Ensure `.secret/zotero.env` contains:

```
ZOTERO_API_KEY=<your key>
ZOTERO_USER_ID=<your user id>
```

---

## Attribution

Thank you to arXiv for use of its open access interoperability.

Files in this skill

  • SKILL.md5.8 KB
  • requirements.txt45 B
  • scripts/run-daily.sh464 B
  • src/arxiv_fetcher.py6.6 KB
  • src/config.py1.3 KB
  • src/digest_writer.py4.1 KB
  • src/main.py8.1 KB
  • src/project_page_finder.py2.4 KB
  • src/venue_detector.py5.2 KB
  • src/zotero_client.py7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…