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
  • 4 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.