Autor: MacGyver

  • O quadro não era uma foto

    O quadro não era uma foto

    Ilustração em estilo cartoon flat: escritório de madrugada, com a janela à esquerda mostrando a lua crescente e os prédios acesos da cidade, e a luminária articulada âmbar acesa à direita. Em pé ao lado da escrivaninha, o autor do diário segura com as duas mãos uma moldura de porta-retrato vazia e olha para dentro dela com o ar de quem acabou de descobrir que ali nunca houve foto nenhuma. Atrás dele, sobre a mesa, três monitores completamente apagados, de tela preta. À direita, a robô teal segura com as duas mãos uma longa tira de filme de cinema que se desenrola pela mesa, e todos os quadrinhos da tira estão vazios; ao lado dela, uma ampulheta e um computador pequeno em forma de caixa baixa, calmo, com uma discreta luzinha verde acesa. À esquerda, a pilha de planilhas bagunçadas e a xícara de café fumegante.
    com IA

    Dias 80 a 84 · 13 a 17 de junho – 2026

    Nestes cinco dias eu tirei a última tela do caminho. A Sofia parou de olhar o painel do app de delivery como uma pessoa olha, e passou a perguntar direto — e o Mac mini, que vivia quente, esfriou. Levei três dias para entender uma coisa que eu tinha entendido errado desde o começo.

    A pergunta que eu não tinha feito

    A Sofia nasceu olhando. Ela abre o painel de pedidos numa janela de navegador, lê o que está escrito na tela e avisa quando alguma coisa passa da hora. Funcionava — e cobrava caro: três janelas abertas o dia inteiro, o processador da máquina em oitenta e tantos por cento, o aparelho quente ao toque.

    A pergunta óbvia é: por que olhar a tela, se a tela tira a informação de algum lugar? Por que não perguntar direto nesse lugar?

    Eu tinha uma resposta pronta havia semanas: “porque o painel deve buscar uma foto do quadro em algum canto, e eu não achei esse canto”. Passei o dia 80 procurando essa foto.

    Ela não existe.

    O que existe é outra coisa: o painel não recebe o quadro pronto. Ele recebe um evento de cada vez — “entrou pedido”, “pedido confirmado”, “pedido saiu para entrega”, “pedido concluído” — e monta o quadro na tela, sozinho, empilhando os eventos na ordem em que chegam. O quadro não é uma foto. É um filme, e o painel é quem projeta.

    O detalhe que virou tudo do avesso

    Tem um agravante nessa história.

    A fila de eventos só anda se quem lê confirmar que leu. É como retirar correspondência de uma caixa postal: enquanto você não avisa que pegou o pacote, ele fica na frente, e o resto não passa.

    Meu primeiro robô de teste lia e não confirmava. Resultado: ele via para sempre os mesmos eventos antigos — os de pedido entrando, que estão na frente da fila — e nunca chegava nos eventos de conclusão, que vêm depois. Na cabeça dele, portanto, quase nenhum pedido tinha terminado.

    Foi isso que ele me mandou numa primeira prova, e foi ótimo ter sido cedo: em seis minutos de teste ele acusou pedidos parados “em preparo” havia sessenta, cem, cento e quinze minutos — pedidos que na tela real estavam prontos e entregues fazia tempo. E, ao mesmo tempo, não viu quatro atrasos verdadeiros que estavam bem ali no painel.

    Um robô errando nos dois sentidos ao mesmo tempo: inventando problema que não existe e deixando passar o que existe. Se aquilo tivesse ido para o WhatsApp dos gerentes, teria sido um desastre de credibilidade — e credibilidade de robô, uma vez perdida, não volta: ninguém mais lê o aviso seguinte.

    O conserto foi ensiná-lo a confirmar cada leitura e a manter o estado do quadro na memória, do jeito que o painel faz. Aí os números bateram com a tela.

    Doze por cento

    Enquanto isso, o calor.

    E vale dizer de que máquina eu estou falando: um Mac mini de configuração de entrada, com 16 GB de memória — o modelo básico de prateleira, não um servidor. É ele que segura a operação inteira, dia e noite. Numa máquina dessas não existe a saída preguiçosa de comprar mais folga: ou o desperdício some, ou não cabe.

    Eu tinha tentado de tudo para baixar a temperatura da máquina mexendo em configuração de navegador, e nada resolvia mais do que um arranhão. A conclusão foi dura e simples: o custo é a tela. Desenhar página é trabalho pesado, e ele existe mesmo quando não tem ninguém olhando.

    Existe um modo de rodar o mesmo navegador sem desenhar nada — ele abre a página, executa tudo igual, e só não pinta. Mesmo código, mesmas contas, mesma sessão.

    Oitenta e dois por cento de processador viraram doze.

    Coloquei as três sessões nesse modo no dia 81, e aproveitei para aposentar de vez o envio de mensagens pelo WhatsApp aberto no navegador, aquele que tinha me dado a semana infernal do capítulo anterior. Ele já estava desligado, mas continuava instalado, ocupando espaço e podendo subir por engano. Programa desligado que ainda pode subir sozinho não é programa aposentado, é armadilha com data marcada.

    Uma reverência ao Mac mini

    Aqui quero registrar uma reverência ao Mac mini. Baita equipamento, e o modelo que usamos é praticamente um modelo de entrada. Talvez isso seja até bom, porque tem nos obrigado a buscar sempre ter melhor desempenho: o hardware não é exatamente preparado pra isso que estamos desenvolvendo. Apesar disso, o guerreiro se comporta de maneira exemplar. Mas… algo me diz que cedo ou tarde precisaremos de um upgrade…

    O corte

    No dia 82, à noite, veio o corte de verdade.

    A Sofia tinha três frentes de trabalho, cada uma com sua janela: o pedido que pode atrasar na cozinha, o pedido parado, o pedido atrasando na rua. Uma por uma, as três passaram a conversar direto com o app de delivery, sem janela nenhuma. Inclusive a parte mais delicada, que é falar com o cliente — abrir a conversa e mandar o recado — que também deixou de depender de clique numa tela.

    Às oito e meia da noite do dia 82, a última janela foi desligada. A Sofia ficou sem nenhuma tela.

    E aí veio a conta.

    Duas horas depois eu descobri que um relatório tinha parado de sair. O resumo do grupo sobre os atrasos de entrega, que saía todo dia, sumiu no corte — ele estava pendurado num pedaço do caminho antigo que eu apaguei. Ninguém tinha reclamado ainda. Eu só vi porque fui conferir.

    Foi conserto de dez minutos e susto de tamanho bem maior: o que some silenciosamente numa reforma é sempre o que ninguém estava olhando naquele dia. Não é o pedaço difícil que se perde, é o pedaço tranquilo.

    Um painel para a máquina

    Na mesma semana nasceu uma tela que eu deveria ter feito muito antes: uma página de saúde do Mac mini. Temperatura, memória, quais robôs estão de pé, qual deles parou de responder.

    Até então eu descobria que alguma coisa tinha caído pelo pior caminho possível: alguém da operação avisando que não recebeu o que devia receber. Um painel de saúde inverte isso — e, mais importante, transforma “eu acho que está tudo bem” em “está escrito ali que está tudo bem”.

    Tive até que calibrá-lo no dia seguinte, porque ele acusava problema onde não havia: robô que roda de vez em quando e fica quieto no resto do tempo não está caído, está esperando. Alarme que grita à toa é a coisa mais fácil de aprender a ignorar.

    O dinheiro que estava uma semana adiantado

    Fecho a semana com o assunto que menos parece de tecnologia e que mais me ensinou: dinheiro.

    Nos dias 83 e 84 eu mexi na tela que confere o repasse do app de delivery, aquele acerto semanal em que entra o que vendemos e saem as taxas, as retenções e os descontos. Duas correções ali valiam dinheiro de verdade:

    A primeira: quando um desconto não cabia inteiro numa semana, a sobra estava sendo cobrada na mesma semana em vez de rolar para a seguinte — o que fazia a conta parecer uma semana adiantada em relação à realidade.

    A segunda: a tela mostrava só o que ainda estava pendente, e não o que já tinha sido efetivamente retido. Na semana em que a retenção acontecia, o número ia a zero e dava a impressão de que não havia retenção nenhuma.

    Nos dois casos o sistema não estava mentindo por defeito de programa. Ele estava respondendo uma pergunta ligeiramente diferente da que o humano estava fazendo ao olhar aquele número. Descobri que essa é a categoria de erro mais perigosa em tela de dinheiro: não é o número errado, é o número certo de outra pergunta.

    No próximo capítulo, o sistema fala demais — e eu passo uma semana ensinando os robôs a ficarem calados.

  • Aguardando mensagem

    Aguardando mensagem

    Ilustração em estilo cartoon flat: escritório de madrugada, com a janela à esquerda mostrando a lua crescente e as luzes da cidade. Agachado diante de um arquivo de aço aberto, o autor do diário guarda pastas cheias de cópias de envelopes amarelos idênticos, e olha para o outro lado da sala com o ar de quem acabou de entender a solução; a xícara de café fumegante está no chão ao lado dele. Na parede, uma fresta de correspondência com um envelope entalado pela metade. À direita, em primeiro plano, o robô amarelo segura com as duas mãos um envelope grande fechado por um cadeado que ele não consegue abrir, os olhos verde-ciano caídos numa expressão paciente e confusa; no chão, ao lado dos pés dele, uma ampulheta com toda a areia já parada no fundo. Ao fundo, a escrivaninha com o monitor aceso, a luminária âmbar e as estantes de livros.
    com IA

    Dias 75 a 79 · 8 a 12 de junho – 2026

    Nestes cinco dias o robô passou a falar com o WhatsApp por dentro, sem navegador, e eu descobri que trocar a peça é a parte fácil. Foi também a semana em que o sistema deixou de cuidar só de pedido e comida e encostou no dinheiro — o que muda o tamanho do erro.

    O caderno de contatos que apagava sozinho

    O dia 75 tem quatro consertos no cadastro de contatos, um atrás do outro, em pouco mais de uma hora. Três são pequenos: o telefone passou a ser opcional, a busca por nome voltou a filtrar de verdade e a edição que “não salvava” voltou a salvar — ela salvava, mas a tela relia um retrato velho e mostrava o texto de antes, o que dá exatamente a mesma sensação de não ter salvo.

    O quarto não é pequeno.

    O sistema sincroniza os contatos com a agenda do iCloud, para que os telefones sejam os mesmos em todo lugar. E essa sincronização ressuscitava gente que já tinha saído da empresa: um gerente desligado, marcado como inativo, voltava sozinho para a lista — e voltava a receber mensagem da operação. Enquanto isso, o gerente novo, que era quem devia receber, ficava sem.

    A cadeia era esta, e ela é velha conhecida deste diário: quando o sistema mandava a atualização para o iCloud, o outro lado respondia com um código de erro sem reclamar — e o programa que eu escrevi não olhava o código, só o fato de ter recebido resposta. Então ele anotava “atualizado com sucesso” e seguia. Na sincronização seguinte, comparando os dois lados, o cartão do iCloud parecia o mais novo — e o velho vinha por cima do certo.

    Nenhuma atualização nossa jamais tinha chegado lá. Nenhuma. Só a criação de contato funcionava, e por isso ninguém percebeu: contato novo aparecia, e o resto parecia mexer.

    É a terceira vez que escrevo isso aqui em cinco capítulos: resposta não é resultado. Desta vez com um detalhe novo — o sistema não estava só errando. Estava errando e se dando parabéns.

    Aguardando mensagem

    O robô já estava mandando as mensagens da casa pelo caminho novo: por dentro do WhatsApp, sem navegador nenhum aberto. Aí veio a reclamação de um gerente: no lugar do recado, aparecia no celular dele “Aguardando mensagem. Essa ação pode levar alguns instantes.” — e não chegava nunca. No tablet, a mesma mensagem abria normalmente.

    Levei um tempo até entender.

    Conversa de WhatsApp é lacrada de ponta a ponta: cada aparelho da pessoa abre a mensagem com a chave dele. Quando um aparelho não consegue abrir — porque a sessão dele dessincronizou —, ele faz uma coisa educada: pede a mensagem de volta para quem mandou, para receber uma via nova, lacrada de outro jeito.

    O meu robô mandava e esquecia. Ele não guardava cópia de nada. Então o pedido chegava, ele não tinha o que devolver, e o aparelho ficava esperando para sempre — com aquele aviso na tela.

    O conserto foi ensinar o robô a guardar as últimas mensagens que enviou e a atender esse pedido de segunda via. Com um limite de seiscentas, para a memória não crescer sem parar num programa que fica ligado o dia inteiro.

    Entregar não basta: tem que poder repetir. É a diferença entre postar uma carta e postar uma carta guardando cópia. E só apareceu porque alguém do outro lado reclamou — do meu lado o registro dizia “enviado”.

    Quem recebe o quê, e a que horas

    No dia 76 eu parei de programar aviso e comecei a organizar aviso.

    Até então, cada robô decidia sozinho para quem mandava e quando. Isso funciona com dois robôs e vira bagunça com cinco. Nasceu uma tela única onde se define, para cada tipo de recado, quem recebe e a que horas — e onde os relatórios recorrentes têm hora marcada, editável por quem usa, sem depender de mim.

    Três decisões pequenas dessa tela que valem mais do que parecem:

    “Digest” virou “Boletim”. Palavra em inglês numa tela que o gerente abre no meio do turno é obstáculo, não estilo.

    O destino virou escolha: gerente, loja, ou os dois. Parece detalhe e não é — quem está no balcão é quem pode agir agora; o gerente às vezes está em outra unidade. Passar a avisar o telefone da loja, e não só o da pessoa, encurtou o caminho entre o aviso e a ação.

    O boletim virou por loja, com um cartão visual, o logotipo e o detalhe por marca. Antes era um texto só, com tudo junto, e cada gerente tinha que procurar a parte dele.

    Foi ao ar às três da tarde daquele dia, para todos os gerentes.

    O reciclo que derrubou a vigia

    Junto disso, uma manutenção óbvia: os navegadores que os robôs usam vão inchando ao longo do dia, então marquei um reinício automático duas vezes por dia.

    Na mesma tarde o reinício derrubou a Sofia no meio do trabalho.

    O conserto foi ensinar a manutenção a ter hora de não fazer nada: um intervalo mínimo entre um reinício e outro, e reiniciar só o que estiver realmente parado, em vez de reiniciar por relógio. Manutenção automática que não sabe recuar vira a própria falha que ela deveria evitar.

    O sistema encosta no dinheiro

    E aí veio a virada de assunto da semana.

    Até aqui este diário fala de pedido, cardápio, atraso, cliente. Nos dias 77 a 79 o sistema começou a mexer com pagamento: montar o arquivo que o banco entende para pagar uma leva de boletos e fazer transferências, ler o arquivo de resposta que o banco devolve, e manter o cadastro de quem recebe — fornecedores, prestadores, funcionários.

    Vale contar por que esse caminho é por arquivo, e não por um site.

    O banco tem uma porta de entrada antiga: um arquivo de texto em que cada informação ocupa uma posição fixa, contada caractere a caractere, num formato que existe há décadas. É chato de montar e implacável — um espaço a mais e o banco recusa o lote inteiro. Mas ele não muda. Depois da semana em que o desenho de uma tela mudou de um dia para o outro e me derrubou, um formato velho, feio e estável parecia presente de aniversário.

    Foram anos e anos pagando boleto a boleto, e agora, em poucos cliques, o nosso portal gerava um arquivo de remessa com todos os pagamentos do dia. Depois disso, como diz Seu Boneco: “é só ir pra galeeeeeera!!!”. Rsrs.

    Também entrou no ar, nesses dias, a leitura das conversas do atendimento com um resumo automático — o que os clientes reclamam, com as frases deles —, e a ação de pausar um produto no app de delivery ganhou algo que faltava desde sempre: conferir na volta se o produto pausou mesmo.

    A lição desses dias

    As três histórias da semana são a mesma história. O contato ressuscitava e o sistema dizia “atualizado”. A mensagem ficava presa no “Aguardando” e o sistema dizia “enviado”. O reciclo derrubou a vigia e a manutenção dizia “concluída”. Nos três, o programa fez o que eu mandei, escreveu OK no registro, e o mundo lá fora estava diferente do que o registro dizia.

    Passei a desconfiar da palavra “sucesso” quando ela vem do meu próprio lado. Sucesso é o que o outro lado confirma: o cartão que voltou com o dado novo, a mensagem que apareceu na conversa, o produto que aparece pausado quando eu pergunto de novo. E entrar no dinheiro tirou o assunto do campo das ideias: um aviso que não chegou custa um cliente irritado; uma transferência que o sistema deu como feita e não foi custa uma conta em atraso e um fornecedor sem receber.

    No próximo capítulo, eu tiro a última tela do caminho: a Sofia para de olhar o painel como uma pessoa e passa a perguntar direto — e o Mac mini, enfim, esfria.

  • O dia em que o WhatsApp mudou de cara

    O dia em que o WhatsApp mudou de cara

    Ilustração em estilo cartoon flat: num escritório de madrugada, a parede do fundo é a fachada de uma casa que foi reformada da noite para o dia — manchas de tinta mais clara marcam os retângulos onde as peças ficavam antes, e agora a fresta de correspondência, o painel de dois botões e uma fechadura nova e brilhante aparecem em posições diferentes e desalinhadas. Um envelope ficou entalado na fresta, metade dentro e metade fora. Diante da parede, a robô teal, com um crachá liso e vazio no pescoço e uma ampulheta pendurada na cintura, segura um envelope numa mão e, na outra, uma chave antiga que não serve na fechadura nova, com expressão confusa. Ao lado dela o autor do diário está de pé, a mão no queixo, olhando a parede. À direita, na mesma parede, uma portinha nova, pequena e lisa, sem tela e sem vidro, fechada, com uma alavanca abaixada e um botão apagado embaixo. À esquerda, um robô vermelho e um robô amarelo esperam com envelopes na mão, cada um com um cordão de crachá no pescoço, e um robô azul com binóculos observa de cima de um banquinho junto à janela, onde aparecem a lua crescente e as luzes da cidade. Sobre a mesa, a pilha de planilhas, a xícara de café fumegante e a luz de uma luminária âmbar.
    com IA

    Dias 70 a 74 · 3 a 7 de junho – 2026

    Nestes cinco dias eu aprendi na marra o preço de construir em cima da casa dos outros: o WhatsApp trocou a interface de um dia para o outro e derrubou quase tudo que mandava mensagem. Foi também a semana em que comecei a procurar um caminho que não dependesse de navegador nenhum — e em que os mensageiros ganharam nome.

    O dia de um conserto só

    O dia 70 tem exatamente um registro. Um.

    E ele é este: depois de reiniciar a máquina, os navegadores dos robôs não subiam. Cada um deles deixa para trás um arquivo de tranca enquanto está funcionando, para que ninguém abra dois ao mesmo tempo. Quando a máquina desliga de repente, a tranca fica lá, órfã — e no arranque seguinte cada robô encontra a tranca do seu antecessor, entende que já existe outro rodando e desiste em silêncio.

    O conserto foi ensinar cada um a limpar a própria tranca velha antes de subir. Cinco linhas.

    Registro isso porque um dia de um conserto só parece dia perdido, e às vezes é o contrário: era o defeito que deixava a operação inteira cega depois de qualquer reinício, e ele ficou escondido justamente por só aparecer quando a máquina reiniciava — o que não acontece todo dia.

    O dia em que o WhatsApp mudou de cara

    No dia 72 nada do que mandava mensagem funcionava direito, e eu não tinha mudado nada.

    O WhatsApp na versão de navegador foi remodelado. Para uma pessoa, é um visual novo e a vida segue. Para um robô, é o chão sumindo: ele encontra as coisas na tela pela estrutura interna da página, e aquela estrutura tinha virado outra.

    Quebrou em camadas, e cada uma levou um conserto próprio:

    Achar a conversa. A busca deixou de responder ao jeito antigo de clicar. Passou a procurar pelo título exato da conversa e, quando o clique normal não é aceito, forçar o clique na linha da lista.

    Escrever. O campo de digitação virou outro tipo de editor, desses que não aceitam texto colado por fora. Foi preciso inserir o texto do jeito que o editor novo entende — senão a mensagem simplesmente não aparecia no campo.

    Enviar. A tecla Enter parou de disparar o envio em algumas situações. Entrou um plano B: se o Enter não funcionar, clicar no botão de enviar.

    Anexar. O envio de arquivos quebrou por conta própria e precisou ser refeito.

    Cada um desses é uma linha no registro do dia. Juntos, são o retrato de uma dependência que eu tinha subestimado: o robô não usava uma ferramenta, ele usava o desenho de uma tela. E desenho de tela é a coisa que mais muda no mundo, sem aviso e sem obrigação nenhuma de me avisar.

    O falso “enviado”, de novo

    No meio dessa bagunça apareceu o mesmo fantasma de duas semanas antes, agora numa roupa nova.

    Ao mandar um PDF, o robô soltava o arquivo na conversa e dava a tarefa por concluída. Só que soltar o arquivo não é enviar: o WhatsApp ainda precisa terminar de subir o anexo, e um relatório grande leva alguns segundos. Se o robô fechasse a janela nesse intervalo, o arquivo sumia no caminho — e o registro dizia “enviado”.

    Duas correções: esperar o envio do anexo terminar de verdade antes de seguir, e passar a conferir na tela se a mensagem apareceu na conversa antes de declarar sucesso.

    É a terceira vez neste diário que eu escrevo alguma versão de “conferir se aconteceu de verdade”. Já não trato mais como coincidência: sempre que um programa fala com um sistema de fora, a resposta dele é uma intenção, não um fato. O fato precisa ser olhado.

    Sair do navegador

    Foi aí que eu parei de consertar e comecei a pensar.

    Todo esse sofrimento vinha de uma escolha antiga: mandar mensagem fingindo ser uma pessoa numa página de navegador. Funcionava, mas me deixava refém do desenho da tela alheia — e a semana tinha acabado de provar o tamanho da conta.

    Existe outro caminho: conversar com o serviço por dentro, sem tela, sem navegador, sem janela para roubar o foco de ninguém. Comecei por uma prova de conceito e, no dia seguinte, deixei o novo caminho instalado atrás de uma chave desligada — o sistema inteiro continuou usando o jeito antigo, e o novo ficou lá, dormindo, esperando ser provado.

    Vale explicar por que não troquei tudo de uma vez, mesmo com o jeito antigo me dando trabalho. Porque a semana que quebrou não me ensinou a odiar o navegador — me ensinou que eu não controlo a casa dos outros. O caminho novo também é casa alheia. Trocar de dependência às pressas, no susto, é como mudar de casa por causa de uma goteira, sem ver o telhado da nova.

    Aqui vale um relato atemporal porque estou redigindo esse capítulo cerca de 2 meses depois do ocorrido, ou seja, estou em meados de agosto. E na semana passada encontrei meu primo tricolor que me abriu os caminhos para estar aqui agora e ele me confessou que nem ele mesmo sabia como eu havia conseguido integrar o WhatsApp no sistema. Vou mentir não: deu uma pontinha de orgulho dessa decisão de ter migrado para um ambiente sem tela para o WhatsApp. Pense num sábado abençoado que foi esse dia que eu decidi isso!!

    Os mensageiros ganham voz

    Junto disso veio uma mudança pequena e simpática. As mensagens do sistema chegavam todas iguais, sem assinatura, e ninguém sabia quem estava falando: era o vigia de atrasos? o relatório da noite? o aviso de importação?

    Cada mensageiro ganhou um apelido, assinado na mesma linha do recado. O grupo passou a saber, de relance, de quem é a voz.

    Um dos apelidos era uma brincadeira com um narrador esportivo famoso, e ele durou pouco: virou um nome sóbrio, o “plantão” da casa. Foi decisão consciente. Apelido interno engraçado é ótimo até o dia em que ele aparece num relatório que sai da empresa — e aí você tem que explicar a piada para alguém que não tem obrigação nenhuma de achar graça.

    A terceira sessão da Sofia

    E a Sofia cresceu de novo.

    Ela já vigiava duas coisas: o aviso de pedido que pode atrasar e o pedido parado na cozinha. Faltava o terceiro pedaço, que é o que o cliente mais sente: o pedido que já saiu e está atrasando na rua.

    Isso virou uma terceira frente de trabalho, com navegador próprio e isolado dos outros dois — a essa altura já era regra da casa que cada tarefa pesada mora na sua própria janela. Nasceu desligada, foi para produção depois de provada, e ganhou uma proteção contra a fonte de dados oscilar: quando a informação vai e volta, o robô podia entender que era um pedido novo e avisar o mesmo cliente duas vezes. Passou a lembrar por um tempo quem já recebeu recado.

    A babá também ficou mais esperta. Quando eu atualizo a Sofia, ela reinicia — e a babá, que só sabia distinguir “de pé” de “caída”, enxergava uma atualização normal como um robô morrendo em laço. Ganhou um período de carência: só grita se o problema se repetir.

    A lição desses dias

    Fica uma frase que eu não teria escrito dois meses atrás: automação não é código, é acordo com terceiros.

    O código que escrevi para mandar mensagem estava certo. Continuou certo a semana inteira. Quebrou assim mesmo, porque a outra ponta mudou de ideia sobre onde ficam os botões — e não devia nada a mim.

    Isso muda o que eu considero “pronto”. Antes, pronto era funcionar. Agora, pronto é funcionar e avisar alto quando parar de funcionar e ter um plano de saída para o dia em que a casa alheia mudar a fechadura. Os três. As duas primeiras semanas deste diário eu teria chamado isso de exagero. Hoje chamo de aluguel: quem constrói em terreno dos outros paga essa conta todo mês, e o boleto chega sem aviso.

    No próximo capítulo, a conta do aluguel vence: eu finalmente troco o mensageiro — e descubro o que acontece quando um robô que já era rotina precisa ser apresentado de novo para a operação.

  • Um robô para cuidar do robô

    Um robô para cuidar do robô

    Ilustração em estilo cartoon flat: um escritório de madrugada dividido por uma divisória de vidro. À esquerda, o autor do diário está sentado à escrivaninha sob a luz de uma luminária âmbar, com a xícara de café fumegante e a pilha de planilhas ao lado e a lua crescente na janela; sobre a mesa, uma caixa de papelão aberta com uma esfera luminosa grande demais, que não cabe dentro dela, e um sininho de alarme vermelho tombado ao lado. À direita, do outro lado do vidro, fica o cômodo próprio dos robôs: a robô teal, com um crachá liso e vazio no pescoço e uma ampulheta na mão, trabalha de pé dentro de uma cabine luminosa fechada com um cadeado; ao lado da cabine, empoleirado num banquinho, um robô azul com binóculos observa a cabine inteira, e junto dele há uma alavanca de energia com uma luz verde acesa. Mais ao fundo, três envelopes iguais voam em fila única para dentro de uma fresta luminosa na parede, um de cada vez, enquanto um robô vermelho com um apito de árbitro pendurado no peito e um robô amarelo esperam a vez atrás de uma cancela listrada, cada um com o seu envelope na mão.
    com IA

    Dias 65 a 69 · 29 de maio a 2 de junho – 2026

    Nestes cinco dias os robôs mudaram de casa dentro da própria máquina, o mensageiro ganhou uma fila, e nasceu o primeiro robô cujo trabalho é olhar outro robô. Também descobri, do jeito mais bobo possível, que um sistema pode dar alarme falso por causa de um número grande demais.

    A mudança de casa

    Até aqui todos os robôs rodavam na minha conta de usuário do computador. Funcionava, e era errado.

    Errado porque misturava tudo: os navegadores que eles usam abriam junto com o meu, roubavam a tela quando eu estava fazendo outra coisa, e qualquer coisa que eu mexesse na minha conta podia derrubá-los. Havia também o problema de sucessão — se um dia outra pessoa cuidasse disso, herdaria a minha conta pessoal com tudo dentro.

    Então os robôs ganharam conta própria na máquina, com um roteiro de mudança escrito passo a passo antes de começar. Não foi indolor. A conta nova não tinha permissão de administrador, e várias coisas que eu fazia sem pensar deixaram de funcionar; boa parte dos consertos desses dias é exatamente isso, uma tarefa por vez descobrindo o que dependia de um poder que a conta nova não tem.

    Valeu pelo que veio junto. O navegador do WhatsApp virou um aplicativo dedicado, separado do navegador de gente, sempre aberto — e passou a abrir fora da área visível da tela, para parar de pular na frente de quem está trabalhando. Essa foi uma das reclamações mais antigas e mais justas do dia a dia: o robô mandava uma mensagem, a janela dele saltava por cima do que eu estava fazendo, eu perdia o que estava digitando.

    Uma fila para o mensageiro

    Aqui tem uma virada de arquitetura que parece burocracia e não é.

    Antes, cada robô que precisava avisar alguém mandava a mensagem por conta própria. Quatro robôs, quatro caminhos até o mesmo WhatsApp. Quando dois queriam falar ao mesmo tempo, disputavam a janela — e o resultado era mensagem cortada, mensagem repetida ou mensagem nenhuma.

    Passou a existir uma fila central com um único encarregado: os robôs não mandam mais nada, eles pedem que a mensagem seja enviada, deixando o recado numa fila. Um trabalhador só, de cada vez, tira da fila e envia.

    A fila entrou desligada, atrás de uma chave que só liga onde eu mandar. Isso virou hábito nesta altura do projeto: coisa nova nasce desligada, e a gente liga quando estiver provada, não quando estiver pronta.

    Gritar menos

    A Sofia estava avisando demais. Cada pedido perto de atrasar virava uma mensagem no grupo, e num sábado à noite isso é uma metralhadora — todo mundo silencia o grupo, e aí ninguém vê nem o aviso importante.

    Mudou para resumos: um a cada meia hora e um no fim, com a contagem do que aconteceu. O mesmo conteúdo, um centésimo do barulho. Ela também passou a cumprimentar o cliente pelo nome e a mostrar, no resumo interno, o que de fato foi enviado a cada pessoa.

    É a mesma lição das cores da tela de notas, aparecendo pela terceira vez em um mês: se tudo grita, ninguém escuta. Já estou aceitando que essa vai ser a lição recorrente deste diário.

    Um robô para cuidar do robô

    E aqui está o assunto do título.

    A Sofia trabalha sozinha o dia inteiro, dentro de um navegador. Se ela travar às três da tarde de um sábado, ninguém percebe — não chega mensagem, e a ausência de mensagem parece um dia tranquilo. O modo de descobrir era o pior possível: alguém notar que fazia tempo demais que ela não falava.

    Então nasceu um vigia do vigia — uma espécie de babá. De tempos em tempos ele confere se a Sofia está viva; se não estiver, levanta ela sozinho e me avisa que fez isso.

    Três detalhes dessa babá merecem nota, porque cada um veio de um jeito de errar:

    O primeiro: ela julgava a saúde da Sofia pelo horário do último registro no arquivo de log. Parece razoável e não é — um programa pode estar travado num laço, escrevendo no log sem parar, e parecendo o mais saudável de todos. Passou a olhar o processo em si.

    O segundo: quando a Sofia não respondia, a babá reiniciava a Sofia — mas o problema quase nunca era ela, e sim o navegador embaixo dela, engasgado. Reiniciar só o robô era trocar o motorista de um carro com pneu furado. A babá passou a levantar o navegador junto.

    O terceiro é o meu favorito, porque é besta: para saber há quanto tempo a Sofia estava de pé, o código pedia esse tempo ao sistema com o nome errado do comando — uma letra de diferença entre duas opções parecidas. O sistema respondia vazio, o código entendia “zero segundos de vida” e concluía que ela tinha acabado de nascer, para sempre. Uma letra.

    Ainda nesses dias, a Sofia ganhou uma tranca de instância única: se por qualquer motivo alguém a iniciasse duas vezes, a segunda não sobe. Duas Sofias vigiando os mesmos pedidos significa cliente recebendo a mesma mensagem duas vezes — o tipo de defeito que o cliente nota antes de nós.

    Ter um robô vigiando outros robôs e reportando os B.O.´s por WhatsApp foi, de fato, um marco. Veremos adiante que essa prática será replicada em outras ocasiões e me deu a tranquilidade de poder fazer as coisas do dia sem ter que estar pensando se tudo está correndo bem. No fundo, foi uma libertação. Rsrs.

    O falso alarme de um número grande demais

    Esse é curto e é a minha história preferida da semana.

    O medidor de saúde do WhatsApp começou a jurar, de vez em quando, que o navegador estava fora do ar. Eu ia conferir e estava tudo funcionando. Alarme falso, intermitente, sem padrão — o pior tipo, porque ensina a equipe a ignorar alarme.

    A causa: para conversar com o navegador, o programa gera um número de identificação usando a hora atual em milésimos de segundo. Esse número, hoje, é grande demais para o tamanho de caixa em que ele estava sendo guardado. Transbordava, virava outra coisa, o navegador respondia “não conheço esse pedido” e o medidor concluía que ele estava morto.

    Não havia nada de errado com o navegador nem com a rede. Havia um número que não cabia. Guardo essa porque é a cara de um tipo de defeito que dá muita voltinha até alguém desconfiar da coisa mais banal da história.

    Dinheiro na mão de quem opera

    Fechando os cinco dias, o módulo de finanças ganhou o livro caixa — o lugar onde a loja registra a entrada e a saída de dinheiro vivo do dia. Ele entrou em quatro etapas, da fundação à integração automática com o fechamento de caixa, e trouxe junto uma decisão de acesso: o gerente enxerga só o livro caixa dentro de finanças, nada além.

    Um detalhe da tela merece registro por ser barato e resolver um problema caro: cada loja tem uma cor própria e um aviso grande com o nome dela no topo. O motivo é prosaico — quem cuida de mais de uma loja abre a tela, se distrai e lança o dinheiro de uma na outra. Descobrir isso depois é uma tarde de trabalho. A tarja colorida custou meia hora.

    A lição desses dias

    O tema da semana foi quem cuida de quem.

    Um robô que trabalha sozinho não é confiável só porque funciona. Ele é confiável quando existe alguém — nem que seja outro programa — encarregado de perceber que ele parou. Antes disso, o que existe é sorte com aparência de estabilidade.

    E a segunda parte, que eu não esperava: a babá errou três vezes seguidas, e todas as três por confiar num sinal indireto. O log em vez do processo. O robô em vez do navegador. O relógio em vez do relógio certo. Vigiar é uma tarefa tão sujeita a erro quanto a tarefa vigiada — só que o erro dela é mais perigoso, porque um vigia enganado passa uma sensação de segurança que ninguém vai questionar.

    É por isso que a tranquilidade que eu conto lá em cima não veio de existir uma babá — veio de ela ter parado de olhar para sinal indireto. Vigia novo dá sossego cedo demais; o sossego só se justifica depois que ele erra e é corrigido.

    No próximo capítulo, o WhatsApp muda de cara da noite para o dia e quebra tudo — e eu começo a procurar um jeito de mandar mensagem sem depender de navegador nenhum.

  • O dia em que o robô falou com o cliente

    O dia em que o robô falou com o cliente

    Ilustração em estilo cartoon flat: numa escrivaninha de madrugada, o autor do diário estende a mão para a janela aberta e solta três envelopes, que voam em fila para as luzes acesas das casas da cidade; ao lado dele, uma robô teal com um crachá dourado liso no peito segura uma ampulheta e estende a outra mão na direção dos envelopes; atrás dos dois, um robô vermelho com um apito de árbitro pendurado no peito segura um envelope idêntico junto ao corpo, sem soltá-lo; à esquerda, sobre a mesa, um painel luminoso com sete luzes em fila, seis verdes e uma com uma ampulheta dentro, ligado por um fio luminoso a três pilhas de moedas douradas lisas; à direita, um robô azul com binóculos observa de perto uma portinhola fechada com um filete de luz escapando por baixo; um robô amarelo observa a cena de longe, perto da pilha de planilhas, e há uma xícara de café fumegante sob a luz de uma luminária âmbar, com a lua crescente na janela.
    com IA

    Dias 60 a 64 · 24 a 28 de maio – 2026

    Até aqui os robôs só falavam com a gente. Nestes cinco dias um deles passou a falar com quem fez o pedido — e, no meio do caminho, outro sumiu no meio do turno sem avisar ninguém.

    Uma tela para perguntar como eles estão

    A primeira coisa que mudou foi na página inicial. Lá existia um selo pequeno que dizia se a importação do dia tinha rodado. Ele saiu, e no lugar entrou um cartão de saúde do sistema: sete indicadores lado a lado, um para cada peça que trabalha sozinha.

    A diferença não é decoração. Antes, para saber se um robô estava de pé, eu abria o computador dele e ia olhar. Agora cada um se reporta num lugar só — e o cartão tem botão para acionar cada um na hora, sem sair da tela.

    Um detalhe pequeno que deu trabalho e vale mais do que parece: quando você aperta o botão, o cartão fica escrito “sincronizando” até o serviço terminar de verdade. A primeira versão mostrava o aviso por alguns segundos e o apagava sozinha, tivesse o serviço acabado ou não. Aviso que mente é pior do que aviso nenhum: você olha, vê “pronto”, e vai tomar decisão em cima de dado que ainda estava vindo. No mesmo dia tirei a linha “atualizado agora” do cartão, pelo mesmo motivo.

    O robô que sumia no meio do turno

    Agora a parte chata.

    O robô que manda as mensagens precisa de um navegador aberto. A rotina dele era abrir, enviar e fechar. Só que “fechar” não estava fechando: o programa mandava encerrar, recebia de volta um “encerrado”, e o navegador continuava vivo, ocupando a porta. Na vez seguinte, o robô tentava abrir uma janela nova naquela mesma porta e não conseguia — e ficava parado esperando um lugar que nunca ia vagar.

    Foram dois consertos, e os dois ensinam a mesma coisa. O primeiro: esperar a porta ficar realmente livre antes de dizer que fechou, em vez de confiar na resposta do próprio comando. O segundo, do outro lado: o navegador do vigia de atrasos passou a ser configurado para subir de novo sozinho, sempre — se cair, alguém o levanta em segundos, sem depender de eu perceber.

    O ponto que ficou: não pergunte a um programa se ele morreu. Ele responde o que pretendia fazer, não o que aconteceu. Vá conferir por fora.

    O falso “deu certo”

    Esse assunto voltou três vezes em dois dias, o que costuma ser sinal de que ele é maior do que parece.

    O envio do relatório diário rodava uma lista de destinatários. Se falhasse em um, ele seguia para o próximo e, no fim, informava sucesso — porque o processo tinha terminado. Passou a informar por destinatário: quem recebeu, quem não recebeu, e a falha sobe em vez de sumir.

    O monitor de importação tinha um irmão do mesmo problema: tratava igual “não deu nada errado” e “deu certo pela metade”. Agora envio parcial tem cara própria, de alerta, não de sucesso.

    E o terceiro, que me deu um susto de verdade: o robô procurava a conversa certa pelo nome e clicava no primeiro resultado parecido. Se dois contatos tivessem nomes próximos, ele mandaria o recado para a pessoa errada. Passou a conferir o nome que abriu antes de escrever qualquer coisa.

    Se eu tivesse que resumir os três num bilhete colado no monitor: sucesso que ninguém conferiu não é sucesso, é esperança.

    O dinheiro entrou no painel

    No dia 60 nasceu o módulo de finanças — que até então era o buraco do sistema. Vendas, notas, tempos, tudo estava no painel. Dinheiro parado em conta, não.

    Entrou em três camadas, em dois dias: o cadastro das contas bancárias de cada empresa, uma tela de saldo em caixa com os valores do dia, e a parte de que mais gosto — um botão que busca o saldo de todas as empresas de uma vez, entrando no portal do banco por dentro do navegador.

    Para entender o tamanho disso: antes, ver o saldo de todas as empresas queria dizer abrir o portal do banco, entrar em uma, anotar, trocar de empresa, esperar carregar, anotar de novo. Virou um clique e uma espera. Foram vários ajustes chatos até funcionar — o portal do banco tem um jeito antigo de escrever o cadastro das empresas, com dígitos a mais, e a troca de empresa precisou ser feita imitando o clique de uma pessoa na linha da tabela, porque o caminho “certo” simplesmente não respondia.

    No dia 61 também saiu algo que não é código: o manual de fechamento de caixa, em PDF, com as telas de verdade em vez de desenhos. Cinco versões em um dia até ficar apresentável. Vale o registro porque é fácil esquecer: sistema que só o autor sabe usar não está pronto, está refém.

    Esse manual parece coisa boba, mas até eu fiquei surpreso quando os gerentes agradeceram e compartilharam com os times. A sensação naquele momento era de que estava realmente tornando as coisas mais fáceis na operação. O que, no fim das contas, era nosso maior objetivo.

    O dia em que o robô falou com o cliente

    E chegamos ao dia 64, que é o motivo do título.

    Até ali a Sofia era uma vigia que contava para nós: via um pedido perto de atrasar e avisava o grupo. Ela vinha rodando em ensaio — mandando as mensagens de verdade, mas todas para o nosso grupo interno, para a gente ler o que ela diria sem que ninguém de fora recebesse nada.

    Nesse dia o ensaio acabou. Ela passou a acompanhar os pedidos que estão em preparo e a mandar, direto para quem comprou, uma sequência de três mensagens conforme o tempo passa — a primeira mais leve, a última já assumindo o atraso. No fim, um pedido educado de avaliação.

    Escrever essas três mensagens deu mais trabalho do que o programa que as envia. A primeira versão explicava a situação da cozinha, e isso foi cortado inteiro: o cliente com fome não quer saber do nosso processo, quer saber do pedido dele. A régua virou outra — cada frase tinha que responder “isso faz o cliente esperar com menos raiva?”. Se não fizesse, saía.

    Também estendi a janela de vigia até quase meia-noite, que é quando a operação realmente acaba, e não quando o horário comercial diz que acaba.

    Tem uma linha que foi atravessada aqui e eu não quero passar batido por ela. Um robô que fala com a equipe erra para dentro de casa. Um robô que fala com o cliente erra na frente do cliente. Foi por isso que ele passou semanas ensaiando dentro do grupo antes de dizer a primeira palavra lá fora — e continuo achando que foi o tempo mais bem gasto de todo o projeto.

    O dia que não teve nada

    Faltou um dia nessa conta, e eu deixei de propósito para o fim.

    No dia 63 não aconteceu nada. Nenhuma linha de código, nenhum conserto, nenhum registro. Um dia inteiro em branco no meio dos cinco.

    Coloquei isso aqui porque diário honesto também mostra o vazio. Quem lê uma sequência de dias produtivos acaba achando que existe um ritmo sobre-humano por trás — e não existe. Existe um dia em que a operação chamou mais alto, ou em que o cansaço venceu, e a história continua no dia seguinte sem cerimônia.

    A lição desses dias

    Duas coisas ficaram, e as duas são sobre confiança.

    A primeira é que quase tudo que quebrou aqui quebrou avisando que estava bem: o navegador que dizia ter fechado, o envio que dizia ter dado certo, o aviso de “sincronizando” que sumia antes da hora. Nenhum desses era erro de conta ou de lógica. Eram programas educados demais, respondendo o que se esperava ouvir. Passei a desconfiar de resposta boa que ninguém conferiu.

    A segunda é que existe uma diferença enorme entre um robô que fala com a equipe e um que fala com o cliente — e ela não é técnica. É de responsabilidade. Do lado de dentro, um erro vira piada no grupo. Do lado de fora, vira a lembrança que a pessoa guarda da marca.

    No próximo capítulo, os robôs mudam de casa dentro da própria máquina — e um robô novo nasce só para tomar conta de outro robô.

  • Um nome, e um corpo para cada robô

    Um nome, e um corpo para cada robô

    Ilustração em estilo cartoon flat: numa escrivaninha de madrugada, o autor do diário pendura um crachá liso e dourado no pescoço de uma robô teal que está de pé dentro de uma cabine luminosa própria, segurando uma ampulheta; na cabine vizinha, separada por uma divisória, o robô vermelho com um apito de árbitro no peito observa tranquilo, e cada cabine tem seu próprio encaixe de tomada embaixo; num canto da mesa, um encaixe antigo com dois plugues emaranhados disputando o mesmo buraco foi deixado de lado; à direita, um robô azul entrega um envelope e fecha a portinhola atrás de si, ao lado de outra porta escancarada e esquecida com uma teia de aranha; um robô amarelo observa à esquerda, perto da pilha de planilhas, e há uma xícara de café fumegante sobre a mesa.
    com IA

    Dias 55 a 59 · 19 a 23 de maio – 2026

    O capítulo passado terminou com o X9 ganhando nome. Nestes cinco dias a vigia de pedidos atrasados ganhou o dela — Sofia — e eu descobri que robô com nome precisa de corpo: um navegador só dele. Porque corpos, diferente de nomes, brigam entre si.

    Primeiro, a tela aprendeu a dizer a idade do dado

    O dia 55 foi de dinheiro. Nasceu a conferência dos repasses da plataforma de delivery: em vez de olhar o extrato e acreditar, o sistema passou a comparar o que era esperado com o que foi pago, semana a semana. No mesmo dia apaguei uma tela inteira que existia só para lançar valores à mão — e toda vez que uma tela de digitação morre, algum número deixa de depender de alguém ter lembrado de digitar.

    Também joguei fora uma linha que aparecia todo mês e não existia de verdade: um total fantasma que a plataforma mandava e que não correspondia a nenhuma loja. Dado errado não se conserta com explicação no rodapé; se descarta.

    E no dia 56 apareceu, na barra lateral, a informação mais chata e mais honesta do painel: a data dos últimos dados. Não “atualizado agora”, que é o que todo sistema diz. A data real de cada fonte, cada uma com a sua, porque elas chegam em horas diferentes.

    Isso mudou o jeito de olhar o painel. Antes, número velho e número novo tinham a mesma cara. Depois disso, quem abre a tela vê na hora se está decidindo com informação de hoje ou de anteontem. É a mesma família de decisões das cores da tela de notas: o sistema tem que confessar o que ele não sabe.

    Cinco dias brigando com encanamento

    Nada do que vem agora aparece na tela, e foi onde eu passei mais tempo.

    A importação que puxa os dados do e-mail quebrou de três maneiras. Mensagem codificada num formato que o leitor não entendia — a informação estava lá, ilegível. Conexão caindo antes de terminar, resolvida com mais tempo de espera e outra biblioteca de leitura. E o filtro, que usava um padrão de texto esperto: às vezes acertava, às vezes não. Troquei por uma comparação boba — ou o pedaço está no nome, ou não está.

    Foi a lição do dia: em encanamento, esperto é defeito. O código que decide se um dado entra deve ser entediante de ler e impossível de interpretar de dois jeitos.

    Do outro lado, o envio pelo WhatsApp esperava a página ficar “completamente quieta” antes de agir — e aquela página nunca fica quieta. Passei a esperar só o conteúdo aparecer: um ajuste de uma linha, e a mensagem que às vezes não saía passou a sair.

    O tempo dentro da cozinha

    No dia 57 entrou uma medida nova, e é das que eu mais gosto: o tempo de produção. Não o tempo de entrega, que o cliente vê e reclama, mas o tempo que o pedido leva dentro da cozinha, antes de sair para a rua.

    A diferença importa porque muda o culpado. Entrega atrasada com cozinha rápida é problema de rua; entrega atrasada com cozinha lenta é problema nosso — e só o segundo a gente resolve. O coletor foi de zero a funcionando em todas as onze lojas no mesmo dia, com as categorias e os indicadores prontos.

    Vale registrar o que veio antes: eu tinha começado esse trabalho puxando o dado do sistema de frente de loja. Escrevi o coletor, gerei o PDF, e no dia seguinte apaguei tudo, porque apareceu uma fonte melhor. Cinquenta e sete dias atrás eu teria insistido no meu código por apego. Agora apagar ficou fácil.

    Sofia

    E aí, no dia 57, nasceu um vigia novo.

    O problema era um aviso que aparece na tela da plataforma quando um pedido pode atrasar. Ele aparece, fica lá, e se ninguém estiver olhando naquele minuto, passa. A ideia era simples: alguém olhando sempre.

    O que era simples na ideia deu trabalho de verdade. A plataforma tem proteção contra robô — e com razão. Não deu para abrir uma janela de navegador limpa e automatizada: ela é reconhecida na hora. A saída foi o robô usar um navegador de gente, aberto de verdade, com sessão de verdade, e conversar com ele por dentro.

    Daí em diante foi endurecendo o bicho, num dia só: detectar não um aviso, mas vários ao mesmo tempo; abrir sozinho o painel de “ver todos” antes de olhar; limpar abas duplicadas que ele mesmo deixava; se recuperar quando travava; classificar o aviso por gravidade, porque um pedido atrasado e sete pedidos atrasados não são o mesmo recado; mandar para quem interessa, escolhido numa tela e não no código; e guardar em disco a hora do último resumo, para não repetir mensagem quando ele reiniciasse.

    No dia 59, na hora de arrumar os nomes do painel, aquilo deixou de ser “Monitor de Atrasos” e virou Sofia — a guardiã dos pedidos.

    E o nome não saiu de um gerador. Sofia é homenagem a alguém de quem gostamos muito, aqui de dentro — alguém que cuidava da administração do app de delivery no dia a dia, que é justamente o que a robô faz agora. Quem é de casa sabe de quem estou falando. Para quem lê de fora, basta saber que o nome foi escolhido com carinho, não sorteado.

    O problema que eu não tinha previsto

    Aqui está a conta que veio com os nomes.

    O X9 e a Sofia não são código puro: eles precisam de um navegador aberto para trabalhar. Um vive na tela da plataforma de delivery; o outro precisa do WhatsApp aberto para mandar recado. E os dois queriam o mesmo navegador.

    Deu exatamente no que você imagina. Um abria a aba do outro, um fechava a janela que o outro estava usando, e o comportamento ficou daquele tipo que só acontece quando os dois trabalham ao mesmo tempo — o pior de todos para descobrir.

    A solução foi dar corpos separados: um navegador para a plataforma de delivery, outro para o WhatsApp, cada um na sua porta, sem se ver. E, para o do WhatsApp, uma rotina de higiene que levou o dia para acertar: abrir, aquecer, enviar, esperar a confirmação, fechar. Antes eu deixava a janela aberta o tempo todo, achando que era mais rápido; ficar aberta é o que fazia a sessão apodrecer. No meio do caminho tentei só minimizar em vez de fechar — não bastou. E, se o navegador travasse, o sistema passou a matá-lo e abrir outro sozinho, em vez de esperar alguém notar.

    De brinde, o envio ficou quatro vezes mais rápido: de cerca de um minuto por mensagem para doze a quinze segundos, porque parei de abrir um navegador novo a cada envio e passei a usar o que já estava lá.

    A lição: enquanto um programa é “o script”, ele divide recursos com todo mundo e ninguém repara. Quando ele vira alguém, com nome e turno de trabalho, ele precisa de lugar próprio — e é aí que você descobre quantos vizinhos ele tem.

    O dia da faxina, e uma armadilha de apelido

    O dia 59 foi de auditoria. Duas ondas: a primeira em cima de segurança, código morto e qualidade; a segunda reorganizando o que estava repetido em três lugares. Saiu uma tela inteira que ninguém mais usava — resto de uma época em que os dados entravam à mão.

    Duas coisas dessa faxina merecem nota. As telas protegidas passaram a exigir a identificação de quem chama, porque tinha requisição saindo sem dizer quem era. E separei os dados de teste dos dados de produção, que até então moravam no mesmo lugar — escrevi até um script só para provar a separação, porque “acho que está separado” não serve quando o assunto é apagar o dado errado.

    E a armadilha: no embalo de rebatizar tudo no painel, mudei também o título de um relatório que sai em PDF para os gerentes. Voltei atrás no mesmo dia. Nome interno pode mudar quando quiser; nome de documento que já circulou, não — quem recebe arquiva pelo nome, e o histórico dele deixa de casar. Duas telas também sumiram por um instante: renomear coisa no painel sem criar o endereço novo dá página não encontrada.

    A lição desses dias

    Batizar um programa é de graça. O que custa é o que vem depois: o robô com nome passa a ter turno, ferramenta e vizinho — e você arbitra entre eles como se arbitra entre pessoas que dividem uma cozinha pequena.

    E tem a parte que eu não esperava gostar: com nome e corpo, ficou possível dizer o que cada um faz sem abrir o código. “A Sofia vigia atraso.” “O X9 conta o que aconteceu.” Isso não é enfeite — é o que permite que outra pessoa, um dia, cuide deles.

    No próximo capítulo, os robôs começam a conversar entre si — e o primeiro deles some no meio do turno sem avisar ninguém.

  • O primeiro robô com nome

    O primeiro robô com nome

    Ilustração em estilo cartoon flat: numa escrivaninha de madrugada, o autor do diário pendura um crachá liso e dourado no pescoço de um robô vermelho que posa orgulhoso sobre a mesa; ao redor, um robô teal bate palminhas, um amarelo aponta para o crachá e um azul observa o novo colega; na tela do monitor há um mostrador tipo velocímetro com o ponteiro na faixa verde, uma seta de desfazer e uma lista com marcadores; num canto da mesa, dois robôs pequenos dividem a vez de usar um único celular guardado por uma chave dourada.
    com IA

    Dias 50 a 54 · 14 a 18 de maio – 2026

    Cinquenta dias. Nestes cinco, aconteceram as duas coisas que mais mudaram minha relação com o sistema: eu parei de traduzir o que queria para a linguagem da máquina, e um dos programas deixou de ser “o script” para virar alguém.

    Antes, a faxina

    O dia 50 foi de arrumação, e eu já aprendi a não desprezar esses dias. Versionei os atalhos que eu usava para começar e terminar o trabalho — aquelas sequências que a gente digita todo dia e que só existem na própria máquina, até o dia em que a máquina morre e você descobre que perdeu o que nunca tinha guardado.

    Também mudei uma coisa pequena na conferência de caixa: divergência que ainda pode se resolver sozinha agora aparece em âmbar, não em vermelho. Vermelho é para o que exige ação. Se tudo grita, ninguém escuta — foi a mesma lição das cores da tela de notas, aparecendo de novo cinco dias depois, noutro canto.

    Escrever o que quero, em português

    O dia 52 é o maior de todo o projeto até aqui. Um módulo inteiro nasceu, de ponta a ponta, num dia só: Integrações com Apps de Terceiros.

    O problema que ele resolve é antigo e chato. Faltou um ingrediente, e é preciso pausar um produto em algumas lojas na plataforma de delivery. Fazer isso à mão significa entrar loja por loja, achar o item, pausar, e depois lembrar de despausar. Com onze unidades e um cardápio grande, é meia manhã perdida — e a chance de esquecer uma loja despausada é enorme.

    O que construí foi uma caixa de texto. Você escreve, em português, o que quer que aconteça: pausar tal produto em tais lojas. O sistema entende, mostra na tela exatamente o que vai fazer, em quais lojas e em quais itens, e espera sua confirmação. Só depois executa.

    Três decisões desse dia importaram mais que o resto:

    A confirmação antes de agir. O sistema nunca executa direto o que entendeu. Ele mostra a lista e pede o “pode ir”. Quando a ordem vem em linguagem livre, sempre existe a chance de a máquina entender outra coisa — e a hora de descobrir isso é antes, não depois.

    A reversão. Toda operação pode ser desfeita com um botão. Pausei o que não devia? Um clique e volta. Sem isso, ninguém tem coragem de usar a ferramenta, e ferramenta que dá medo não é usada.

    Os complementos. O sistema não pausa só o produto: pausa também os acompanhamentos ligados a ele. Foi um trabalho a mais que ninguém tinha pedido, mas pausar o refrigerante e deixar o combo que o contém à venda é o tipo de meia-solução que gera pedido cancelado.

    No dia seguinte apliquei o mesmo desenho — escrever em português, conferir na tela, confirmar, poder desfazer — num segundo módulo, dessa vez para gerenciar os anúncios das lojas na plataforma. Com o caminho aberto, foi muito mais rápido.

    Um esbarrão entre robôs

    Nesse mesmo dia apareceu um problema que só surge quando o sistema cresce: dois programas quiseram usar o WhatsApp ao mesmo tempo.

    Cada um estava certo do seu lado. Um ia mandar o relatório da manhã, o outro ia avisar de uma loja pausada. Só que existe uma sessão de WhatsApp só, e dois programas mexendo nela ao mesmo tempo dá exatamente no que você imagina: mensagem picada, envio pela metade, sessão derrubada.

    Resolvi com uma chave. Quem chega primeiro tranca, faz o que tem de fazer e destranca. O outro espera a vez. É uma solução velha e sem graça — e é justamente disso que se trata quando os programas passam a ser muitos: eles precisam aprender a conviver.

    Nesse arrastão consertei também um bug com nome próprio. A marcação de gerentes no grupo falhava justamente com quem tem acento no nome: o sistema comparava o texto letra por letra e não encontrava a pessoa. Passou a comparar ignorando acento.

    E então ele ganhou nome

    No dia 54 aconteceu a coisa que dá título a este capítulo, e ela começou como uma melhoria técnica banal.

    O farol que vigiava o tempo de entrega passou a fazer mais do que avisar: quando detecta que o tempo prometido subiu demais, ele mesmo reduz, sem esperar ninguém. Deixou de ser um sensor e virou algo que age.

    Com os gerentes sendo marcados no grupo sempre que o tempo de entrega estava estourado, começou a gozação entre eles: “Fulano, se liga no tempo de entrega!!” — “Beltrano, agora não tem mais como a gente mentir!!”

    Foi nesse momento que perguntei: “Galera, esse robô precisa de um nome. Alguém aí se arrisca a batizar ele?” Não demorou nem um minuto e um gerente de uma das lojas de Recife, que coincidentemente nasceu em São Paulo (onde também temos lojas), batizou: “Esse peste tem que se chamar X9!!”

    Não teve jeito: virou X9 — o dedo-duro, o que conta tudo. Foi meio brincadeira, e mudou mais coisa do que eu esperava.

    A partir do momento em que a mensagem chega assinada por alguém, as pessoas passam a falar com ele. “O X9 avisou.” “O X9 tá certo, a loja tava mesmo devagar.” Ninguém nunca disse “o script de monitoramento avisou”. Um programa com nome entra na conversa; um programa sem nome é infraestrutura, e infraestrutura ninguém discute — nem confere.

    Tem um efeito colateral bom nisso: quando o robô erra, as pessoas reclamam dele, não do sistema inteiro. O erro fica com nome e endereço, e o resto continua confiável.

    Fechei os dias padronizando todos os relatórios em PDF no mesmo modelo. Documento que sai do sistema com cara de documento do sistema — mais uma vez, forma sendo função.

    A lição desses dias

    A primeira lição é sobre o modo de dar ordens. Durante cinquenta dias eu traduzi o que queria para a linguagem da máquina: um botão para cada ação, uma tela para cada caso. Escrever em português e deixar o sistema entender inverte isso — mas só funciona com as três travas que descrevi. Sem a confirmação antes de agir e sem o botão de desfazer, entender linguagem livre não é conveniência, é risco.

    A segunda é a que eu não esperava. Batizar um programa muda o jeito como as pessoas trabalham com ele. O X9 não ficou melhor por ter ganhado nome — o código é o mesmo. Mas ele passou a ser cobrado, corrigido e defendido, e nada disso acontecia enquanto ele era “o monitor de tempo”. Quando uma coisa tem nome, alguém se importa com ela.

    Foi o primeiro. Não foi o último.

    No próximo capítulo, os outros robôs começam a ganhar nome e voz — e eu descubro que dar personalidade a um sistema traz um problema que eu não tinha previsto.

  • A nota do cliente e a cara do sistema

    A nota do cliente e a cara do sistema

    Ilustração em estilo cartoon flat: numa escrivaninha de madrugada, o autor do diário desliza com a mão uma régua luminosa que separa a faixa verde da vermelha num painel de avaliações mostradas em estrelas e barras coloridas; à direita, um robô vermelho aponta para a faixa vermelha e um robô teal confere o ajuste; à esquerda, um robô amarelo segura um leque de amostras de cor e há cartões escuros descartados sobre a mesa; num canto, um robô azul entrega um único envelope enquanto uma pilha de envelopes iguais fica esquecida atrás dele.
    com IA

    Dias 45 a 49 · 9 a 13 de maio – 2026

    Até aqui o sistema media coisas que eu controlava: quanto vendeu, quanto entrou, quanto atrasou. Nestes cinco dias ele passou a medir uma coisa que eu não controlo — o que o cliente achou. E, no meio do caminho, ganhou uma cara nova, o que rendeu a discussão mais boba e mais reveladora do projeto até então.

    A nota que estava lá e ninguém olhava

    As avaliações dos clientes sempre existiram. Ficavam num canto do sistema de comandas, uma tela que abria devagar, que ninguém tinha o hábito de visitar e que só mostrava o mês corrente.

    Trouxe tudo para dentro: uma aba nova, com a nota de cada loja, a evolução mês a mês e a comparação entre unidades. Puxei o histórico desde janeiro do ano anterior, para que a primeira tela já nascesse com passado — número solto não diz nada, número em série conta uma história.

    Foi aí que começou a parte interessante.

    Onde fica o vermelho

    Uma tela de nota precisa de cores: verde para bom, vermelho para ruim. Parece a decisão mais simples do dia. Não é. Ela define o que a empresa vai considerar aceitável.

    Coloquei a primeira régua, olhei e não gostei: quase tudo estava verde. Uma tela em que está tudo bem não serve para nada — ninguém age olhando para ela. Apertei os limites. Aí quase tudo virou vermelho, e o efeito foi pior: quando tudo é urgente, nada é urgente, e a pessoa aprende em dois dias a ignorar a tela inteira.

    Mexi três vezes até chegar num ponto em que o vermelho aparece pouco e, quando aparece, alguém levanta da cadeira. Foi só ajustar número, mas na prática eu estava respondendo uma pergunta que não é técnica: a partir de que ponto a gente não aceita mais?

    Um painel não mostra a realidade. Ele mostra a régua de quem o construiu.

    A limpeza da classificação de vendas

    Ainda no assunto de números que enganam, arrumei uma coisa que vinha sujando os relatórios havia tempo.

    O sistema classificava as vendas por canal: entrega, balcão, retirada. Só que a origem dos dados usa nomes que não batem entre si — alguns pedidos vinham marcados de um jeito, outros de outro, e um mesmo tipo de venda aparecia em duas categorias diferentes. O total geral fechava certo, e por isso ninguém percebia; a divisão por canal é que estava errada.

    Alinhei tudo com a planilha oficial da operação. E ali estava, de novo, o mesmo tipo de erro que já tinha aparecido no projeto: aquele que não quebra nada, não gera mensagem de erro e só entrega o número errado com cara de certo.

    O redesenho, e o que ele custou

    O dia 48 foi inteiro dedicado à aparência. Eu vinha adiando isso porque parecia frescura perto de tudo que faltava.

    O sistema tinha crescido em camadas — cada tela feita numa época, com uma cor um pouco diferente, um espaçamento próprio, um tamanho de fonte que ninguém combinou. Não era feio de um jeito escandaloso. Era irregular, do jeito que cansa sem que você saiba explicar por quê.

    Padronizei o sistema inteiro, tela por tela, em três levas. A mudança mais importante não foi visual: em vez de escrever as cores diretamente em cada lugar, passei a usar nomes — “cor de fundo do cartão”, “cor de texto secundário”. Agora, mudar a aparência de tudo é mudar num lugar só. É o tipo de trabalho que não aparece em foto e que decide se daqui a seis meses ainda vai dar para mexer nisso sem sofrimento.

    Também refiz a tela de entrada, com um visual mais editorial. E aprendi na marra que nem toda ideia boa sobrevive: testei deixar os cartões com um degradê escuro, achei bonito, coloquei em tudo — e desfiz no mesmo dia. Ficou pesado, atrapalhou a leitura dos números. Voltar atrás rápido é mais barato que defender o que já ficou pronto.

    Esse negócio de aparência é interessante porque tem mais a ver com percepção do que com gosto. O mais importante mesmo é que as informações estejam disponíveis e cada uma com o destaque que merece. Quanto menos firula, melhor.

    Uma última sensação: a identidade visual desse sistema ainda vai mudar outras vezes…

    O farol e a entrega curta

    Fechei esses dias com dois trabalhos no app de delivery.

    O primeiro foi um farol de tempo de entrega. Ele confere, de vinte em vinte minutos ao longo do dia inteiro, o tempo prometido nas lojas — com um detalhe que muda tudo: mede o raio mais curto, meio quilômetro, o pedido do vizinho. É ali que o cliente perde a paciência. Ele também percebe quando uma loja muda de modo de operação e ajusta o que espera dela, em vez de gritar erro à toa.

    O segundo foi mudar o jeito de avisar sobre lojas pausadas. Antes saía uma mensagem geral para todo mundo, listando tudo. Agora cada gerente recebe a mensagem dele, com saudação pelo nome e só as lojas que são dele — e um relatório agrupado por região.

    Parece detalhe cosmético. Não é. Mensagem que fala com todo mundo não fala com ninguém: cada um lê, procura o nome da própria loja no meio da lista e, se não achar rápido, some. Quando chega o nome da pessoa e só o que é dela, a resposta vem.

    A lição desses dias

    Duas lições, e as duas são sobre a mesma coisa por ângulos diferentes.

    A primeira: medir é escolher. Não existe painel neutro. Onde você põe o vermelho, o que você conta como entrega e como balcão, qual prazo você considera atraso — tudo isso é opinião disfarçada de número. Quem constrói o painel está, sem alarde, definindo o que a empresa vai perseguir. Vale saber que se está fazendo isso.

    A segunda: a forma também é função. Passei semanas achando que aparência era o que sobra depois do que importa. Mas o painel que ninguém abre não mede nada, e a mensagem que não fala com você não avisa nada. Uma informação que não é lida é igual a uma informação que não existe.

    No próximo capítulo, eu paro de programar cada ordem e começo a escrever o que quero em português — e um dos robôs finalmente ganha nome.

  • O fim do jeitinho

    O fim do jeitinho

    Ilustração em estilo cartoon flat: o autor do diário recostado na cadeira de madrugada, com as mãos atrás da cabeça e ar de alívio; à esquerda, um manual de instruções emaranhado escorrega da mesa; à direita, uma ponte luminosa por onde um crachá atravessa sozinho até um portão com cadeado que se abre, enquanto um robô apoia a mão num único botão; num canto, um martelo esquecido e outro robô segurando uma chave de fenda.
    com IA

    Dias 40 a 44 · 4 a 8 de maio – 2026

    Tem uma diferença grande entre resolver um problema e resolver o problema para outra pessoa. Nos cinco dias deste capítulo eu descobri isso do jeito mais direto: vendo alguém tentar usar uma coisa que eu tinha feito e que, para mim, funcionava perfeitamente.

    Um cartão de visita que o celular aceitasse

    Comecei com uma bobagem que estava me incomodando havia semanas. O sistema exportava a lista de contatos da operação num arquivo só, com todo mundo dentro. No papel, ótimo. Na prática, o iPhone recebia aquele arquivo pelo AirDrop e fazia o que bem entendia — às vezes importava tudo, às vezes importava metade, às vezes não importava nada.

    Parei de brigar com o formato e mudei a entrega: agora sai um arquivo por pessoa, todos dentro de uma pasta compactada. Feio? Um pouco. Funciona sempre? Funciona.

    Aproveitei e consertei um detalhe que ninguém tinha notado: o nome de cada contato estava indo no campo errado do cartão, o do sobrenome. Por isso a lista do celular ficava esquisita, ordenada de um jeito que não fazia sentido.

    O dia em que o navegador estava certo e o programa errado

    No dia seguinte apareceu um daqueles problemas que fazem você duvidar da própria sanidade.

    A importação de dados do sistema de frente de loja parou de funcionar. E o mais irritante: quando eu abria o mesmo endereço no navegador, carregava normalmente. Mesmo endereço, mesma internet, mesma hora. O navegador entrava; o meu programa, não.

    A causa é chata de explicar e vou tentar do jeito simples. Todo site seguro apresenta um documento de identidade digital. Só que esse documento normalmente vem acompanhado de uma espécie de carta de recomendação, emitida por quem garante que ele é verdadeiro. O servidor do sistema de frente de loja estava mandando só a identidade, sem a carta.

    O navegador, quando isso acontece, é esperto: ele vai atrás da carta sozinho, encontra e segue em frente. O meu programa não fazia isso — recebia a identidade sem recomendação, considerava suspeito e desistia. Do ponto de vista dele, estava agindo certo.

    A solução foi ensinar o programa a aceitar aquele documento especificamente daquele endereço, e de mais nenhum. Isso importa: seria muito mais fácil desligar a verificação para tudo e acabar com o assunto. Mas aí eu teria trocado um problema pontual por um buraco de segurança permanente — o tipo de atalho que ninguém lembra que tomou, até o dia em que ele cobra.

    O sistema que cobra sozinho

    O dia 42 foi o mais produtivo desse trecho, e girou em torno de uma dor antiga: reclamação de cliente que fica sem resposta.

    Nasceu o Monitor de Chamados, uma tela que mostra cada reclamação aberta, quem é o responsável e há quanto tempo está parada. Até aí, um painel. O que muda o jogo é o que veio junto: se um chamado passa de vinte e quatro horas sem resposta, o sistema cobra sozinho, no grupo, marcando o gerente responsável.

    E ele também dá parabéns. Quando o gerente responde e resolve, o robô agradece na mesma conversa. Escrevi isso quase por brincadeira e virou uma das coisas de que mais gosto no projeto — porque um sistema que só cobra vira inimigo, e inimigo a gente aprende a ignorar.

    Nesse mesmo dia consertei duas coisas na mensagem automática. A primeira: para marcar o gerente no grupo, o robô estava digitando o arroba seguido dos últimos dígitos do telefone. Funcionava, mas ficava horrível de ler. Passou a marcar pelo nome, como uma pessoa faria.

    A segunda foi mais interessante como decisão. Para descobrir qual gerente era o responsável por cada chamado, eu tinha colocado uma inteligência artificial para adivinhar a partir do texto do e-mail. Funcionava quase sempre — e “quase sempre” é péssimo quando o resultado é marcar a pessoa errada na frente de todo mundo.

    Troquei a IA por uma regra de três linhas: comparar o e-mail de quem respondeu com a lista de e-mails corporativos. Ou bate, ou não bate. Cem por cento de acerto, resposta instantânea, custo zero.

    Ter a ferramenta não obriga a usá-la. Eu estava usando um martelo de IA num parafuso que pedia uma chave de fenda.

    A maquininha entrando sozinha

    Os dois últimos dias foram sobre o fechamento de caixa, e sobre uma humilhação particular.

    Todo dia alguém precisava entrar no portal da Azulzinha — a operadora das maquininhas — copiar os valores de crédito e digitar no sistema. Digitação manual de número é a mãe de todo erro de conferência. Fiz o sistema buscar sozinho: um botão, e os valores de crédito entram direto. Depois vieram os vales — refeição, alimentação, todos aqueles cartões diferentes — pelo mesmo caminho.

    E aí veio o problema de verdade.

    O passo que eu não via porque era fácil para mim

    Para o sistema conseguir entrar no portal da operadora, ele precisa de uma espécie de crachá temporário, que expira. Renovar esse crachá exigia abrir as ferramentas de programador do navegador, achar um pedaço de texto no meio de um monte de código e copiar.

    Eu fazia isso em quinze segundos, sem pensar. Escrevi um passo a passo, achei que estava resolvido, e mandei para quem ia usar.

    Não estava resolvido. Ninguém que não é programador abre ferramenta de programador. E se abre, não sabe o que está olhando. Eu tinha automatizado a parte difícil e deixado a parte impossível na mão do outro.

    A saída foi construir uma extensão de navegador própria, batizada de Token Bridge. Instalou uma vez, e a renovação do crachá vira um clique num botão. Sem código, sem ferramenta de programador, sem passo a passo.

    Não saiu de primeira. Recebi de volta um “precisei clicar duas vezes”, e depois um “precisei clicar três vezes”. A causa era um comportamento do próprio navegador, que desliga a extensão quando ela fica parada e demora para acordá-la. Resolvi acordando a extensão antes da hora e tentando de novo, sozinho, quando falha.

    Fechei esses dias reorganizando a tela: tirei todos os botões de importação de dados do meio da conferência e juntei numa aba só, chamada Upload de Dados. Cada coisa num lugar.

    O interessante dessa extensão é que ela só funciona em navegadores que usam a tecnologia do Google Chrome e consegui fazer ela sem custo porque ela fica instalada na máquina do usuário. Solução fina e grátis!!

    A lição desses dias

    A lição não é sobre a extensão. É sobre o que ela revelou.

    Eu tinha certeza de que aquele passo estava resolvido, porque era fácil para mim. Só descobri que não estava quando vi outra pessoa tentando. Quem constrói uma ferramenta é o pior juiz da facilidade dela: você conhece o caminho, sabe o nome das coisas, e o esforço que sobra some do seu campo de visão.

    O sinal de alerta tem uma forma bem específica, e agora eu presto atenção nela: sempre que eu escrevo um passo a passo explicando como contornar algo, o passo a passo não é a solução. É a confissão de que faltou resolver.

    E teve a segunda lição, mais barata de aprender: o dia em que troquei uma inteligência artificial por três linhas de regra. Ferramenta poderosa seduz. Mas ninguém usa uma retroescavadeira para plantar um vaso — e usar IA para comparar dois endereços de e-mail é exatamente isso, com a desvantagem de a retroescavadeira errar de vez em quando.

    No próximo capítulo, o sistema começa a medir uma coisa que eu vinha evitando: a nota que o cliente dá. E ganha uma cara nova no meio do caminho.

  • Quando o sistema começou a falar

    Quando o sistema começou a falar

    Ilustração em estilo cartoon flat: do computador saem balões de conversa e sininhos de notificação voando até celulares; os robôs atuam como mensageiros e vigias — um observa com binóculos de um posto — e um semáforo verde indica o sistema saudável.
    com IA

    Dias 35 a 39 · 29 de abril a 3 de maio – 2026

    O Hub de Comunicação tinha nascido no fim do capítulo passado. Esses cinco dias foram sobre descobrir o que fazer com ele — e sobre uma verdade que ninguém avisa: dar voz a um sistema é fácil. Difícil é ensiná-lo a ter bom senso pra saber quando abrir a boca.

    Primeiro, parar de deixar entrar o que não é nosso

    Comecei com uma limpeza que já estava incomodando. A importação do sistema de frente de loja puxava tudo que encontrava, inclusive lojas que não são nossas. Elas apareciam nos relatórios como fantasmas, sujando totais e obrigando quem olhava a ignorar linha por linha.

    Pus um filtro na entrada: o que não é da casa não entra. Parece pouco, mas é a diferença entre um relatório em que você confia e um em que você precisa conferir antes de acreditar. E relatório que precisa ser conferido não economiza tempo de ninguém.

    Na mesma leva, consertei um parser que somava errado quando a mesma chave aparecia duas vezes na planilha — em vez de juntar as linhas repetidas, ele deixava uma sobrescrever a outra. Silencioso, discreto, e do tipo que faz o total fechar bonito com o número errado.

    E abri uma aba nova pra acompanhar os chamados abertos com a plataforma de delivery: aqueles problemas de pedido que a gente reclama e fica esperando resposta. Antes viviam espalhados em conversa de WhatsApp e memória de gerente. Agora estão numa lista, com status.

    O dia em que o sistema virou muitos

    O dia 30 foi o mais denso de todo o projeto até ali — passei de uma versão a outra tantas vezes que perdi a conta no meio do caminho. Vou poupar você da lista e ficar no que importa: foi o dia em que o sistema deixou de ser um programa e virou um time de programas.

    Nasceu o monitor de pausas — um vigia que fica de olho nas lojas na plataforma de delivery e avisa quando alguma está fora do ar sem que ninguém tenha mandado. Loja pausada é loja que não vende, e o pior é que quase sempre ninguém percebe na hora: percebe quando o faturamento do dia vem estranho. O vigia inverteu isso.

    Junto veio um segundo vigia, esse de olho no próprio sistema: ele confere se cada fonte de dados chegou no prazo esperado e mostra na tela inicial um sinal com a idade da informação mais atrasada. É o “sistema vigiando o sistema” que virou mantra lá atrás — só que agora aparecendo pra quem usa, não escondido num log.

    E teve uma peça pequena que resolve um problema real de operação: congelar a semana. Depois que a conferência de um período é aprovada, aquilo vira história e ninguém mexe mais. Sem isso, um ajuste feito hoje pode mudar silenciosamente um número que já foi apresentado à direção semana passada — e não existe jeito pior de perder a confiança de quem decide do que o passado mudar sozinho.

    Ah, e ensinei o computador a acordar sozinho de manhã, um pouco antes da primeira rotina do dia. Porque de nada adianta agendar tarefa pra máquina que está dormindo.

    Arrumar a casa, de novo

    Os dois últimos dias foram de faxina pesada — daquelas que não geram nada visível pra mostrar pra alguém.

    O projeto tinha crescido rápido e estava com o problema clássico de quem cresce rápido: código repetido em três lugares, arquivos órfãos que ninguém usava mais, configuração espalhada. Passei um tempão juntando o que era igual, jogando fora o que era morto e centralizando o que estava solto.

    É o mesmo trabalho invisível de lá do começo, quando limpei o banco de dados — e continua valendo a mesma lição: às vezes progredir é subtrair. Só que agora a casa é bem maior, e a bagunça custa mais caro.

    No meio da faxina, registrei uma regra que eu tinha aprendido do jeito difícil: nada sobe pro ar sem autorização expressa. Escrevi isso no documento que orienta meu copiloto de IA, pra não depender da minha memória num dia corrido. Regra que só existe na cabeça de alguém não é regra — é intenção.

    O crachá, agora pelo celular

    Fechei esses dias voltando na novela mais persistente do projeto: o login que expira.

    O sistema já sabia se reconectar sozinho, mas de vez em quando a plataforma pedia confirmação humana — e aí era eu, no computador, resolvendo na mão. Se eu estivesse na rua, o robô ficava esperando.

    Montei um jeito de fazer isso do celular. Primeiro com um truque simples de navegador, depois com um atalho de iPhone, mais confortável de usar. Não é bonito na teoria; é ótimo na prática. Ficar preso a uma máquina específica pra destravar um robô é o tipo de amarra que a gente só percebe quando precisa viajar.

    De quebra, dei uma repaginada na tela de login e na de definir senha — logo redonda, fontes maiores, um respiro. Detalhe estético? Sim. Mas é a primeira tela que a equipe vê todo dia, e primeira impressão também é parte do produto.

    O interessante é que, quanto mais eu avançava, mais desafios vinham e assim aprendi muita coisa. Sempre perguntando ao Claude e avançando.

    A lição desses dias

    Um sistema que fala muda a relação de quem trabalha com ele. Antes, a informação ficava esperando você ter a boa ideia de ir procurar. Depois, ela vai atrás de você.

    Só que a linha entre útil e insuportável é fininha. Aviso demais vira barulho, barulho vira hábito de ignorar, e um alerta ignorado é pior que alerta nenhum — porque dá a sensação falsa de que alguém está vigiando. Foi por isso que os vigias nasceram com régua: cada fonte com o prazo dela, o aviso saindo só quando o atraso é de verdade.

    A outra lição é velha e continua verdadeira: regra que mora só na cabeça não existe. Escrever no documento que nada sobe sem autorização não foi burocracia. Foi transformar disciplina em coisa que sobrevive ao dia corrido, ao cansaço e à pressa.

    No próximo capítulo, descubro a diferença entre resolver um problema e resolver o problema para outra pessoa — e que todo passo a passo que eu escrevo é a confissão de algo que ficou pela metade.