Skip to content

Releases: LautaroMoya25/citador-ar-mcp

v0.1.2 — Corpus CSJN, tomos 330-349

Choose a tag to compare

@LautaroMoya25 LautaroMoya25 released this 03 Sep 19:38

Primer corpus publicado del citador: el grafo de citas de la Corte Suprema
argentina, con la clasificación de cómo cada fallo trató a los anteriores.

Qué es este archivo

corpus.db es un SQLite de 41 MB con el grafo ya construido. El servidor MCP
sólo lo lee: la ingesta es un proceso batch aparte, así que las respuestas no
cambian entre llamadas.

gh release download v0.1.2 --repo LautaroMoya25/citador-ar-mcp --pattern corpus.db --dir data
export CITADOR_DB="$PWD/data/corpus.db"

Procedencia

Crawleado el 2 de septiembre de 2026 de la Secretaría de Jurisprudencia de
la CSJN (sjconsulta.csjn.gov.ar), tomos 330 a 349 (2007-2026). Las aristas
no salen de adivinar citas en el texto: las publica la propia Corte, en el campo
linksCitantes de cada sumario.

Nodos 7.953 — 5.325 fallos crawleados y 2.628 stubs
Aristas de cita 73.611
Con postura distinta de mentioned 1.507 (2,0 %)
Atribuidas a un voto 10.444 (14,2 %), de ellas 7.157 a la mayoría
Con texto propio 391 (387 del PDF, 4 por OCR)

La misma información está grabada en la tabla corpus_meta del archivo, la
calcula el pipeline y la devuelve la resource citador://corpus.

La letra chica, que importa más que los totales

  • El 98,0 % de las aristas quedó en mentioned, que significa no
    clasificada
    — no "citada sin tomar postura". Una señal gris dice que no se
    sabe, nunca que el precedente esté confirmado, y las tools lo escriben así en
    cada respuesta.
  • Sólo la mayoría enciende la señal. El dictamen del Procurador, los votos
    propios y las disidencias se segmentan aparte. De 73.611 aristas, 7.157 son de
    la mayoría; el resto no mueve el semáforo.
  • Un stub no es un fallo. Es una posición citada desde adentro del rango pero
    ubicada afuera: se conoce la cita y nada más.
  • El abandono implícito no se detecta. Si la Corte se aparta de un precedente
    sin citarlo, no hay cita que clasificar. Pasa en la propia cadena de demo.
  • abandoned es deliberadamente conservador. El clasificador prefiere no
    detectar un abandono antes que inventar uno: en el set anotado a mano da cero
    rojos falsos y un abandono no detectado, y ese es el intercambio buscado. Un
    rojo falso le hace perder al abogado una autoridad que tenía.

Verificación

243 tests, ruff, mypy --strict sobre domain/, y las 10 evals corren contra
este mismo archivo. La cadena de la tenencia para consumo personal —
Colavini → Bazterrica → Montalvo → Arriola — se reconstruye completa, con
Montalvo en rojo y Bazterrica en amarillo por haber sido abandonado y retomado.

Atribución y alcance

Corpus derivado de fallos públicos de la CSJN, que es la fuente y a quien se
atribuye. El software va con licencia MIT.

No es asesoramiento legal. Es una herramienta de investigación. Toda
afirmación es auditable contra el pasaje que la generó y toda respuesta lleva su
confianza. Verificá el texto antes de usarla en un escrito.


Cambios sobre 0.1.0

0.1.0 fue retirada. Su sdist incluía dos documentos de trabajo internos, y un
sdist publicado no se puede reemplazar.

Esta versión además corrige tres defectos que aparecieron al publicar:

  • Los errores accionables no llegaban al cliente. El SDK conserva el texto de
    un ToolError y reemplaza cualquier otra excepción por Error executing tool.
    Toda la mensajería útil se perdía antes de llegar al modelo, incluida la que
    explica cómo generar el grafo — lo primero que ve quien instala el paquete.
  • Las URLs del paquete apuntaban a un usuario de GitHub inexistente.
  • El CI nunca había corrido: disparaba en main y la rama es master. Ahora
    corre en 3.11, 3.12 y 3.13, y el release exige pasarlo antes de subir nada.

Cambios sobre 0.1.1

Los siete tratamientos criticized del corpus eran falsos, sin excepción. La
regla enganchaba "es objetable" en la cláusula y le atribuía la crítica al
precedente citado, cuando lo objetado era la conclusión del tribunal a quo, una
ley, o la aplicación ilegal de una norma válida — y el precedente estaba invocado
a favor, dos veces con un "conf. doctrina de" delante.

Producían seis señales amarillas falsas: seis precedentes marcados "vigente
con reservas" que la Corte estaba aplicando en ese mismo pasaje. Un amarillo
indebido le hace perder al abogado autoridad que tenía.

Dos aristas se recuperaron como applied, que es lo que el pasaje sostiene. El
amarillo baja de 24 a 18 y no se movió nada más: medido sobre las 73.606 aristas
clasificadas por reglas, cambian siete.

Queda una guarda nueva de cita de apoyo, acotada a la cláusula de la cita
—un fallo puede citar un precedente a favor y distinguirlo en el considerando
siguiente, y eso se sigue registrando— y reclassify_stored ahora puede
retirar un veredicto cuando la regla que lo produjo resultó equivocada.

v0.1.1 — Corpus CSJN, tomos 330-349

Choose a tag to compare

@LautaroMoya25 LautaroMoya25 released this 03 Sep 19:14

Primer corpus publicado del citador: el grafo de citas de la Corte Suprema
argentina, con la clasificación de cómo cada fallo trató a los anteriores.

Qué es este archivo

corpus.db es un SQLite de 41 MB con el grafo ya construido. El servidor MCP
sólo lo lee: la ingesta es un proceso batch aparte, así que las respuestas no
cambian entre llamadas.

gh release download v0.1.1 --repo LautaroMoya25/citador-ar-mcp --pattern corpus.db --dir data
export CITADOR_DB="$PWD/data/corpus.db"

Procedencia

Crawleado el 2 de septiembre de 2026 de la Secretaría de Jurisprudencia de
la CSJN (sjconsulta.csjn.gov.ar), tomos 330 a 349 (2007-2026). Las aristas
no salen de adivinar citas en el texto: las publica la propia Corte, en el campo
linksCitantes de cada sumario.

Nodos 7.953 — 5.325 fallos crawleados y 2.628 stubs
Aristas de cita 73.611
Con postura distinta de mentioned 1.513 (2,1 %)
Atribuidas a un voto 10.444 (14,2 %), de ellas 7.157 a la mayoría
Con texto propio 391 (387 del PDF, 4 por OCR)

La misma información está grabada en la tabla corpus_meta del archivo, la
calcula el pipeline y la devuelve la resource citador://corpus.

La letra chica, que importa más que los totales

  • El 97,9 % de las aristas quedó en mentioned, que significa no
    clasificada
    — no "citada sin tomar postura". Una señal gris dice que no se
    sabe, nunca que el precedente esté confirmado, y las tools lo escriben así en
    cada respuesta.
  • Sólo la mayoría enciende la señal. El dictamen del Procurador, los votos
    propios y las disidencias se segmentan aparte. De 73.611 aristas, 7.157 son de
    la mayoría; el resto no mueve el semáforo.
  • Un stub no es un fallo. Es una posición citada desde adentro del rango pero
    ubicada afuera: se conoce la cita y nada más.
  • El abandono implícito no se detecta. Si la Corte se aparta de un precedente
    sin citarlo, no hay cita que clasificar. Pasa en la propia cadena de demo.
  • abandoned es deliberadamente conservador. El clasificador prefiere no
    detectar un abandono antes que inventar uno: en el set anotado a mano da cero
    rojos falsos y un abandono no detectado, y ese es el intercambio buscado. Un
    rojo falso le hace perder al abogado una autoridad que tenía.

Verificación

243 tests, ruff, mypy --strict sobre domain/, y las 10 evals corren contra
este mismo archivo. La cadena de la tenencia para consumo personal —
Colavini → Bazterrica → Montalvo → Arriola — se reconstruye completa, con
Montalvo en rojo y Bazterrica en amarillo por haber sido abandonado y retomado.

Atribución y alcance

Corpus derivado de fallos públicos de la CSJN, que es la fuente y a quien se
atribuye. El software va con licencia MIT.

No es asesoramiento legal. Es una herramienta de investigación. Toda
afirmación es auditable contra el pasaje que la generó y toda respuesta lleva su
confianza. Verificá el texto antes de usarla en un escrito.


Cambios sobre 0.1.0

0.1.0 fue retirada. Su sdist incluía dos documentos de trabajo internos, y un
sdist publicado no se puede reemplazar.

Esta versión además corrige tres defectos que aparecieron al publicar:

  • Los errores accionables no llegaban al cliente. El SDK conserva el texto de
    un ToolError y reemplaza cualquier otra excepción por Error executing tool.
    Toda la mensajería útil se perdía antes de llegar al modelo, incluida la que
    explica cómo generar el grafo — lo primero que ve quien instala el paquete.
  • Las URLs del paquete apuntaban a un usuario de GitHub inexistente.
  • El CI nunca había corrido: disparaba en main y la rama es master. Ahora
    corre en 3.11, 3.12 y 3.13, y el release exige pasarlo antes de subir nada.