Diário da fábrica

Capítulo 08 ·

Um sistema que a IA lê, a IA conserta

Todo o estado em arquivos legíveis: quando duas cópias do app bagunçaram o roadmap, a IA leu, entendeu e consertou em dois minutos.

⏱️ 7 min de leitura

No capítulo anterior, Refinar antes ou reagir depois? (capítulo 7), a fábrica terminou com regras novas no código. Este capítulo é sobre um conserto que nenhuma regra previu, e que veio antes de todas elas: na primeira noite, às 22h23.

Já contei esse susto em poucas linhas em Escala 6x1? Aqui é 24x7 (capítulo 1) e em Dormi e acordei com o trabalho pronto (capítulo 3). Aqui conto os 24 minutos inteiros, e por que uma decisão que eu tinha tomado sem dar muita importância virou uma decisão de arquitetura: guardar todo o estado do aplicativo em arquivos que uma pessoa, ou uma IA, consegue ler.

Uma decisão quase sem querer

Desde o começo, o aplicativo não tem banco de dados. Tudo o que ele sabe fica em arquivos de texto em uma pasta de trabalho: o backlog, o roadmap e cada execução, com um registro do que aconteceu passo a passo. Esse registro só recebe linhas novas no fim. Nunca apaga nem reescreve nada.

Eu não escolhi isso pensando em IA. Era só o jeito mais rápido de começar. Naquela noite, descobri um efeito que eu não tinha planejado.

22h23: duas cópias, um roadmap

A primeira etapa do primeiro roadmap do PO tinha começado às 21h25. Às 22h23, eu abri sem querer uma segunda cópia do aplicativo e ela apontava para a mesma pasta de trabalho.

A cópia nova bagunçou o que estava rodando:

No pico, o painel mostrava seis execuções ao mesmo tempo, contando as duplicatas. A primeira noite inteira da fábrica estava parada antes de começar.

"Não consegue consertar para mim?"

Passei um bom tempo tentando entender o que tinha acontecido, até fazer a pergunta que deveria ter feito antes:

"Não consegue consertar para mim?"

Uso aqui a legenda de O gargalo não é o código, é o teste (capítulo 4): ⚙️ o motor é o orquestrador, um programa comum, sem IA; 🤖 o agente é uma IA fazendo o trabalho. Aquele conserto foi todo do agente, o Claude, na sessão em que eu conversava com ele, fora do aplicativo:

Em dois minutos, o roadmap voltou a rodar, sem perder trabalho. Às 22h47, a noite estava de pé. Naquela mesma noite, escrevi no diário do projeto:

"Ter os arquivos locais permite que eu tenha uma IA que ajusta problemas em tempo real. [...] Eu ajustei via IA, é como se eu tivesse super poderes."

E se fosse um banco de dados?

O problema seria o mesmo: duas cópias escrevendo no mesmo lugar. O conserto, não. A IA teria que descobrir como o banco está organizado, conseguir acesso a ele e escrever uma migração ou um script para corrigir os registros. Tudo isso com o roadmap parado, às dez da noite.

Um banco de dados é feito para um programa ler e escrever. Um arquivo de texto é feito para qualquer um ler, e esse qualquer um, hoje, inclui uma IA. Ela leu o roadmap como eu leria, só que em segundos.

Um sistema que a IA consegue ler é um sistema que a IA consegue consertar.

O defeito e o superpoder

O capítulo 1 já tinha avisado: o defeito e o superpoder têm a mesma origem. Um banco de dados tem trava: quando um programa escreve, o outro espera. Arquivo não tem. A mesma abertura que deixou a IA consertar o estado deixou a segunda cópia estragá-lo. E o conserto só aconteceu porque eu estava acordado. Às três da manhã, eu teria acordado com uma noite perdida.

Para o superpoder ficar seguro, faltavam três travas. A primeira etapa do dia seguinte, que abri às 08h47, foi sobre elas, e às 09h11 as três estavam no código:

Tabela em três colunas ligadas por setas. Em vermelho, o que deu errado às 22h23: duas cópias do app na mesma pasta, execuções vivas tratadas como mortas e três duplicatas, o roadmap pausado em execuções canceladas. Em laranja, o conserto à mão do agente: ler o código, cancelar as duplicatas e retomar as duas execuções, fazer backup e reapontar. Em verde-azulado, a trava que o motor ganhou na manhã seguinte para cada um: uma cópia por pasta, o roadmap só mexendo em execução morta, o estado calculado dos eventos com escrita completa ou nenhuma

O conserto daquela noite foi trabalho de agente, porque ninguém sabia o que tinha dado errado e era preciso julgar. As travas são trabalho de motor, porque agora a gente sabe, e o que já se sabe não precisa de uma IA para ser feito toda vez.

AI first

Dois dias depois, na noite de 2 de outubro, olhando a fábrica rodar, escrevi:

"Acho que entendi o que é criar aplicações AI first. Como tudo está integrado com a IA (o sistema de arquivos e as permissões), eu posso ir dormir, e o Claude consegue dar sequência ao fluxo de desenvolvimento e também à execução do app. Isso é incrível."

A IA não só escreve o código do aplicativo. Ela também o opera: lê o roadmap, entende em que pé está cada execução e, quando algo trava, mexe no estado.

Perguntei se alguém já tinha escrito sobre isso. Já. O nome que pegou lá fora é agent-native: um aplicativo pensado para ser operado por agentes de IA, e não só por pessoas. O Claude achou um grupo pequeno de textos de 2025 e 2026, e eles concordam no essencial:

Mapa com a fábrica no centro, ligada a oito textos. Encaixam: Every, de Dan Shipper, 12-Factor Agents e dois textos da Anthropic. Encaixam e tensionam: local-first, Karpathy e o Ralph loop, a IA em loop a noite toda. Contradiz em parte: Builder.io, as mesmas ações, mas em um banco SQL

Os textos que mais conversam com a fábrica:

O que não achei em nenhum desses textos foi as duas coisas juntas: a mesma IA desenvolvendo o aplicativo à noite e consertando o estado dele quando ele trava.

O preço dos arquivos

Arquivo legível não sai de graça. Alguns dias depois do susto, escrevi:

"Tem também o outro lado da decisão de não ter banco de dados. A quantidade de arquivos está crescendo, e algumas telas estão ficando carregadas."

Na noite do susto, a pasta de trabalho já tinha cerca de 4,4 GB, com 67 execuções. Quase 4 GB eram as cópias isoladas do projeto, cada uma com a própria cópia das bibliotecas do aplicativo. E as telas ficavam lentas porque, para montar uma lista, o aplicativo lia o registro de muitas execuções. As saídas não abrem mão dos arquivos:

O custo que mais pesa não é o disco. Um estado que a IA lê também pode ser manipulado por um texto malicioso: uma instrução escondida em uma tarefa ou na saída de uma execução. Quanto mais autonomia a IA tem à noite, mais isso importa. Por isso o vigia noturno do capítulo 3 trata o que lê como informação, nunca como ordem, e só faz sozinho o que dá para desfazer. Responder a uma aprovação continua sendo só comigo.

O próximo passo

O conserto daquela noite foi feito pelo Claude de fora do aplicativo, a meu pedido. O passo natural seguinte era o próprio aplicativo fazer isso de dentro, sem eu pedir. Poucos dias depois, ele estava indo além: lendo os próprios registros, achando os próprios defeitos e escrevendo o código que os corrige.

No próximo capítulo, capítulo 9, O barco de Teseu: quando o software reescreve a si mesmo, conto o que acontece quando a ferramenta passa a trocar as próprias peças, uma a uma, e a pergunta que isso me fez: ainda é o mesmo software, e o que sobra para mim?

Referências

Próximo capítuloO barco de Teseu: quando o software reescreve a si mesmoSai em breve. Assine para receber quando sair.
← Todos os capítulos

Newsletter

Receba os próximos capítulos.

Um e-mail quando sair um capítulo novo. Sem spam, e você sai quando quiser.