The project's README from github.com/MaryCache/imozuru. As one markdown file: README.md.
日本語 | English
imozuruは、知らない分野を、原文にたどりつくまで芋づる式に掘るClaude Codeのスキルです。 Batesのberrypicking、Ellisの探索行動のモデル、Kuhlthauの探索過程の研究など、図書館情報学の情報探索の研究から、考え方を応用しています。
スキルなしで「調べて」と頼むと、LLMは検索上位の数件を読んで要約を返します。 要約はすぐに読めますが、判断に必要な細部が落ちやすい欠点を抱えています。 分野の用語を知らないうちは検索語も選べないため、最初に思いついた言葉の範囲から先へ進めません。
imozuruはまず分野の用語、中心にいる人、知見が集まる場を押さえ、そこから引用やリンク、著者をたどって原文を集めます。 集めた原文は要約せずに保存し、答えに必要な主張ごとに「どのファイルの何行目か」を示すに留まります。 原文を読んで判断するのは、ユーザー自身です。
flowchart LR
A[問いと<br>要る主張を書く] --> B[地図づくり<br>用語・人・場]
B --> C[たどる<br>引用・リンク・著者]
C --> D[原文を落とす]
D --> E{要る主張に<br>原文が付いた?}
E -- まだ --> C
E -- 付いた・飽和した --> F[抜き書きの<br>ページを作る]
Claudeはまず、問いと、答えるために必要な主張を3〜6個書き出します。
次に、探し方を変えた2本の検索役(Webを検索するサブエージェント)で用語、人、場を集め、地図(map.md)にまとめます。
その後、原文が見つかるまで参考文献や被引用、著者をたどっていきます。
論文のない分野では、記事の中のリンクや「〇〇さんの記事を参考にした」という記述をたどります。
見つけた原文は sources/ に保存し、404やログインを求めるページは中身を見て除きます。
すべての主張に原文が付くか、新しい資料が出てこなくなったら探すのをやめます。
最後に、原文から切り出した文を主張ごとに並べたページ(抜き書きのページ)を作ります。
見張りのモードでは、掘って見つけた場(QiitaやZennのタグ、note、YouTube、ブログ、arXiv)の新着をRSSで集めて並べます。
skills のCLIで入れられます。
npx skills add MaryCache/imozuru
手動の場合は、skills/imozuru/ を ~/.claude/skills/imozuru/ にコピーしてください。
スクリプトはPython 3.10以上の標準ライブラリだけで動き、次のコマンドは入っていれば使います。
| コマンド | 使う場面 | 入っていない場合 |
|---|---|---|
pdftotext(popplerかXpdf) |
PDFから本文を取り出す | PDFの本文が取れず FAIL になる |
pdftoppm(popplerかXpdf)と tesseract |
文字の層がない古いPDFをOCRにかける | そのPDFは FAIL になる |
yt-dlp |
YouTubeの字幕を取得する | 動画は FAIL になる |
| ax | HTMLをmarkdownにする | 標準ライブラリで文字だけを取り出す(見出しや表の形はaxのほうがよく残る) |
引用をたどる chain.py は OpenAlex のAPIを使いますが、APIキーは必要ありません。
Claude Codeで、次のように頼みます。
芋づる式に調べて: 歌ってみたのMIXで、上手い人がどういう順番で処理しているか
Gaussian Splattingってよく聞くけど全然わからない。論文とか解説の流れを掘ってほしい
/imozuru watch react
結果は ~/research/<話題>/ に、次の形で保存されます。
map.md 問い・要る主張・用語・人・場・原文の表・次の手がかり
log.md 周ごとに、何を探して何が出たか・判断とその理由
sources/ 落とした原文
extracts.json 抜き書き
report.html 抜き書きのページ
抜き書きのページの見本は examples/demo/ にあり、次のコマンドでスクリプトだけを試せます。
python3 skills/imozuru/scripts/report.py examples/demo
Kuhlthau(1991)は、調べ始めの混乱した段階で詳しくまとめると、早すぎる閉じ(premature closure)を招き、探索の過程が妨げられると述べています。 そのためimozuruは、原文の場所を示すところまでにとどめています。
止める条件は2つです。 1つ目は、すべての主張に原文の場所が付くことで、証拠がそろったかで止めどきを決めるRohとHan(2026)のHALTにならいました。 主張が甘くならないよう、少なくとも1つは依頼の言葉の条件をそのまま含め、半分以上は原文を読まないと答えられない形にしています。
2つ目は飽和で、2本の検索役が挙げた資料の7割以上がすでに地図にあれば止めます。 独立した2回の探索の重なりから全体の数を見積もる考え方(Kastner 2007)を借りたもので、7割は試しながら決めた仮の目安です。
Zhouら(2026)のHypoSearchによると、AIの検索は方向がいくつもありうる段階で1つを選び、後の検索でもその道を選び続けて失敗しがちです。 そこで迷ったときは、別の仮説を持たせた検索役を2本並べ、結果を比べてから進みます。
塗り方やMIXのように論文がほとんどない分野では、知見の多くが個人のブログや動画にあります。 imozuruはそうした記事も論文と同じようにたどるので、保存した原文には次の印を付け、どれを信じるかはユーザーに任せています。
原文を何十本も保存しただけでは、どこから読めばよいか分かりません。
そこでEllisのモデルにある抜き書き(extracting)にならい、主張ごとに原文の該当部分を切り出したページを作ります。
report.py は、切り出した文が原文の指定の行にそのまま在るかを照合し、1語でも違えばページを作りません。
スキルの各決まりがどの論文のどこから来ているかは、skills/imozuru/references/theory.md にまとめています。
MIT