document-hunter について
document-hunterは、無料の公開アーカイブから一次資料を探してダウンロードするブラウザー自動化スキルです。資料や出典メタデータを整理し、不足資料を報告したい研究者向けです。
主な機能
- 01複数の公開アーカイブを検索
- 02PDFや記録文書をダウンロード
- 03メタデータ付きマニフェストを作成
- 04未発見の資料を報告
- 05Playwrightによるブラウザー自動化
活用シーン
- 01事件の裁判資料の検索
- 02アルバム調査用の資料収集
- 03ダウンロード資料とURLの整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bitwize-music-studio/ claude-ai-music-skills --skill document-hunterインストール後、Claude Code で/document-hunterを入力して読み込まれたか確認します。
同梱ファイルsite-patterns.md
詳細
タスク
入力:$ARGUMENTS
無料の公開アーカイブから一次資料を体系的に検索してダウンロードする、自動ドキュメントハンターとしてブラウザー自動化(Playwright)を使用します。
呼び出されたとき:
- 必要な文書を特定する — 事件名、アルバムの調査ニーズ、または明示されたリクエストに基づいて判断します
- すべての無料ソースを体系的に検索する — DocumentCloud、CourtListener、Scribd、Justia、政府サイト
- 見つかった文書をすべてダウンロードする — PDF、証言録取書、訴状、起訴状、報告書
- メタデータとともに整理する — 見つかった文書とその入手先を示すマニフェストを作成します
- 結果を報告する — 見つかったもの、未発見のもの、品質評価
補足ファイル
- site-patterns.md - サイト別の自動化手順とコードテンプレート
Document Hunter - ブラウザー自動化エージェント
複数の無料公開アーカイブから一次資料を探し出す、手間のかかる作業を自動化します。
重要な免責事項:
- Playwright が必要です(
pip install playwright && playwright install chromium) - アーカイブの利用状況は時間とともに変化します
- ボット対策が導入されているソースもあります(代替手段は文書に記載されています)
- ダウンロードした文書が想定した内容と一致することを必ず確認してください
基本原則
- 米国連邦裁判所の文書はパブリックドメインです — 著作権がなく、自由に再配布できます
- Playwright の機能を最大限に活用する — ボタンのクリック、JavaScript の実行待ち、レンダリング済み DOM からの抽出
- 2 段階のアプローチ:まず直接ダウンロード(高速)、次にブラウザー自動化(徹底的)
- 既知の障害要因を避ける:SEC.gov には Akamai WAF があるため、代替手段を使用します
- サイトごとに複数の方法を試す:1 つの方法が失敗したら、別の方法を試します
無料ソース(検索順)
| ソース | URL | 主な用途 |
|---|---|---|
| DocumentCloud | documentcloud.org | ジャーナリストがアップロードした PACER 文書 |
| CourtListener | courtlistener.com | RECAP のクラウドソーシング文書 |
| Scribd | scribd.com | ユーザーがアップロードした裁判文書 |
| Justia | justia.com | 控訴裁判所の判決 |
| DOJ | justice.gov | 起訴状、プレスリリース |
| SEC | sec.gov/litigation | 訴状、和解 |
各ソースの自動化手順については、site-patterns.md を参照してください。
文書の保存方針
⚠️ 一次資料の PDF は Git にコミットしないでください(サイズが大きすぎます)
保存場所
PDF は {documents_root}/artists/[artist]/albums/[genre]/[album]/ に保存します(content_root から複製した構造)。
{documents_root}/artists/[artist]/albums/[genre]/[album]/
├── indictment.pdf
├── plea-agreement.pdf
└── manifest.json
Git に保存するもの(アルバムの SOURCES.md 内):
- ページ番号付きの引用文
- ソース URL
- 外部 PDF の保存場所への参照
.gitignore に記載するもの(設定済み):
# Primary source PDFs - too large for Git
*.pdf
primary-sources/
ワークフロー
フェーズ 1:セットアップ
# Check Playwright
pip list | grep playwright
# Install if needed
pip install playwright beautifulsoup4 requests
playwright install chromium
文書の保存先を解決します:
resolve_path("documents", album_slug)を呼び出します —{documents_root}/artists/{artist}/albums/{genre}/{album}/を返します- ディレクトリを作成します:
mkdir -p {resolved_path}
フェーズ 2:検索
以下を行う Python スクリプトを生成して実行します:
- すべての無料ソース(DocumentCloud、CourtListener、Scribd など)を検索します
- 見つかった文書をすべてダウンロードします
- メタデータ付きのマニフェストを作成します
- 見つかったものを報告します
コードテンプレートについては、site-patterns.md を参照してください。
フェーズ 3:結果の報告
DOCUMENT HUNT COMPLETE
======================
Case: [case name]
Date: [date]
DOCUMENTS FOUND: X
- documentcloud_indictment.pdf (2.3 MB) - DocumentCloud
- courtlistener_complaint.pdf (1.1 MB) - CourtListener
- doj_press_release.pdf (0.5 MB) - DOJ
SOURCES SEARCHED:
✓ DocumentCloud - 3 documents
✓ CourtListener - 1 document
✓ Scribd - 0 documents
✓ DOJ - 1 document
⚠ SEC - blocked (use DOJ alternative)
STILL NEEDED:
- Trial transcript (not found in free sources)
- Sentencing memo (may require PACER)
MANIFEST: {documents_root}/artists/[artist]/albums/[genre]/[album]/manifest.json
RECAP 拡張機能
RECAP ブラウザー拡張機能は、PACER 文書をクラウドソーシングで共有します。
機能:
- 誰かが PACER 文書を閲覧すると、RECAP が CourtListener にアップロードします
- その後、無料でダウンロードできます
場所:${CLAUDE_PLUGIN_ROOT}/tools/extensions/recap-extension/
セットアップ:
cd tools/extensions
curl -L "https://github.com/freelawproject/recap-chrome/releases/download/2.8.6/chrome-release.zip" -o recap.zip
unzip recap.zip -d recap-extension
rm recap.zip
出力構成
{documents_root}/artists/[artist]/albums/[genre]/[album]/ 内(Git 管理対象外):
{documents_root}/artists/[artist]/albums/[genre]/[album]/
├── manifest.json # Complete catalog with metadata
├── documentcloud_*.pdf # From DocumentCloud
├── courtlistener_*.pdf # From CourtListener
├── doj_*.pdf # From DOJ
└── download-documents.py # Reproducibility script
{content_root}/.../[album]/SOURCES.md 内(Git 管理対象):
- ページ番号付きの引用文
- 各文書のソース URL
- 次のような参照:
PDF: {documents_root}/artists/[artist]/albums/[genre]/[album]/indictment.pdf
マニフェスト形式
{
"case_name": "Dorr et al. v. USIA",
"search_date": "2025-01-23T12:00:00",
"sources_searched": ["DocumentCloud", "CourtListener", "DOJ"],
"documents_found": [
{
"source": "DocumentCloud",
"title": "Great Molasses Flood Investigation",
"filename": "documentcloud_molasses_investigation.pdf",
"url": "https://...",
"size": 2400000
}
]
}
トラブルシューティング
サイトがブロックされている場合
- SEC.gov:代わりにDOJのプレスリリースを使用します(同じ文書へのリンクです)
- Scribd:アカウントが必要な場合があります。作成するか、スキップしてください
- CourtListener:RECAPにない場合、文書の入手にはPACERが必要です
検索結果が見つからない場合
- 別の検索語(当事者名、事件番号)を試します
- 事件が古すぎないか確認します(デジタル化前のアーカイブ)
- 文書が封印されている事件もあります
ダウンロードに失敗する場合
- サイトへのログインが必要か確認します
- ボタンをクリックする代わりに、URLから直接ダウンロードしてみます
- レート制限を確認します
覚えておくこと
- まず無料の情報源を徹底的に探します - PACERはページごとに料金がかかります
- メタデータを保存します - 引用用のURL、日付、情報源
- PDFをコミットしないでください - Gitには大きすぎます
- ダウンロード内容を確認します - 想定した文書と一致していることを確認します
- 見つからなかったものを記録します - 手動での追加調査が必要な項目を記載します