Engenharia com IA

Engenharia com IA

ligações 11

A leitura comum de “usar IA para programar” é um assistente que escreve função. Não é o que eu faço, e a diferença não é de grau.

Eu construí um ferramental de engenharia em volta do agente, e ele deixou de ser meu: hoje é um produto interno que qualquer pessoa da engenharia instala com um comando. As ferramentas da casa viraram comandos que o agente opera, os padrões viraram instrução que ele carrega sozinho, o conhecimento do parque virou base consultável que se atualiza sem intervenção, e o atrito do dia a dia virou entrada de um ciclo que gera ferramenta nova. Escrever código é a parte pequena disso.

O que existe hoje

Habilidades distribuídas11 — uma por ferramenta ou domínio operacional da casa
Ganchos automáticos5, em par para os dois sistemas operacionais do time
Comandos de linha8, cobrindo service desk, banco, log, identidade, versão e padrão
Base de conhecimento681 fichas de sistemas do parque, mais 20 regras de padrão de código
Testes3.798 linhas — o ferramental tem mais teste do que CLI

Instala e atualiza com o mesmo comando, tem modo de conferência que não escreve nada, e modo não interativo para repetir a configuração numa segunda máquina.

As quatro peças

O ciclo é o que fecha o desenho. Ele consome as outras três e devolve capacidade para elas, sem que eu precise empurrar.

  • Ferramenta como CLI — um agente que não consegue agir nas ferramentas reais é uma janela de chat. Tornar cada ferramenta endereçável por linha de comando é o que o transforma em operador
  • Padrão que a máquina consome — o padrão da casa escrito uma vez, materializado no formato que cada ferramenta de IA entende, com habilidades apontando para os CLIs
  • O ciclo que se alimenta — problema que custou caro vira registro, registro repetido vira oportunidade, oportunidade vira habilidade nova. Inclusive a promoção é automática
  • O mapa do parque — as aplicações do grupo como base de conhecimento consultável, varrida e atualizada sem intervenção

As três decisões que sustentam o desenho

Conhecimento vive uma vez, adaptador é descartável

O conhecimento — o que uma ferramenta faz, qual armadilha ela tem, qual o padrão da casa — fica numa camada só. O formato que uma ferramenta de IA específica consome fica noutra, isolado como adaptador.

A consequência é a que importa: trocar de ferramenta de IA amanhã é escrever um adaptador irmão, não reescrever o conhecimento. Ferramenta de agente é o mercado que mais muda hoje; amarrar anos de conhecimento operacional ao formato de um fornecedor seria comprar dívida com data marcada.

Sincronização, não instalação

O comando não é de primeira vez — roda quantas vezes for preciso. Peça da ferramenta que mudou de versão é reescrita; conteúdo de quem usa nunca é tocado.

Essa separação é o que faz o mesmo comando servir para instalar e para atualizar, e é o que permite distribuir para o time sem medo: ninguém perde a configuração pessoal ao receber a versão nova. Foi por isso que o comando parou de se chamar “instalar” — o nome errado convidava ao uso errado.

Escrita graduada por raio de alcance

Todo o ferramental é do time — qualquer pessoa da engenharia propõe mudança. Mas as peças cujo erro tem alcance grande exigem revisão de quem lidera: os ganchos automáticos, o contexto comum a todas as sessões, o padrão de código, os comandos que escrevem em sistema sensível, e o próprio sincronizador.

Não é hierarquia por status. É raio de alcance: um erro numa habilidade de consulta atrapalha quem a usou; um erro no gancho de commit ou no sincronizador atinge todas as máquinas do time na próxima execução.

O ferramental tem testes que impedem vazamento

São 3.798 linhas de teste — mais do que de CLI. Duas suítes recusam o commit se algo pessoal ou identificável entrar na prosa versionada: token, caminho absoluto de máquina, e-mail pessoal, arquivo de credencial.

Duas decisões nesses guardas que eu defendo:

Isenção é nominal, nunca por diretório. É tentador isentar testes/ inteiro, já que a fixture precisa conter o conteúdo sujo. Mas diretório isento blinda para sempre — inclusive contra um vazamento real que caia ali no ano que vem. Cada isenção é de um arquivo específico, e só entra quando o achado não pode ser resolvido apertando o padrão.

Guarda sem caso positivo não é guarda. Cada detector tem um teste que planta o problema e exige que ele seja pego. Sem isso, um detector quebrado passa por detector funcionando — que é exatamente o tipo de falha silenciosa que este ferramental existe para evitar.

Aprendi isso do jeito caro, e o mesmo princípio está aplicado neste vault: o verificador que impede vazamento aqui também tem fixture positiva, porque a primeira versão dele aprovava um terço dos arquivos sem olhar e dizia “limpo”.

Por que isso é competência de engenharia

Porque o gargalo mudou de lugar. Quando implementar fica barato, o valor migra para quem sabe definir o problema, verificar o resultado e organizar o contexto em que o trabalho acontece.

E há uma consequência que eu não tinha previsto: o agente falha exatamente onde a documentação falha. Quando a convenção está implícita, quando a regra mora na cabeça de alguém, quando “é assim que a gente faz aqui” nunca foi escrito, é ali que o resultado sai errado. Trabalhar assim me obrigou a tornar explícito o que eu já deveria ter tornado explícito para pessoas. O ganho de qualidade para o time veio junto, e não era o objetivo declarado.

O que eu mudei na minha própria prática

A qualidade da definição do problema virou o gargalo. Entender o problema, escolher a arquitetura e escrever o critério de aceite passaram a ser onde o resultado é decidido. É o que Projetar antes de implementar já defendia, agora com consequência prática imediata: a especificação é o que o agente executa.

Contexto versionado é infraestrutura. O que um agente precisa saber sobre um repositório — arquitetura, convenção, armadilha conhecida, o que não fazer — mora no repositório, versionado como código. Não é prompt descartável.

Verificação não é opcional. Agente produz resultado plausível com a mesma confiança com que produz resultado correto. Todo resultado passa por teste ou por conferência contra a fonte, e essa conferência é trabalho meu. É por isso que a parte mais interessante de Padrão que a máquina consome não é o padrão: é o mecanismo que faz um padrão mentiroso quebrar o build.

Onde isso aparece medido

PráticaRepositórios
Especificação numerada versionada junto ao código20%
Contexto de agente versionado9%

Os dois números são baixos de propósito: o ferramental é recente, e eu prefiro declarar onde ele já está do que onde eu gostaria que estivesse. O que já está distribuído para o time é a base — o uso por repositório vem depois.

Ver também

Qualidade e engenharia de contexto · Como eu depuro · Como eu trabalho

Pablo Mickael Quevedo Senior Software Engineer · autor principal de 32 sistemas · Novo Hamburgo, RS

11 notas ligadas a esta

A vizinhança desta estrela no céu do portfólio.

Explorar a galáxia →