Experiência Agêntica: 1.324 chamadas ao meu CLI, 15,9% de erro

O usuário mais frequente do meu CLI não sou eu lql é um CLI em Rust para gerenciar issues do Linear. Escrevi porque nenhuma das alternativas existentes funcionava para meu caso de uso real: um agente de IA que gerencia issues de forma autônoma. Por que tive que escrever meu próprio CLI O MCP do Linear foi a primeira tentativa. A ideia é elegante: um servidor MCP que expõe a API do Linear diretamente ao agente. Na prática, era lento, instável, e o agente tinha que construir queries GraphQL do zero a cada chamada. Cada chamada era uma oportunidade de inventar um campo que não existe. Desinstalei em duas semanas. ...

29 de abril de 2026 · Fernando

Sua CLI tem um novo usuário e não é humano

Você pede ao seu copiloto de IA para capturar uma janela. O copiloto digita peek app "Xcode". A ferramenta procura uma janela cujo nome do proprietário seja exatamente Xcode. Não encontra, porque o processo se chama Xcode-16.3. A ferramenta imprime Erro: aplicativo não encontrado. O copiloto, que é um LLM e tem a memória emocional de um peixe dourado, tenta peek app "Xcode-16.3". Funciona. Mas custou uma interação, tokens de entrada, tokens de saída e a paciência de quem paga a conta. ...

7 de abril de 2026 · Fernando

A melhor coisa que aconteceu ao Python em décadas está escrita em Rust

TL;DR: As ferramentas do Python são há anos um desastre fragmentado e lento. A revolução não veio de dentro do ecossistema: veio do Rust. uv, Ruff e ty — todas escritas em Rust pela Astral — substituíram meia dúzia de ferramentas e são entre 10x e 100x mais rápidas. Parece que afinal o culto do Ferris tinha razão. Você já tentou explicar para alguém como instalar dependências em Python? “Use o pip. Bom, mas dentro de um virtualenv. Ou venv, que é o novo. Mas se você tem várias versões do Python, precisa do pyenv. E para gerenciar o projeto, use o poetry. Ou o pipenv. Ou o pdm. Ou o conda se faz ciência de dados. Ah, e o lock file é gerado por cada ferramenta em um formato diferente. E não esqueça do setup.py. Bom, agora é pyproject.toml. Bom, às vezes as duas coisas.” ...

26 de março de 2026 · Fernando

150 linhas de desculpas eliminadas

TL;DR: Meu agente de IA tinha um arquivo de instruções com 246 linhas para gerenciar issues no Linear. Dentre elas, 150 eram gambiarras: UUIDs hardcoded, alternativas com curl, notas explicando “a CLI não suporta X”. Em vez de reescrevê-las, criei uma ferramenta que tornou essas linhas desnecessárias. Agora, essas 150 linhas se reduziram a zero. Você já escreveu um documento de instruções tão longo que a própria extensão dele é prova de que algo está errado? ...

26 de março de 2026 · Fernando

Madness Driven Design: Don Quijote, Sancho Panza e seu copiloto IA

TL;DR: Um modelo LLM é como Don Quijote — você não pode curá-lo, ele é estocástico por natureza. A solução não é corrigir o louco, mas colocar um Sancho Panza determinista ao lado. MDD tem duas camadas: primeiro você estuda os erros que ele comete para projetar ferramentas que os absorvam, e depois o solta com essas ferramentas para garantir que nenhuma brecha foi deixada. Projete para a loucura, não contra ela. ...

26 de março de 2026 · Fernando

Por que a saída da minha CLI não é XML (e como acabei reinventando o TOON sem saber disso)

TL;DR: Quando seu consumidor principal é um LLM, XML e JSON desperdiçam tokens repetindo estrutura em cada elemento. Um formato posicional compacto reduz o consumo em 50%. Descobri que essa ideia já tinha nome: TOON (Token-Oriented Object Notation). Mesma pressão seletiva — tokens caros e chaves repetitivas — mesma solução. Anthropic usa XML para tudo. Seus system prompts são envoltos em <instructions>, seus exemplos em <example>, suas ferramentas em <function>. Quem trabalha com o Claude está cercado por tags. ...

26 de março de 2026 · Fernando

Programação Adversarial: quando seu copiloto IA inventa a API

TL;DR: Sua IA vai inventar campos de API que parecem perfeitos, mas não existem. A solução não é cruzar os dedos para que funcione: é baixar o schema real antes de escrever o código, capturar respostas reais como fixtures e separar o fetch do processamento para poder testar sem dependência de rede. Programação adversarial: programe assumindo que seu copiloto mente. Você já escreveu código para uma API, tudo compilou, os testes passaram, a lógica fazia sentido… e ao conectar com a API real, nada funcionava? ...

26 de março de 2026 · Fernando

Linear Agent não é o que você precisa. Seu agente já estava no terminal

TL;DR: A Linear lançou um agente de IA integrado. Legal, mas não resolve o problema dos desenvolvedores que trabalham com coding agents no terminal. O que precisamos não é outro agente, mas sim uma CLI robusta que o agente que já temos possa usar. E se for para construir, que seja em Rust — por isso nasceu lql, uma CLI para Linear projetada para agentes. Ontem, a Linear anunciou seu agente de IA. Um chatbot integrado ao app que entende seu roadmap, seus issues e seu código. Você conversa com ele no Slack, o menciona em um comentário, e ele sintetiza contexto, sugere ações e até cria issues para você. ...

25 de março de 2026 · Fernando

RustyClaw: vou reescrever um agente de IA em Rust (porque o meme pediu)

“Sabe qual é a melhor coisa no Rust? Que ele não deixa você compilar gambiarras. Sabe qual é a pior coisa? Que tudo que você escreve no início é uma gambiarra.” — Sr. Siriguejo (provavelmente) O que é melhor do que um agente de IA? Um agente de IA reescrito em Rust. Se você está na internet há mais de cinco minutos, conhece o meme. Não importa o projeto: um editor de texto, um servidor DNS, uma calculadora de IMC. Alguém sempre aparece nos comentários dizendo “você deveria reescrever isso em Rust”. É o Rewrite It In Rust — RIIR para os íntimos — e é tão inevitável quanto a gravidade. ...

24 de fevereiro de 2026 · Fernando

git-cliff: o changelog que se escreve sozinho (ou quase)

107 commits. Conventional commits impecáveis desde o primeiro dia. Feat, fix, refactor, chore — tudo perfeitamente etiquetado. E o CHANGELOG? Vazio. Inexistente. Um arquivo que “já vou escrever amanhã” durante dois meses. Se isso soa familiar, você não está sozinho. Escrever um changelog manualmente é um saco de categoria olímpica. Não é que seja difícil — é que é tedioso, repetitivo, e sempre há algo mais urgente para fazer. E justamente por isso existe o git-cliff. ...

22 de fevereiro de 2026 · Fernando