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.
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.
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).
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 moduladorHistoryIndex.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.
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 :
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.
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.