Tema Qualidade & segurança. Veja também Contexto antes de IA.

Mais código, mesma responsabilidade

Copilot e ferramentas similares não dividem accountability com o desenvolvedor. Quem faz merge assina o deploy. O OWASP Top 10 for LLM Applications descreve riscos que atravessam dev e ops — injeção de prompt, vazamento, supply chain, agency excessiva — mas no dia a dia o sintoma costuma ser mais banal e mais caro: dependência inventada, IAM permissivo demais em Terraform gerado, query SQL montada sem sanitização, pacote com nome plausível que nunca existiu no registry.

No PR das 400 linhas, metade gerada em uma tarde, o SAST passou porque não havia padrão conhecido para aquele anti-pattern. O merge passou porque revisão humana olhou diff agregado, não caminho sensível. Produção quebrou três dias depois com ModuleNotFoundError em serviço de pagamento — não por malícia, por velocidade sem esteira que falha cedo.

Qualidade “no final do sprint” colapsa quando o volume de mudança triplica. O que funciona é pipeline que bloqueia merge com regra explícita — e humano obrigatório onde o impacto é irreversível: autenticação, criptografia, dados pessoais, integração com legado que ninguém quer tocar, infraestrutura de rede.

Camadas da esteira — o que bloqueia de verdade

Pipeline maduro para time que usa IA assistida combina camadas com critério diferente de “passou ou não”:

  • Teste unitário e de contrato no caminho crítico — não cobertura cosmética em utilitário.
  • SAST e secret scan em todo PR; bloqueio em credencial exposta ou CVE crítica sem exceção documentada.
  • SCA / dependências com política de pinagem — modelo que sugere latest é inimigo de reprodutibilidade.
  • IaC scan antes de apply: security group 0.0.0.0/0 “temporário” gerado por autocomplete.
  • Revisão humana por path: mudança em /auth, /payment, /migrations exige aprovação de owner nomeado, independente do tamanho do diff.

Exceção existe, mas é rastreável: quem aprovou, por quê, com prazo de remediação. Exceção oral no chat não escala e não sobrevive a auditoria.

O que a IA muda (e o que não muda)

A IA acelera digitação. Não substitui critério de pronto para produção. Teste automatizado continua sendo o contrato entre “compila” e “pode ir”. SAST continua sendo o filtro entre “parece correto” e “já vimos essa CVE”. O que muda é a pressão para pular etapas porque “o modelo sugeriu com confiança” — e o volume de código que um revisor precisa julgar em uma tarde.

Revisão assistida exige escopo, não só olhar verde no CI. PR que toca módulo de pagamento com dez arquivos colaterais gerados por autocomplete merece checklist: imports reais? endpoints existem? secrets hardcoded? testes cobrem caminho feliz e um caso de borda? Ajuste de copy em landing interna merece fluxo leve — mas não zero revisão.

Em times que medem DORA, o alerta não é deploy frequency alto por si só — é change failure rate subindo junto com throughput. IA que aumenta commits sem reduzir falha em produção só move o gargalo para o plantão.

Supply chain: o risco que o modelo não vê

Ataque por dependência typosquatting e pacotes fantasma não é teoria — é vetor que ferramentas de geração amplificam porque sugerem nome “quase certo”. Política mínima: registry privado ou allowlist, verificação de checksum, bloqueio de install script em dependência nova sem revisão. Em monorepo com dezenas de serviços, um pacote falso em serviço periférico vira lateral movement — não falha isolada.

Para código gerado que chama API interna, retrieve governado (dev assistido com contexto) reduz alucinação de contrato. Para dependências externas, só verificação humana ou ferramenta de supply chain — o modelo não “sabe” se o pacote existe.

Operação fecha o ciclo

Qualidade não termina no merge. MTTR e taxa de falha de mudança medem se a esteira mente. Incidente em produção sem postmortem que vira runbook é débito que o copilot não paga — só acelera a próxima falha.

Por isso ligamos qualidade a Knowledge Operations: lição de incidente vira contexto recuperável na IDE e na fila de plantão. Serviço crítico exposto a pico merece ainda teste de carga antes do usuário virar testador involuntário. Em contrato de operação gerenciada, laudo de incidente com causa em mudança recente alimenta retrospectiva de engenharia — fechando o loop que muitos times deixam aberto entre “deploy” e “suporte”.