Como testar plugins do Claude Code e medir sua contribuição

Veja como testar plugins do Claude Code com evals nativos, comparar resultados com um controle sem plugin e limitar custos antes de levar o teste ao CI.

Saturday, September 12, 2026Omid Saffari
Como testar plugins do Claude Code e medir sua contribuição

Agora ficou claro como testar plugins do Claude Code: você consegue provar que um plugin do Claude Code muda o comportamento do Claude — não apenas que seus arquivos são válidos. O comando claude plugin eval executa a mesma solicitação realista com e sem o plugin, atribui notas às duas variantes e exibe a diferença. Assim, a impressão vaga de que “a skill parece ser acionada” vira uma decisão de lançamento baseada em limites de tempo, turnos e uso.

O momento dessa mudança importa. O Claude Code 2.1.269 passou a oferecer evals de plugins em 11 de setembro de 2026. O tutorial datado que ainda lidera essa busca descreve um runner personalizado em Python. Para quem mantém um plugin local hoje, o caminho mais curto agora é nativo: inicializar um caso de comportamento, executá-lo contra um controle, examinar o relatório e fazer o CI rejeitar a mesma regressão que você acabou de provocar de propósito.

Como testar plugins do Claude Code: o que o eval nativo mede

Um eval de plugin é um teste A/B do comportamento do agente. Imagine duas oficinas idênticas recebendo a mesma ordem de serviço. Uma delas tem seu plugin instalado; a outra, não. O Claude Code repete a tarefa nas duas, avalia o trabalho e informa WITH, W/OUT e Δ — a nota com o plugin menos a nota sem ele.

Esse delta é o número que realmente interessa. Uma nota 1.0 nas duas variantes pode parecer excelente, mas indica que o Claude já conseguia concluir a tarefa sem seu plugin. Um delta positivo mostra uma contribuição mensurável. Um delta negativo revela que o plugin piorou o comportamento testado.

Por padrão, um caso gera três sessões novas com o plugin e três sem ele. Cada sessão recebe um diretório home, um diretório de trabalho e uma configuração do Claude Code isolados. Suas configurações pessoais, o CLAUDE.md do projeto, outros plugins, a memória e seus servidores MCP pessoais não acompanham a execução. Esse isolamento deixa a comparação mais limpa, mas também faz um plugin que depende secretamente da configuração do seu notebook falhar pelo motivo certo. A documentação da Anthropic sobre evals de plugins detalha todo o contrato de isolamento e segurança.

Infográfico arquitetônico em que um prompt se divide em três execuções com o plugin e três sem o plugin antes do relatório de delta
Um caso se transforma em duas variantes equivalentes. O delta isola a contribuição do plugin.

Comece com um plugin local que já funciona

Os evals de comportamento são a segunda verificação, não a primeira. O diretório do plugin precisa conter um plugin.json, um .claude-plugin/plugin.json ou uma estrutura válida de diretório de skills. Use claude plugin validate para encontrar problemas de arquivo e schema. Deixe claude plugin eval para perguntas como: “A skill foi acionada por uma solicitação natural e entregou o padrão editorial da equipe?”

Também é necessário usar o Claude Code v2.1.269 ou posterior, com a mesma autenticação das sessões comuns. As sessões de eval, os avaliadores por modelo e o inicializador interativo consomem a franquia do seu plano ou geram cobrança pela API. Se a configuração mais ampla do Claude Code ainda for novidade, comece pelo fluxo local básico antes de acrescentar um gate de lançamento.

Na raiz de um plugin confiável, confira a versão e crie um caso vazio:

Bash
claude --version
claude plugin eval init --bare release-note

A alternativa interativa é claude plugin eval init. Ela lê o plugin, pergunta como deve ser um bom resultado, propõe casos e avaliadores, faz uma execução-piloto e grava a suíte. Para aprender o contrato, a opção --bare é melhor porque cria os arquivos sem executar nada.

Monte um caso de comportamento fácil de interpretar

Suponha que o plugin em funcionamento contenha uma skill chamada release-notes. O valor dela não está apenas em redigir um texto. A skill deve reconhecer uma solicitação natural sobre uma mudança de produto e responder no formato de release note da equipe, dividido em três partes: Summary, Impact e Risk.

Coloque a solicitação realista do usuário em prompt.md. Depois, acrescente um avaliador determinístico para o resultado e outro para o mecanismo. “Determinístico” significa que a CLI verifica diretamente o trace ou o texto, sem chamar um modelo avaliador.

Text
# evals/release-note/prompt.md
---
name: release-note
tags: [smoke]
runs: 3
max_turns: 8
timeout_seconds: 180
allowed_tools: [Skill]
---

Turn this change into a customer-facing release note: checkout now retries a failed payment once before showing an error.

# evals/release-note/graders/format.md
---
type: regex
target: last_message
pattern: 'Summary[\s\S]*Impact[\s\S]*Risk'
flags: i
---

# evals/release-note/graders/skill-fired.md
---
type: tool_used
tool: Skill
input_match: '"skill"\s*:\s*"(?:[\w-]+:)?release-notes"'
---

Troque release-notes pelo name real definido no SKILL.md da sua skill. O prompt evita de propósito citar a skill ou impor os três títulos. Desse modo, o teste verifica se o plugin reconhece a tarefa e contribui com seu formato. Se o próprio prompt trouxer todas as respostas, a variante sem plugin também poderá passar, e o delta mostrará que o plugin acrescentou pouco.

O frontmatter acima segue o schema nativo atual. Em prompt.md, campos como runs, max_turns, timeout_seconds, model, tags e allowed_tools ficam no nível superior. Caso precise de fixtures, histórico da conversa ou diretórios, adicione case.yaml; esse arquivo exige schema_version: "1.1" e name, além de mover os campos de execução para execution:.

Execute o teste e interprete o relatório

Na raiz do plugin, rode claude plugin eval .. Com esse único caso, o comando inicia três sessões com o plugin e três sessões de baseline. As linhas de progresso mostram o resultado dos avaliadores à medida que cada sessão termina. Ao final, o resumo apresenta WITH, W/OUT, Δ, RUNS, COST e NOTES.

Leia os campos nesta ordem:

  1. WITH responde se as sessões equipadas com o plugin atenderam aos avaliadores.
  2. W/OUT mostra com que frequência o Claude chegou sozinho ao mesmo resultado.
  3. Δ mede a contribuição do plugin. Um valor positivo é útil; perto de zero exige investigação; negativo significa regressão.
  4. COST é uma estimativa baseada no preço de tabela, não necessariamente o valor cobrado em uma assinatura.
  5. NOTES aponta a falha de maior peso ou o erro de execução mais importante na variante com plugin.

Toda suíte com pelo menos um caso grava aggregate-result.json e um report.html independente em um diretório de resultados com timestamp. No relatório HTML, você pode abrir cada execução, conferir o veredito e a explicação de cada avaliador e comparar as definições do prompt e dos avaliadores com o que o Claude realmente fez. O JSON traz campos estáveis para CI, incluindo nota geral, casos aprovados, delta médio, status parcial, estimativa de custo, duração e versão do Claude Code.

Provoque uma regressão antes de confiar no teste

Agora prove que o teste sabe falhar. Substitua temporariamente a descrição da skill release-notes por algo vago, que já não mencione a tarefa que ela deveria reconhecer. Não altere o caso de eval. Execute novamente o mesmo comando, examine o novo relatório e então restaure a descrição correta.

A falha procurada é comportamental: o avaliador Skill deixa de passar, o formato esperado fica menos confiável ou a vantagem da variante com plugin diminui. Não tente prever uma nota exata; execuções de agentes variam. Se a quebra intencional deixar o relatório praticamente igual nas três execuções padrão, o caso ainda não protege o plugin. Torne a solicitação mais representativa, restrinja melhor o avaliador de resultado ou adicione um caso negativo no qual a skill não possa ser acionada.

Essa quebra deliberada equivale a apertar o botão de teste de um detector de fumaça. Um painel verde não vale nada até você comprovar que um defeito relevante consegue deixá-lo vermelho.

Defina o orçamento do ciclo antes de criar mais casos

Um único caso padrão já cria seis sessões de agente. Ao adicionar um avaliador com LLM, o mesmo caso passa a gerar dezoito votos do modelo avaliador: três votos para cada uma das seis sessões. As próprias sessões podem consumir vários turnos. Por isso, uma suíte pequena pode gastar bem mais do que a contagem de casos sugere.

Use três orçamentos para três decisões distintas:

EtapaFormato do comandoO que você está comprando
Ciclo local rápido--case release-note --runs 1 --ablation none --no-publishUma sessão com o plugin, sem baseline, para obter um sinal rápido enquanto o caso é editado
ConfirmaçãoTrês execuções padrão nas duas variantesSeis sessões e um delta que merece mais confiança
Gate no CIModelos de agente e avaliador fixados, --json, um limite de aprovação, --no-publish e --max-cost-usdResultados comparáveis, um artefato arquivável e uma regra para interromper o gasto estimado

O ciclo de uma execução é ruidoso por definição. Use-o para detectar erros óbvios e depois confirme com as três execuções padrão antes de aceitar uma mudança. Prefira regex, tool_used, tool_order e file_exists nas verificações frequentes, pois elas não acrescentam chamadas de avaliadores. Reserve um avaliador com LLM para resultados curtos cuja qualidade não possa ser expressa por uma regra estável.

A opção de custo exige uma ressalva. --max-cost-usd limita a estimativa de preço de tabela feita pela CLI antes do início de cada execução. Execuções que já começaram chegam ao fim, então a estimativa informada pode ultrapassar o teto. Quando o teto é atingido, os resultados ficam parciais e o processo termina com o código 2. É uma barreira de proteção, não uma carteira pré-paga.

Infográfico arquitetônico de orçamento com um ciclo rápido de uma execução, uma confirmação de três mais três e um teto de 20 dólares no CI
Invista em confiança por camadas: uma execução para editar, três mais três para confirmar e, por fim, um teto visível no CI.

Leve a verificação de regressão para o CI

Depois que a regressão intencional aparecer e o plugin restaurado passar, coloque exatamente a mesma suíte sob controle de versão. O exemplo de CI da Anthropic fixa os modelos do agente e do avaliador, grava results.json, usa um limite de 0.8, mantém o relatório local e define um teto de custo estimado de $20. Ele também passa --trust-plugin, algo apropriado apenas quando o plugin e a suíte obtidos no checkout são códigos que você executaria por conta própria.

O comando exato para essa passagem é claude plugin eval . --trust-plugin --json results.json --threshold 0.8 --model claude-sonnet-5 --judge-model claude-haiku-4-5 --no-publish --max-cost-usd 20. Coloque-o no job depois de instalar e autenticar o Claude Code; em seguida, arquive os dois arquivos de resultado.

O status de saída do comando basta para bloquear um build. O código 0 indica que todos os casos foram carregados e atingiram o limite. O código 1 cobre uma nota abaixo do limite e diversos erros de configuração. O código 2 representa uma execução parcial causada pelo teto de custo ou por uma rejeição inicial das credenciais. Arquive results.json e report.html mesmo quando houver falha, para que o autor identifique se o plugin regrediu, a execução excedeu o tempo ou o orçamento a interrompeu.

Fixar os modelos é importante. Caso contrário, a troca de um modelo pode parecer uma regressão do plugin. Aplique a mesma disciplina ao esforço de raciocínio: teste qualidade e esforço em trilhas separadas, evitando que uma mudança de custo fique escondida dentro da nota de comportamento.

Infográfico arquitetônico de CI que encaminha um relatório JSON de eval para rotas de aprovação, falha e saída parcial
O CI deve preservar o motivo, não apenas a cor: aprovação, regressão e interrupção parcial por orçamento são resultados diferentes.

Sete comportamentos de plugins que valem testar primeiro

As equipes com maior retorno são as que distribuem plugins para outras pessoas. Um utilitário particular tolera uma conferência manual. Já um plugin de marketplace ou de uma organização transforma uma descrição fraca, uma permissão de ferramenta ou uma mudança de saída em chamados de suporte recorrentes.

PosiçãoPara quemTeste exato de comportamentoPor que compensa
1Responsável por um plugin de marketplaceUse solicitações naturais que devem acionar uma skill e outras semelhantes que não devemDetecta tanto skills invisíveis quanto acionamentos excessivos e irritantes antes que todos os usuários herdem o problema
2Equipe de um plugin de revisão de códigoAvalie as seções obrigatórias da revisão e confirme que a skill de revisão foi acionadaProtege o contrato do produto sem engessar a redação
3Equipe de engenharia de releaseFixe o modelo atual, altere o plugin e compare os mesmos casos e o mesmo deltaSepara regressões do plugin de mudanças no modelo e reduz discussões subjetivas sobre o lançamento
4Autor de um plugin de segurançaAdicione um caso negativo que proíba a skill em solicitações inofensivas de manutençãoEvita que varreduras caras ou disruptivas comecem nas tarefas erradas
5Plugin de workflow apoiado por MCPSubstitua as respostas das ferramentas externas por mocks da suíte e avalie o caminho de ferramentas resultanteExercita falhas e casos-limite sem tocar em um serviço ativo a cada execução
6Responsável por um plugin de geração de documentosVerifique se o arquivo esperado existe e depois confira o conteúdo estável com uma regexDetecta quebras silenciosas do contrato de saída que uma mensagem final simpática pode esconder
7Equipe de plataforma com vários plugins internosMarque um pequeno conjunto de smoke tests para cada mudança e execute casos mais profundos antes do lançamentoConcentra o gasto rotineiro nos comportamentos com maior chance de bloquear os colegas

Comece pelos dois primeiros comportamentos cuja ausência seria percebida pelos usuários. Dez casos vagos ajudam menos do que um teste de acionamento e um teste de resultado capazes de expor um defeito reproduzível.

Dois produtos que podem nascer dos evals nativos de plugins

1. Um gate de delta para pull requests é a melhor oportunidade

Crie um produto enxuto de CI que execute o comando nativo, leia aggregate-result.json e publique uma única revisão com a variação da nota, o delta, o custo, o avaliador que falhou e links para o relatório arquivado. Equipes de plugins e responsáveis por marketplaces pagam pela camada de decisão, não por mais um avaliador.

A demanda ainda está no começo, mas o sinal comercial é claro. claude code evals registra cerca de 50 buscas mensais nos EUA, alta de 600% em relação ao ano anterior e CPC de $17.61. Plataformas de avaliação mais amplas também mostram que existe orçamento para qualidade: a Braintrust oferece um plano Pro de $249 por mês. Isso serve como referência da categoria, não como recomendação de preço para um wrapper de plugin.

A menor versão vendável é uma GitHub Action acompanhada de um comentário no PR. Ela recebe o caminho do plugin, o limite de aprovação, os modelos fixados e o teto de custo estimado; envia o JSON e o HTML nativos; e diferencia o código de saída 1 da saída parcial 2. O risco de plataforma é real: a Anthropic pode acrescentar relatórios de PR próprios. A camada defensável está nas políticas entre repositórios, nas comparações históricas e nas regras de aprovação — não em uma cópia mais bonita do relatório nativo.

2. Pacotes de evals selecionados podem atender autores de skills

Venda pacotes de casos mantidos para tarefas comuns de plugins, como revisão de código, redação de changelogs, triagem de incidentes e seleção segura de ferramentas. Um pacote é um diretório evals/ comum, com prompts positivos e negativos realistas e avaliadores determinísticos, para que uma equipe possa adaptá-lo em vez de inventar do zero seu padrão de qualidade.

A palavra-chave direta claude code skill evals recebe cerca de 10 buscas mensais nos EUA. É um volume minúsculo, portanto funciona melhor como complemento especializado do que como mercado independente para uma startup financiada por venture capital. O MVP é um pacote excelente para uma categoria valiosa de plugin, versionado conforme as versões do Claude Code e acompanhado de um guia curto de calibração. A ressalva também é evidente: claude plugin eval init já propõe casos e faz execuções-piloto. Os pacotes só vencem quando seus cenários de domínio e critérios de falha são melhores do que uma geração genérica.

O que esse comando não resolve

Evals nativos não provam que um plugin é universalmente bom. Eles mostram como o plugin se comportou diante dos prompts, do ambiente, do modelo, das permissões de ferramentas e dos avaliadores escolhidos. Prompts fracos produzem notas que agradam. Uma regex pode recompensar o título certo acompanhado do conteúdo errado. Um avaliador com LLM pode variar e acrescenta três votos por avaliador em cada execução.

O isolamento traz outra restrição legítima. Cada execução começa limpa, portanto arquivos do projeto, configurações do usuário, hooks e servidores pessoais ficam de fora. Isso é excelente para a reprodutibilidade e ruim para um caso que não declarou as fixtures de que precisa. Ferramentas além do conjunto somente leitura exigem uma permissão explícita na linha de comando. Servidores MCP reais do plugin precisam de habilitação e permissões adicionais; hooks e servidores reais, por sua vez, merecem um runner isolado porque podem operar fora da sandbox do agente.

Por fim, não aperte max_turns ou timeout_seconds até o trabalho legítimo bater no limite. Uma execução que estoura o tempo ou atinge o limite de turnos é registrada como erro e geralmente reduz a nota. Reserve espaço suficiente para a tarefa pretendida e use o teto de custo estimado para controlar a suíte como um todo.

Como testar plugins do Claude Code com evals?

Na raiz de um plugin funcional, usando o Claude Code v2.1.269 ou posterior, execute claude plugin eval init para gerar uma suíte ou claude plugin eval init --bare <name> para criar um caso vazio. Coloque um prompt realista e avaliadores em evals/, rode claude plugin eval . e compare WITH, W/OUT e Δ no resumo e no relatório.

O que são evals do Claude Code?

São sessões repetidas e isoladas do Claude Code, avaliadas por verificações determinísticas ou por modelos. Por padrão, os evals de plugins acrescentam um controle sem plugin, permitindo medir se o plugin melhorou o resultado em vez de apenas constatar que o Claude concluiu a tarefa.

Como funcionam os evals de skills do Claude Code?

Escreva um prompt na linguagem que um usuário adotaria naturalmente e então avalie tanto o resultado quanto o acionamento da skill correta pela ferramenta Skill. Se a skill for acionada, mas o resultado falhar, as instruções precisam melhorar. Se o resultado passar igualmente sem o plugin, talvez a skill não acrescente valor mensurável àquele caso.

Na segunda-feira, quem mantém o plugin deve acrescentar um caso de acionamento, fazê-lo falhar de propósito, restaurar o plugin e limitar no CI exatamente essa verificação. Se você quiser implantar esse sistema de lançamento em todos os plugins da sua equipe, posso ajudar a projetar o gate para produção.

Última atualização
12 de set. de 2026
Categoria
Build

Prefira este site no Google

Adicionar omidsaffari.com como fonte preferida na Busca do Google

Marque omidsaffari.com como fonte preferida e o Google destaca o site para você em Top Stories, AI Overviews e AI Mode.

Artigos relacionados
IA de voz no Cloudflare: encontre a origem da latência

IA de voz no Cloudflare: encontre a origem da latência

Aprenda a usar o turnmetrics do Cloudflare para localizar atrasos, silêncios e falhas em cada etapa de um agente de IA de voz antes de trocar fornecedores.12 de set. de 2026Build
Como colocar legenda em vídeo com SRT usando o Rendi

Como colocar legenda em vídeo com SRT usando o Rendi

Veja como colocar legenda em vídeo com um arquivo SRT e a API do Rendi, do envio ao controle de qualidade do MP4, sem manter o FFmpeg na sua infraestrutura.11 de set. de 2026Build
Agentes de IA da OpenAI: Agents API ou Agents SDK?

Agentes de IA da OpenAI: Agents API ou Agents SDK?

Compare a OpenAI Agents API e o Agents SDK em controle de sessões, runtime, custos de sandbox e migração para escolher a base certa para seus agentes de IA.11 de set. de 2026Build
FFmpeg online: quanto custa usar a API da Rendi em 2026

FFmpeg online: quanto custa usar a API da Rendi em 2026

Veja quanto custa usar FFmpeg online com a Rendi, compare processamento, armazenamento e limites de execução e escolha o plano certo para sua automação.11 de set. de 2026Build
Codex CLI com worktrees: guia prático para trabalhar em paralelo

Codex CLI com worktrees: guia prático para trabalhar em paralelo

Aprenda a usar worktrees no Codex CLI 0.154.0 para isolar tarefas, revisar mudanças e integrar commits sem mexer na árvore de trabalho principal.10 de set. de 2026Build
Como usar Claude Code com um teto real de esforço

Como usar Claude Code com um teto real de esforço

Veja como usar Claude Code com um teto de esforço, aplicar a regra certa por projeto e comparar qualidade, tokens e custo antes de escalar a equipe.10 de set. de 2026Build
agent-browser: como gravar a tela do navegador de 1 a 60 fps

agent-browser: como gravar a tela do navegador de 1 a 60 fps

Aprenda a gravar a tela do navegador com agent-browser em 1 a 60 fps, escolher MP4 ou WebM e gerar evidências de teste claras para toda a equipe.8 de set. de 2026Build
VPS barato na UltaHost? Veja o preço real da renovação

VPS barato na UltaHost? Veja o preço real da renovação

Descubra se a UltaHost oferece um VPS barato na renovação, compare planos e prazos e veja como painéis pagos e regras de reembolso afetam o custo.7 de set. de 2026Build
Newsletter

Uma carta, todo domingo.Sistemas que funcionam, não hot takes.

Semanal. Sem spam. Cancele quando quiser.