O muro dos tres meses
Voce constroi um SaaS com vibe coding. Comeca rapido. “Crie o login” — 30 segundos. “Adicione pagamentos” — 2 minutos. Um MVP e lancado em tres semanas.
Tres meses depois, coisas estranhas acontecem. A AI “limpa” a logica de pagamentos e silenciosamente altera os calculos de desconto. Adicionar um novo endpoint quebra a autenticacao existente. Um pedido de refatoracao muda os nomes dos campos da API publica, matando todos os clientes.
Isso se chama logic drift — a AI modificando involuntariamente a logica de negocios existente. Bugs de regressao tambem existem no desenvolvimento tradicional. Mas logic drift e diferente. Mudancas que o desenvolvedor nunca pretendeu acontecem invisivelmente em toda a base de codigo. Cada prompt comeca em uma nova context window.
Drift em numeros
Isso nao e opiniao. Ha dados.
Velocidade custa complexidade. Uma equipe de pesquisa da Carnegie Mellon comparou 807 repositorios do GitHub antes e depois da adocao do Cursor (MSR 2026). As adicoes de codigo aumentaram 3-5x no primeiro mes. Apos dois meses, a vantagem de velocidade desapareceu. O que restou: alertas de analise estatica aumentaram 30%, complexidade do codigo aumentou 41% — permanentemente.
Nao ficou mais rapido — ficou mais lento. A organizacao de pesquisa sem fins lucrativos METR realizou um ensaio controlado randomizado com 16 desenvolvedores experientes de codigo aberto (2025). Em projetos que ja conheciam bem, o grupo que usou ferramentas de AI levou 19% mais tempo para completar as tarefas. No entanto, os proprios desenvolvedores perceberam uma aceleracao de 20%. Uma diferenca de 39 pontos percentuais entre percepcao e realidade. Os resultados podem diferir em projetos novos, mas a suposicao “AI = sempre mais rapido” esta quebrada.
Em escala, a estabilidade colapsa. Segundo o Google DORA Report (2025), cada aumento de 25% na adocao de AI correlaciona-se com uma diminuicao de 7.2% na estabilidade de entrega de software.
E de fato colapsou. A Amazon determinou o uso obrigatorio de ferramentas de AI coding em toda a empresa em 2025 e implantou 21.000 AI agents. No mesmo periodo, aproximadamente 30.000 funcionarios foram demitidos, reduzindo drasticamente a capacidade de revisao. A combinacao de codigo gerado rapidamente por AI e equipe de revisao reduzida resultou em 4 incidentes Sev-1 em 90 dias. Em 5 de marco de 2026, uma queda de 6 horas causou uma perda estimada de 6,3 milhoes de pedidos. Documentos internos declararam: “A geracao rapida de codigo do GenAI esta inadvertidamente expondo vulnerabilidades, e as salvaguardas atuais sao totalmente inadequadas.”
“Faca TDD” nao e a resposta
O conselho comum para o logic drift do vibe coding e “escreva testes.” A direcao esta certa, mas como voce fornece os testes determina o resultado.
O estudo TDAD (arxiv 2026) testou isso com precisao. Qwen3-Coder 30B foi avaliado com 100 instancias do SWE-bench Verified.
| Condicao | Taxa de regressao |
|---|---|
| Linha de base (sem instrucoes de teste) | 6.08% |
| Instrucao procedimental “faca TDD” | 9.94% (pior) |
| Arquivos de teste afetados fornecidos no context | 1.82% (reducao de 70%) |
Dizer ao agent “faca TDD” piora as coisas. O agent se desvia da tarefa original tentando seguir instrucoes procedimentais. Mas fornecer “estes arquivos de teste devem passar” como context concreto reduz regressoes em 70%.
A diferenca e clara. Nao instrucoes de “como testar”, mas contratos de “o que deve passar”.
Hurl: contratos em Plain Text
Hurl e uma ferramenta de testes que declara requisicoes HTTP e respostas esperadas em plain text. Mantida pela Orange (France Telecom), e um binario Rust sem dependencias de runtime, 18.7k estrelas no GitHub. Rapido o suficiente para rodar em cada commit no CI.
# Login succeeds
POST http://localhost:8080/api/auth/login
{
"email": "test@example.com",
"password": "secret123"
}
HTTP 200
[Asserts]
jsonpath "$.token" exists
jsonpath "$.user.email" == "test@example.com"
# Unauthenticated access returns 401
GET http://localhost:8080/api/pages
HTTP 401
Dois contratos. O login deve retornar 200 com um token. Acesso nao autenticado deve retornar 401.
Quando este arquivo e commitado no git e roda em cada commit no CI — no momento em que a AI “limpa” a logica de autenticacao e o 401 vira 200, o commit e rejeitado. O drift e capturado antes de chegar a producao.
Por que Hurl
Testes unitarios tambem podem capturar drift — se voce nao der permissao para a AI modificar arquivos de teste. Mas testes unitarios verificam funcoes internas, tornando-os estruturalmente acoplados a implementacao. Quando nomes de funcoes mudam, testes quebram. Cada refatoracao exige atualizacao dos testes.
Hurl fica na fronteira HTTP. Declara apenas requisicoes e respostas. Nao sabe nada sobre o codigo interno. Nao importa como a AI mude o codigo, se o comportamento observavel externamente permanece o mesmo, os testes passam; se difere, falham. E naturalmente independente da implementacao.
| Testes unitarios | Hurl | |
|---|---|---|
| Verifica | Funcoes internas | Contrato HTTP |
| Na refatoracao por AI | Modificados juntos | Sem alteracao |
| Deteccao de drift | Condicional (se travado) | Natural |
| Dependencia de estrutura de codigo | Alta | Nenhuma |
| Legibilidade humana | Nivel de codigo | Plain text |
| Geracao por LLM | Requer entendimento da estrutura do codigo | Precisa apenas de HTTP |
O que Hurl verifica nao e codigo, mas comportamento. O codigo pode ser livremente alterado pela AI. O comportamento nao deve mudar. Essa distincao e a chave para capturar o drift.
Travamento Ratchet
Quando os testes Hurl passam, trave-os. Isso e o ratchet.
1. Write Hurl tests for current API (or auto-extract)
2. Run on every commit in CI
3. Passing tests cannot be deleted or modified
4. New features require new Hurl tests
5. All existing + all new tests must pass to merge
Diga ao agent “refatore este codigo” e ele muda o codigo livremente. Mas se os testes Hurl falharem, o commit e rejeitado. O agent deve preservar todo o comportamento existente enquanto refatora. Drift em casos de borda nao cobertos pelo Hurl ainda e possivel, mas para o comportamento coberto, o drift e suprimido estruturalmente.
Isso se alinha exatamente com a descoberta do estudo TDAD. Nao uma instrucao procedimental “escreva testes”, mas um contrato concreto “estes arquivos Hurl devem passar”. O agent pode escolher o metodo, mas nao pode violar o contrato.
Funciona em sistemas legados tambem
Ja roda software feito com vibe coding em producao? Nao precisa comecar do zero.
Passo 1: Capture o comportamento atual em Hurl.
Se existe documentacao da API, traduza diretamente para Hurl. Se nao, faca um agent ler o codigo existente e escrever testes Hurl. O objetivo e declarar “e assim que funciona atualmente” em plain text para cada endpoint.
Passo 2: Conecte ao CI.
Verifique que todos os testes Hurl passam e adicione-os como condicoes de merge.
Passo 3: Voce esta seguro agora.
Seja a AI refatorando ou adicionando funcionalidades, Hurl protege o comportamento existente. Se drift ocorrer, o CI captura imediatamente.
Nao e trabalho de fundacao — e reforco sismico. Reforcar o predio sem fechar a loja.
Nao e o fim do Vibe Coding — e sua evolucao
Andrej Karpathy, que cunhou o termo “vibe coding”, declarou exatamente um ano depois, em fevereiro de 2026, que “a era do vibe coding acabou”. O novo paradigma e agentic engineering — humanos nao escrevem codigo, orquestram agents que planejam, implementam e testam autonomamente.
O Thoughtworks Technology Radar (2025) colocou Spec-Driven Development no nivel “Assess”. A equipe de Martin Fowler publicou uma analise de ferramentas SDD. A industria converge na mesma direcao.
Testes Hurl sao a menor unidade dessa transicao. Voce nao precisa de 10 especificacoes. Nao precisa aprender OpenAPI. Um arquivo Hurl e um contrato. E esse contrato previne estruturalmente o drift sem restringir a liberdade do agent.
Nao mude o modelo. Adicione um contrato.
Relacionados
- yongol — A quilha do AI Coding SaaS — Forca consistencia full-stack com 10 SSOTs. Hurl e um deles.
- Ratchet Pattern — Como fazer Agents irem ate o fim — A teoria por tras da verificacao deterministica e do travamento ratchet.
- IFEval-Exploiting Ratchet Code — Loops de feedback usando sycophancy bias e Reins.
References
- Cursino, D. et al. (2026). “Speed at the Cost of Quality? The Impact of AI Coding on Software.” MSR 2026. arxiv.org/abs/2511.04427
- METR (2025). “Measuring the Impact of Early AI on Experienced Open-source Developer Productivity.” arxiv.org/abs/2507.09089
- Google Cloud (2025). DORA Report 2025. cloud.google.com
- Wang, Z. et al. (2026). “TDAD: Test-Driven Agentic Development.” ACM AIWare 2026. arxiv.org/abs/2603.17973
- Autonoma (2026). “Amazon Vibe Coding Failures: 4 Sev-1s in 90 Days.” getautonoma.com
- CNBC (2026). “Amazon convenes ‘deep dive’ internal meeting to address AI-related outages.” cnbc.com
- Thoughtworks (2025). “Spec-Driven Development.” Technology Radar Vol.33. thoughtworks.com
- Karpathy, A. (2026). “From Vibe Coding to Agentic Engineering.” thenewstack.io
- Fowler, M. et al. (2025). “SDD Tools.” martinfowler.com
- Hurl. hurl.dev | github.com/Orange-OpenSource/hurl