O loop de verificação
O código gerado parece confiante estando certo ou errado. A única defesa confiável é um loop que o verifica: testes que decidem, um diff que você lê e gates que rodam não importa quem escreveu o código.
O que é
Um é o conjunto de checagens que toda mudança passa antes de ser considerada confiável, não importa quem a escreveu. Com código escrito por IA o loop importa mais, porque o volume é maior e os erros são plausíveis: nomes de função inventados, comportamento alterado em silêncio, testes reescritos para passar, casos de borda ausentes.
Camadas de verificação
- Testes primeiro: escreva ou aprove o teste antes da implementação, para que um teste falhando defina o que é "pronto". Peça ao agent que o execute e mostre a saída.
- Leia o diff: não o resumo do agent, a mudança de fato. Veja o que ele tocou além do pedido, testes removidos, asserções afrouxadas, novas dependências e configuração alterada.
- Gates automatizados no CI: lint, tipos, testes unitários e de integração, , varredura de dependências e de segredos. Rodam em todo pull request, independentemente do autor.
- Revisão independente: peça a outro modelo, ou a uma pessoa, que revise com contexto novo e sem memória do raciocínio do autor.
- Execute: para qualquer coisa voltada ao usuário, execute o fluxo real em vez de confiar que o código compila.
Modos de falha comuns do código gerado
- APIs e pacotes alucinados: a chamada ou a biblioteca não existe, ou existe com outro nome (e um atacante pode ter registrado o nome inventado).
- Testes que não provam nada: asserções sobre mocks, snapshots atualizados para combinar com o bug ou testes apagados para deixar o build verde.
- Só o caminho feliz: nenhum tratamento de entrada vazia, timeouts, concorrência ou entrada hostil.
- Padrões inseguros: SQL montado por string, verificação TLS desativada, amplo, segredos hard-coded, falta de checagens de autorização.
- Scope creep: refactors não relacionados misturados à mudança, que escondem o diff real.
Um gate que você pode copiar
Torne as verificações obrigatórias e automáticas. O workflow abaixo roda em todo pull request e bloqueia o merge quando qualquer etapa falha; é o mesmo para autores humanos e agents.
name: verify
on: pull_request
permissions:
contents: read
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@<full-commit-sha>
- uses: actions/setup-node@<full-commit-sha>
with: { node-version: 22 }
- run: npm ci --ignore-scripts
- run: npm run lint && npm run typecheck
- run: npm test -- --coverage
- run: npx semgrep --config p/owasp-top-ten --error src/
- run: npx osv-scanner --lockfile=package-lock.json# o .pre-commit-config.yaml roda isto antes de todo commit, inclusive de agents
gitleaks protect --staged --redact
npm run lint --silent
npm test --silent -- --bailHábitos
- Nunca aceite uma mudança que você não saberia explicar a um colega.
- Mantenha as mudanças pequenas o bastante para revisar em minutos.
- Proteja os testes: exija revisão para edições em arquivos de teste e na configuração de CI.
- Peça ao agent que liste as suposições e o que ele não testou.
- Meça a qualidade dos testes, não só a cobertura: mutation testing mostra se os testes pegariam uma mudança quebrada.
conexões no mapa
- Orquestração e agents paralelosproduz trabalho paraO loop de verificação
- Context engineering para agents de códigodefine as verificações deO loop de verificação
- O loop de verificaçãoincluiProtegendo o próprio agent
atualizado em 14/10/2026 · fontes para aprofundar · reportar erro
em outros domínios
Estude antes
Desbloqueia
teste o que entendeu
Carregando perguntas…