LançamentoAnálise · No radarHabr AI→ original

Autor de jogo feito com agente de IA: 30 testes verdes não provavam nada até ele escrever um novo

O autor da estratégia Age of Poleis desenvolve o jogo com um agente de IA e descreveu como organizou o processo para que o agente trabalhe quase sem ele. Quando uma regra se repete, ele a transforma em uma verificação em um script comum, em vez de deixá-la como um desejo no chat. Ao refazer as janelas de inicialização, todos os 30 testes antigos estavam verdes, mas verificavam o comportamento anterior. Só ajudou um teste novo, que falhava no código antigo.

Processado por IA de Habr AI; editado por Hamidun News
Autor de jogo feito com agente de IA: 30 testes verdes não provavam nada até ele escrever um novo
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #1Uma regra sem verificação automática funciona enquanto o agente se lembra dela
Dado-chave #2Testes verdes confirmam o comportamento antigo, não a nova tarefa
Dado-chave #3Todo relatório do agente precisa de uma linha sobre o que não foi verificado

Situação conhecida: você explica a mesma coisa ao agente pela terceira vez e ele, pela quarta vez, faz do jeito dele. O autor da estratégia Age of Poleis, em que a IA escreve o código e ele mesmo idealiza, decide e joga, descreveu como saiu desse ciclo. A experiência dele é útil para todos que confiam tarefas rotineiras a agentes.

Regra, método e verificação

A stack: backend em Django, interface em React e TypeScript. O contrato é descrito no backend, dele sai um esquema OpenAPI e do esquema são gerados os tipos TypeScript. A tentação é óbvia: um tipo no frontend não bate com a resposta da API e dá vontade de corrigi-lo à mão, afinal é uma única linha. Mas na próxima geração a correção some silenciosamente e o bug volta.

Quando o autor percebeu que não era a primeira vez que explicava isso, a regra passou para as instruções permanentes do agente: não mexer à mão nos arquivos gerados, alterar a fonte e regenerar, e uma nova geração não deve mudar nada. Mas o texto numa instrução continua sendo um desejo. Por isso surgiu um passo no script comum de verificação: ele gera o esquema e os tipos em arquivos temporários e compara com o que está no repositório. Havendo divergência, a verificação fica vermelha.

A fórmula é simples: uma regra, um meio de cumpri-la e uma verificação. Sem verificação, a regra funciona enquanto o agente se lembra dela. Com verificação, funciona sempre. Da mesma forma o autor resolve formatação, localização e outras rotinas repetitivas.

Trinta testes verdes que verificavam outra coisa

Na versão para Windows, o jogo iniciava com três janelas: carregamento, jogo e espera na saída. O autor queria uma só janela, dentro da qual ocorressem o carregamento e o jogo. Em palavras, a tarefa é uma linha; no código são vários estados: inicialização, carregamento, fechamento no meio da inicialização, salvamento, nova partida.

Todos os 30 testes existentes da camada de shell estavam verdes. Mas eles verificavam o comportamento antigo, do qual o autor justamente queria se afastar. Verde significava «funciona como antes», e era preciso «funciona diferente». Por isso o primeiro a surgir foi um novo teste do ciclo de vida da janela. No código antigo ele falhava, porque procurava a janela principal e encontrava a de carregamento. Após a refatoração, passou.

Para que o agente possa verificar o resultado sozinho, o autor formula o desejado como fatos observáveis: carregamento e jogo em uma só janela, fechar durante a inicialização não abre uma nova janela, a campanha salva continua lá após reiniciar. No fim, 96 testes de JavaScript passaram, e o agente executou separadamente o aplicativo Electron real.

Mais duas técnicas. Primeira: em cada relatório o agente deve escrever o que não foi verificado. Aqui foi a instalação em um Windows limpo. Um mês depois, essa linha protege contra a falsa confiança. Segunda: uma captura de tela não prova o estado necessário. O primeiro quadro mostrava o menu de preparação da campanha, não o jogo em si. A confirmação veio apenas de um quadro tardio dentro da campanha, junto com a verificação da janela real.

O que sobra para o humano

Quando a parte técnica é verificada sem o autor, ele joga com outras perguntas: não «o botão funciona?», mas «dá vontade de apertá-lo?». A mecânica pode ser impecável e chata, e a economia facilmente vira contabilidade. Nenhum teste detecta isso. Distribuir moradores por profissões foi divertido nos primeiros minutos, mas, após cem períodos de jogo, cansou, e no fim surgiu a seleção automática de candidatos por critérios.

Uma armadilha à parte é o perfeccionismo. O autor rejogou o início dezenas de vezes e corrigiu botões tortos, embora o acaso no jogo faça cada partida diferente de qualquer maneira. Ele mesmo ressalva que o prazer pessoal não substitui as partidas de outras pessoas.

Builds, assinaturas, certificação e marketing continuam com o humano. A IA esboça uma descrição em cinco minutos, mas não decide quem precisa do jogo nem o que mostrar primeiro.

Conclusão prática

  • Repetiu a explicação duas vezes? Transforme-a em regra e, de imediato, em verificação automática.
  • Para mudar um comportamento, escreva um teste que falhe no código antigo.
  • Exija do agente uma lista do que não foi verificado e provas do estado, não apenas uma captura de tela.
  • O que pode ser medido, entregue ao agente. O gosto e a sensação de «é interessante», guarde para você.
História

Perguntas frequentes sobre a notícia

O que se sabe sobre Regra, método e verificação?

A stack: backend em Django, interface em React e TypeScript. O contrato é descrito no backend, dele sai um esquema OpenAPI e do esquema são gerados os tipos TypeScript. A tentação é óbvia: um tipo no frontend não bate com a resposta da API e dá vontade de corrigi-lo à mão, afinal é uma única linha. Mas na próxima geração a correção some silenciosamente e o bug volta.

O que se sabe sobre Trinta testes verdes que verificavam outra coisa?

Na versão para Windows, o jogo iniciava com três janelas: carregamento, jogo e espera na saída. O autor queria uma só janela, dentro da qual ocorressem o carregamento e o jogo. Em palavras, a tarefa é uma linha; no código são vários estados: inicialização, carregamento, fechamento no meio da inicialização, salvamento, nova partida. Todos os 30 testes existentes da camada de shell estavam verdes. Mas eles verificavam o comportamento antigo, do qual o autor justamente queria se afastar.

O que sobra para o humano?

Quando a parte técnica é verificada sem o autor, ele joga com outras perguntas: não «o botão funciona?», mas «dá vontade de apertá-lo?». A mecânica pode ser impecável e chata, e a economia facilmente vira contabilidade. Nenhum teste detecta isso. Distribuir moradores por profissões foi divertido nos primeiros minutos, mas, após cem períodos de jogo, cansou, e no fim surgiu a seleção automática de candidatos por critérios. Uma armadilha à parte é o perfeccionismo.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…