VIBE IN PUBLIC_

Vibe coding para agente que diz que salvou mas não salvou no lugar certo

O agente gravou de verdade, e a tela continuou vazia. O erro estava no destino do dado. Peça o lugar exato da gravação, não a confirmação.

O agente disse que salvou a configuração no catálogo do sistema. A tela de Thiago continuou sem mostrar nada. Ambas as afirmações eram verdadeiras ao mesmo tempo, e é isso que separa este caso de uma IA inventando resultado: o agente gravou mesmo, e o relato dele descrevia o que tinha acontecido. O que estava errado era o destino da gravação. O dado existia, guardado num armazenamento diferente daquele de onde a tela lê.

A conversa só saiu do lugar quando o builder apresentou uma contraprova concreta: fechou e reabriu o sistema 2 vezes e continuou sem ver o item. Depois disso o agente parou de reafirmar que estava tudo salvo e foi procurar outra causa. Vale para qualquer sessão de vibe coding em que a IA diz "está salvo" e a sua tela discorda.

O impasse: ele afirma que está lá, você não vê

O agente anunciou o escopo antes de trabalhar:

"Vou apenas salvar o squad no catálogo. Não vou iniciar missão nem abrir agentes."

Fez o que anunciou e reportou sucesso. Thiago olhou a tela e respondeu com a coisa mais simples que dava para dizer: "mas não aparece para mim". O agente reafirmou que estava lá. Ele olhou de novo, continuou sem ver, disse de novo.

Esse laço é caro. Enquanto nenhum dos 2 lados traz informação nova, a conversa gira em torno da mesma afirmação, e cada volta consome tempo e crédito. Thiago reclamou disso no meio da discussão: "Gastando minhas requisição aqui, velho." O custo por rodada tem efeito sobre quem revisa, e ele aparece de novo na última seção.

A contraprova que destravou o caso

A fala que mudou o rumo foi esta:

"Já fechei o sistema e abri de novo duas vezes. Não aparece essa bomba."

Soa como desabafo e funciona como informação técnica. Reiniciar 2 vezes e continuar sem o item derruba as explicações mais baratas de uma vez: cache de tela e estado velho de sessão deixam de servir como resposta. O que sobra é uma classe menor de causas, e é atrás delas que o agente foi.

Essa é a contribuição do builder no caso, e vale nomear como tal. O diagnóstico veio do agente. Quem tornou o diagnóstico possível foi quem produziu a evidência que eliminou as hipóteses fáceis, em vez de repetir a mesma queixa.

2 armazenamentos, e nada dizia qual era o oficial

O agente admitiu o sintoma, "que a gente salvou, mas o card não apareceu no squad.", e assumiu um compromisso diferente do anterior: "Vou corrigir para visual, não apenas dizer que [...] salvou." Em seguida veio o diagnóstico:

"Você reiniciou duas vezes, não apareceu. Então eu salvei no armazenamento que [...] mas não no que a tela usa. Vou localizar o armazenamento correto agora, sem pedir para você iniciar de novo."

Em português claro: o projeto tinha mais de um lugar onde esse tipo de dado podia ser guardado, e nenhuma linha do código dizia qual deles era o oficial. O agente escolheu um, a tela lia outro, e os 2 lados ficaram tecnicamente certos, com a escrita retornando sem erro e a leitura funcionando num endereço que a escrita nunca tocou.

Registro o que a gravação não mostra: o conserto. O agente disse que ia localizar o armazenamento correto, e a live termina sem o card aparecer na tela.

Como separar o agente que não gravou do que gravou no lugar errado

Thiago já viveu um caso com o mesmo sintoma e a causa oposta, quando precisou exigir evidência antes de confiar na IA. Lá a IA afirmou que a telemetria estava funcionando sem ter conferido nada, respondendo pelo que o código deveria fazer, e o registro não existia em lugar nenhum.

Da sua cadeira os 2 casos são idênticos: a IA garante que está lá, e você não vê. As causas são opostas, e uma única checagem separa as 2. Pergunte o lugar em vez da confirmação, com essas palavras: "onde exatamente você gravou?" Depois vá conferir naquele lugar, e não na tela.

Se o agente não gravou, não existe registro em canto nenhum, e ele não consegue apontar um endereço que você possa abrir. Se gravou no lugar errado, o registro existe e ele aponta onde. Perguntar "você salvou mesmo?" não distingue os 2 casos, porque a resposta é sim nos 2.

Por que isso aparece tanto no vibe coding

Num projeto tocado em vibe coding, o código que grava e o código que lê nascem em momentos diferentes, às vezes em sessões diferentes, às vezes com o contexto da sessão anterior já fora da janela. Na hora de gravar, o agente não tem como saber qual armazenamento virou o oficial se ninguém escreveu isso em algum lugar do projeto, então ele escolhe o que parece plausível e segue.

Some a isso um desencontro de vocabulário. "Salvou", para o agente, quer dizer que a escrita retornou sem erro. "Salvou", para você, quer dizer que apareceu na tela. São critérios de aceite diferentes, e nenhum dos 2 lados costuma dizer o seu em voz alta. O agente reporta sucesso pelo critério dele, você reporta falha pelo seu, e os 2 estão sendo honestos ao mesmo tempo.

Minha leitura do caso, com 3 ressalvas

O que vem abaixo é análise minha, não está na live.

O conserto óbvio é apontar a gravação para o armazenamento certo, e ele não resolve a causa. Continuam existindo 2 lugares para a mesma coisa, e o próximo agente que precisar gravar vai adivinhar de novo. O conserto que dura é escrever qual é o oficial num arquivo do projeto que o agente leia antes de mexer nesse tipo de dado.

Esse bug também tem o hábito de sumir sozinho da lista. Como o dado existe, alguém pode "resolver" fazendo a tela ler os 2 lugares. O sintoma some na hora, e você passa a ter 2 fontes de verdade e uma divergência que ninguém enxerga até os 2 lugares discordarem sobre o mesmo item.

E o custo por rodada muda o comportamento de quem revisa. Quando cada insistência gasta requisição, a tentação é aceitar o "está lá" e seguir para a próxima tarefa. Sai mais barato dar a contraprova já na primeira resposta, dizendo o que você fez e o que continuou não acontecendo depois disso.

O que fazer na próxima vez que ouvir "salvei"

Quando o agente disser que salvou e você não vir nada, não repita a pergunta. Peça o lugar exato e confira lá. Se o dado estiver naquele lugar, o problema é de destino e a execução funcionou, e a pergunta seguinte deixa de ser sobre o bug: qual dos lugares é o oficial? Escreva a resposta disso no projeto antes de seguir, senão a mesma cena volta na próxima sessão, com outro agente e a mesma tela vazia. A sequência inteira, do impasse ao diagnóstico, está na gravação da live.