ADR-0036: Política limitada de redação de nomes
- Status: Accepted
- Data: 2026-07-02
- Responsáveis pela decisão: Waldemar Szemat
Contexto e definição do problema
Seção intitulada “Contexto e definição do problema”O redator determinístico de PII redige um conjunto fixo de identificadores estruturados e deliberadamente não redige nomes de pessoas. Essa exclusão viveu como prosa no módulo de redação e como um teste fixado desde que o redator foi enviado, e a postura de governança a descreve, mas nunca tinha sido ratificada como uma decisão citada de primeira classe.
Uma revisão de certificação externa sinalizou o comportamento de nomes não redigidos como uma lacuna a adjudicar em vez de um detalhe de implementação silencioso. O comportamento é deliberado e defensável, mas “deliberado” só é auditável se for uma decisão explícita com uma justificativa enunciada e um residual nomeado, não uma propriedade sem dono do código. Este registro ratifica a política existente e registra a alternativa diferida - uma passagem ativa de nomes condicionada por configuração - como uma decisão do proprietário em vez de um descuido. É uma ratificação de documentação: não introduz nenhuma mudança de comportamento do código.
Fatores de decisão
Seção intitulada “Fatores de decisão”- Taxa de falsos positivos. A detecção confiável de nomes de pessoas sem um modelo de Reconhecimento de Entidades Nomeadas (NER) tem uma taxa de falsos positivos inaceitável - um padrão com forma de nome mascararia palavras comuns e termos de medicação ou clínicos, degradando as próprias respostas que o agente existe para dar.
- Dados somente sintéticos (ADR-0018). A implementação de referência roda com dados 100% sintéticos sem identidades reais de pacientes, então um nome próprio não redigido não acarreta risco de divulgação no mundo real nesta implantação.
- Sem nova dependência de execução. Adicionar um modelo NER para redigir nomes violaria a postura de zero-nova-dependência-de-execução e $0 do demo por um benefício que o invariante somente-sintético já neutraliza.
- Auditabilidade. A exclusão deve ser uma decisão citada e fixada que não possa derivar em silêncio, não uma lacuna implícita.
- O redator segue sendo um redator. É sempre informativo e nunca um portão de recusa (ADR-0005), então uma omissão de nome não pode bloquear um turno em silêncio.
Opções consideradas
Seção intitulada “Opções consideradas”- Ratificar a política limitada - só identificadores estruturados, nomes excluídos por taxa de falsos positivos e por dados somente sintéticos - e registrar a passagem ativa de nomes condicionada por configuração como explicitamente diferida, desligada por padrão e não implementada (escolhida).
- Implementar agora uma passagem de redação de nomes baseada em modelo NER (rejeitada: adiciona uma dependência de execução e um custo de hospedagem de modelo que violam a postura de $0, por um benefício que o invariante somente-sintético já neutraliza nesta implantação).
- Implementar agora uma passagem de redação de nomes por regex/heurística (rejeitada: os padrões com forma de nome têm uma taxa de falsos positivos inaceitável - mascarariam palavras comuns e termos de medicação ou clínicos, degradando as respostas centrais do agente).
Resultado da decisão
Seção intitulada “Resultado da decisão”- Só identificadores estruturados. O escopo do redator é o conjunto de tipos de identificador estruturado: e-mail, telefone, ID nacional (incluído um SSN dos EUA), cartão de pagamento, os identificadores nacionais latino-americanos RUT, CPF e DNI, e o número de registro médico, a data de nascimento e o endereço postal. Cada um está ancorado, limitado e - onde o identificador carrega um dígito verificador - validado estruturalmente (um checksum de cartão para cartões de pagamento, o dígito verificador nacional para RUT e CPF), então um trecho coincidente é um identificador real, não um parecido. Nomes de pessoas não estão neste conjunto.
- Os nomes são excluídos por taxa de falsos positivos e por dados somente sintéticos. A detecção confiável de nomes sem um modelo NER produz uma taxa de falsos positivos inaceitável - mascarando palavras comuns e termos clínicos ou de medicação - o demo roda com dados somente sintéticos (ADR-0018) sem identidades reais de pacientes, e a postura de privacidade documentada não requer redação de nomes. Um usuário que escreve “Oi, eu sou …” tem um e-mail ou telefone na mesma mensagem redigido enquanto o nome próprio chega ao modelo textualmente.
- A passagem ativa de redação de nomes condicionada por configuração é diferida. Uma futura passagem ativa de nomes condicionada por configuração - desligada por padrão - é o caminho de melhoria sancionado para uma implantação com dados reais, mas não está implementada nem cabeada atrás de nenhum ajuste hoje. Habilitá-la é uma preocupação de produção com dados reais de pacientes, não uma preocupação do demo; é uma opção nomeada e fora de escopo, não uma lacuna esquecida.
- A política está fixada e não pode derivar em silêncio. A exclusão é afirmada por um teste fixado e documentada no módulo de redação; mudá-la requer revisitar esta decisão e esse teste juntos.
Confirmação
Seção intitulada “Confirmação”- Um teste fixado prova que um nome em uma mensagem que de resto carrega identificadores é deixado textual enquanto os identificadores estruturados ao seu redor são redigidos.
- Nenhum código mudou para esta ratificação, então os trechos coincidentes do redator e seu contrato sempre-informativo ficam sem alteração, e o piso de barreira determinístico e sem chave segue em verde.
Consequências
Seção intitulada “Consequências”Positivas
Seção intitulada “Positivas”- A exclusão deliberada de nomes é agora uma decisão explícita e citada com um residual nomeado: o achado da revisão externa fecha como aceito, não aberto.
- A justificativa - taxa de falsos positivos, dados somente sintéticos, sem dependência de NER - é registrada uma vez e referenciada a partir da postura de governança, então um revisor vê a mesma política a partir do código, deste registro de decisão e da documentação de postura.
- O caminho de melhoria - uma passagem ativa de nomes condicionada por configuração para implantações com dados reais - é uma opção diferida nomeada, não uma lacuna esquecida.
Negativas
Seção intitulada “Negativas”- Nomes de pessoas em uma implantação com dados reais chegariam ao modelo textualmente sob a configuração de hoje; mitigar isso é exatamente a passagem condicionada por configuração diferida, que uma implantação de produção com dados reais de pacientes deve habilitar.
Neutras
Seção intitulada “Neutras”- Sem mudanças de código, forma de trecho nem teste: este registro ratifica o comportamento existente e adiciona só referências cruzadas.
Prós e contras das opções
Seção intitulada “Prós e contras das opções”Ratificar a política limitada, diferir a passagem ativa de nomes (escolhida)
Seção intitulada “Ratificar a política limitada, diferir a passagem ativa de nomes (escolhida)”- Bom, porque coincide com o risco real: com dados somente sintéticos um nome não redigido não acarreta risco real de divulgação, enquanto um casador com forma de nome corromperia respostas clínicas.
- Bom, porque converte uma propriedade implícita do código em uma decisão citada e fixada com um residual nomeado e um caminho de melhoria sancionado.
- Ruim, porque não faz nada por uma implantação hipotética com dados reais até que a passagem ativa diferida seja habilitada - aceito, porque isso é uma preocupação de produção.
Implementar agora uma passagem de nomes com modelo NER (rejeitada)
Seção intitulada “Implementar agora uma passagem de nomes com modelo NER (rejeitada)”- Bom, porque um modelo NER daria a detecção de nomes de maior recall.
- Ruim, porque adiciona uma dependência de execução e um custo de hospedagem de modelo que violam a postura de $0 e zero-nova-dependência-de-execução, por um benefício que o invariante somente-sintético já neutraliza aqui.
Implementar agora uma passagem de nomes por regex/heurística (rejeitada)
Seção intitulada “Implementar agora uma passagem de nomes por regex/heurística (rejeitada)”- Bom, porque não precisa de modelo.
- Ruim, porque os padrões com forma de nome têm uma taxa de falsos positivos inaceitável - mascarariam palavras comuns e termos de medicação ou clínicos, degradando as respostas centrais do agente.
Mais informações
Seção intitulada “Mais informações”- ADR-0005: Barreiras e postura regulatória - o contrato de redator-é-informativo-não-um-portão-de-recusa dentro do qual esta política vive.
- ADR-0018: Invariante de dados somente sintéticos - o invariante que remove o risco de identidade real de paciente que de outro modo forçaria a redação de nomes.
- Postura de redação de PII - a página de governança que descreve a cobertura de redação e esta política de exclusão de nomes.
- MADR 4.0.0: https://adr.github.io/madr/