PTNA está em validação clínica. Os resultados são indicativos e não substituem avaliação profissional.
PTNA

Documento técnico

Como o PTNA pensa

Esta página explica o que o motor faz com suas respostas — sem caixa preta. É para profissionais decidirem se confiam no resultado antes de usá-lo, e para pessoas curiosas entenderem o que está acontecendo nos bastidores.

O que o PTNA é (e não é)

PTNA é uma ferramenta de triagem neuropsicológica para adultos — foco em TEA, TDAH e Altas Habilidades, incluindo coexistências (2e, tripla). Ele faz perguntas estruturadas, organiza suas respostas em eixos clínicos e devolve hipóteses com o caminho de inferência rastreável.

Não é diagnóstico. Diagnóstico exige avaliação presencial por profissional habilitado (psiquiatra, psicólogo, neuropsicólogo), instrumentos validados, histórico longitudinal e contexto que nenhuma ferramenta online consegue substituir.

Princípio anti-muleta
A ferramenta existe para quem genuinamente sofre, não para justificar comportamentos. Pares-espelho, classes contra e um eixo invisível de consistência são requisitos do motor — não enfeites.

Modelo em camadas

Um único motor, três linguagens. A camada pública (C1) é hedged, acolhedora, e nunca nomeia a hipótese — fala em “padrões” e em “conversar com um profissional”. A camada profissional (C2) é técnica, expõe IDs, scores, breakdown e o cap dinâmico. Uma terceira camada (C3) com texto livre e LLM auxiliar está planejada, mas fora do escopo do alpha.

Renderizando diagrama…
Camadas do modelo — ADR-003.

A decisão de separar essas linguagens (ADR-003) vem de um cuidado clínico: nomear uma hipótese para uma pessoa anônima na internet, sem profissional presente, pode fazer mais mal que bem. Um profissional que recebe o mesmo caso em C2 tem contexto para interpretar números brutos.

Arquitetura do motor

O motor tem quatro níveis. Um sinal é uma resposta observável (“você costuma ler nas entrelinhas?”). Sinais alimentam mecanismos latentes (reciprocidade social, flexibilidade cognitiva…). Mecanismos compõem eixos clínicos (social, executivo, sensorial…), e eixos compõem hipóteses (HYP-TEA, HYP-TDAH, HYP-AH e coexistências).

Renderizando diagrama…
Um caminho ilustrativo: da pergunta ao score de hipótese.

A vantagem dessa composição é explicabilidade: ao clicar em uma hipótese em C2, o profissional vê quais eixos contribuíram, quais mecanismos dentro de cada eixo, e quais sinais alimentaram cada mecanismo. Nada sai do motor sem caminho rastreável no grafo (ADR-001).

Classes de sinal

Nem todo sinal pesa igual. O ADR-007 define cinco classes, cada uma com peso próprio:

  • nuclearSinais que, presentes, são diagnósticos fortes daquela hipótese. Peso alto.
  • compSinais complementares: apoiam mas não definem. Peso médio.
  • consSinais consistentes com o quadro. Peso baixo-médio.
  • histSinais históricos (infância, escola). Não somam no score bruto — entram pelo modulador HistoryIndex.
  • contraSinais que, presentes, enfraquecem a hipótese. Peso negativo.

Essa distinção é o que impede que o motor confunda um sintoma genérico com evidência diagnóstica de peso clínico. Na forma fechada:

Como o score é calculado

Cada resposta Likert é multiplicada pelo peso da classe, pelo peso do mecanismo dentro do eixo, e pelo peso do eixo dentro da hipótese. A soma é normalizada por um ceiling observado — o valor máximo que aquele conjunto de perguntas respondidas poderia produzir se tudo fosse resposta máxima.

Para quem quiser ver na forma fechada
As fórmulas abaixo descrevem o mesmo que o parágrafo acima. Saltar esta parte não compromete a leitura.

Normalização da resposta Likert:

Contribuição de um eixo , somando sobre os mecanismos e os sinais respondidos em cada mecanismo:

onde é o peso do mecanismo dentro do eixo (moderado · forte · nuclear). Sinais contra têm seu impacto limitado a 60% do positivo do eixo:

Score bruto da hipótese sobre seus eixos:

O HistoryIndex entra como modulador multiplicativo: histórico reforça, mas não substitui:

O ceiling observado soma, para cada sinal efetivamente respondido, o valor que ele produziria se fosse nuclear em Likert máximo. Sinais não-perguntados não entram nem no numerador nem no denominador:

E a normalização final fica no intervalo :

Por que ceiling observado?
Uma versão anterior do motor normalizava pelo máximo teórico (todo o grafo). Isso punia hipóteses em triagens curtas — o denominador ficava cheio de sinais que nem tinham sido perguntados. Agora o denominador conta só os sinais respondidos, exatamente como o numerador: a soma dessas duas janelas é comparável.

Confundidores em três famílias

Nem todo confundidor age do mesmo jeito (ADR-008). O motor trata três famílias:

  • Mimetizadores — ansiedade social, depressão, TOC, TEPT. Produzem fenótipo parecido por mecanismo diferente. Subtraem parcialmente o score da hipótese-alvo.
  • Amplificadores — burnout, privação de sono, estresse crônico. Pioram o quadro atual sem explicá-lo. Não derrubam o score; marcam um flag de ambiguidade clínica no relatório.
  • Ocultadores — camouflaging, performance externa alta, AH compensando déficit. Escondem o quadro real. Não subtraem score; reduzem o peso negativo das ausências clássicas.

A família de ocultadores é o contrapeso contra subdetecção — ela é o que impede o motor de perder perfis reais que não se encaixam nos estereótipos. Na forma fechada, cada família age de um jeito distinto:

Note que nem tudo é subtração. Só mimetizadores derrubam score. Amplificadores marcam um flag de ambiguidade lido pelo relatório, e ocultadores reduzem o peso das ausências clássicas — eles defendem contra o erro de “não parece TEA, logo não é TEA”.

Safety-net — precedência absoluta

Se qualquer sinal de risco grave aparece nas respostas, o motor interrompe o fluxo normal e devolve canais de ajuda (CVV 188, SAMU 192, CAPS mais próximo). Não há inferência a fazer — risco de vida vence tudo.

Existem duas classes: risco_imediato (interrompe) e alerta_grave (segue, mas marca no relatório C2 e exige revisão humana). O catálogo e os textos definitivos são escritos por revisor clínico — nunca inventados pelo motor.

Renderizando diagrama…
Precedência do pipeline. Safety-net vence inferência.

Anti-gaming

O motor mantém um eixo invisível de consistência/validade das respostas (análogo às escalas de validade do MMPI). Ele detecta quatro padrões: pares-espelho inconsistentes (M1), padrões “livro-texto” bons demais para ser verdade (M2), respostas em extremos (M4), e variância anômala. Esse eixo modula a confiança do relatório, não a probabilidade da hipótese.

Em C1 nada disso aparece — a ideia não é acusar ninguém. Em C2, o profissional vê o score de consistência e pode interpretar o relatório com o peso apropriado.

Limitações conhecidas

  • Calibração numérica pendente. Os pesos atuais são heurísticos, definidos pelo revisor clínico. A Fase 7 do projeto é calibrar esses números contra dados reais.
  • Cap de perguntas dinâmico. O motor pede entre 20 e 60 perguntas dependendo da complexidade do quadro. Triagens mais curtas têm menos evidência por hipótese — o C2 expõe o cap usado.
  • Sem validação empírica ainda. O motor ainda não foi testado contra uma coorte diagnosticada. Uso real só depois dessa validação.
  • Escopo deliberado. O PTNA não infere transtornos psicóticos, neurocognitivos, uso de substâncias nem transtornos alimentares graves. Pode sinalizar “avaliação especializada recomendada” sem nomear a condição.

Versionamento do grafo

Todo conjunto de YAMLs do grafo gera um graph_version (SHA-256 sobre o conteúdo congelado). Cada sessão registra a versão usada, o que permite comparar resultados ao longo do tempo mesmo com o grafo evoluindo: você sabe exatamente sob qual versão do motor aquele relatório foi gerado.

É também o que torna bugs reproduzíveis: um C2 antigo continua fazendo sentido porque o grafo daquela versão está preservado no código e no histórico git.

Dúvidas específicas? O código vive em src/lib/engine/ e o grafo clínico em graph/. Tudo é inspecionável. ← voltar à home