arxiv
arXivから学術論文を検索、ダウンロード、要約できます。ユーザーが「arXivを検索」「論文をダウンロード」「arXivから取得」「論文のPDFを取得」などと指示した場合、またはarXivから論文を見つけてローカルのペーパーライブラリに保存したい場合に使用します。
description の原文を見る
Search, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv", "arxiv search", "get paper pdf", or wants to find and save papers from arXiv to the local paper library.
SKILL.md 本文
arXiv論文検索・ダウンロード
トピックまたはarXiv論文IDで検索: $ARGUMENTS
定数
- PAPER_DIR - ダウンロードしたPDFを保存するローカルディレクトリ。デフォルト: 現在のプロジェクトディレクトリの
papers/ - MAX_RESULTS = 10 - デフォルトの検索結果数。
- FETCH_SCRIPT - ARISインストール相対パスの
tools/arxiv_fetch.py、または現在のプロジェクト相対パス。見つからない場合はインラインPythonにフォールバック。
オーバーライド(引数に追加):
/arxiv "attention mechanism" - max: 20- 最大20件の結果を返す/arxiv "2301.07041" - download- IDで特定の論文をダウンロード/arxiv "query" - dir: literature/- PDFをカスタムディレクトリに保存/arxiv "query" - download: all- 全結果のPDFをダウンロード
ワークフロー
ステップ1: 引数をパース
$ARGUMENTS からディレクティブをパース:
- クエリまたはID: メイン検索用語またはベアのarXiv ID (
2301.07041またはcs/0601001など) - max: N: MAX_RESULTSをオーバーライド (例:- max: 20)- dir: PATH: PAPER_DIRをオーバーライド (例:- dir: literature/)- download: リスト表示後、最初の結果のPDFをダウンロード- download: all: 全結果のPDFをダウンロード
引数がarXiv IDパターン (YYMM.NNNNN または category/NNNNNNN) と一致する場合、検索をスキップしてステップ3に直接進みます。
ステップ2: arXivを検索
フェッチスクリプトを探索:
SCRIPT=$(python3 -c "
import pathlib
candidates = [
pathlib.Path('tools/arxiv_fetch.py'),
pathlib.Path.home() / '.claude' / 'skills' / 'arxiv' / 'arxiv_fetch.py',
]
for p in candidates:
if p.exists():
print(p)
break
" 2>/dev/null)
SCRIPTが見つかった場合, 実行:
python3 "$SCRIPT" search "QUERY" --max MAX_RESULTS
SCRIPTが見つからない場合, インラインPythonにフォールバック:
python3 - <<'PYEOF'
import json
import urllib.parse
import urllib.request
import xml.etree.ElementTree as ET
NS = "http://www.w3.org/2005/Atom"
query = urllib.parse.quote("QUERY")
url = (f"http://export.arxiv.org/api/query"
f"?search_query={query}&start=0&max_results=MAX_RESULTS"
f"&sortBy=relevance&sortOrder=descending")
with urllib.request.urlopen(url, timeout=30) as r:
root = ET.fromstring(r.read())
papers = []
for entry in root.findall(f"{{{NS}}}entry"):
aid = entry.findtext(f"{{{NS}}}id", "").split("/abs/")[-1].split("v")[0]
title = (entry.findtext(f"{{{NS}}}title", "") or "").strip().replace("\n", " ")
abstract = (entry.findtext(f"{{{NS}}}summary", "") or "").strip().replace("\n", " ")
authors = [a.findtext(f"{{{NS}}}name", "") for a in entry.findall(f"{{{NS}}}author")]
published = entry.findtext(f"{{{NS}}}published", "")[:10]
cats = [c.get("term", "") for c in entry.findall(f"{{{NS}}}category")]
papers.append({
"id": aid,
"title": title,
"authors": authors,
"abstract": abstract,
"published": published,
"categories": cats,
"pdf_url": f"https://arxiv.org/pdf/{aid}.pdf",
"abs_url": f"https://arxiv.org/abs/{aid}",
})
print(json.dumps(papers, ensure_ascii=False, indent=2))
PYEOF
結果をテーブルで表示:
| # | arXiv ID | Title | Authors | Date | Category |
|---|------------|---------------------|----------------|------------|----------|
| 1 | 2301.07041 | Attention Is All... | Vaswani et al. | 2017-06-12 | cs.LG |
ステップ3: 特定のIDの詳細を取得
単一の論文IDが要求された場合(直接またはステップ2から):
python3 "$SCRIPT" search "id:ARXIV_ID" --max 1
# またはフォールバック:
python3 -c "
import urllib.request, xml.etree.ElementTree as ET
NS = 'http://www.w3.org/2005/Atom'
url = 'http://export.arxiv.org/api/query?id_list=ARXIV_ID'
with urllib.request.urlopen(url, timeout=30) as r:
root = ET.fromstring(r.read())
# 詳細全体を出力 ...
"
表示内容: タイトル、全著者、カテゴリ、完全なアブストラクト、公開日、PDF URL、アブストラクトURL。
ステップ4: PDFをダウンロード
ダウンロードが要求された場合、ダウンロード対象の各論文IDについて:
# フェッチスクリプトを使用:
python3 "$SCRIPT" download ARXIV_ID --dir PAPER_DIR
# フォールバック:
mkdir -p PAPER_DIR && python3 -c "
import pathlib
import sys
import urllib.request
out = pathlib.Path('PAPER_DIR/ARXIV_ID.pdf')
if out.exists():
print(f'Already exists: {out}')
sys.exit(0)
req = urllib.request.Request(
'https://arxiv.org/pdf/ARXIV_ID.pdf',
headers={'User-Agent': 'arxiv-skill/1.0'},
)
with urllib.request.urlopen(req, timeout=60) as r:
out.write_bytes(r.read())
print(f'Downloaded: {out} ({out.stat().st_size // 1024} KB)')
"
各ダウンロード後:
- ファイルサイズが10KBを超えていることを確認(小さいファイルはエラーHTMLページの可能性のため拒否)
- レート制限を回避するため、連続ダウンロード間に1秒の遅延を追加
- 報告:
Downloaded: papers/2301.07041.pdf (842 KB)
ステップ5: 要約
各論文について(ダウンロードまたはAPIで取得):
## [Title]
- **arXiv**: [ID] - [abs_url]
- **著者**: [著者全員]
- **日付**: [published]
- **カテゴリ**: [cs.LG, cs.AI, ...]
- **アブストラクト**: [完全なアブストラクト]
- **主要な貢献** (アブストラクトから抽出):
- [貢献1]
- [貢献2]
- [貢献3]
- **ローカルPDF**: papers/[ID].pdf (ダウンロード済みの場合)
ステップ6: リサーチウィキを更新(アクティブな場合)
プロジェクトに research-wiki/ が存在する場合に必須; それ以外は黙ってスキップします。ウィキディレクトリが存在する場合、の正規チェーンに従って shared-references/wiki-helper-resolution.md$WIKI_SCRIPT を解決(バリアントB — 警告後スキップ)、この呼び出しで返されたすべての論文を取り込みます:
if [ -d research-wiki/ ]; then
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}"
WIKI_SCRIPT=".aris/tools/research_wiki.py"
[ -f "$WIKI_SCRIPT" ] || WIKI_SCRIPT="tools/research_wiki.py"
[ -f "$WIKI_SCRIPT" ] || { [ -n "${ARIS_REPO:-}" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"; }
[ -f "$WIKI_SCRIPT" ] || {
echo "WARN: research_wiki.py not found; arxiv results delivered, wiki ingest skipped. Fix: bash tools/install_aris.sh, export ARIS_REPO, or cp <ARIS-repo>/tools/research_wiki.py tools/." >&2
WIKI_SCRIPT=""
}
if [ -n "$WIKI_SCRIPT" ]; then
for each arxiv_id in results:
python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ \
--arxiv-id "<arxiv_id>"
fi
fi
ヘルパーはメタデータ取得、スラッグ生成、重複排除、ページ作成、インデックス再構築、ログ追記を1つの呼び出しで処理します — papers/<slug>.md を手動で記述しないでください。正規ヘルパールールについては を参照してください。逃した取り込みは後で shared-references/integration-contract.md$WIKI_SCRIPT を解決してから python3 "$WIKI_SCRIPT" sync research-wiki/ --arxiv-ids <id1>,<id2>,... でバックフィルできます。
ステップ7: 最終出力
実行内容を要約:
Found N papers for "query"Downloaded: papers/2301.07041.pdf (842 KB)(各ダウンロードについて)Wiki-ingested N papers(research-wiki/が存在した場合)- 警告(レート制限に達した、ファイルが小さすぎた、既に存在する など)
フォローアップスキルを提案:
/research-lit "topic" - マルチソースレビュー: Zotero + Obsidian + ローカルPDF + ウェブ
/novelty-check "idea" - これらの論文に対してアイデアが新規であることを確認
キールール
- arXiv IDは常に目立つように表示 - ユーザーは引用と再現性のためにそれが必要です
- ダウンロードしたPDFを検証: ファイルは10KBを超えている必要があります; より小さい場合は警告して削除してください
- レート制限: 連続PDFダウンロード間に1秒待機; HTTP 429では5秒後に1回リトライ
- 同じパスの既存PDFは上書きしない - スキップして「already exists」と報告
- 両方のarXiv IDフォーマットを処理: 新形式 (
2301.07041) と旧形式 (cs/0601001) - PAPER_DIRが存在しない場合は自動的に作成
- arXiv APIに到達できない場合、エラーを明確に報告し、フォールバックとして
/research-litを- sources: webで使用することを提案
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- wanshuiyin
- ライセンス
- MIT
- 最終更新
- 2026/5/7
Source: https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep / ライセンス: MIT
関連スキル
makepad-basics
【重要】Makepadの初期設定とアプリケーション構造の説明に使用します。以下のキーワードで起動します: makepad、Makepad入門、Makepadチュートリアル、live_design!、app_main!、Makepadプロジェクト設定、Makepad Hello World、「Makepadアプリの作成方法」、makepad 入门、创建 makepad 应用、makepad 教程、makepad 项目结构
slr-prisma
PRISMA 2020フレームワークに従ったシステマティックレビュー(SLR)の作成をガイドします。ユーザーが「systematic review」「systematic literature review」「SLR」「PRISMA」「PRISMA 2020」「PRISMA flow diagram」「PRISMAチェックリスト」と言及したり、報告ガイドラインに準拠した文献レビューの執筆、構成、監査をリクエストした場合に活用できます。また、レビューの適格基準、Scopus・WoS・PubMedなどのデータベース検索戦略、研究選定プロセス、バイアスリスク評価、ナラティブシンセシスについての質問があった場合にも対応します。PRISMA 2020チェックリスト全27項目をカバーし、ジャーナル投稿形式のWordドキュメント原稿を作成、注釈付きのPRISMAフロー図を生成、APA第7版の引用形式を厳密に適用します。メタアナリシスや統計的統合には対応していません。
learning-opportunities
Learning Opportunitiesワークフロースキル。ユーザーがAI支援コーディング中に意図的なスキル開発を促進する必要がある場合に使用します。アーキテクチャ作業(新規ファイル、スキーマ変更、リファクタリング)後にインタラクティブな学習演習を提供します。機能完成時、設計判断時、またはユーザーがコードをより深く理解したいと要求した場合に使用してください。「学習演習」「理解を助けてほしい」「教えてほしい」「なぜこれが機能するのか」といった表現、または新規ファイル・モジュール作成後にトリガーされます。緊急のデバッグ、クイックフィックス、ユーザーが「とにかくリリースしたい」と言った場合には使用しないでください。なお、マージや引き継ぎ前に、オペレーターは上流のワークフロー、コピーされたサポートファイル、およびプロビナンス情報を保持する必要があります。
research-paper-writing
NeurIPS/ICML/ICLRなどの機械学習会議向けの論文を、企画から投稿まで一貫して執筆できます。研究テーマの設計、実験の実施、論文の執筆、そして学会への投稿準備まで、全プロセスをサポートします。
software-engineering-research
ソフトウェアエンジニアリングの研究トピックと方法論のガイド
methodology-skills
研究方法論に関する12個のスキル。調査設計、方法論の選択、科学的推論、メンタリングなどがトリガーとなります。定性的、定量的、混合型アプローチを網羅した厳密な方法論フレームワークに基づいて設計されています。