Como o Ponytail decide não escrever código? A escada de 7 perguntas explicada

escada de 7 perguntas do Ponytail no Claude Code antes de escrever código
Resposta rápida

O Ponytail é uma Agent Skill open source de minimalismo, criada e mantida por Dietrich Gebert no repositório DietrichGebert/ponytail, que faz o agente pensar como o dev sênior mais preguiçoso da sala. Antes de escrever a primeira linha, ele sobe uma escada de 7 perguntas (YAGNI, código que já existe no projeto, stdlib, recurso nativo da plataforma, dependência instalada, cabe em uma linha, o mínimo que funciona) e para no primeiro degrau que resolve a tarefa. Instalar o Ponytail no Claude Code leva dois comandos de plugin, e o benchmark oficial aponta cerca de 54% menos código em média

Fala aí, beleza? Tu pede uma função nova pro agente e ele te responde que aquilo não precisa existir

Parece má vontade, mas não é

Esse comportamento tem nome: Ponytail, um conjunto de regras de minimalismo open source que tu pluga no agente (no Claude Code ele entra como Agent Skill, e os outros agentes têm o caminho de instalação deles). A recusa não é preguiça aleatória, é uma escada de 7 perguntas que roda ANTES da primeira linha de código, e ela para no primeiro degrau que já resolve a tarefa

Bora entender o critério por trás das respostas mais curtas?

O que é o Ponytail e de onde vem essa escada

O Ponytail é um conjunto de regras de minimalismo para agentes de IA, distribuído como Agent Skill no Claude Code e com caminho próprio de instalação em Codex, Copilot CLI, Gemini e Grok, além de um pacote npm

A ideia é simples e meio provocativa: fazer o agente pensar como o desenvolvedor sênior mais preguiçoso da sala (e isso é bom!). O lema do projeto resume tudo, o melhor código é o que você nunca escreveu

Ele vive no repositório DietrichGebert/ponytail, sob licença MIT

E onde moram as regras? No arquivo skills/ponytail/SKILL.md, dentro do próprio repo. É lá que a escada de decisão está descrita, degrau por degrau

Se você já viu o que uma coleção de skills faz com o comportamento do agente, o conceito é o mesmo que rola no Superpowers do Claude Code: não é um modelo diferente, é instrução diferente chegando no mesmo modelo

Um ponto que muita gente entende errado, então vou parar aqui pra deixar claro

A escada roda DEPOIS que o agente entende o problema, não no lugar de entender o problema. A regra é explícita nisso. Primeiro compreensão da tarefa, depois a decisão de minimalismo… a ordem importa MUITO

Os 7 degraus, um a um: como o agente decide em cada parada

A escada tem 7 degraus, na ordem abaixo, e o agente para no primeiro que resolver a tarefa

Repara que a ordem não é aleatória: ela vai do "não faz nada" até o "faz o mínimo", passando por todas as formas de aproveitar código que já existe no meio do caminho

1. Isso precisa existir?

O primeiro degrau é o YAGNI clássico: se a coisa não precisa existir, pula

É o degrau mais brutal da escada, porque ele questiona a existência da tarefa e não a implementação dela. Nenhuma linha escrita é sempre a linha mais barata de manter

O erro comum deste passo: o agente sem skill adora antecipar. Você pede um leitor de arquivo e volta uma camada de abstração com interface, factory e três parâmetros de configuração que ninguém pediu

2. Já existe neste projeto?

Segundo degrau: reutiliza, não reescreve

Se o projeto já tem um helper, um utilitário, uma função que faz aquilo, o trabalho acabou. É importação, não implementação

Este degrau vem antes de stdlib e de biblioteca porque o código do próprio projeto é o que carrega as convenções da casa

O erro comum deste passo: reescrever um helper que já está lá, geralmente com um nome parecido, e o projeto ficar com duas versões do mesmo formatador de data pra sempre

3. A stdlib já faz isso?

Terceiro degrau: se a biblioteca padrão da linguagem resolve, usa a biblioteca padrão

Stdlib é código que já está instalado, já está testado por muita gente e não vira dependência nova no seu package.json ou no seu requirements

O erro comum deste passo: importar uma lib inteira pra fazer algo que a linguagem entrega nativo. Aquele pacote de 3 funções que entra no projeto e nunca mais sai

4. Existe recurso nativo da plataforma?

Quarto degrau: antes de escrever, olha pra plataforma onde o código vai rodar

Se o navegador, o runtime ou o próprio ambiente já entrega o comportamento, a implementação vira configuração

O erro comum deste passo: recriar na unha um comportamento que a plataforma já dá de graça, e ainda por cima com menos casos de borda cobertos que a versão nativa

5. Existe dependência já instalada que resolve?

Quinto degrau: dependência JÁ instalada, se liga na palavra

Não é convite pra instalar biblioteca nova. É olhar o que já está no projeto e perceber que aquele pacote que entrou por outro motivo também resolve esse

O erro comum deste passo: adicionar uma dependência nova pra um problema que uma dependência existente já cobria, aumentando a superfície de atualização do projeto sem necessidade

6. Cabe em uma linha?

Sexto degrau: se cabe em uma linha, então é uma linha

Aqui a escada já aceitou que precisa escrever algo. A pergunta passa a ser sobre tamanho, não sobre existência

O erro comum deste passo: transformar uma expressão de uma linha em função com nome, docstring, teste e arquivo próprio… aquela cerimônia toda pra algo que era um filter

7. Só então: o mínimo que funciona

Sétimo e último degrau: escreve o mínimo que funciona

Mínimo não é gambiarra, é ausência de coisa não pedida. Sem parâmetro extra "pro caso de", sem hook de extensão que ninguém vai plugar, sem generalização preventiva

O erro comum deste passo: confundir mínimo com incompleto. Tem coisa que a escada não corta nunca, e é exatamente disso que fala a próxima seção

Onde a escada corta mais e o que ela nunca corta

O ganho não é distribuído por igual entre os degraus

Segundo a análise da escada, o degrau 1 (YAGNI, isso precisa existir?) e o degrau 3 (a stdlib já faz isso?) respondem pela maior fatia da redução de código observada

Faz sentido, né? Um mata a tarefa inteira, o outro troca uma implementação inteira por uma chamada que já vem junto com a linguagem. Os degraus do meio afinam, esses dois amputam

Agora o outro lado, que é o que separa minimalismo de irresponsabilidade

O Ponytail tem carve-outs explícitos, coisas que nunca entram na conta do corte em nome de escrever menos código:

  • validação em fronteira de confiança
  • tratamento de perda de dados
  • segurança
  • acessibilidade
  • comportamento explicitamente pedido pelo usuário

Esse último é o mais prático no dia a dia: se você pediu, não é excesso. A escada corta o que o agente inventou por conta própria, não o teu requisito

Na prática isso te dá uma régua boa de leitura das respostas. Resposta curta em CRUD, helper e formatação: provavelmente a escada trabalhando. Resposta curta em validação de entrada externa ou em algo que você pediu com todas as letras: aí é hora de desconfiar e cobrar

O que a escada muda na prática: os números do benchmark

O benchmark oficial do projeto reporta uma redução média de código de cerca de 54%, medida em 12 tarefas de feature, com o modelo Haiku 4.5 e n=4 execuções por tarefa

E tem uma variação enorme dentro dessa média: chega a 94% de redução onde o agente exagera na construção, e fica perto de zero onde o código já era mínimo

Além do volume de código, o README reporta ganhos de custo e tempo medidos em sessões reais do Claude Code editando um repositório open source de verdade:

Métrica Resultado oficial Como foi medido
Volume de código ~54% menos em média 12 tarefas de feature, Haiku 4.5, n=4 por tarefa
Teto por tarefa até 94% menos tarefas em que o agente exagera na construção
Piso por tarefa perto de zero tarefas em que o código já era mínimo
Custo ~20% mais barato sessões reais de Claude Code, repo FastAPI + React
Tempo ~27% mais rápido sessões reais de Claude Code, repo FastAPI + React

E aqui vem a parte mais interessante da história, que é justamente a que sumiu do hype

O número que viralizou foi o 94%. A manchete original falava em 80% a 94% de redução… só que essa medição vinha de uma baseline com falha

Um contribuidor apontou o problema. O mantenedor refez a medição como execução agêntica real e publicou o número corrigido, que é MENOR: os ~54% de média

O 94% continua existindo, mas mudou de papel: virou o teto por tarefa, não a média

Pra mim isso vale mais que o benchmark em si. Projeto que republica número pra baixo depois de contestação é sinal de saúde, e é por isso que eu evito repetir os números mais agressivos que circulam por aí em blog de terceiro: se não bate com o README oficial, não entra

Como instalar o Ponytail e ver a escada rodando

Antes de começar, se liga: a instalação MUDA conforme o agente. No Claude Code são dois comandos de plugin, nos outros cada um tem o seu

  1. Adicione o marketplace do Ponytail

No Claude Code, roda:

   /plugin marketplace add DietrichGebert/ponytail

O erro comum deste passo: pular direto pra instalação. Sem o marketplace adicionado, o nome do plugin não resolve

  1. Instale o plugin no Claude Code
   /plugin install ponytail@ponytail

O erro comum deste passo: escrever só ponytail no lugar de ponytail@ponytail. O formato é nome do plugin arroba nome do marketplace

  1. Se o teu agente não é o Claude Code, usa o comando dele

O Ponytail não é exclusivo do Claude Code, cada agente tem o seu próprio caminho de instalação:

– Codex: codex plugin marketplace add DietrichGebert/ponytail e depois codex plugin add ponytail@ponytail – Copilot CLI: copilot plugin marketplace add DietrichGebert/ponytail e depois copilot plugin install ponytail@ponytail – Gemini: gemini extensions install https://github.com/DietrichGebert/ponytail – Grok: grok plugin install DietrichGebert/ponytail --trust – npm: pacote @dietrichgebert/ponytail

O erro comum deste passo: copiar o comando de barra do Claude Code no terminal de outro agente. Não é o mesmo comando e não vai rodar

  1. Rode uma tarefa pequena e compare a saída

Pega algo que o agente costuma inflar (um formatador, uma função utilitária, um parser besta) e compara a resposta com o que ele te dava antes

O erro comum deste passo: testar numa feature grande logo de cara. Em tarefa grande tem variável demais no meio pra você atribuir a diferença à escada

E se quiser ler as regras na fonte, o arquivo é o skills/ponytail/SKILL.md do repositório

Vale adotar a escada no seu fluxo?

Na minha leitura, o valor do Ponytail está no critério, não no número de manchete

Os ~54% são um dado honesto de um benchmark que já foi corrigido uma vez. Legal ter, mas o que muda o teu dia é a escada em si: 7 perguntas que empurram o agente pra reutilizar antes de criar

E olha que massa: isso é replicável mesmo sem instalar nada. Dá pra rodar a escada como checklist mental antes de pedir código: isso precisa existir? já existe aqui? a stdlib faz? a plataforma faz? tem lib instalada que resolve? cabe em uma linha?

Seis perguntas antes do prompt já cortam boa parte da construção desnecessária, e essa lógica funciona até pra quem quer usar o Claude sem programar, porque o raciocínio é sobre escopo, não sobre sintaxe

Próximo passo que eu sugiro: abre o SKILL.md no repositório e lê os 7 degraus, ou instala e compara a saída do agente numa tarefa pequena

Depois me conta se o teu agente ficou mais preguiçoso do jeito bom =)

até o próximo post!

Perguntas frequentes

Como instalar o Ponytail no Claude Code?

São dois comandos de plugin: primeiro /plugin marketplace add DietrichGebert/ponytail, depois /plugin install ponytail@ponytail. Depois disso as regras da escada de 7 perguntas já entram no agente.

O Ponytail funciona em outros agentes além do Claude Code?

Sim, não é exclusivo do Claude Code. Tem caminho de instalação pra Codex, Copilot CLI, Gemini e Grok, cada um com seu próprio comando, além de um pacote npm (@dietrichgebert/ponytail) pra quem quer integrar direto.

Quanto código o Ponytail realmente economiza na prática?

O número oficial atual é uma redução média de cerca de 54%, medida em 12 tarefas de feature com o modelo Haiku 4.5 (n=4 execuções por tarefa). Em sessões reais de Claude Code sobre um repositório FastAPI + React, o ganho também aparece em custo (~20% mais barato) e tempo (~27% mais rápido).

O 94% de redução do Ponytail que viralizou é real?

Aquele número veio de uma baseline com falha. Um contribuidor apontou o problema, o mantenedor refez a medição como execução agêntica real e o valor corrigido caiu pra ~54% de média, com 94% virando o teto observado numa tarefa específica, não a média geral.

O Ponytail corta validação e segurança pra economizar linhas de código?

Não. O Ponytail tem carve-outs explícitos que nunca entram na conta do corte: validação em fronteira de confiança, tratamento de perda de dados, segurança, acessibilidade e qualquer comportamento que você pediu explicitamente. A escada mexe no que o agente inventaria sozinho, não no teu requisito.

O Ponytail é gratuito e open source?

É. O projeto é distribuído sob licença MIT e o código fica aberto no repositório DietrichGebert/ponytail.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 30min

Blog | Mais populares