study について
studyは、PDFから体系的な学習資料、実行可能なコードデモ、インタラクティブなHTMLページを作成する論文学習スキルです。論文の概念や研究内容を深く理解したい読者向けで、ローカルPDF、PDFのURL、arXivのURLに対応します。
主な機能
- 01PDFのダウンロードと解析
- 02体系的な論文ノートの作成
- 03問題集とコードデモの生成
- 04単一ファイルのインタラクティブHTML
- 05論文インデックスの更新と画像抽出
活用シーン
- 01研究論文PDFから学習資料を作成
- 02論文の手法や結果を対話的に確認
- 03論文の概念を実行可能なデモにする
- 04読んだ論文を検索可能な形で管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alaliqing/ claude-paper --skill studyインストール後、Claude Code で/studyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/download-pdf.cjsextract-images.pyparse-pdf-core.jsparse-pdf.js詳細
論文学習ワークフロー
論文 PDF のパスを指定して、このスキルを呼び出します。
言語の判定:ユーザーの入力から言語を判定し、すべての資料をその言語で作成します。
- 例:ユーザーが「我们学习一下这篇论文吧」と言う → 資料を中国語で作成
- 例:ユーザーが「Let's study this paper」と言う → 資料を英語で作成
基本理念
主な目的: 概念への深い理解と、研究レベルの思考を促します。
副次的な目的: 体系的で再利用可能な論文ナレッジシステムを作成します。
このワークフローは単なる要約ではなく、論文を中心とした学習環境を構築します。
ステップ 0:依存関係の確認(初回のみ)
if [ ! -f "${CLAUDE_PLUGIN_ROOT}/.installed" ]; then
echo "First run - installing dependencies..."
cd "${CLAUDE_PLUGIN_ROOT}"
npm install || exit 1
# Install Python dependencies for image extraction
python3 -m pip install pymupdf --user 2>/dev/null || pip3 install pymupdf --user 2>/dev/null || echo "Warning: Failed to install pymupdf"
touch "${CLAUDE_PLUGIN_ROOT}/.installed"
echo "Dependencies installed!"
fi
推奨環境:
- Node >= 18
- 画像抽出用の Python 3 と pip
ステップ 1:PDF のダウンロードと解析
複数の入力形式に対応しています。
- ローカルパス:
~/Downloads/paper.pdf - PDF の直接 URL:
https://arxiv.org/pdf/1706.03762.pdf - arXiv の URL:
https://arxiv.org/abs/1706.03762
ステップ 1a:入力の種類を確認し、URL の場合はダウンロードする
USER_INPUT="<user-input>"
# Check if input is a URL (starts with http:// or https://)
if [[ "$USER_INPUT" =~ ^https?:// ]]; then
# Download PDF from URL
INPUT_PATH=$(node ${CLAUDE_PLUGIN_ROOT}/skills/study/scripts/download-pdf.cjs "$USER_INPUT")
else
# Use local path directly
INPUT_PATH="$USER_INPUT"
fi
URL の場合、ダウンロードスクリプトは以下を実行します。
- PDF を
/tmp/claude-paper-downloads/にダウンロードします - arXiv の
/abs/URL を自動的に PDF の URL に変換します - URL が PDF ファイルを指していることを検証します
- 処理用のローカルファイルパスを返します
ローカルパスの場合は、ダウンロードせずにパスをそのまま使用します。
ステップ 1b:PDF を解析する
構造化された情報を抽出します。
PARSE_OUTPUT_DIR=$(mktemp -d)
node ${CLAUDE_PLUGIN_ROOT}/skills/study/scripts/parse-pdf.js \
"$INPUT_PATH" \
--output-dir "$PARSE_OUTPUT_DIR"
このコマンドは、簡潔で厳密な JSON の概要を stdout に出力し、以下のファイルを書き込みます。
meta.json— タイトル、著者、概要、リンク、ページ数、コンテキストに配慮した内容のプレビューpaper.txt— 50k のプレビュー上限なしで抽出した全文
資料の生成には paper.txt をソースとして使用します。必要に応じて検索し、関連するセクションを読んでください。contentTruncated が true の場合、meta.json.content を論文の全文として扱わないでください。
{paper-slug} を選んだら、論文ディレクトリを作成し、パーサーが生成した両方のファイルと元の PDF をコピーします。
mkdir -p ~/claude-papers/papers/{paper-slug}
cp "<metaPath-from-parser-output>" ~/claude-papers/papers/{paper-slug}/meta.json
cp "<fullTextPath-from-parser-output>" ~/claude-papers/papers/{paper-slug}/paper.txt
cp "$INPUT_PATH" ~/claude-papers/papers/{paper-slug}/paper.pdf
ステップ 2.5 でタグをちょうど 2 つ生成し、保存した meta.json に追加します。
フォールバック: 構造化解析に失敗した場合は、プレーンテキストを抽出し、構造が不完全な状態で処理を続けます。
ステップ 2:資料を生成する前に論文を評価する
ファイルを生成する前に、以下を評価します。
-
難易度
- 初級
- 中級
- 上級
- 高度な理論
-
論文の性質
- 理論
- アーキテクチャベース
- 実証重視
- システム設計
- サーベイ
-
手法の複雑さ
- シンプルなパイプライン
- 多段階学習
- 新規アーキテクチャ
- 数学的導出を多用
この評価によって、以下を決定します。
- method.md を作成するかどうか
- .ipynb を作成するかどうか
- 解説の深さ
- コードデモの複雑さ
ステップ 2.5:意味に基づくタグをちょうど 2 つ生成する(必須)
ファイルを生成する前に、論文の意味を理解し、タグをちょうど 2 つ推定します。
ルール:
- タグはちょうど 2 つ生成します。増減させないでください
- タグは互いに異なるものにします
- 各タグは短くします(1~3 語)
- 一般的すぎるタグは避けます:
paper、research、ai、ml - 問題/ドメインを表すタグを 1 つ、手法/中核となるアイデアを表すタグを 1 つ選ぶのがおすすめです
例:
machine translation、self-attention3d detection、bev transformerprotein folding、structure prediction
以下の両方の場所に、この 2 つのタグを保存します。
~/claude-papers/papers/{paper-slug}/meta.jsonのtags~/claude-papers/index.jsonのエントリのtags
ステップ 3:学習資料の中核を生成する
フォルダーを作成します。
~/claude-papers/papers/{paper-slug}/
必須ファイル
README.md
- 論文の概要(1 段落)
- 難易度
- 資料の参照方法
- 主な要点
- 想定学習時間
- フォルダー構成の概要
summary.md
- 背景情報
- 問題設定
- 主な貢献
- 主な結果
- 定量的な指標
insights.md(最重要)
- 中核となるアイデアを平易に解説
- なぜうまくいくのか
- どのような概念上の転換をもたらすのか
- トレードオフ
- 制約
- 先行研究との比較
- 実用上の意味
qa.md
15 個の質問:
- 基礎:5 問
- 中級:5 問
- 上級:5 問
次の形式を使用します:
### Question
<details>
<summary>Answer</summary>
Detailed explanation.
</details>
---
条件付きファイル
method.md(ほとんどの論文で推奨)
以下を含めます:
- コンポーネントの内訳
- アルゴリズムの流れ
- アーキテクチャ図(必要に応じて ASCII)
- 段階的な解説
- 擬似コード(解説とのバランスを取る)
- 実装上の落とし穴
- ハイパーパラメーターの感度
- 再現時のリスク
mental-model.md(ほとんどの論文で推奨)
- これはどのような種類の問題ですか?
- どのような事前知識が前提とされていますか?
- より広い研究の全体像の中で、どのような位置づけですか?
- この研究をどのように捉えるとよいですか?
reflection.md(任意、自動生成)
- この論文を発展させるとしたら
- 未解決の問題は何か
- どの前提が脆弱か
- 実際の場面でどこがうまくいかない可能性があるか
Step 4: コードデモの作成(必須)
少なくとも 1 つ、実行可能なデモを作成する必要があります。
すべてのコードデモは以下に配置してください:
~/claude-papers/papers/{paper-slug}/code/
まずコードディレクトリを作成します:
mkdir -p ~/claude-papers/papers/{paper-slug}/code
ガイドライン:
- 自己完結している
- 単独で実行できる
- 学習に役立つコメントがある(理由を説明する)
- 核となる貢献に焦点を当てる
- 完全さよりも明瞭さを優先する
考えられる種類:
- 簡略化した概念実装
- 可視化スクリプト
- 最小限のアーキテクチャデモ
- インタラクティブノートブック(.ipynb)
内容がわかる名前を付けます:
- model_demo.py
- vectorized_planning_demo.py
- contrastive_loss_visualization.ipynb
一般的すぎる名前は避けてください。
Step 5: インタラクティブ HTML エクスプローラーの生成
論文の核となる概念をインタラクティブに探索できる、自己完結型の HTML ファイルを 1 つ作成します。
出力先:
~/claude-papers/papers/{paper-slug}/index.html
要件
- CSS と JS をすべてインラインで記述した、外部依存関係のない単一の HTML ファイル
- 論文の実データ(実際の指標、ハイパーパラメーター、比較結果)を使用する — 数値を創作しない
- サンドボックス化された iframe で動作する(外部への fetch や localStorage を使用しない)
ガイドライン
論文に最適なインタラクション形式を選びます。アーキテクチャ図、パラメーターエクスプローラー、結果ダッシュボード、数式の内訳、比較マトリックスなどが考えられます。固定のレイアウトを無理に当てはめるのではなく、論文の内容に沿った形式にし、核となるアイデアに焦点を当ててください。
スライダー、切り替え、ドロップダウンなど、すべてのインタラクティブなコントロールを操作したときに、可視化が目に見えて変化するようにします。概念を理解するのに役立つ簡潔な説明文を、インタラクティブ要素のそばに含めてください。
Step 6: 画像の抽出
mkdir -p ~/claude-papers/papers/{paper-slug}/images
python3 ${CLAUDE_PLUGIN_ROOT}/skills/study/scripts/extract-images.py \
paper.pdf \
~/claude-papers/papers/{paper-slug}/images
主要な画像には、内容がわかる名前を付けます:
- architecture.png
- training_pipeline.png
- results_table.png
Step 7: インデックスの更新
重要:まず既存の index.json を読み込み、新しい論文を追加します。ファイル全体を上書きしてはいけません。
index.json が存在しない場合は、以下を作成します:
{"papers": []}
papers 配列に新しいエントリを追加します:
{
"id": "paper-slug",
"title": "Paper Title",
"slug": "paper-slug",
"authors": ["Author 1", "Author 2"],
"abstract": "Paper abstract...",
"year": 2024,
"date": "2024-01-01",
"tags": ["tag-1", "tag-2"],
"githubLinks": ["https://github.com/..."],
"codeLinks": ["https://..."]
}
重要:index.json ファイルは以下の場所に置く必要があります:
~/claude-papers/index.json
Step 8: Web UI の再起動
以下を実行します:
/claude-paper:webui
Step 9: インタラクティブなディープラーニングループ
すべてのファイルを生成した後:
ユーザーへの提示事項:
-
次の質問をします:
- まだ不明な点はどこですか?
- 数学的な解説をさらに詳しくしますか?
- 実装レベルの分析が必要ですか?
- 別の論文との比較を行いますか?
-
ユーザーが以下を行えるようにします:
- さらに詳しい質問をする
- 自分の理解を要約する
- 新しいアイデアを提案する
ユーザーがさらに詳しい質問をした場合:
同じフォルダー内に新しいファイルを生成します:
例:
- deep-dive-contrastive-loss.md
- math-derivation-breakdown.md
- comparison-with-transformers.md
- extension-ideas.md
ユーザーが独自の要約を提示した場合:
- 内容を洗練します。
- 構成を改善します。
- 次の名前で保存します:
- user-summary-v1.md
反復した場合:
- user-summary-v2.md
ユーザーが体系的な統合を希望する場合:
以下を作成します:
- consolidated-notes.md
- study-session-1.md
- exam-review.md
これにより、論文のフォルダーが成長するナレッジノードになります。