Qualidade e engenharia de contexto
Escrever teste e escrever contexto para agente de IA resolvem o mesmo problema: deixar explícito, verificável e reexecutável aquilo que só existia na cabeça de quem escreveu.
Presença
| Prática | Repositórios |
|---|---|
| Suíte de teste (xUnit) | 65% |
| Validação declarativa (FluentValidation) | 54% |
| Especificação numerada versionada | 20% |
| Contexto de agente versionado | 9% |
| Teste de integração com contêiner efêmero | 1 sistema |
Por que xUnit e FluentValidation andam juntos
Resolvem o mesmo problema em momentos diferentes. O teste prova que a regra funciona; a validação
declarativa faz a regra ser legível no ponto onde ela aparece, em vez de espalhada em if pelo
serviço.
Na prática isso significa teste de unidade para regra de domínio, escrito como especificação executável do comportamento, e um validador por comando rodando no pipeline antes do handler, de modo que a operação nem começa se o dado não presta. A validação devolve todos os problemas de uma vez, não o primeiro — o raciocínio por trás disso está em ADR 2 — Notificação acumulada em vez de exceção.
O que eu faço
- Tratar o teste de unidade como especificação executável da regra de domínio
- Deixar a validação declarativa e no lugar certo, para que a mensagem de erro seja do negócio e não do banco
- Escrever especificação numerada antes de implementar, versionada junto com o código; ver Projetar antes de implementar
- Versionar o contexto que um agente de IA precisa para trabalhar no repositório: convenção, arquitetura, o que não fazer
- Revisar código contra padrão escrito e citável, em vez de contra opinião; ver Revisão de código e padrão
- Registrar o atrito que custou caro, para que o próximo não pague de novo; ver Como eu depuro
Onde apliquei
Monitoramento industrial · Assinaturas e recorrência · Pagamentos e antifraude · Suíte PMQ
O que eu ainda não fiz
Cobertura de repositório não é cobertura de linha. 65% quer dizer que dois terços dos projetos que eu toco têm suíte, não que dois terços do código estão cobertos, e eu não meço a segunda coisa. Teste de integração com contêiner efêmero aparece em um repositório só, teste de contrato entre serviços em nenhum, e não trabalho com mutation testing nem com teste de carga.