Skip to content
Back to skills

Arxiv Article

ASecurity

Downloads an arXiv HTML article, converts it to markdown with pandoc, archives it, and returns a structured summary. Use when processing a single arXiv paper given its HTML URL (e.g., https://arxiv.org/html/2504.12345). Called by the arxiv-catchup skill but can also be invoked directly.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
researchbash

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add tomzx/agents --skill arxiv-article --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Arxiv Article?

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

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

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-article
description: "Downloads an arXiv HTML article, converts it to markdown with pandoc, archives it, and returns a structured summary. Use when processing a single arXiv paper given its HTML URL (e.g., https://arxiv.org/html/2504.12345). Called by the arxiv-catchup skill but can also be invoked directly."
---

# arXiv Article Processor

Downloads an arXiv HTML article, converts it to markdown via pandoc, archives it under `$ARXIV_DIRECTORY/{base_id}/`, and produces a structured summary.

## Prerequisites

`ARXIV_DIRECTORY` must be set to the directory where archived articles are stored (e.g., `~/arxiv-articles`). If the variable is unset, stop and ask the user to set it.

```bash
echo "${ARXIV_DIRECTORY:?ARXIV_DIRECTORY is not set}"
```

If pandoc is not available (`which pandoc` returns nothing), report the error and stop. Do not proceed without pandoc.

## Input

The URL of the arXiv HTML article. Expected format: `https://arxiv.org/html/{arxiv_id}` (with or without a version suffix such as `v1`).

## Steps

### 1. Resolve archive directory

```bash
ARCHIVE_DIR="${ARXIV_DIRECTORY}"
mkdir -p "$ARCHIVE_DIR"
```

### 2. Extract the arxiv ID

From the URL, take the path segment after `/html/`. Strip any version suffix for the archive filename:

- `https://arxiv.org/html/2504.12345v1` → base ID `2504.12345`, versioned ID `2504.12345v1`
- `https://arxiv.org/html/2504.12345` → base ID `2504.12345`

The article is stored under `$ARCHIVE_DIR/{base_id}/`.

### 3. Check archive

```bash
test -f "$ARCHIVE_DIR/{base_id}/article.md" && echo "EXISTS" || echo "MISSING"
```

If the file exists, skip to step 5 (summarize from the cached file).

### 4. Download and convert with pandoc

Pass the URL directly to pandoc so it can resolve relative image URLs. Images are saved into `$ARCHIVE_DIR/{base_id}/` alongside the article.

```bash
mkdir -p "$ARCHIVE_DIR/{base_id}"
pandoc -f html -t markdown \
  --wrap=none \
  --strip-comments \
  --extract-media="$ARCHIVE_DIR/{base_id}" \
  -o "$ARCHIVE_DIR/{base_id}/article.md" \
  "{URL}"
```

If the command fails, report the error and stop.

### 5. Summarize

Read the full `$ARCHIVE_DIR/{base_id}/article.md` and produce this structured summary:

```markdown
## {Title}

**ID:** {base_id}
**URL:** https://arxiv.org/abs/{base_id}
**Authors:** {comma-separated author list}

### Problem
{1-2 sentences: what problem or gap does the paper address?}

### Approach
{2-3 sentences: what method, architecture, or technique do the authors use?}

### Key Results
- {finding or contribution 1}
- {finding or contribution 2}
- {finding or contribution 3 if present}

### Takeaway
{1 sentence: why this work matters or what it enables.}
```

Write the summary to `$ARCHIVE_DIR/{base_id}/summary.md`, overwriting if it already exists.

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…