antes de escrever
O agente devolve o que entendeu: a tarefa reformulada, os critérios de aceite verificáveis por execução e o que ficou de fora. Enquanto houver pergunta em aberto, ele não escreve nenhuma linha.
agentes de ia · software em produção
Uma mudança pode afetar partes da aplicação que o agente nunca viu. E, sem bons testes, ninguém sabe se algo quebrou. O VirtDev mapeia o alcance, cria a proteção e entrega cada mudança com evidência.
diff src/billing/invoice-service.ts +18 −4
alcance reverso
rota POST /v1/invoices alta
rota GET /v1/invoices/:id/pdf alta
fila invoice.issued média
tabela invoices · invoice_items
escopo ampliado
regressão 41 casos · 0 divergências
Toda mudança começa por esta leitura. É ela que decide o que a regressão precisa cobrir.
Vale para qualquer aplicação que já está em produção, não só para a antiga: um serviço de dois anos, grande e pouco documentado, tem exatamente a mesma pergunta cara. Se eu mexer aqui, o que para de funcionar. Sem essa resposta, ou o time congela o sistema, ou descobre o alcance em produção.
O agente é probabilístico, e é isso que o faz bom em interpretar um pedido e escrever a mudança. Já descobrir o que depende do quê, medir o alcance de um diff e comparar comportamento antes e depois são problemas que ferramentas determinísticas de engenharia resolvem há décadas: compilador, indexador, grafo, histórico do Git e execução de verdade. E o agente pode mudar: o mapa, a proteção e a evidência continuam sendo do VirtDev.
O agente escreve. O VirtDev calcula o impacto e verifica o resultado.
Não se pede ao modelo que adivinhe o que uma ferramenta consegue medir.
Clona o repositório e levanta um ambiente isolado, com dados que não precisam ser os seus.
Monta o mapa de como a aplicação está ligada por dentro: o que depende do quê, por onde entram as requisições, que tabelas cada parte toca e o que o histórico conta sobre cada arquivo.
Grava como os fluxos se comportam hoje e mede quanto dessa rede realmente pega uma mudança. Onde não existe proteção, ela é criada.
Pega o card na ferramenta que você já usa, entrega o patch com a evidência anexa e abre o PR. A revisão e o merge continuam seus.
antes de escrever
O agente devolve o que entendeu: a tarefa reformulada, os critérios de aceite verificáveis por execução e o que ficou de fora. Enquanto houver pergunta em aberto, ele não escreve nenhuma linha.
antes de entregar
Ele devolve o patch com a evidência medida e espera de novo. É a sua aprovação que dispara a entrega, e o que é entregue é exatamente o que você revisou.
Entre um portão e outro, ele trabalha sozinho.
Cada entrega chega com o que foi verificado, como foi verificado e o que mudou no mapa do sistema. Sem isso, revisar o trabalho de um agente é acreditar nele.
Em vez de escrever à mão o resultado esperado, captura-se o que a aplicação já faz, e isso passa a valer como contrato. Depois da mudança, tudo roda de novo e é comparado. É o que permite proteger um sistema sem conhecer nenhuma regra de negócio e sem depender de documentação que talvez não exista. A técnica tem nome de mercado: characterization testing, também chamada golden master.
Mudanças de comportamento são injetadas no código, uma por vez, e conta-se quantas a proteção percebe. O que passa despercebido mostra onde a rede ainda tem furo, com número em vez de opinião. Cobertura diz que a linha executou, não que alguém repara se ela mudar. Essa técnica se chama teste de mutação.
Cobertura alta lida como segurança alta é como se perde um sistema.
A conversa sobre acesso costuma travar antes da técnica. Por isso o onboard tem três degraus, e o primeiro já é suficiente para começar.
nível 1
Uma deploy key de leitura no repositório. O agente lê o código e mais nada.
nível 2
Banco e cenário gerados a partir do seu próprio schema. Nenhum dado real sai da sua casa.
nível 3
Snapshot anonimizado ou staging, quando a fidelidade do dado muda o resultado.
Produção nunca é palco de teste. Em nenhum degrau.
lista de espera · primeiros pilotos
É exatamente o caso. Estamos rodando os primeiros onboards e escolhendo poucos repositórios por vez. A lista define a ordem.