AIDive

Pack de vídeo

Oito repos do Claude Code medidos em um projeto: custo de sessão, ablações, vereditos

13 min de leitura

TL;DR

  • Oito repos populares do Claude Code foram instalados no escopo do projeto sobre uma mesma base de código real e medidos: tokens ao iniciar a sessão, tokens de saída em três tarefas de código e o que cada um escreve fora do projeto.
  • Só um dos oito mudou um resultado: o anti-slop, usado como linter, pegou o mesmo cast inseguro nas 3 execuções de T3 por +95 tokens de sessão e nada por turno.
  • Os conjuntos de regras de saída enxuta não se sustentaram em trabalho com ferramentas: os 52% da base anunciados pelo Chisle viraram 94% dos tokens de saída da base, e o braço dele custou mais que a base em duas de três tarefas quando a entrada entra na conta.
  • Os três servidores MCP nunca foram chamados nem uma vez em 63 execuções. Instalado não é o mesmo que usado.
  • A pilha é aditiva: os oito juntos adicionaram +6,804 tokens no início, 63 tokens a menos que a soma das partes.
  • Duas instalações saíram do projeto. Um codemod se registrou nas configs globais de outros 8 agentes; uma ferramenta fixa --dangerously-skip-permissions e copia o arquivo de credenciais, então nunca foi executada.

O que as medições dizem

Os tokens de início de sessão são reproduzíveis, o custo em dólar não: cada condição retornou exatamente o mesmo total de tokens de entrada nas duas execuções, enquanto o custo da mesma condição oscilava de $0.0183 a $0.0035 conforme o estado do cache de prompt. Por isso a contagem de tokens é a métrica em todo o texto. O projeto base começa em 17,378 tokens s4.

Os esquemas de ferramentas MCP são adiados nesta versão do Claude Code, e o custo agora escala com o número de nomes de ferramenta que um servidor anuncia, não com o tamanho dos esquemas. As 39 ferramentas do ouroboros custam +1,642 tokens, as 19 do reticle +895, as 2 do ui-skills +37: cerca de 42 a 47 tokens por nome de ferramenta. Por padrão todas as ferramentas MCP são adiadas e carregadas sob demanda, e o modo auto de ENABLE_TOOL_SEARCH as adia quando suas definições chegam a 10% da janela de contexto s4. O img2threejs traz um SKILL.md de 32,902 bytes e 352 arquivos, e custa +107 tokens no início, porque só a descrição do frontmatter é carregada. A documentação de skills limita cada descrição listada a 1,536 caracteres e encurta as descrições para caber em um orçamento de listagem quando há muitos skills; após a compactação, os skills invocados são reanexados a 5,000 tokens cada, dentro de um orçamento compartilhado de 25,000 tokens s5. Esse orçamento de listagem explica por que 40 skills podem custar 3,060 tokens por turno em uma configuração que não invoca nenhum s10, e por que as descrições são cortadas em vez de os skills serem descartados s11.

O hook UserPromptSubmit do Chisle adiciona 287 bytes de additionalContext a cada turno; em uma tarefa de 22 turnos, é isso que explica o braço dele ter custado +41,539 tokens de entrada no total em T3 contra a base. O caveman, medido como referência, não injeta nada a menos que o prompt comece com /caveman. Quando vários hooks do mesmo evento retornam cada um additionalContext, o Claude recebe todos concatenados, com limite de 10,000 caracteres por hook s15. Com Chisle, caveman e ouroboros ligados juntos, houve 3 registros em SessionStart, 3 em UserPromptSubmit e 2 em PostToolUse, para +4,269 tokens no início s15.

O README do Chisle afirma uma conta de 20 tarefas a 52% da base, e o próprio README restringe esse número a prompts de um único turno sem ferramentas s3. Em três tarefas contra um repo real, 3 execuções cada, as médias de saída somadas do Chisle foram 9,007 tokens contra 9,615 da base, ou seja, 94%; as do caveman foram 10,820, ou seja, 113%, numa amostra cuja dispersão em T3 foi de 2,014 tokens, então nenhuma das duas direções passa do ruído s3. O compressor de saída do Chisle nunca gravou um registro de economia em 63 execuções.

O anti-slop vendorizado em tools/oxlint/ com as 18 regras genéricas mais oxc/no-accumulating-spread achou 109 problemas no projeto intacto de 4,775 linhas, 83% deles vindos de duas regras de estilo da casa (require-readable-spacing 50, require-safety-comment-for-type-assertion 41) s8. No código que o Claude escreveu, pegou maxLength={field.maxLength as number} nas 3 execuções de T3, com o Claude copiando o cast inseguro da própria base de código s8. O plugin é ESM, então o projeto hospedeiro precisa de "type": "module" ou o oxlint falha com Cannot use import statement outside a module.

O codemod init do Reticle, executado com RETICLE_STATE_DIR definido e telemetria desligada, informou que registrou o servidor MCP em mais 8 agentes (VS Code no escopo de usuário, GitHub Copilot CLI, Warp, Factory Droid, Kiro, Amazon Q Developer CLI, Cline CLI, Amp) e pré-aprovou suas ferramentas no Gemini CLI; o pareamento então falhou com ERR_OSSL_EVP_UNSUPPORTED s6. O Caliper foi recusado: claude_code.py:106 fixa --dangerously-skip-permissions e seed_files() copia ~/.claude/.credentials.json com fallback para o Keychain s2. O hook UserPromptSubmit do ouroboros responde a um prompt comum como write prd for reading time com REQUIRED SKILL: /ouroboros:setup, uma etapa que uma instalação no escopo do projeto não consegue cumprir s7.

Um artigo sobre 2,545 trajetórias com bibliotecas de 52, 102 e 202 skills relata quedas agregadas na taxa de acerto de .08, .14 e até 21%, com descrições parecidas se ofuscando entre si e respondendo por uma parte crescente da perda s20.

Medições

Protocolo: um projeto TypeScript real, cada repo instalado apenas no escopo do projeto. Início de sessão: o prompt Reply with OK em modo JSON -p com flags idênticas, 2 execuções por condição, número = input_tokens + cache_creation_input_tokens + cache_read_input_tokens do primeiro turno. Ablação: três tarefas de código (T1 curta, T2 média, T3 longa de UI) com verificações de acerto e uma barreira de checagem de tipos, 3 execuções por célula, condições = base, cada repo sempre ativo sozinho, os oito empilhados. anti-slop: oxlint 1.78.0 com o conjunto de regras vendorizado sobre o projeto intacto e sobre o código escrito nas 9 execuções da base.

repo instalado no escopo do projeto tokens adicionados no início custo por turno
base nada 17,378 nenhum
Chisle 4 skills, 4 comandos, 3 hooks +3,496 +287 bytes de additionalContext a cada turno
ouroboros servidor MCP, 39 nomes de ferramenta +1,642 injeção condicional
reticle servidor MCP, 19 nomes de ferramenta +895 / +903 nenhum observado
fwc-swiftui-skills 2 skills +304 nenhum
caliper 2 skills +172 nenhum
img2threejs 1 skill, 352 arquivos, SKILL.md = 32,902 B +107 nenhum
anti-slop 1 skill + conjunto de regras vendorizado +95 nenhum
ui-skills MCP remoto, 2 ferramentas +37 nenhum
os oito empilhados tudo acima +6,804 só o do Chisle
caveman (referência) 4 skills, 2 hooks +744 0
tarefa condição acerto novos erros de tipo saída tok média saída mín a máx entrada total média custo médio turnos chamadas MCP
T1 base 3/3 0 1,668 1,619 a 1,739 95,462 $0.0519 7.0 0
T1 Chisle 3/3 0 1,434 1,341 a 1,502 106,001 $0.0576 7.7 0
T1 ui-skills 3/3 0 1,756 1,644 a 1,885 96,279 $0.0535 7.3 0
T1 reticle 3/3 0 1,899 1,653 a 2,177 107,263 $0.0594 8.0 0
T1 ouroboros 3/3 0 1,729 1,655 a 1,787 97,166 $0.0549 7.0 0
T1 pilha 3/3 0 1,462 1,460 a 1,465 128,221 $0.0646 7.7 0
T2 base 3/3 0 2,128 2,105 a 2,164 74,286 $0.0540 9.0 0
T2 Chisle 3/3 0 2,184 2,150 a 2,230 87,462 $0.0624 10.0 0
T2 ui-skills 3/3 0 2,348 2,224 a 2,504 74,869 $0.0604 10.0 0
T2 reticle 3/3 0 2,614 2,312 a 2,824 78,664 $0.0635 10.7 0
T2 ouroboros 3/3 0 2,441 2,152 a 2,815 80,819 $0.0622 10.0 0
T2 pilha 3/3 0 2,136 2,015 a 2,216 89,378 $0.0661 9.7 0
T3 base 3/3 0 5,819 5,423 a 6,063 198,217 $0.1551 22.0 0
T3 Chisle 3/3 0 5,389 5,206 a 5,500 239,756 $0.1565 20.3 0
T3 ui-skills 3/3 0 5,279 4,860 a 5,567 214,691 $0.1477 21.0 0
T3 reticle 3/3 0 4,664 4,008 a 5,776 198,740 $0.1293 19.0 0
T3 ouroboros 3/3 0 5,456 4,324 a 7,093 232,763 $0.1544 21.0 0
T3 pilha 3/3 0 5,331 4,787 a 5,843 241,576 $0.1591 19.7 0

63/63 execuções passaram e 0/63 introduziram um novo erro de tipo. Só duas células superam a própria dispersão entre execuções: Chisle em T1 (−234, −14.0%) e a pilha em T1 (−206, −12.3%). Em T2 e T3 todas as diferenças ficam dentro da dispersão; as execuções de T3 do ouroboros foram de 4,324 a 7,093 tokens de saída com um prompt idêntico, uma variação de 64%.

repo veredito evidência
anti-slop mudou a saída, como verificação pegou o mesmo cast inseguro em 3/3 execuções de T3, +95 tokens, 0 por turno
Chisle nada mensurável, custou mais 94% da saída da base contra 52% anunciados; +3,496 no início, +287 bytes por turno
ui-skills não mudou nada 0 chamadas de ferramenta em 9 execuções, +37 tokens
reticle em conflito init escreveu em ~/.claude/settings.json e nas configs de outros 8 agentes; o pareamento nunca foi concluído
ouroboros em conflito exige /ouroboros:setup em prompts comuns; 39 nomes de ferramenta, 0 chamadas
caliper não executado --dangerously-skip-permissions fixo, copia o arquivo de credenciais
img2threejs fora da pilha +107 tokens, nada com que colidir
fwc-swiftui-skills fora da pilha +304 tokens, Markdown estático

Faça isto na segunda

  • Rode /context all em uma sessão nova do seu projeto principal e anote o número inicial.
  • Rode claude plugin details <name> em cada plugin instalado; a linha always-on é o único número cobrado a cada turno.
  • Liste seus hooks por evento. Todo hook que retorna additionalContext em UserPromptSubmit para todo prompt é uma taxa por turno; mantenha só os que disparam por palavra-chave ou matcher.
  • Conte os nomes de ferramenta que cada servidor MCP anuncia, reserve cerca de 42 a 47 tokens por nome e depois confira nos seus transcripts quantos foram chamados alguma vez.
  • Antes de instalar qualquer coisa com um script init ou de setup, leia-o procurando escritas fora do repo: ~/.claude/settings.json, diretórios de config de outros agentes, arquivos de credenciais, --dangerously-skip-permissions.
  • Ligue as verificações de qualidade do código gerado como um linter na etapa de verificação, não como um skill no contexto: uma regra de lint não custa nada por turno.
  • Antes de confiar em qualquer promessa de economia de tokens, rode a mesma tarefa 3 vezes com e sem a ferramenta e compare a diferença com a sua própria dispersão mín a máx.
  • Arquive o que remover em vez de apagar, para que um fluxo de trabalho que precise possa recuperar.

Para ir além

  • O orçamento de listagem de skills e o limite de 1,536 caracteres por descrição explicam por que uma configuração lotada se degrada sem que nenhum skill deixe de carregar. Leia as seções "Skill descriptions are cut short" e "Skill content lifecycle" s5.
  • O texto sobre o /skill-doctor mostra 40 skills custando 3,060 tokens por turno e quais cortar primeiro; seu ponto cego, skills caros dentro de um plugin em uso, fica para um acompanhamento s10.
  • O artigo por trás da regra prática de "mais de 30 skills": 2,545 trajetórias com bibliotecas de 52, 102 e 202 skills, com o efeito de ofuscamento isolado s20, e o resumo acessível que o popularizou s12.
  • A concatenação de hooks e o limite de 10,000 caracteres de additionalContext, mais a sintaxe de matcher que permite um hook disparar só em Write|Edit s15.
  • A thread dos 63% removidos, incluindo um bearer token fixo no código achado numa config MCP removida, uma digressão de segurança que o vídeo deixou de fora s13.
  • O próprio README do Chisle, linhas 229 e 262, restringe o número de 52% a prompts de um único turno sem ferramentas e concede ao caveman a célula de código curto. Leia as letras miúdas antes de citar a manchete s3.
  • Os dois repos fora da pilha não foram pontuados porque são invocados manualmente e não custam nada no início: img2threejs para cenas Three.js s21 e fwc-swiftui-skills para superfícies Liquid Glass s22.

Sources

  • Plugins reference, docs do Claude Code. Por que ler: plugin details, os escopos de instalação e o carregamento adiado de ferramentas MCP que faz do número de nomes de ferramenta o custo real.
  • Extend Claude with skills, docs do Claude Code. Por que ler: o limite de descrição, o orçamento de listagem e o orçamento de reanexação pós-compactação em uma página.
  • Hooks reference, docs do Claude Code. Por que ler: o que acontece quando dois hooks injetam no mesmo evento e como os matchers mantêm um hook fora da maioria dos turnos.
  • dmmulroy/anti-slop, GitHub. Por que ler: o único repo dos oito que mudou um resultado; vendorize as regras, pule o skill.
  • JayPokale/Chisle, GitHub. Por que ler: um README que delimita com honestidade o próprio número de 52% se você ler além da manchete.
  • edonadei/caliper, GitHub. Por que ler: um avaliador de skills que vale conhecer e uma lição sobre ler claude_code.py antes de executar qualquer coisa.
  • reticlehq/reticle, GitHub. Por que ler: o codemod init é o exemplo mais claro de um instalador escrevendo bem longe do seu projeto.
  • Q00/ouroboros, GitHub. Por que ler: um fluxo guiado por hooks que só faz sentido instalado globalmente, com uma etapa de setup que uma instalação de projeto não cumpre.
  • ibelick/ui-skills, GitHub. Por que ler: a instalação mais barata daqui, +37 tokens, e nunca chamada.
  • /skill-doctor: 40 skills, 3,060 tokens a turn, dev.to. Por que ler: um detalhamento de custo por skill numa configuração real.
  • Too many Claude Code skills? How the listing budget decides, dev.to. Por que ler: o mecanismo pelo qual as descrições são truncadas.
  • Why More Than 30 Skills Kill Your AI Agent, dev.to. Por que ler: a versão legível do artigo sobre ofuscamento.
  • Skill shadowing paper, arXiv. Por que ler: as quedas agregadas na taxa de acerto por tamanho de biblioteca, com intervalos de confiança.
  • I removed 63% of my Claude Code setup, Reddit r/ClaudeCode. Por que ler: de ~235 componentes para ~87, arquivados e não apagados.
  • My fresh Claude Code sessions were starting at ~35K tokens, Reddit r/ClaudeCode. Por que ler: uma auditoria de sete passos com /context all que você pode copiar hoje à tarde.
  • img2threejs/img2threejs, GitHub. Por que ler: a prova de que um SKILL.md de 32,902 bytes custa 107 tokens até você invocá-lo.
  • FloWritesCode/fwc-swiftui-skills, GitHub. Por que ler: skills em Markdown estático, o formato de uma instalação que não pode conflitar com nada.

FAQ

Um servidor MCP ainda custa milhares de tokens de esquema na inicialização?

Não na versão medida. Os esquemas são adiados e o custo escala com o número de nomes de ferramenta anunciados, cerca de 42 a 47 tokens cada. Um servidor com 39 ferramentas custou +1,642 tokens; um com 2 ferramentas, +37.

Por que o Chisle custou mais que a base se produziu menos tokens de saída?

O conjunto de regras dele carrega no início da sessão (+3,496 tokens) e o hook injeta 287 bytes a cada turno. Em T2 e T3, essa sobrecarga de entrada superou uma economia de saída que nunca passou do ruído entre execuções.