Community研究&データ分析github.com

Yoyiyoniu/paper-search

公式の学術API(arXiv、Semantic Scholar、Europe PMC、OpenAlex)を検索し、合法的なPDFを読んで、論文から引用したメモを作成します。ユーザーが科学論文、文献レビュー、最新技術、トピックに関する証拠、既知のDOIを求めたり、「busca papers sobre X」と発言した場合に使用します(「paper」という単語を使わなくても構いません)。

paper-search とは?

paper-search は、複数の公式学術API(arXiv、Semantic Scholar、Europe PMC、OpenAlex)を統合的に検索し、論文の合法的なPDFを読み込み、引用付きのメモを自動生成するAIエージェントスキルです。主にClaude CodeやCursor、CodexなどのAIエージェント環境で動作し、ユーザーが文献レビューや最新技術調査、特定トピックのエビデンス収集を依頼した際に呼び出されます。 このスキルの最大の特徴は、科学的な主張を必ず読み込んだ抽象またはPDFページに基づいて行う点で、エージェントの記憶や二次情報からの推測を禁止しています。検索はクエリを英語に翻訳した上で、トピックに応じて最適なAPIを自動ルーティングします(例:AI/MLならarXiv、生物医学ならEurope PMC)。また、複数論文を扱う文献レビューではバックグラウンドエージェントに読み取りを委譲し、会話を中断せずに処理を進めることができます。 出力は指定されたフォーマットのMarkdownファイルで、各主張に著者、年、DOI、引用元(抽象またはページ番号)を明示します。PDFの読み取りは最大3つまでで、違法なシャドウライブラリ(Sci-Hubなど)は使用しません。環境変数として `SEMANTIC_SCHOLAR_API_KEY` や `PAPER_SEARCH_EMAIL` を設定可能で、レート制限の回避やOpenAlex/Unpaywallの識別子として利用されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yoyiyoniu/my-skills/tree/HEAD/paper-search

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

paper-search は何をしますか?

公式APIを検索し、合法的なPDFを読む。科学的な主張は、このセッションで読んだ抽象またはPDFページに含まれている場合にのみ許可される。記憶、ブログ、その他の二次的な文章から提供してはならない。すべての主張を、それを所有する論文に遡って追跡すること。

年、DOI、引用数はスクリプトの出力から取得する。citations=- の場合、ソースが数を提供しなかったことを意味する。その旨を述べること。推定はしない。

読み取りの委任

文献レビュー、最新技術調査、または複数の論文を必要とするレポートの場合、バックグラウンドエージェントを起動して読み取りを実行させ、この会話を続行できるようにする。単一の論文または既知のDOIの場合はここで処理する。

バックグラウンドエージェントの役割:

  1. 論文自体に対して質問を調査し、二次的な文章を調査しないこと。
  2. 調査結果を単一のMarkdownファイルに書き、各主張の出典を明記すること。
  3. リポジトリが既にそのようなメモを保存している場所に保存すること。既存の規約に従う。規約がない場合は、docs/notes/<topic>.md に書き、保存場所を伝えること。

scripts/papers.py の絶対パス、質問、ドメイン、出力パスを渡す。エージェントは以下のスクリプトを使用し、APIを再実装しない。

スクリプト

scripts/papers.py はこのファイルの隣に配置する。標準ライブラリのみを使用。絶対パスで実行する。

python3 scripts/papers.py search "QUERY" [--domain auto|ml|phys|math|bio|psy|chem] [--limit N] [--year 2020|2020-2024|2020-] [--sort relevance|citations|date] [--abstract]
python3 scripts/papers.py read PDF_URL --pages 1-3 [--out notes.txt]
python3 scripts/papers.py oa 10.xxxx/yyyy

oa は Unpaywall から is_oa= と pdf= を出力する。1回のクエリで --limit は最大10。ヒットリストが間違っている場合はクエリを変更する。ページングは行わない。

オプション: SEMANTIC_SCHOLAR_API_KEY(429エラーを減らす)と PAPER_SEARCH_EMAIL(OpenAlexおよびUnpaywall用)。

ルーティング

検索前にクエリを英語に翻訳する。

トピック--domain最初のソース失敗した場合
AI / ML / NLP / ビジョン / ロボティクス / CSmlarXivSemantic Scholar、次にOpenAlex
物理学 / 天文学physarXivSemantic Scholar、次にOpenAlex
数学matharXivSemantic Scholar、次にOpenAlex
生物学 / 医学 / 遺伝学 / 製薬bioEurope PMCSemantic Scholar、次にOpenAlex
心理学 / 認知科学psyEurope PMCSemantic Scholar、次にOpenAlex
化学 / 材料chemSemantic ScholarOpenAlex
混合または不明瞭autoSemantic ScholarOpenAlex
  • 最新技術、または「最も引用されている」: --sort citations。arXivには引用数がないため、そのソートはSemantic Scholarから開始される。
  • 新しいものは何か: --sort date または --year 2023-。
  • タイトルで指定された論文: その英語タイトルを検索する。--sort relevance の場合、同一タイトルが最初にランク付けされる。

トリアージ

--abstract を付けて検索を実行する。使用する論文のみを保持する。

  • 画期的: 2年以上経過し、多く引用されている。
  • 最近: 過去2年以内で、質問に関連するもの。引用数が少なくてもよい。
  • 周辺的: テーマから外れている。メモから除外する。

読み取り

  1. ユーザーが方法、数値、引用を要求した場合を除き、抽象だけで十分である。
  2. その場合のみPDFを開く: read URL --pages 1-3。末尾については、最後の2~4ページを読む。長さが不明な場合は、1~3ページに留める。ページ番号を推測しない。
  3. ERROR: not a PDF または pdf=(no open PDF…): oa <DOI> を実行し、出力された pdf= を読む。pdf=- の場合、合法的な直接PDFは存在しない。抽象を保持する。ランディングページの url= を論文として扱わない。
  4. 以下のホストは直接読み取り可能: arxiv.org、europepmc.org、ncbi.nlm.nih.gov、大学リポジトリ。その他のホストは最初に oa を経由する。
  5. Sci-Hub、Library Genesis、その他のシャドウライブラリのミラーを使用しない。

実行ごとに最大3つのPDFを読む。質問にさらに必要な場合は、抽象から完了し、開かなかったものをリストする。

メモ

# <質問>

## 調査結果
- 主張は、抽象または指定されたページに記載されている場合のみ。(Vaswani et al. 2017, 10.48550/arXiv.1706.03762, abstract)

## 論文
- **Attention Is All You Need** (2017) — 120404 引用, OpenAlex
  - doi: 10.48550/arXiv.1706.03762
  - pdf: https://arxiv.org/pdf/1706.03762
  - read: abstract only
  - why it is here: そのテキストから抽出した1行

## 未読
- トピック外として除外した論文、または開かなかったPDF。

チャットでは、ファイルを指し示すこと。内容を貼り付けない。ファイルにならない1論文の回答でも同じ引用ルール: 著者、年、DOI、およびそれが抽象からのものか、どのページからのものかを示す。

関連スキル