# Xs Arxiv

> arXiv論文の検索・トレンド発見・詳細分析を行う統合スキル。興味度スコアでユーザーに刺さる論文を自動選定。PDF全文読み込み・Notion蓄積対応。「arXivチェックして」「論文検索」「論文分析して」で使用。

- Skill: `karaage0703/xs-arxiv` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add karaage0703/xs-arxiv`
- Raw SKILL.md: https://api.skillmd.com/api/skills/karaage0703/xs-arxiv/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: karaage0703 (https://skillmd.com/u/karaage0703)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/karaage0703/xs-arxiv

---


# arXiv論文調査スキル

## 重要：デフォルトはabstractのみ

- **全文読み込みはデフォルトでやらない。** abstractベースで要約・スコアリングする
- **全文読み込みをするのは「この論文詳しく」「全文読んで」と明示的に言われた時だけ**
- 検索コマンドは1回で済ませる（複数クエリを投げない）
- 中間報告を出す — 検索開始時に「arXiv検索中…」と一言送ってからコマンド実行

## 興味度スコアの判断基準

ユーザーの興味分野は `AGENTS.md` の「ユーザーについて」セクションを参照する。未設定の場合は以下のデフォルトカテゴリで判断：

- **最高関心（★★★）:** LLM/プロンプトエンジニアリング、AIエージェント、RAG、Computer Use/ブラウザ操作
- **高関心（★★☆）:** ロボティクス/Embodied AI、時系列予測、エッジAI/ローカル推論、TTS/音声合成
- **関心あり（★☆☆）:** 勾配ブースティング、コンピュータビジョン、マルチモーダル、3D生成

ユーザー側で `AGENTS.md` に固有の興味分野（例: 量子情報、創薬AI、強化学習）を書いていれば、そちらを優先する。

## 実行フロー

### Step 1: モード判定

- **検索モード** — 特定トピックの論文を探す
- **トレンドモード** — 最新の注目論文を発見する（スケジュール実行はこれ）
- **分析モード** — 特定論文を深く読む

### Step 2: 論文検索・トレンド取得

3 経路ある。**用途に応じて使い分ける** (export.arxiv.org API は混雑時間帯で 429/503 を返しがちで非推奨、fallback 扱い)。

#### A. トレンドモード (毎朝の自動実行はこれ)

**arxiv 公式 RSS** から並列取得。レート制限ほぼなし、1〜2 秒で完了。

```bash
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py trending -c cs.AI cs.LG cs.CL cs.CV -d 7 -n 20
```

返り値: `{"total_results": N, "papers": [...], "categories_queried": [...], "categories_failed": [...], "source": "rss"}`

#### B. 検索モード (任意クエリでの探索)

**Semantic Scholar API** がデフォルト。abstract / 著者 / 引用数 / OA PDF URL までリッチに取れる。

```bash
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py search "transformer attention" -n 10 [--year-from 2025]
```

返り値: `{"total_results": N, "papers": [{id, title, authors, abstract, published, citation_count, ...}], "source": "s2"}`

#### C. fallback: export.arxiv.org API (legacy)

旧経路。S2 が応答しない・S2 にない最新論文を狙うときだけ。指数バックオフリトライ済 (15s→45s→90s)。

```bash
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py search "クエリ" -n 10 --source legacy --date-from 2026-05-01 -s date
```

#### 検索クエリの最適化（B/C 共通）

- 引用句でフレーズ検索: `"multi-agent systems"`
- OR演算子で関連技術をカバー: `"AI agents" OR "intelligent agents"`
- フィールド指定検索: `ti:"exact title"`, `au:"author name"`, `abs:"keyword"`
- 除外検索: `"machine learning" ANDNOT "survey"`

**主要カテゴリ:** `cs.AI` / `cs.LG` / `cs.CL` / `cs.CV` / `cs.MA` / `cs.RO`

#### エラー時の挙動

S2 や legacy が全リトライ尽きると JSON が以下の形:

```json
{"error": "Semantic Scholar search failed", "detail": "HTTP 429", "retries_exhausted": true, "hint": "..."}
```

このときは:
1. **B → C** か **C → B** に経路を切り替えて再実行 (異なる API なので片方ダメでももう片方は通ることが多い)
2. それでもダメなら諦めて告知「混雑中、明日の定期実行に任せる」
3. 同セッション内で完結させる

#### arxiv ID から metadata 補完

トレンドで拾った論文の追加情報 (引用数等) が欲しいときは `lookup` で個別取得:

```bash
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py lookup 2401.12345
```

### Step 3: 興味度スコア付与

abstractを読んでAIが判断する（外部LLM不要）。

| スコア | 意味 | アクション |
|--------|------|-----------|
| ★★★ | 必読 | abstract要約 + 詳細コメント |
| ★★☆ | 読む価値あり | 概要紹介 |
| ★☆☆ | 参考程度 | タイトルのみ |
| なし | 関心外 | スキップ |

### Step 4: 論文全文読み込み（リクエスト時のみ）

**デフォルトではabstractのみで要約する。全文読み込みは行わない。**
**「この論文詳しく」「全文読んで」「分析して」と明示的に言われた時だけ全文を読む。**

```bash
# LaTeXソースがあればそちら（数式が正確）
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py latex {論文ID}

# アブストラクトのみ
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py latex {論文ID} --abstract-only

# セクション一覧
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py latex {論文ID} --sections

# 特定セクションを取得
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py latex {論文ID} --section "2.1"

# LaTeXソースが無い論文はPDFダウンロード→Markdown変換
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py download {論文ID} -o /tmp/papers
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py read {論文ID} -o /tmp/papers
```

**使い分け:**
- 数式が少ない論文 → PDF→Markdown で十分
- 数式が多い論文（数学、物理、理論系ML等） → LaTeXソースを使う
- LaTeXソースが存在しない論文もある（その場合はPDFにフォールバック）

### Step 5: 出力

**論文ごとに `===` で区切って出力する。**

```
★★★ **論文タイトル**
arXiv: {ID} | {著者} | {日付}
{URL}

{abstractベースの要約・分析 3-5文}

**新規性:** {何が新しいか}
**ユーザー的ポイント:** {なぜそのユーザーに関係あるか}
===
★★☆ **論文タイトル**
arXiv: {ID} | {著者}
{URL}

{abstract要約 1-2文}
===
★☆☆ {タイトル} ({ID}) — {一言}
```

### Step 5-2: 注目ピックアップ（必須）

論文一覧の後に、特に注目の1-2件を「注目ピックアップ」として再掲する。
**1論文 = 1投稿**（リプライ・コピペしやすくするため）。複数論文を1メッセージにまとめない。

```
💡 **arXiv注目ピックアップ (1/N)**

**論文タイトル**
arXiv: {ID}
{URL}

{なぜ注目か、技術的なポイント、ユーザーとの関連を2-3文で}
===
💡 **arXiv注目ピックアップ (2/N)**

**論文タイトル**
arXiv: {ID}
{URL}

{解説}
```

### Step 6: Notion蓄積（ユーザーに頼まれた時のみ）

**自動保存しない。** 「Notionに保存して」「DBに登録して」と言われた時だけ実行する。

#### 6-1. DBプロパティ登録

`notion-manager` スキル経由で Notion DB にエントリ追加（DB IDはユーザーが指定）。

プロパティ例: タイトル、著者、arXiv ID、URL、興味度、分野、一言メモ、分析日、全文読了

#### 6-2. ページ本文に分析内容を記載

以下のフォーマットに沿って記載：

```markdown
## エグゼクティブサマリー
{論文の目的・手法・結果を3-5文で}

## 新規性
{何が新しいか。既存手法との違い}

## 手法
{提案手法の概要。図や数式があれば言及}

## 結果
{主要な実験結果。数値を含める}

## ユーザー的ポイント
{なぜユーザーに関係あるか。やってるプロジェクト・興味分野との接続点}

## 次に読む論文
{関連論文2-3件}
```

#### 6-3. 論文PDFを添付

```bash
# PDFダウンロード（Step 4で未取得の場合）
cd [SKILL_DIR]/scripts && uv run python arxiv_tool.py download {論文ID} -o /tmp/papers

# notion-managerスキルでPDFをNotionページに添付
cd [WORKSPACE]/skills/notion-manager && uv run python notion_tool.py upload /tmp/papers/{論文ID}.pdf {ページID} --as-file -c "{論文タイトル} PDF"
```

## 使用例

- 「arXivチェックして」→ トレンドモード
- 「RAGの最新論文探して」→ 検索モード
- 「この論文分析して {URL}」→ 分析モード
- 「Notionに保存して」→ Step 6を実行

## 完了前チェックリスト

```
□ arxiv_tool.py の結果から興味度スコア付き論文一覧を整形した
□ ★★★/★★☆ 論文ごとに `===` 区切りで本体テキストを出力した（中間報告だけで終わらない）
□ 論文URL（http://arxiv.org/abs/{ID}）を含めた
□ 「Notionに保存して」と言われた場合のみ Step 6 を実行した（自動保存しない）
```

## ライセンス

全依存ライブラリが商用利用可能なライセンス：
- `arxiv` (MIT), `python-dateutil` (Apache-2.0/BSD-3-Clause), `arxiv-to-prompt` (MIT), `markitdown` (MIT)

