paper-reader について
コンピュータービジョンとディープラーニングを対象とする論文読解スキルで、Zoteroの検索とObsidianへのノート保存に対応します。複数の分析モードを備え、図、数式、表、画像、概念リンクを細かく確認します。
主な機能
- 01PDF、arXiv、Zoteroから論文を読む
- 02要約、詳細、批判、技術解析に対応
- 03構造化されたObsidianノート作成
- 04図、数式、表の保持
- 05関連する概念ノートの管理
- 06Zoteroコレクションの一括処理
活用シーン
- 01arXivリンクから論文を要約
- 02Zotero内の論文を分析
- 03Obsidianに研究ノートを作成
- 04Zoteroコレクションを一括処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huangkiki/ dailypaper-skills --skill paper-readerインストール後、Claude Code で/paper-readerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
paper_daemon.pyassets/paper-note-template.mdreorganize_notes.pyzotero_helper.pyreferences/concept-categories.mdcv-dl-terminology.mdimage-troubleshooting.mdquality-standards.mdzotero-guide.md詳細
開始前: まずユーザーに挨拶してください 🐕
学術論文リーディングアシスタント(Paper Reader)
CV/DL 分野に特化し、Zotero との連携と Obsidian へのノート保存に対応しています。
Step 0: 共有設定の読み込み
まず ../_shared/user-config.json を読み込み、../_shared/user-config.local.json が存在する場合は、その値でデフォルト値を上書きします。
以下の変数を明示的に生成し、以降は一貫して使用します。
VAULT_PATHNOTES_PATHCONCEPTS_PATHZOTERO_DBZOTERO_STORAGEAUTO_REFRESH_INDEXESGIT_COMMIT_ENABLEDGIT_PUSH_ENABLED
ここで:
NOTES_PATH = {VAULT_PATH}/{paper_notes_folder}CONCEPTS_PATH = {NOTES_PATH}/{concepts_folder}GIT_PUSH_ENABLEDが true になるのは、GIT_COMMIT_ENABLED=trueの場合に限ります
以降は上記の変数を一貫して使用します。
1. 論文を受け取る
| 入力方法 | 例 | 処理方法 |
|---|---|---|
| PDF パス | /path/to/paper.pdf | 直接 Read |
| arXiv リンク | https://arxiv.org/abs/xxxx | WebFetch |
| Zotero コレクション | "VLA コレクションの論文" | データベースを検索 → 一覧表示 → ユーザーが選択 |
| Zotero 検索 | "Zotero 内の π0.5" | タイトルを検索 → PDF を見つける |
| PDF なし | Zotero アイテムに添付ファイルがない | Web から取得(下記参照) |
PDF がない場合の取得手順
python3 assets/zotero_helper.py info {item_id}で論文情報を取得- 優先順位に従って取得:arXiv HTML > arXiv PDF > DOI > タイトルを WebSearch
- arXiv ID を判定:URL / Zotero の extra フィールド / タイトル検索から確認
- ダウンロード不要のため、
https://arxiv.org/html/{arxiv_id}を WebFetch で直接取得することを推奨 - スキップ条件:PDF もオンラインソースもない場合 / 論文ではないコンテンツの場合
Zotero の詳しい操作方法は
references/zotero-guide.mdを参照してください
2. 読書モード
| モード | トリガーワード | 出力 |
|---|---|---|
| クイック要約 | "さっと見て"、"quick" | 主要な貢献を3~5文で説明 |
| 詳細解析 | "詳しく分析"、デフォルト | 構造化されたノート(テンプレートを使用) |
| 批判的分析 | "批判的に分析"、"critique" | 方法論の長所と短所を評価 |
| 知識抽出 | "数式を抽出"、"技術的な詳細" | 数式 + アルゴリズムの擬似コード |
3. ノートの作成
テンプレート: assets/paper-note-template.md を厳密に守り、独自に簡略化しないでください。
品質に関する重要なルール
- 漏れゼロ: 論文内のすべての Figure、数式、Table を必ずノートに含めます
- 本文中の概念リンク: 本文で初めて登場する技術用語は、末尾だけでなく
[[概念]]リンクにします - ASCII フローチャート厳禁: 構造化された Markdown リスト +
$数学記号$でアーキテクチャを説明します - 数式の完全性: 各数式には名前(
[[概念|名前]])、LaTeX 数式、意味、記号の説明が必要です - 画像は外部リンクを優先: arXiv HTML / プロジェクトホームページ / GitHub を優先し、見つからない場合はローカルにダウンロードします
数式 / 画像 / 表の詳しい品質基準は
references/quality-standards.mdを参照してください
画像の取得手順(複数ソースでフォールバック)
目標: ノートに論文のすべての Figureを含めます。まず論文内の Figure の総数を数えてから、1つずつ取得します。
- WebSearch で
"{論文タイトル} arxiv"を検索し、arXiv ID を取得 - ソース A — arXiv HTML(第一候補):
https://arxiv.org/html/{arxiv_id}を WebFetch し、すべての<figure>のタイトルと img src URL を抽出- 論文内の Figure の総数を数え、抽出数が完全か確認
- ソース B — プロジェクトホームページ(HTML が 404 の場合、または画像が不足している場合):
- Abstract / HTML からプロジェクトホームページの URL を探す(よくある形式:
project page、github.io、our website) - プロジェクトホームページを WebFetch し、掲載画像を抽出(通常、ティーザー画像 / デモ画像が含まれます)
- Abstract / HTML からプロジェクトホームページの URL を探す(よくある形式:
- ソース C — PDF から抽出(前の2つがどちらも失敗した場合):
pdfimages -pngで PDF から抽出し、10KB を超える有効な画像を選別
- ノートには
で外部リンクを埋め込む - 検証:外部リンクが読み込める / ローカルファイルが 10KB を超える
- URL の重複排除(必須): 書き込む前に各 URL を確認し、
https://arxiv.org/html/の後に同じ arxiv_id が連続して2回現れる場合(例:2607.04988v1/2607.04988v1/)、重複部分を削除します。頻発するバグです。詳しくはreferences/image-troubleshooting.mdを参照してください- 原因:arXiv HTML の img src には
{id}v1/のプレフィックスがすでに含まれているため、結合時にもう一度付けないでください - 正しい例:
https://arxiv.org/html/+ src(例:https://arxiv.org/html/2607.04988v1/x1.png) - 誤った例:
https://arxiv.org/html/2607.04988v1/+ src(パスが重複し、404 が返されます)
- 原因:arXiv HTML の img src には
ar5iv の番号は Figure の番号と一致するとは限りません。トラブルシューティングは
references/image-troubleshooting.mdを参照してください
画像の信頼性確保(生成後に自動実行)
ノートを保存した後、画像の到達可能性を確認するスクリプトを実行し、アクセスできない外部リンク画像を自動的にローカルにダウンロードします:
python3 ../daily-papers/download_note_images.py "{笔记完整路径}"
- 到達可能な外部リンクは変更せず、アクセスできない画像は
assets/に自動ダウンロードして Obsidian の wikilink に置き換えます - ローカル化した場合、frontmatter の
image_sourceを自動的にmixedに更新します
数式の形式
各数式には、名前([[概念|名前]])、LaTeX の $$ ブロック(前後に空行を入れる)、意味、記号の一覧を含める必要があります。
$$ ブロックの前後には必ず空行が必要です。空行がないと Obsidian でレンダリングされません。長すぎる数式は aligned を使って分割します。
4. Obsidian に保存
ファイル名
手法名 / モデル名のみを使用します:{手法名}.md(例:Pi05.md。年の接頭辞は付けません)。
手法名の判断方法:タイトルのコロンより前 / Abstract 内の "We propose XXX" / ギリシャ文字を ASCII に変換。
判断できない場合は _待整理/ に保存します。
保存先
Zotero のコレクション階層に従います:{NOTES_PATH}/{zotero_collection_path}/{手法名}.md
YAML frontmatter
---
title: "论文标题"
method_name: "MethodName"
authors: [Author1, Author2]
year: 2025
venue: arXiv
tags: [tag1, tag2] # 小写连字符,3-8 个
zotero_collection: 3-Robotics/1-VLX/VLA
image_source: online
created: YYYY-MM-DD
---
タグの判断:Related Work の小見出し + Abstract のキーワードを確認します。最初のタグは最も中心的なテーマにします。
保存後に自動実行
AUTO_REFRESH_INDEXES=trueの場合に限り、ディレクトリページを更新します:python3 ../_shared/generate_concept_mocs.py python3 ../_shared/generate_paper_mocs.pyGIT_COMMIT_ENABLED=trueの場合に限り、git を実行します:VAULT_PATH/.gitが存在することを先に確認しますgit add {新規ファイル} {paper_notes_folder}/の後に、実際に staged changes があることを確認する必要があります- 条件を満たした後に実行します:
cd {VAULT_PATH} && git add {新增文件} {paper_notes_folder}/ && git commit -m "add paper note: {方法名}"GIT_PUSH_ENABLED=trueかつリポジトリにリモートが設定されている場合に限り、push します
5. 概念ライブラリの管理(論文ごとに必須)
概念ライブラリの場所:{CONCEPTS_PATH}
手順
- スキャン:論文ノート内のすべての
[[概念]]リンクを確認 - 確認:各リンクに対応する概念ノートが存在するか確認(
ls+find) - 作成:存在しない概念を作成し(省略不可)、対応するサブディレクトリに自動で分類
分類ルールとテンプレートは
references/concept-categories.mdを参照してください
セルフチェック
- ノート内のすべての
[[概念]]リンクに対応する概念ノートが存在しますか? - 概念ノートに、この論文が「代表的な研究」として含まれていますか?
6. 完成后自检(合并 checklist)
- 所有 Figure 都在笔记中(数量与论文一致)?
- 所有公式都在笔记中(变量一致、无冲突)?
- 所有 Table 完整保留(所有行列)?
- 正文中技术术语有
[[概念]]内联链接? - 概念库已更新(缺失的概念已创建)?
- 图片可用(外链可加载 / 本地 >10KB)?
7. 交互式功能
完成解析后询问:深入解释?对比其他论文?保存到 Obsidian? 保存后自动创建缺失概念笔记,报告新增概念数量。
8. 批量处理
支持 Zotero 分类批量处理(默认递归子分类)。流程:递归获取论文 → 去重 → 跳过已有笔记 → 依次处理 → 汇总。
参考文件(按需查阅)
references/zotero-guide.md— Zotero 查询、分类、PDF 路径获取、智能分类判断references/image-troubleshooting.md— ar5iv 图片编号对应、PDF 提取备选references/concept-categories.md— 概念自动归类的 16 个子目录规则 + 模板references/quality-standards.md— 公式/图片/表格的详细质量规范 + 自检清单