# research vault
研究ノートの Obsidian vault。運用ルールは [`CLAUDE.md`](CLAUDE.md) を参照。
## セットアップ
`wiki-ingest-paper` 等の PDF 取り込み系スキルを動かすには、以下のツールが必要。
### poppler(PDF テキスト抽出、`pdftotext`)
```bash
brew install poppler
```
### Node.js(PDF 画像抽出、`scripts/extract-paper-images.mjs`)
```bash
mise use node@latest
mise use npm@latest
npm install
```
### Python(各種 `scripts/*.py`)
```bash
mise use python@latest
```
### uv + PyMuPDF + Pillow(図表クロップ・コンタクトシート、`scripts/crop-paper-figures.py` `scripts/contact-sheet.py` `scripts/wiki-profile.py`)
```bash
mise use uv@latest
uv pip install pymupdf pillow
uv venv
```
### Obsidian CLI(vault 操作の既定トランスポート、`wiki-cli` スキル)
`wiki-ingest-*` 系スキルが vault へ書き込む際の既定トランスポート。Obsidian 1.12 以降に同梱される `obsidian-cli` バイナリを使う。未導入の場合は filesystem 直接編集にフォールバックするため必須ではないが、導入すると Obsidian 側の各種操作(daily note、backlinks、tags 等)が高速化される。
```bash
# Obsidian を 1.12 以降にアップデートすれば obsidian-cli は自動的に使えるようになる
# 参考実装(kepano/obsidian-skills)を使う場合:
claude plugin marketplace add kepano/obsidian-skills
```
導入状況は `bash scripts/detect-transport.sh` で確認できる。
### 動画・スライド音声の取り込み(任意、`wiki-ingest-video` / `wiki-ingest-slides`)
動画 URL のダウンロード・音声抽出・文字起こしに使う。未導入でも各スクリプトは `command -v` で存在確認をして警告つきでスキップするため必須ではないが、フル機能を使うには以下を導入する。
```bash
brew install yt-dlp ffmpeg
pip install openai-whisper # または whisper-cpp
```
### Wiki Lens(`wiki/` の可視化、Obsidian プラグイン)
`.obsidian/plugins/wiki-lens/` にソース同梱の自作プラグイン。ビルド済み `main.js` と `styles.css` はリポジトリにコミット済みで、`.obsidian/community-plugins.json` にも登録済み。通常利用に `npm install` や再ビルドは不要。索引の事前生成も不要で、Obsidian のメタデータキャッシュと `wiki/log.md` だけを読む。
vault を初めて開いたときは制限モードのため、コミュニティプラグインが読み込まれないことがある。設定 → Community plugins で Restricted mode をオフにし、Wiki Lens が有効であることを確認する。
- 要件: Obsidian ≥ 1.5.0、デスクトップ版のみ。グラフ系ビューは WebGL を使う。WebGL が無い場合はビュー内のメッセージ表示に縮退する。
プラグイン自体を改修するときだけ、プラグインディレクトリで依存を入れてビルドする。ルートの `npm install` ではこのパッケージは入らない。Node はリポジトリルートの mise 設定(Node 26。ルート `package.json` の `engines` は `>=22.13.0`)を使う。`package-lock.json` と `node_modules/` は git 管理外。
```bash
cd .obsidian/plugins/wiki-lens
npm install
npm run build # 型検査つきの本番ビルド。npm run dev は変更のたびに再ビルド
npm test # vitest
```
Obsidian を起動したまま反映するときは `obsidian plugin:reload id=wiki-lens`。