諸島への呼びかけ(任意のランタイムで動作)。 以下の各エンドポイントは、プレーンな公開HTTPS GET でJSONを返します — お手持ちの任意の fetch/HTTP ツール(例:web-fetch)で呼び出してください。付属の
_lib/legal_search.pyはこれらの呼び出しを並列化するだけであり、シェルと外部ネットワークが必要です。Claude Code では動作しますが、サンドボックス環境(例:claude.ai の Skills コンテナ)では外部通信がブロックされる可能性があります。スクリプトがブロックされた場合は、代わりに直接 URL を取得してください。誠実ルール: これらの
*.openlegaldata.netエンドポイントから返されたデータのみが、権威ある OpenLegalData の結果です。エンドポイントに到達できない場合は、その旨を正直に伝えてください — 一般的なウェブ検索の回答を OpenLegalData の検証結果として提示してはなりません。
世界各国・比較法情報源
各法域は、<cc>.openlegaldata.net(ISO準拠の国コード)に独立した「島」として存在し、公式政府法情報源(裁判所+立法機関)から構築され、すべてのスクレイピング済みフィールドがメタデータとして保持されています(裁判所、部局、判決番号、ECLI、日付など)。コンテンツは各国の現地言語 — 最良の検索結果を得るにはその言語で検索してください。
完全なリストは skills/_lib/islands.json の world セクション(約55エントリ:
ad al am ar at au az ba be bg by ca ch coe cy cz de dk dz ee eg es fi fr ge gr hr hu ie is it li lt lu lv mc me mt nl no nz pl pt ro rs se si sk sm tr tw ua uk xk …)にあります。
使い方
特定の法域を対象にする(推奨 — 正確かつ高速):
python "${CLAUDE_PLUGIN_ROOT:-.}/skills/_lib/legal_search.py" search "Datenschutz" --islands https://de.openlegaldata.net --limit 10
全諸島を並列で広範囲に比較検索(例:「各国はXをどう扱っているか?」):
python "${CLAUDE_PLUGIN_ROOT:-.}/skills/_lib/legal_search.py" search "data protection" --category world --limit 5
結果には _island(国)タグが付与され、法体系間の比較が可能です。
戦略
- 法域が特定されている場合 → その島だけをクエリする(
--islands https://<cc>.openlegaldata.net)。 - 比較の質問の場合 → 並列
--category worldを使い、結果を_islandでグループ化する。 - 法域の言語で検索する(
deはドイツ語、fr/lu/mcはフランス語、eg/dzはアラビア語など) — これらは現地言語のコーパスです。 - カバレッジは各情報源のサンプルコーパス(それぞれ数十~数百文書)であり、代表的・象徴的なテキストを見つけるのに適していますが、網羅的ではありません。必要に応じてその旨を明記してください。
エンドポイント
- 各島ごとに
GET /search?q=<terms>&limit=N、GET /で情報と件数を取得。 - 各結果には文書ごとの詳細なメタデータ(スクレイピングされた元のフィールド)が含まれます。
import os, sys; sys.path.insert(0, os.path.join(os.environ.get("CLAUDE_PLUGIN_ROOT","."), "skills/_lib"))
from legal_search import search, REGISTRY
fr = [i["url"] for i in REGISTRY["world"] if i["slug"] == "fr"]
hits = search("responsabilité du fait des produits", islands=fr, limit=10)