Llamando a las islas (funciona en cualquier runtime). Cada endpoint a continuación es una simple petición HTTPS GET pública que devuelve JSON — puedes llamarla con cualquier herramienta fetch/HTTP que tengas (por ejemplo, web-fetch). El script incluido
_lib/legal_search.pysolo paraleliza estas mismas llamadas y necesita un shell + red saliente: funciona en Claude Code, pero los runtimes en caja de arena (como el contenedor de Skills de claude.ai) pueden bloquear el tráfico saliente. Si el script está bloqueado, simplemente haz fetch directamente a la URL.Regla de honestidad: solo los datos devueltos por estos endpoints
*.openlegaldata.netson un resultado autoritativo de OpenLegalData. Si no puedes alcanzarlos, dilo claramente — no presentes una respuesta de búsqueda web general como una verificación de OpenLegalData.
Fuentes Legales Mundiales / Comparativas
Cada jurisdicción es una isla independiente en <cc>.openlegaldata.net (código de país ISO aproximado),
construida a partir de fuentes legales gubernamentales oficiales (tribunales + legislación), con
cada campo extraído preservado como metadatos (tribunal, sala, número de decisión, ECLI, fechas, etc.).
El contenido está en el idioma nativo de cada país — busca en ese idioma para obtener mejores resultados.
La lista completa está en skills/_lib/islands.json bajo world (~55 entradas:
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 …).
Cómo usar
Apuntar a una jurisdicción específica (recomendado — preciso + rápido):
python "${CLAUDE_PLUGIN_ROOT:-.}/skills/_lib/legal_search.py" search "protección de datos" --islands https://es.openlegaldata.net --limit 10
Barrido comparativo amplio en paralelo por todas las islas mundiales (por ejemplo, "¿cómo tratan las jurisdicciones el tema X?"):
python "${CLAUDE_PLUGIN_ROOT:-.}/skills/_lib/legal_search.py" search "data protection" --category world --limit 5
Los resultados se etiquetan con _island (el país) para que puedas comparar entre sistemas.
Estrategia
- Jurisdicción conocida → consulta solo esa isla (
--islands https://<cc>.openlegaldata.net). - Pregunta comparativa →
--category worlden paralelo, luego agrupa resultados por_island. - Busca en el idioma de la jurisdicción (alemán para
de, francés parafr/lu/mc, árabe paraeg/dz, etc.) — estos son corpus en el idioma nativo. - La cobertura es de corpus de muestra por fuente (decenas–cientos de documentos cada una), buena para localizar textos representativos principales; no es exhaustiva. Menciónalo cuando sea relevante.
Endpoints
GET /search?q=<términos>&limit=Npor isla;GET /para información + conteos.- Cada resultado incluye metadatos ricos por documento (los campos originales extraídos).
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)