"Uma mudança por vez: a regra que faz a IA parar de quebrar o login quando você pede um campo"
"Pediu um campo de observação e a IA mexeu no total. O checklist da fatia pequena: o que pedir, o que cercar no pedido e o que conferir depois."
A cena é sempre a mesma.
Alguém pede: "coloca um campo de observação no orçamento". Você repassa pra IA. Ela coloca o campo e, no mesmo pedido, altera o cálculo do total. Você só descobre quando o cliente reclama do valor. Pede pra consertar o total, ela conserta e quebra o login.
Um comentário no TabNews explicou o porquê melhor do que eu explicaria, olhando um app feito por IA:
"Toda a lógica, os componentes e os estilos de cada tela estão misturados dentro de um único arquivo. [...] Um simples ajuste pode virar um pesadelo porque você não sabe onde mexer sem correr o risco de quebrar algo."
Não foi você que pediu errado
"Um campo" parece pequeno. Pra você, é uma linha a mais na tela. Pro código, o campo de observação e o cálculo do total costumam morar no mesmo arquivo, às vezes no mesmo bloco. A IA não edita uma linha: ela reescreve o pedaço inteiro onde o campo vai entrar, e aproveita pra "melhorar" o que estava por perto. Ninguém pediu isso. Ninguém proibiu também.
Então o problema não é o seu pedido ser burro. É ele ser maior do que parece, e sem cerca. Já contei aqui o que fazer quando a quebra já aconteceu e como voltar pra ontem com o git. Este post é o de antes: como encolher o pedido pra quebra quase não acontecer. Três momentos.
Antes de pedir: o pedido é mesmo uma mudança só?
Quatro testes. Falhou em um, o pedido ainda é grande.
- Cabe numa frase sem "e". "Adicionar um campo de observação no orçamento" passa. "Adicionar observação e mostrar no PDF e na lista" são três pedidos.
- Mexe numa tela só. Se você precisa dizer o nome de duas telas, são duas mudanças.
- Você sabe dizer como vai conferir. Uma frase: "vou saber que está pronto quando, fazendo X, eu vir Y". Se não consegue escrever, o pedido ainda está vago.
- Se der errado, você perde no máximo meia hora. Pedido que você não teria coragem de jogar fora é pedido grande demais.
O campo de observação, partido do jeito certo, vira três fatias, uma por rodada:
- O campo aparece no formulário do orçamento e fica salvo (fecha, abre de novo, o texto continua lá).
- A observação aparece no orçamento que vai pro cliente.
- A observação aparece na lista de orçamentos, cortada se for longa.
Parece mais lento. Não é: cada fatia se confere em dois minutos, e se uma quebrar algo, você sabe qual foi.
No pedido: o que cercar
Três parágrafos que eu colo em todo pedido de fatia pequena, sem uma palavra de programação:
Adicione um campo de texto "Observação" no formulário de orçamento,
salvo junto com o orçamento.
Mantenha exatamente como estão: o cálculo do total, o login e as
outras telas. Não mude o nome de nada que já existe.
Antes de construir, me diga quais arquivos vai alterar. Se precisar
tocar em algo fora disso, pare e me pergunte.
O parágrafo do meio é o que salva o total. Repare que ela diz o que manter, e cita pelo nome a coisa mais cara do seu app, a que dá prejuízo se mudar. Quando a IA sai dessa cerca, você tem como saber, porque ela estava escrita antes. (O molde completo, de seis linhas, está neste post.)
E tem uma coisa nova que ajuda muito: o modo de planejar. Lovable e Replit têm hoje um modo em que a IA lê o projeto e devolve um plano sem mexer em nada. No Lovable ele se chama Plan (antes era "Chat"), e a documentação é direta: mudança no código só acontece depois que você aprova o plano. No Replit também se chama Plan, e a documentação diz que ele não altera nem o código nem os dados do projeto. Nos dois, planejar gasta crédito, mas ler um plano que cita o total sai bem mais barato que descobrir pelo cliente.
Então: mande o pedido no modo de planejar. Se o plano menciona o total, o login ou uma tela que você não citou, não aprove. Peça de novo, mais estreito.
Depois: o que conferir, nesta ordem
- Conte o que foi mexido. Peça "liste os arquivos que você alterou" ou, se o código está na sua máquina, rode
git status. Um campo de texto não deveria mexer em arquivo com "auth" (login) ou "migration" (mudança na estrutura do banco) no nome. - Confira a fatia. A frase que você escreveu antes: abriu o orçamento, escreveu a observação, fechou, abriu de novo, o texto está lá.
- Confira a coisa cara. Um orçamento com números que você sabe de cabeça: três itens de R$ 10 e R$ 15 de frete tem que dar R$ 45. Se der outra coisa, a cerca foi pulada.
- Confira o login. Sair e entrar de novo. Dez segundos.
- Marque o ponto. Passou tudo, salve a versão com um nome do que funciona ("funciona: observação salva"). Só então peça a fatia 2.
Quebrou alguma coisa? Não peça "conserta". Volte pro ponto marcado e peça de novo, menor.
Era uma parede, e ela tem vizinhas
Fatia pequena é o segundo passo do jeito que eu trabalho: definir, ordenar a construção em fatia pequena, não aceitar sem prova, operar. Ela reduz a quebra, mas não substitui as vizinhas: sem ponto de retorno, a fatia que quebrou não tem pra onde voltar; e voltar o código não desfaz a coluna que a IA criou no banco.
Cada uma dessas é uma parede, e elas têm ordem. Mas a de hoje custa só três parágrafos colados no próximo pedido. Pega a próxima coisa que você ia pedir, passa pelos quatro testes e vê em quantas fatias ela se divide.
Fontes
- TabNews, comentário no post de
FelipeBarso, "[Trae AI IDE] App do TabNews criado com um único prompt": https://www.tabnews.com.br/FelipeBarso/trae-ai-ide-app-do-tabnews-criado-com-um-unico-prompt - Lovable, Plan mode (não altera código até você aprovar; cada mensagem custa crédito): https://docs.lovable.dev/features/plan-mode
- Replit, Plan Mode (planeja sem alterar o código nem os dados do projeto; cobrado como qualquer trabalho do Agent): https://docs.replit.com/core-concepts/agent/plan-mode