El corpus jurídico chileno, en formato amigable. Para agentes y humanos.
Control de cambios para toda la historia de la ley chilena. Cada ley, decreto y resolución desde 1810, reconstruida desde la Biblioteca del Congreso Nacional como un repositorio git: una publicación, un commit.
→ Explorar el sitio · Conectar por MCP · El branch con los datos
| Historial | ███████████████████░ 95% · watermark 2026-06-06 · 339,065 / 353,511 buildable · 4,717 excluded (undated/sentinel) |
| Cache | ████████████████████ 100% · 357,264 / 353,511 buildable fetched |
| Last run | 2026-08-12 20:43 UTC |
| Fetch normas | ███████████████████░ 99% · 357,266 / 358,228 normas · complete ✅ |
| Last run | 2026-08-12 20:43 UTC |
Sobre estas barras. Graph Build Status sigue la construcción del grafo de metadatos (
graph.json): la descarga de la metadata de las ~358 mil normas del catálogo BCN. Pipeline Status sigue lo que viene después: cuántas normas tienen ya su historial de versiones reconstruido en la branchhistorial. Los denominadores cuentan sólo normas construibles (con fecha de publicación y al menos una vigencia real); las normas sin fecha o con fechas centinela quedan excluidas.
El sistema LeyChile de la BCN publica textos refundidos — versiones consolidadas que ya incorporan todas las modificaciones — pero sin historial de cambios. Un texto vigente es una foto: no tiene autor, ni fecha de origen por artículo, ni forma de responder «¿qué decía esto en 2013?» o «¿qué cambió, y quién lo cambió?».
Este proyecto reconstruye ese historial. Reescribe la ley chilena como un repositorio git: cada publicación legislativa es un commit, y cada artículo tiene su ventana de vigencia. Eso convierte una investigación en una consulta.
La vista redline: dos versiones de una ley comparadas palabra por palabra — lo eliminado en rojo, lo añadido en verde.
Un servidor MCP remoto sobre todo el corpus, sólo lectura y sin autenticación:
https://leyes.pisanvs.cl/api/mcp
| Herramienta | Qué hace |
|---|---|
search_laws |
Busca normas por texto libre (con organismo + idNorma para desambiguar) |
get_law |
Metadatos + índice de artículos + historial de versiones de una norma |
get_article |
El texto de un artículo en cualquier fecha |
search_articles |
Ubica el artículo relevante dentro de una norma larga |
diff_versions |
Compara dos versiones de una norma |
get_modifications |
Qué normas modificaron a ésta, y a cuáles modifica |
list_versions |
Todas las versiones fechadas de una norma |
Añádelo con un clic desde la portada (Claude, Claude Code, Cursor, VS Code, Codex), o revisa /llms.txt para las instrucciones legibles por agentes.
Cuatro fases idempotentes y resumibles. git (la branch historial) es la única fuente de verdad; Postgres y Meilisearch son modelos de lectura derivados y descartables.
build_catalog.py → catalog.json (BCN SPARQL — todos los idNorma)
fetch_normas.py → graph.json (metadata LeyChile + expansión BFS)
fetch_versions.py → cache/diffs, versions (versiones + diffs por norma)
build_history.py → git fast-import → branch historial
Cada commit en historial representa un evento de publicación: el texto de la norma nueva, más el texto actualizado de cada norma que ésta modificó, más derogaciones y symlinks de sucesión. La GitHub Action pipeline.yml corre las cuatro fases cada 3 horas.
| Branch | Contiene | Montada en |
|---|---|---|
main |
Scripts, config, CI. Nunca datos de leyes. | — |
pipeline-cache (huérfana) |
Versiones y diffs descargados | ./cache/ |
historial (huérfana) |
Los commits de leyes reconstruidos | ./historial/ |
pip install -r requirements.txt
# Pipeline completo (idempotente, resumible)
LEYCHILE_DATA_ROOT=./historial python scripts/run_pipeline.py
# Vista previa de commits, sin importar nada
LEYCHILE_DATA_ROOT=./historial python scripts/build_history.py --dry-run
# Tests (funciones puras — sin red ni git)
python -m pytestVer CLAUDE.md para la arquitectura completa: detección de DATA_ROOT, el modelo cause-centered de commits, la expansión BFS, los enrichers de tramitación, y el port SSR del frontend.
| Fuente | Endpoint | Límite |
|---|---|---|
| BCN SPARQL | https://datos.bcn.cl/sparql |
— |
| LeyChile norma JSON | .../get_norma_json?idNorma=... |
adaptativo |
| LeyChile XML versionado | .../obtxml?opt=7&idNorma={id}&idVersion={fecha} |
1 req/s |
Fecha centinela. LeyChile usa
2222-02-02para versiones abiertas («vigente»). El filtroint(fecha[:4]) <= 2100la descarta.
- Free Law Project — jurisprudencia federal de EE. UU.
- DC Council law-html — Código del Distrito de Columbia en git
- nickvido/us-code
Los textos legales son documentos públicos del Estado de Chile. El código se distribuye bajo licencia MIT.
Auspiciado por kerokero