Skip to content

ADR-0036: Política acotada de redacción de nombres

  • Estado: Accepted
  • Fecha: 2026-07-02
  • Responsables de la decisión: Waldemar Szemat

El redactor determinista de PII redacta un conjunto fijo de identificadores estructurados y deliberadamente no redacta nombres de personas. Esa exclusión ha vivido como prosa en el módulo de redacción y como una prueba fijada desde que el redactor se envió, y la postura de gobernanza la describe, pero nunca se había ratificado como una decisión citada de primera clase.

Una revisión de certificación externa marcó el comportamiento de nombres no redactados como un vacío a adjudicar en lugar de un detalle de implementación silencioso. El comportamiento es deliberado y defendible, pero “deliberado” solo es auditable si es una decisión explícita con una justificación enunciada y un residual nombrado, no una propiedad sin dueño del código. Este registro ratifica la política existente y registra la alternativa diferida - una pasada activa de nombres condicionada por configuración - como una decisión del propietario en lugar de un descuido. Es una ratificación de documentación: no introduce ningún cambio de comportamiento del código.

  • Tasa de falsos positivos. La detección confiable de nombres de personas sin un modelo de Reconocimiento de Entidades Nombradas (NER) tiene una tasa de falsos positivos inaceptable - un patrón con forma de nombre enmascararía palabras comunes y términos de medicación o clínicos, degradando las respuestas mismas que el agente existe para dar.
  • Datos solo sintéticos (ADR-0018). La implementación de referencia corre con datos 100% sintéticos sin identidades reales de pacientes, así que un nombre de pila no redactado no acarrea riesgo de divulgación en el mundo real en este despliegue.
  • Sin nueva dependencia de ejecución. Añadir un modelo NER para redactar nombres violaría la postura de cero-nueva-dependencia-de-ejecución y $0 del demo por un beneficio que el invariante solo-sintético ya neutraliza.
  • Auditabilidad. La exclusión debe ser una decisión citada y fijada que no pueda derivar en silencio, no un vacío implícito.
  • El redactor sigue siendo un redactor. Es siempre informativo y nunca una compuerta de negativa (ADR-0005), así que una omisión de nombre no puede bloquear un turno en silencio.
  • Ratificar la política acotada - solo identificadores estructurados, nombres excluidos por tasa de falsos positivos y por datos solo sintéticos - y registrar la pasada activa de nombres condicionada por configuración como explícitamente diferida, apagada por defecto y no implementada (elegida).
  • Implementar ahora una pasada de redacción de nombres basada en modelo NER (rechazada: añade una dependencia de ejecución y un costo de hospedaje de modelo que violan la postura de $0, por un beneficio que el invariante solo-sintético ya neutraliza en este despliegue).
  • Implementar ahora una pasada de redacción de nombres por regex/heurística (rechazada: los patrones con forma de nombre tienen una tasa de falsos positivos inaceptable - enmascararían palabras comunes y términos de medicación o clínicos, degradando las respuestas centrales del agente).
  • Solo identificadores estructurados. El alcance del redactor es el conjunto de tipos de identificador estructurado: correo, teléfono, ID nacional (incluido un SSN de EE. UU.), tarjeta de pago, los identificadores nacionales latinoamericanos RUT, CPF y DNI, y el número de registro médico, la fecha de nacimiento y la dirección postal. Cada uno está anclado, acotado y - donde el identificador porta un dígito verificador - validado estructuralmente (un checksum de tarjeta para tarjetas de pago, el dígito verificador nacional para RUT y CPF), así que un tramo coincidente es un identificador real, no un parecido. Los nombres de personas no están en este conjunto.
  • Los nombres se excluyen por tasa de falsos positivos y por datos solo sintéticos. La detección confiable de nombres sin un modelo NER produce una tasa de falsos positivos inaceptable - enmascarando palabras comunes y términos clínicos o de medicación - el demo corre con datos solo sintéticos (ADR-0018) sin identidades reales de pacientes, y la postura de privacidad documentada no requiere redacción de nombres. Un usuario que escribe “Hola, soy …” tiene un correo o teléfono en el mismo mensaje redactado mientras el nombre de pila llega al modelo textualmente.
  • La pasada activa de redacción de nombres condicionada por configuración se difiere. Una futura pasada activa de nombres condicionada por configuración - apagada por defecto - es la ruta de mejora sancionada para un despliegue con datos reales, pero no está implementada ni cableada tras ningún ajuste hoy. Habilitarla es una preocupación de producción con datos reales de pacientes, no una preocupación del demo; es una opción nombrada y fuera de alcance, no un vacío olvidado.
  • La política está fijada y no puede derivar en silencio. La exclusión se afirma con una prueba fijada y se documenta en el módulo de redacción; cambiarla requiere revisitar esta decisión y esa prueba juntas.
  • Una prueba fijada demuestra que un nombre en un mensaje que por lo demás porta identificadores se deja textual mientras los identificadores estructurados a su alrededor se redactan.
  • Ningún código cambió para esta ratificación, así que los tramos coincidentes del redactor y su contrato siempre-informativo quedan sin cambios, y el piso de barrera determinista y sin clave sigue en verde.
  • La exclusión deliberada de nombres es ahora una decisión explícita y citada con un residual nombrado: el hallazgo de la revisión externa cierra como aceptado, no abierto.
  • La justificación - tasa de falsos positivos, datos solo sintéticos, sin dependencia de NER - se registra una vez y se referencia desde la postura de gobernanza, así que un revisor ve la misma política desde el código, este registro de decisión y la documentación de postura.
  • La ruta de mejora - una pasada activa de nombres condicionada por configuración para despliegues con datos reales - es una opción diferida nombrada, no un vacío olvidado.
  • Los nombres de personas en un despliegue con datos reales llegarían al modelo textualmente bajo la configuración de hoy; mitigar eso es exactamente la pasada condicionada por configuración diferida, que un despliegue de producción con datos reales de pacientes debe habilitar.
  • Sin cambios de código, forma de tramo ni prueba: este registro ratifica el comportamiento existente y añade solo referencias cruzadas.

Ratificar la política acotada, diferir la pasada activa de nombres (elegida)

Section titled “Ratificar la política acotada, diferir la pasada activa de nombres (elegida)”
  • Bueno, porque coincide con el riesgo real: con datos solo sintéticos un nombre no redactado no acarrea riesgo real de divulgación, mientras que un emparejador con forma de nombre corrompería respuestas clínicas.
  • Bueno, porque convierte una propiedad implícita del código en una decisión citada y fijada con un residual nombrado y una ruta de mejora sancionada.
  • Malo, porque no hace nada por un despliegue hipotético con datos reales hasta que se habilite la pasada activa diferida - aceptado, porque eso es una preocupación de producción.

Implementar ahora una pasada de nombres con modelo NER (rechazada)

Section titled “Implementar ahora una pasada de nombres con modelo NER (rechazada)”
  • Bueno, porque un modelo NER daría la detección de nombres de mayor recall.
  • Malo, porque añade una dependencia de ejecución y un costo de hospedaje de modelo que violan la postura de $0 y cero-nueva-dependencia-de-ejecución, por un beneficio que el invariante solo-sintético ya neutraliza aquí.

Implementar ahora una pasada de nombres por regex/heurística (rechazada)

Section titled “Implementar ahora una pasada de nombres por regex/heurística (rechazada)”
  • Bueno, porque no necesita modelo.
  • Malo, porque los patrones con forma de nombre tienen una tasa de falsos positivos inaceptable - enmascararían palabras comunes y términos de medicación o clínicos, degradando las respuestas centrales del agente.