NAMMU

← Blog
ProductEngineeringLegal AI

Trayectorias: cómo Nammu construye la hoja de ruta procesal correcta para cada caso

Una vez que un caso se clasifica y sus documentos se segmentan, Trayectorias superpone la hoja de ruta estatutaria correcta para esa jurisdicción y tipo de proceso específicos, con evidencia real del caso. Así se combinan las plantillas, la inferencia de estado, la vista dividida en dos y los siete estados vacíos.

IP

Inventum P5

Ingeniería · Galictis-Legal

10 de julio de 2026

10 min de lectura

Cada tipo de proceso legal tiene su propia secuencia estatutaria de etapas, sus propias citas de artículos, sus propios plazos, su propio “qué pasa si X no ocurre.” La audiencia preliminar de un ordinario civil no tiene nada en común procesalmente con la ventana de plazo de vigencia de un caso de violencia doméstica. Trayectorias existe para renderizar la hoja de ruta estatutaria correcta para la jurisdicción y tipo de proceso específicos de este caso — y luego superponerla con evidencia real de los propios documentos de este caso para mostrar dónde realmente se encuentra hoy. Esto no es una barra de progreso genérica de cinco etapas.

Dos vistas sobre un solo modelo

La misma estructura de datos CaseTimeline alimenta dos renderizados deliberadamente distintos. Mantenerlos separados evita que se confundan dos preguntas genuinamente diferentes.

Pestaña Trayectorias

Lo que realmente ha sucedido

  • Filtrado a través de _reached() — solo hitos COMPLETED e IN_PROGRESS
  • Restringido por evidencia: una etapa aún no probada en los documentos simplemente no aparece
  • Se adjuntan fechas cuando la extracción tuvo éxito
  • Nunca muestra lo que no ha sucedido — eso tergiversaría el caso
Mini-vista de proceso

Cómo se ve el proceso en general

  • Plantilla estatutaria completa — todos los hitos incluyendo PENDING y UNKNOWN
  • Disponible en el momento en que se clasifica process_type, sin importar los documentos
  • Fechas y plazos omitidos intencionalmente — solo significan algo una vez alcanzados
  • Responde: cómo se ve este tipo de caso, no dónde está este caso en particular

El modelo de datos

Tres dataclasses en timeline_model.py llevan todo lo que produce un constructor:

Milestone

Una etapa procesal. Lleva una etiqueta bilingüe, un símbolo (ver abajo), una fase, un estado (completed / in_progress / pending / unknown), el artículo y ley que la rige, un plazo estatutario opcional en días hábiles, y notas de texto libre — que a menudo llevan orientación legal crítica de seguridad, no solo descripciones.

JurisdictionalHinge

Se completa solo para un caso bisagra (transferencia jurisdiccional). Lleva la jurisdicción de origen y de destino, nombres de tribunales, y la fecha y título del documento de transferencia.

CaseTimeline

El envoltorio a nivel de caso: process_type, bandera has_bisagra, etiquetas de fase, la bisagra si existe, y la lista completa de hitos. Cada constructor devuelve exactamente uno de estos — la capa de interfaz nunca toca directamente la lógica específica de jurisdicción.

Símbolos de los hitos

Cada hito lleva un símbolo que comunica de un vistazo su rol estructural en la secuencia procesal:

Hito estándar

Una etapa procesal regular

Pivote

Una etapa que cambia la dirección o vía del caso

Terminal

Un estado final — el caso puede detenerse aquí

Condicional

Solo aplica bajo circunstancias específicas

Un constructor por tipo de proceso — no por jurisdicción

load_case_timeline() lee process_type de case_index.json y lo enruta a exactamente una función build_*_timeline(). Este es un despacho a nivel de tipo de proceso, no a nivel de jurisdicción: que una jurisdicción esté completamente clasificada no garantiza que todos sus tipos de proceso tengan plantilla. El monitorio civil, el procedimiento_abreviado y la flagrancia de penal, y el proceso_de_lesividad de contencioso están todos correctamente clasificados pero aún no tienen constructor — muestran un estado de “plantilla faltante” diseñado a propósito, no un error genérico.

Cada constructor es autocontenido. Tiene su propia lista de hitos, citas de artículos y reglas de inferencia de estado — fundamentadas en una revisión específica del dominio legal, citada en el código. No existe una estructura de hitos genérica compartida que las jurisdicciones personalicen. Los 13 hitos de un ordinario civil y los 8 hitos de un caso de violencia doméstica familiar no comparten un solo nombre o estructura de etapa, porque están regidos por códigos distintos con relojes procesales distintos.

Fases — comunicando el cambio jurisdiccional a mitad de proceso

MilestonePhase tiene cuatro valores. Cuáles usa un constructor dice algo legalmente significativo sobre si la jurisdicción del caso puede cambiar a mitad de proceso.

FaseSignificadoUsada por
SINGLEEl proceso nunca cambia de jurisdicciónPenal, laboral, familia (las 6), notarial, tránsito
PHASE1Etapas previas a la transferencia (estilo atenuado) — origen contencioso-administrativoSolo constructor de ordinario civil, vía bisagra
BISAGRAEl acto mismo de transferencia jurisdiccional (resaltado en dorado, nodo distinto)Solo constructor de ordinario civil, vía bisagra
PHASE2Etapas posteriores a la transferencia (estilo activo) — vía ordinaria civil que sigueSolo constructor de ordinario civil, vía bisagra

build_ordinario_timeline() es el único constructor que debe manejar las tres formas posibles de un caso ordinario civil. Elige explícitamente entre ellas: bisagra detectada → emite ambas fases más el nodo de bisagra resaltado en dorado; jurisdicción no civil sin bisagra todavía → aun así muestra ambas plantillas de fase para que la hoja de ruta de la mini-vista sea visible antes de una transferencia; puramente civil desde el inicio → descarta las etiquetas de fase y marca cada hito como SINGLE.

Cómo se infiere el estado de un hito

Cada constructor inspecciona el conjunto consolidado de doc_kind de document_index.json — la salida de la Segmentación Inteligente de Documentos — y deriva el estado de cada hito a partir de qué tipos de documento están presentes. Los patrones van de simples a legalmente sofisticados:

Verificación simple de presencia

Notificación al demandado del ordinario civil:

COMPLETED if "notificacion" in doc_kinds else UNKNOWN

Cascada de tres estados con un estado intermedio significativo

Admisibilidad de la querella penal:

COMPLETED    si existe una resolución de admisión del tribunal
IN_PROGRESS  si se señalaron defectos y/o se presentó subsanación,
             pero el tribunal aún no ha resuelto
PENDING      si no hay ninguna señal

El estado IN_PROGRESS es deliberado y legalmente significativo: distingue “el ciclo de defecto/subsanación ocurrió y estamos esperando al tribunal” de “no ha pasado nada todavía” — una distinción procesal real, no un artefacto de barra de progreso.

Inferido lógicamente de la evidencia circundante

Admisibilidad y audiencia única del sumario civil:

El sumario no tiene un tipo de escrito de admisibilidad dedicado en la taxonomía actual. En lugar de dejar estas etapas permanentemente en UNKNOWN, el constructor las infiere a partir de lo que debe ser legalmente cierto dado evidencia posterior: “admisibilidad” es COMPLETED una vez que existe una contestación o sentencia (un caso no puede legalmente llegar a ninguna de las dos sin haberla superado), IN_PROGRESS una vez que existe una demanda sin nada más, PENDING en cualquier otro caso. Esto está explícitamente comentado en el código como una inferencia deliberada y legalmente sólida — no una suposición.

Doble terminal, ventana calculada

Violencia doméstica familiar:

Esta plantilla tiene dos hitos TERMINALsentencia_recursos y archivo_proceso — porque un caso de VD puede terminar legítimamente de cualquiera de las dos formas: una resolución final con medidas aún vigentes, o un archivo administrativo después de que las medidas de protección simplemente expiran sin renovarse. El hito plazo_vigencia (si las medidas de protección siguen legalmente vigentes) no tiene un doc_kind propio — su estado se deriva completamente de si existe una resolución de otorgamiento y si algún evento terminal se ha disparado desde entonces.

El texto de los hitos lleva orientación de seguridad legal

El campo notes de un hito no es decorativo. En varios constructores, lleva instrucciones directas y críticas de seguridad legal, incrustadas exactamente en el punto de la interfaz donde son operacionalmente relevantes.

Del constructor de violencia doméstica familiar:

  • Resolución de otorgamiento

    "NUNCA exigir estándar probatorio elevado en esta etapa — acceso rápido por diseño." Nunca exigir un estándar probatorio elevado aquí. El acceso rápido es la intención del diseño legal de la ley.

  • Señalamiento de audiencia

    "PROHIBICIÓN DE CONCILIACIÓN (art. 9 CPF): relación desigual de poder se presume en violencia doméstica; NUNCA sugerir, preparar ni facilitar conciliación en esta audiencia." Una prohibición legal estricta, no una sugerencia.

  • Control del plazo de vigencia

    Marcado como "ALERTA DE SEVERIDAD ALTA, NO COSMÉTICA" — una expiración perdida de medidas de protección es un riesgo de seguridad física, no un plazo procesal ordinario.

  • Levantamiento anticipado

    "NUNCA inducir, sugerir conveniencia, ni evaluar el mérito." La decisión de solicitar el levantamiento anticipado de las medidas de protección está marcada explícitamente como decisión exclusiva de la persona protegida.

Las advertencias honestas de confianza viajan hasta la cita individual. El plazo de apelación en el hito de sentencia de VD está marcado como “de confianza baja (SINALEVI-PENDING, solo fuente de prensa) — no usarlo en una alerta de producción sin verificación adicional.” La advertencia no se detiene en un disclaimer genérico a nivel de esquema — vive en el hito específico que cita la cifra no verificada, la misma disciplina de “BORRADOR pendiente de validación del abogado” documentada para los esquemas mismos.

Enriquecimiento de fechas — mejor esfuerzo, nunca un determinante de estado

timeline_dates.py corre una pasada posterior separada que intenta adjuntar una fecha de calendario real a hitos ya marcados como alcanzados por la lógica de estado. Nunca determina si un hito ocurrió — solo cuándo.

Para cada ID de hito, una tabla de búsqueda indica qué doc_kind(s) buscar; la página de ancla del primer segmento coincidente se escanea con expresiones regulares de fecha en español que cubren tanto fechas numéricas (28/01/2026) como la fórmula canónica costarricense de autofechado judicial deletreada (“del veintiocho de enero de dos mil veintiséis”), incluyendo una tabla de palabra a número para días y años deletreados.

Un fallo de extracción de fecha simplemente significa que un hito aparece como alcanzado sin fecha — nunca es una razón para degradar u ocultar un estado que la evidencia de doc_kind ya estableció.

Siete estados vacíos distintos

Trayectorias deliberadamente no colapsa toda situación de “nada visible” en un único estado vacío genérico. La razón por la que un caso no tiene nada que mostrar es en sí misma información útil, y confundir las razones engañaría al abogado sobre lo que realmente está sucediendo.

EstadoSignificadoPor qué no es solo “vacío”
VacíoNada procesado todavíaEl verdadero estado base por defecto.
ProcesandoTransitorio — la brecha de ~7s entre la lectura de ruta rápida y la finalización de la reescritura en segundo planoPuramente momentáneo. Un estado vacío con apariencia permanente aquí parecería un estancamiento.
Filtro de calidadEl manifiesto reporta completado, pero muy pocas páginas produjeron texto usable (por debajo del piso de extracción del 80%)Sin esto, un caso con OCR bajo parecería engañosamente "aún procesando" para siempre.
Fuera de alcanceJurisdicción detectada, pero sin esquema legal cargado (agrario, constitucional)Le dice al abogado por qué — una jurisdicción real conocida sin plantilla todavía, no una falla de procesamiento.
Sin construir (pendiente)Clasificado correctamente como sumario — una categoría real del NCPC — pero aún no existe un constructor de línea de tiempoDistinto de FUERA_DE_ALCANCE: la clasificación tuvo éxito, solo falta la plantilla.
No reconocidoClasificado como abreviado — una etiqueta que el mapeo actual del esquema civil no reconoceRecomienda explícitamente verificación manual del abogado, en lugar de fingir confianza.
Clasificación manualNivel 3 de la cascada — tanto el sondeo de carátula como el consolidado de doc_kind fueron ambiguosInteractivo: presenta menús desplegables de jurisdicción / tipo de proceso y guarda la elección del abogado.
Sin hitos alcanzadosTipo de proceso conocido, existe plantilla completa (visible en la mini-vista) — el caso es genuinamente de etapa tempranaSin esto, un caso correctamente clasificado en etapa temprana mostraba el mismo mensaje que una falla genuina.
Por qué se agregó específicamente la última fila: un caso real contencioso-administrativo de 11 etapas que se clasificó perfectamente pero legítimamente no tenía hitos completados todavía era indistinguible, bajo el antiguo estado vacío genérico, de un caso donde algo realmente había salido mal. La solución no fue un ajuste de interfaz — fue reconocer que “correctamente clasificado pero temprano” y “falló al clasificar” son hechos distintos que merecen mensajes distintos.

Principios rectores

1

Una plantilla estatutaria por tipo de proceso, fundamentada a mano en su propio código rector

Nunca una estructura de progreso genérica compartida y reutilizada entre ramas.

2

Dos vistas distintas, deliberadamente no combinadas

Cómo se ve un proceso en general (mini-vista, siempre disponible una vez clasificado) vs. lo que este caso realmente ha demostrado hasta ahora (pestaña Trayectorias, restringida por evidencia).

3

Todo estado se deriva de evidencia o se infiere lógicamente de otra evidencia — nunca se adivina

Donde aún no existe evidencia dedicada (sumario civil), el respaldo es una inferencia honesta y legalmente sólida a partir de hitos circundantes, razonada explícitamente en el código, no un valor por defecto silencioso.

4

Una plantilla faltante se reporta como una plantilla faltante

Distinto de un caso no clasificable, distinto de un caso genuinamente en etapa temprana, distinto de una brecha transitoria de procesamiento. Colapsar cualquiera de estos en un vacío genérico desinformaría al abogado sobre lo que realmente es cierto.

5

La orientación de seguridad legal vive exactamente en el hito al que aplica

Incluyendo advertencias honestas de confianza en cualquier cita que aún no esté completamente verificada — la misma disciplina de BORRADOR trasladada desde el nivel de esquema hasta el texto individual de la interfaz.

6

Las fechas son un enriquecimiento de mejor esfuerzo, nunca un determinante de estado

Un fallo de extracción de fecha nunca degrada un estado que la evidencia subyacente de doc_kind ya obtuvo.

¿Quieres ver Trayectorias corriendo en expedientes reales?

Podemos recorrer la línea de tiempo para tu jurisdicción y tipos de proceso — incluyendo qué hitos existen, qué estados están activos y cómo se ve la hoja de ruta para un caso que conozcas.

Solicita una demo →
Esta publicación fue traducida al español con asistencia de inteligencia artificial a partir del contenido original en inglés. Aunque revisamos la traducción para mantener la precisión técnica, el texto en inglés es la versión de referencia. Si notas alguna discrepancia, contáctanos.