Desde que inicié este proyecto he insistido mucho en una idea que para algunos puede sonar utópica: la programación como parte de la solución al colapso de nuestros tribunales. Hemos hablado de cómo automatizar tareas mecánicas nos devuelve lo más valioso que tenemos, que es el tiempo para pensar, para estudiar y para motivar resoluciones con la calidad que los ciudadanos merecen.
Sin embargo, soy consciente de que hasta ahora todo esto ha quedado en un plano algo abstracto y general. Es fácil decir que la programación ayuda, pero lo difícil es visualizar cómo se traduce eso en el escritorio de un juez un martes por la mañana rodeado de expedientes.
Por eso, he decidido crear esta entrada, donde voy a abrir las puertas de mi juzgado y de mi ordenador. Quiero enseñaros las herramientas reales que he ido creando y que utilizo en mi día a día. No son prototipos ni teorías: son herramientas que hoy mismo están funcionando para que mi trabajo sea más ágil y menos burocrático.
De algunas de estas herramientas ya he ido dando algunas pinceladas en otras entradas de este blog, pero hoy quiero ir un paso más allá y presentarlas de forma más estructurada. Anticipo que aquí me limitaré a explicar las herramientas tal como son y la utilidad que me prestan en mi trabajo diario. No obstante, para algunas de ellas, por su interés y profundidad técnica, les dedicaré más adelante una entrada específica para explicar detalladamente su funcionamiento interno.
Calculadora de duración de juicios
Para empezar por lo más sencillo, os presento una herramienta que nació de una necesidad puramente logística: el control de los señalamientos que nos llegan desde los juzgados de instrucción.
Como sabéis, los juicios rápidos vienen ya señalados desde la guardia, pero para que la agenda de la sala no se convierta en un caos, por Junta de Jueces fijamos criterios de duración. Tanto para ayudar a señalar en base a tales criterios, como a controlar que los asuntos recibidos se ajustaban a ellos, nació la calculadora.
La interfaz es muy simple y directa. Como veréis en la imagen que acompaña esta entrada, me permite insertar desde el número de partes personadas, el número de intervinientes (testigos, peritos, etc.) y la duración estimada de las grabaciones que se van a reproducir. Con estos datos, la herramienta aplica automáticamente los criterios de la Junta y me devuelve el tiempo total de duración previsto para esa vista. No hay margen de error humano en el cálculo: lo que dice el criterio es lo que la calculadora arroja.
Autos de prisión
Si algo es el pan de cada día en un Juzgado de lo Penal son los autos de prisión, pues no son pocos los casos en los que es necesario adoptar esta medida para asegurar la presencia de los acusados en juicio. Con el objetivo de agilizar esta redacción técnica y repetitiva, desarrollé una herramienta que gestiona los distintos escenarios en los que suelo acordar estas medidas.
La herramienta no es un simple editor de texto, sino un sistema basado en la casuística real de mi juzgado. El programa contempla varias opciones iniciales que, al ser seleccionadas, despliegan campos específicos y cargan plantillas predefinidas: prisión por incomparecencia a juicio, prisión por no comparecer a dos conformidades, prisión por no comparecer tras requisitoria en la que se le requiere para presentarse el siguiente día hábil... Dependiendo de la opción elegida, el sistema genera unos desplegables dinámicos que me permiten montar la estructura del auto de forma lógica y rápida.
Lejos de ver estas modificaciones manuales como un fallo del programa, creo que confirman la visión que he mantenido siempre respecto del uso de la tecnología en justicia: la tecnología debe proporcionarnos una base sólida sobre la que poder trabajar. El código me ahorra el 80% del trabajo mecánico de formato y estructura, permitiéndome volcar toda mi atención en ese 20% de detalles específicos que justifican una decisión tan trascendental.
Sistema integral de documentación de conformidades
Hasta ahora, hemos expuesto herramientas muy concretas y focalizadas en resolver problemáticas específicas, pero ahora vamos a elevar el nivel y a hablar de una herramienta diseñada para gestionar lo que constituye un núcleo importante del volumen de trabajo en un Juzgado de lo Penal: las conformidades
En mi entrada Cuadernos de Bitácora ya tuve ocasión de hablar sobre esta herramienta, pues ha sido la génesis de mi labor como juez-programador. Dicha herramienta consiste en un sistema informático pensado para la documentación ágil, precisa y coordinada de esas resoluciones orales que, al nacer del libre acuerdo entre las partes, son firmes desde el mismo momento de su pronunciamiento
La herramienta garantiza una documentación integral en escenarios de procedimiento abreviado, juicio rápido o diligencias urgentes, permitiendo gestionar de forma fluida un número ilimitado de partes procesales, desde acusados y acusaciones particulares hasta responsables civiles
Lo que realmente marca la diferencia en el día a día es la capacidad del programa para procesar una complejidad que los modelos de texto tradicionales no pueden abarcar con seguridad
La verdadera potencia de este desarrollo reside en su coordinación documental simultánea
Desde un punto de vista metodológico, una de las mayores ventajas es que el sistema elabora cada resolución desde cero basándose en los datos suministrados, lo que suprime de raíz los errores materiales tan comunes que derivan de la reutilización de plantillas o del "copia y pega" de otros casos
Por su interés y profundidad técnica, quiero anticipar que dedicaré más adelante una entrada específica para explicar su funcionamiento interno y la arquitectura que permite esta integración.
Asistente para la ejecución penal
El asistente para la ejecución penal es mi última creación, y se trata de una herramienta diseñada específicamente para analizar, extraer y estructurar todos los datos de la hoja de antecedentes penales en formato PDF, descargada directamente del sistema SIRAJ
El funcionamiento técnico comienza con la carga del documento, tras lo cual el programa extrae automáticamente todo su contenido y organiza la información sistemáticamente en la memoria, clasificando cada antecedente por órgano sentenciador, penas impuestas, duración y fechas clave como la firmeza o la extinción
Más allá de la simple organización, la aplicación realiza un análisis jurídico-matemático basado en el artículo 136 del Código Penal, indicando junto a cada antecedente si es o no cancelable
Esta base de datos estructurada alimenta tres módulos especializados para la elaboración de resoluciones: el de suspensión, que cubre todas las modalidades del Código Penal; el de revocación, para gestionar incidencias como la comisión de nuevos delitos; y el de responsabilidad personal subsidiaria, para resolver las consecuencias del impago de multas
La herramienta resulta especialmente eficaz porque permite referenciar otros asuntos de la hoja histórico-penal con un solo clic, automatizando cálculos complejos como la regla de conversión del artículo 80.3 del Código Penal o el cálculo de la responsabilidad personal subsidiaria aplicable
Como añadido, esta aplicación está pensada para adaptarse al criterio de cada usuario, pues le permite introducir sus propias plantillas de razonamiento jurídico para que el programa las use como base en futuras ocasiones. De este modo, el sistema se convierte en un reflejo fiel del criterio personal del juzgador.
Finalmente, un aspecto fundamental es su arquitectura completamente local y autónoma, lo que significa que el programa funciona sin conexión a internet y no transmite datos a servidores externos ni utiliza inteligencia artificial, garantizando una protección absoluta de la confidencialidad de la información judicial
Asistente para el dictado de sentencias con IA (proyecto en desarrollo)
Tras haberos enseñado herramientas plenamente funcionales y aplicadas al día a día de mi juzgado, ahora vamos a abordar el proyecto en el que llevo varios días trabajando.
Antes de entrar en detalles, quiero ser muy claro: este es un proyecto en fase de desarrollo. Se trata de un proyecto en fase de optimización, donde la depuración del código y el refinamiento de los prompts son constantes para alcanzar la precisión que exige la función jurisdiccional No es una solución cerrada, sino un experimento vivo de cómo la programación puede asistirnos en la tarea más compleja de nuestra profesión.
Cuando nos enfrentamos a la redacción de una resolución judicial, tendemos a pensar que todo el texto es fruto de un profundo proceso intelectivo de motivación. Sin embargo, si analizamos fríamente una sentencia, nos damos cuenta de que una parte muy importante de su extensión no es más que la reproducción de datos que otras personas ya han elaborado previamente, o la expresión cronológica de ciertos hitos procesales.
De aquí es de donde nace este proyecto, que no pretende sustituir el criterio del juez, sino extraer esa información previa, a menudo dispersa en PDFs y notas, y estructurarla de forma coherente para que no tengamos que perder tiempo en tareas de mera transcripción.
El proceso comienza con una primera fase de introducción de datos, donde se cargan los archivos de los escritos de acusación y defensa además de aquellas directrices que el usuario introduce manualmente.
A continuación, el sistema realiza un análisis mediante la API de Gemini para crear lo que llamo un Dossier de Hechos Atómicos, que no es más que una lista organizada donde cada dato queda etiquetado y aislado para que el programa "entienda" los componentes del caso
Por el momento la motivación y la valoración de la prueba son apartados que el programa deja siempre libres para que el usuario los desarrolle manualmente. No obstante, mi objetivo es que en un futuro el asistente también pueda colaborar en el bloque de la motivación. La dinámica que busco implementar consiste en que el usuario exponga de forma directa su decisión y detalle los criterios específicos que le han llevado a tomarla, dejando que el programa se encargue únicamente de la función mecánica de la redacción, sin innovar ni aportar nuevos criterios.
Así, por ejemplo, la idea que tengo en mente es que el usuario pudiera introducir como Decisión, "Condenatoria" y en el apartado de motivación desgranar uno a uno todos los argumentos que le llevan a tal decisión (porque el testigo ha sido muy creíble y su testimonio goza de gran verosimilitud al no haber incurrido en contradicción, y haber incluso preferido reconocer que no recordaba algún extremo antes que embellecer su relato para perjudicar al acusado; porque consta el documento obrante en el folio 34 que acredita tal extremo; porque en la grabación se ve claramente al acusado golpear a la víctima; porque el perito que ha declarado en juicio ha explicado de forma muy detallada y concisa la afectación específica que padecía...)
Desde mi punto de vista, una sentencia es la exposición cohesionada de ideas muy simples, y considero que el hecho de que el juez exponga materialmente tales ideas concretas para que la inteligencia artificial se encargue de cohesionarlas, sin apartarse en ningún momento del camino marcado, no transgrede en ningún caso la esencia que subyace en el ejercicio de la función jurisdiccional.
La decisión final y los argumentos íntimos que han llevado a tomarla forman parte de un proceso reflexivo que es completamente humano e inaccesible para la tecnología, y la herramienta solo se ocuparía de dar forma a un fondo que el magistrado ya ha decidido y delimitado previamente.
En todo caso, y como siempre, el programa únicamente ofrecería al usuario un borrador de resolución, el cual debería ser revisado y corregido minuciosamente por el usuario, decidiendo con qué partes de la propuesta se queda y cuáles decide desechar.
Una dinámica que ya tengo incorporada es que no se permite a la inteligencia artificial añadir en la motivación la cita de ningún tipo de jurisprudencia, salvo la que el usuario le indique específicamente, con tal de reducir el riesgo de alucinaciones.
Un aspecto fundamental de este sistema es la seguridad y la protección de datos. Es vital entender que esta aplicación no funciona como un chatbot convencional tipo ChatGPT o el chat público de Gemini. Al utilizar una API de desarrollador, los términos de uso y condiciones garantizan que los datos enviados son confidenciales, pues la información procesada a través de la API no se utiliza para entrenar los modelos globales de la empresa
Conclusiones
Todas estas herramientas, desde la calculadora de tiempos hasta el asistente con IA, comparten un denominador común y una misma razón de ser: agilizar lo material para ahorrar tiempo en lo importante. Su propósito no es la sustitución del juzgador, sino su auxilio. Están diseñadas para que el software asuma la carga mecánica y burocrática, permitiendo que el juez recupere su función esencial, que es decidir y motivar con la calidad que cada caso requiere.
Este potencial de optimización tiene un margen de crecimiento inmenso en otras muchas jurisdicciones. Es fácil imaginar el impacto transformador que estas soluciones tendrían en campos como el Derecho Bancario, donde los tribunales se ven inundados por miles de expedientes idénticos en los que únicamente cambian nombres y cifras. Herramientas de este tipo podrían afrontar tales situaciones de colapso con una agilidad pasmosa, resolviendo con precisión técnica lo que hoy supone una carga administrativa inasumible.
La programación, aplicada desde la realidad del estrado, no busca automatizar la justicia, sino dotar al juez de los medios necesarios para ejercerla con mayor libertad intelectual. Es el camino para modernizar nuestras instituciones y ofrecer una respuesta rápida y eficaz a los ciudadanos.

0 Comentarios