Pular para o conteúdo
28/30Capítulo 28 de 30

Agent Skills e SKILL.md: progressive disclosure, medido

Cinco skills reais com 128.374 tokens de instruções ocupam 253 tokens de context. Corte as descrições e o agent deixa de encontrá-las.

Nesta página

Considere um projeto com cinco skills publicadas instaladas. Aqui está o custo delas.

terminalBASH
ls .claude/skills/
TEXT
next-best-practices  next-cache-components  vercel-composition-patterns
vercel-react-best-practices  vercel-react-native-skills
o200k_base tokens, measuredTEXT
skill                              level 1   level 2    level 3   files
next-best-practices                     40       966     19,374      19
next-cache-components                   28     2,334          0       0
vercel-composition-patterns             59       533     10,667      13
vercel-react-best-practices             68     1,670     53,670      75
vercel-react-native-skills              58       950     37,957      41
                                    ------   -------   --------
total                                  253     6,453    121,668

Cento e vinte e oito mil tokens de instruções, exemplos e regras — mais do que cabe em uma context window de 128.000 tokens — e o custo permanente de ter as cinco disponíveis é de 253 tokens, dois décimos de um por cento. Nada mais neste curso tem esse formato. Uma definição de ferramenta é paga em toda solicitação, seja usada ou não, e o Capítulo 26 mediu um servidor MCP em 1.619 tokens antes de ele fazer qualquer coisa: trinta e duas vezes a linha média de nível 1 na tabela acima.

Este capítulo trata do mecanismo que produz essa proporção, das duas formas como ele quebra e da pergunta que o mecanismo impõe e quase ninguém responde: dado um pedaço de conhecimento, a qual de quatro lugares ele pertence.

Por que este capítulo não tem linguagem de programação

Link para a seção: Por que este capítulo não tem linguagem de programação

O Capítulo 14 definiu a regra para a segunda metade deste curso — conexões, tentativas novamente e cancelamento são TypeScript — e declarou cinco exceções. Esta é uma delas, e o motivo não é preferência.

Uma skill é um arquivo Markdown. Não um arquivo que configura um programa, não um arquivo que um programa compila: um documento que o modelo , do mesmo modo como lê a mensagem que você digitou. Dar a este capítulo uma linguagem de programação significaria não ter entendido o formato, e esse mal-entendido é o mais comum sobre skills. Tudo abaixo é Markdown e YAML, mais um pequeno script shell que existe justamente para mostrar onde código pertence e onde não pertence dentro de uma skill.

A conta que ela resolve, e é a aritmética do Capítulo 16

Link para a seção: A conta que ela resolve, e é a aritmética do Capítulo 16

Aqui está uma instrução real: como uma empresa escreve suas notas de versão. É um procedimento, não uma preferência — tem um conjunto ordenado de etapas, uma taxonomia, uma voz, um template e um script que coleta a matéria-prima.

Coloque tudo isso no system prompt, como a maioria das equipes faz, e a aritmética do Capítulo 16 assume o controle. Um system prompt é um prefixo, e um prefixo é pago em toda chamada. Medido com o200k_base sobre a pasta escrita para este capítulo:

the same instruction, two ways, 40 turnsTEXT
whole thing pasted into the system prompt   1,716 x 40  =  68,640 input tokens   $0.1373
as a skill, activated once on turn 12          46 x 40
                                            + 324 (SKILL.md body)
                                            + 665 (two reference files read)
                                                        =   2,829 input tokens   $0.0057
as a skill, never activated at all             46 x 40  =   1,840 input tokens   $0.0037

Vinte e quatro vezes mais barato quando é usado, trinta e sete vezes mais barato quando não é. As tarifas são as do Capítulo 16: $2,00 por milhão de input tokens.

Agora a objeção honesta, porque um capítulo que a ignorasse seria propaganda. Prompt caching fecha quase toda a lacuna de dinheiro. Um system prompt é estável e fica no início, o que o torna o melhor candidato a cache que existe; a $0,20 por milhão para input em cache, os mesmos 68.640 tokens custam $0,0168 em vez de $0,1373. Ainda três vezes a skill, mas já não uma ordem de grandeza diferente.

O dinheiro nunca foi o argumento mais forte. Este é:

O cache torna um prefixo permanente mais barato. Ele não o torna menor.

No turno 40, a versão com system prompt ainda tem 1.716 tokens de política de notas de versão sentados na window durante uma conversa sobre algo completamente diferente, competindo pelo que o Capítulo 24 chamou de orçamento de attention do modelo. A versão com skill tem 46. Faça cache da coisa errada e você comprou um desconto em uma distração.

Escrito como fórmula, com nn turnos, L1L_1 os metadados, L2L_2 o corpo, L3L_3 o pacote inteiro e RR o conjunto de arquivos empacotados efetivamente lidos:

system prompt=n(L1+L2+L3)skill=nL1+1[used](L2+iRL3(i))\text{system prompt} = n\,(L_1 + L_2 + L_3) \qquad \text{skill} = n\,L_1 + \mathbb{1}[\text{used}]\left(L_2 + \sum_{i \in R} L_3^{(i)}\right)

Todo este capítulo é a diferença entre multiplicar o segundo termo por nn e multiplicá-lo por um ou por zero.

Uma skill é um diretório. A especificação é curta o bastante para ser apresentada por completo:

the whole formatTEXT
release-notes/
├── SKILL.md          # required: YAML frontmatter + Markdown instructions
├── scripts/          # optional: executable code
├── references/       # optional: documentation read on demand
├── assets/           # optional: templates, schemas, examples
└── ...               # anything else you like

SKILL.md deve começar com YAML frontmatter, e exatamente dois campos são obrigatórios: name e description.1 Outros quatro são opcionais e nenhum outro é definido:

CampoObrigatórioRestrição
namesim1–64 caracteres, letras minúsculas, dígitos e hifens; sem hifen inicial, final ou duplicado; deve corresponder ao nome do diretório
descriptionsim1–1024 caracteres, não vazio; diz o que a skill faz e quando usá-la
licensenãoum nome de licença ou o nome de um arquivo de licença empacotado
compatibilitynãoaté 500 caracteres: produto pretendido, pacotes exigidos, acesso à rede
metadatanãoum mapa livre de chaves string para valores string, para seu próprio tooling
allowed-toolsnãolista separada por espaços de ferramentas pré-aprovadas; marcada como experimental

Aqui está a skill de notas de versão, completa, com o corpo em menos de trinta linhas:

release-notes/SKILL.mdMARKDOWN
---
name: release-notes
description: Write the release notes for a tagged version in this company's house style. Use when preparing a release, drafting a changelog entry, or when someone asks for the notes for a version number or a tag.
allowed-tools: Bash(git log:*) Bash(git tag:*) Read
---

# Release notes

## Procedure

1. Run `scripts/collect.sh <previous-tag> <new-tag>`. It prints one line per merged
   pull request: number, title, author and the labels.
2. Drop every line whose labels contain `internal`, `ci` or `chore`.
3. Put each surviving line into exactly one of the four categories in
   [references/categories.md](references/categories.md). A change that seems to fit two
   belongs in the higher one; the order in that file is the order of precedence.
4. Rewrite each line as a sentence in the voice defined in
   [references/voice.md](references/voice.md). The pull request title is a note to
   the team; the release note is a note to a stranger.
5. Check the result against [references/examples.md](references/examples.md).

## The one rule that is not negotiable

Every note says what a person can now do, or what stopped happening to them. If a
sentence can only be understood by someone who has read the diff, it is not finished.

Leia o que esse corpo é. Ele não é a política — é um sumário com uma ordem de operações. A política vive em três arquivos que ele nomeia e não inclui. E o passo um entrega trabalho a um script, porque o código de um script nunca entra na context window: só a saída dele entra.2

O modelo de carregamento tem um nome e três estágios. A especificação os declara com um orçamento de tokens associado:1

  1. Metadados, cerca de 100 tokens: name e description, carregados na inicialização para toda skill instalada.
  2. Instruções, recomendado abaixo de 5.000 tokens: o corpo de SKILL.md, carregado quando a skill é ativada.
  3. Recursos, conforme necessário: arquivos empacotados, carregados apenas quando algo os exige.

A documentação de referência coloca uma quarta coluna na mesma tabela — quando carregado, custo em tokens, conteúdo — e a linha que importa é a terceira: nenhum até ser acessado.3 A frase que resume o capítulo inteiro também está lá:

Files don't consume context until accessed, so Skills can include comprehensive API documentation, large datasets, or extensive examples. There's no context penalty for bundled content that isn't used.3

A tabela medida no começo deste capítulo é essa afirmação verificada contra cinco skills que ninguém escreveu para este artigo. Duas linhas merecem ser lidas uma contra a outra.

next-best-practices tem um corpo de 966 tokens que aponta para dezenove arquivos com 19.374 tokens. Peça para corrigir um erro de hidratação e o agent lê o corpo mais hydration-error.md: 1.409 tokens de 20.340, um fator de quatorze, e os outros dezoito arquivos nunca são abertos.

next-cache-components tem um corpo de 2.334 tokens e nenhum arquivo empacotado. É uma skill válida e bem escrita, e não tem nível 3 a revelar. Esse é o limite honesto da técnica: progressive disclosure só economiza se houver algo a adiar. Uma skill cujo conhecimento não se decompõe paga o corpo inteiro na ativação, e a única alavanca restante é não ativá-la.

Quebre: a descrição é a interface inteira

Link para a seção: Quebre: a descrição é a interface inteira

O nível 1 é uma decisão de roteamento tomada a partir de uma frase. Nada mais sobre uma skill influencia se ela será aberta — não a qualidade do corpo, não os exemplos, não os scripts. Portanto, a descrição não é documentação. Ela é a superfície de consulta, e pode estar errada.

A especificação diz isso na forma de um bom exemplo e de um ruim, e o ruim tem quatro palavras: description: Helps with PDFs.1 Vale medir em vez de aceitar.

Seis skills, cada uma com uma descrição plausível que diz o que faz e quando usar. Vinte e quatro solicitações, quatro por skill, formuladas como uma pessoa as formularia e sem nunca nomear a skill. O modelo vê as seis linhas no system prompt e deve responder com um nome ou com NONE. Greedy decoding, para que reproduza. Depois, as mesmas vinte e quatro solicitações com as mesmas seis skills, e as descrições reduzidas ao assunto cru.

the two system promptsTEXT
rich   - sql-review: Review a SQL migration for locks, missing indexes and unsafe
         defaults before it runs on the production database. Use when someone adds
         or changes a migration, an index, or a table column.
thin   - sql-review: Helps with SQL.
24 requests, Qwen2.5-0.5B-Instruct, greedy decodingTEXT
rich   295 tokens of level 1 for six skills   18/24 correct = 75.0 %  [55.1, 88.0]
thin    81 tokens of level 1 for six skills   10/24 correct = 41.7 %  [24.5, 61.2]

paired: rich only 9, thin only 1, two-sided sign test p = 0.0215
answered NONE: rich 1 of 24, thin 9 of 24

Leia os intervalos primeiro, como o Capítulo 4 insistiu e o Capítulo 29 voltará a insistir: eles se sobrepõem, e vinte e quatro casos não conseguem ranquear dois sistemas apenas por seus agregados. A comparação pareada é o que decide, e é o instrumento do Capítulo 15: dos dez casos em que os dois braços discordaram, nove foram para as descrições ricas e um para as finas. Isso fica estabelecido no limiar usual.

Agora leia a última linha, que é o achado real. Com descrições finas, o modelo respondeu NONE em nove de vinte e quatro solicitações. Não a skill errada: nenhuma skill. Aqui estão quatro delas, literalmente:

TEXT
"Check this migration before I run it against production."     -> release-notes
"Will this CREATE INDEX lock writes?"                          -> NONE
"Is this ALTER TABLE safe to deploy at peak traffic?"          -> NONE
"Is 'seamless and powerful' allowed in the app store listing?" -> next-best-practices

Uma skill sql-review perfeita estava instalada, com corpo, exemplos e checklist, e nunca foi aberta, três vezes seguidas, nas três perguntas para as quais foi escrita. Os níveis 2 e 3 são irrelevantes para uma skill que o nível 1 nunca alcança.

O custo de corrigir isso: 214 tokens, a diferença entre 295 e 81, espalhada por seis skills. É o achado do Capítulo 18 chegando pelo outro lado. Lá, mudar apenas a descrição de uma ferramenta levou a formatação de datas de 2 acertos em 24 para 24 em 24. Aqui, mudar apenas a descrição de uma skill leva a ativação de 10 em 24 para 18. Nos dois casos, a correção mais barata do sistema é uma frase, e nos dois casos a frase precisa nomear o gatilho e não só o assunto: não o que a coisa é, mas o que o usuário terá acabado de dizer quando ela se aplica.

Uma ressalva que este capítulo deve aos próprios padrões. Este é um modelo de meio bilhão de parâmetros, e um modelo de frontier roteia muito melhor do que 75%. Leia o mecanismo, não a magnitude: o sinal de roteamento tem uma frase de comprimento independentemente do modelo que o lê, e nenhum modelo consegue selecionar com base em informação que você não colocou nessa frase.

Quebre de novo: a válvula de escape que custa 26.362 tokens

Link para a seção: Quebre de novo: a válvula de escape que custa 26.362 tokens

A segunda falha é o oposto da primeira. A skill é encontrada, os níveis estão corretamente separados, e o agent lê tudo mesmo assim.

vercel-react-best-practices é uma skill genuinamente bem construída. Seu corpo de 1.670 tokens é uma tabela de prioridade de oito categorias e uma referência rápida que nomeia 70 arquivos de regras, uma linha cada. As regras estão no disco ao lado dela: 70 arquivos, o menor com 132 tokens, mediana de 319, o maior com 1.052. Faça uma pergunta sobre barrel imports e o custo honesto é o corpo mais um arquivo — abaixo de 2.400 tokens contra um pacote de 53.670.

Então a última linha do corpo diz isto:

the final section of SKILL.mdTEXT
## Full Compiled Document

For the complete guide with all rules expanded: `AGENTS.md`

AGENTS.md tem 26.362 tokens. É a concatenação dos 70 arquivos de regras: a soma deles é 25.784, e a diferença são os títulos entre eles. Então a skill oferece ao agent uma escolha entre ler uma regra mediana de 319 tokens e ler o mesmo conteúdo, todo ele, a oitenta e três vezes o preço — e oferece essa escolha em uma frase sem custo anexado e sem condição sobre quando aceitá-la.

Isso não é um bug e o arquivo não está errado; um documento compilado é genuinamente útil para uma pessoa, e para um agent que recebeu a tarefa de auditar um codebase inteiro. É um arquivo de nível 3 com convite de nível 2, e a lição se generaliza além desta skill: todo caminho para fora de um SKILL.md deve dizer quanto custa e quando vale a pena, porque o modelo não tem como saber que um nome de arquivo é oitenta e três vezes mais caro do que o nome de arquivo acima dele.

A mesma pasta traz uma lição menor sobre desatualização. O corpo diz “70 regras em 8 categorias” e lista 70; o diretório rules/ contém 72 arquivos, dos quais dois são scaffolding (_template.md e _sections.md); e o sidecar metadata.json diz “40+ regras”. Três contagens do mesmo conjunto em uma pasta, uma delas correta, uma aritmética e uma remanescente de uma versão anterior. Uma skill é um documento, e documentos apodrecem exatamente como um comentário de código que se afastou do código ao lado dele — com a diferença de que este é lido por uma máquina que não vai franzir a testa.

Os campos que a implementação de referência adiciona, e a armadilha de portabilidade

Link para a seção: Os campos que a implementação de referência adiciona, e a armadilha de portabilidade

A especificação aberta define seis campos de frontmatter. A implementação de referência, Claude Code, aceita vinte.2 Vale conhecer cinco grupos pelo nome, porque é neles que o formato deixa de ser apenas um documento:

Permissão e invocação. allowed-tools pré-aprova ferramentas para o turno que invocou a skill e a concessão é limpa na próxima mensagem; disallowed-tools as remove. disable-model-invocation impede o modelo de carregá-la por conta própria, o que transforma a skill em um comando que uma pessoa executa. user-invocable: false faz o oposto: oculta para pessoas, disponível apenas para o modelo, para conhecimento de fundo.

Isolamento e custo. context: fork executa a skill em um context separado de sub-agent, com sua própria window — o limite de sub-agent do Capítulo 25 como uma linha de YAML — com agent escolhendo o tipo e background decidindo se o turno espera. model e effort mudam qual modelo roda enquanto a skill está ativa, apenas naquele turno.

Argumentos (arguments, argument-hint) permitem que uma pessoa passe valores que são substituídos no corpo, o que torna uma skill utilizável como comando de barra. Escopo (paths) limita a ativação a arquivos que correspondem a um glob. E injeção dinâmica de context é o que muda o modelo mental: uma linha da forma !`git diff HEAD` roda antes de o corpo ser enviado, e sua saída é substituída no texto. O documento é um template, e parte dele é computada no momento da leitura.

Agora a armadilha, e ela é declarada na mesma documentação: fora do Claude Code — no produto web, pela Skills API, no empacotamento — somente os seis campos especificados são permitidos, e qualquer outro campo é um erro fatal no upload.2 Então uma skill que funciona perfeitamente em um produto falha ao ser instalada em outro do mesmo fornecedor, e falha no frontmatter, não em algo que você poderia testar lendo a prosa. Se você pretende que uma skill seja portátil, os seis campos são o orçamento inteiro. Se não pretende, diga isso em compatibility, que existe exatamente para isso.

Quatro coisas são confundidas entre si o tempo todo, e a confusão não é pedantismo de vocabulário: escolher errado custa dinheiro em todo turno, ou custa uma garantia que você achava ter.

System promptSkillFerramentaServidor MCP
O que étexto em toda solicitaçãouma pasta cuja raiz é um SKILL.mdum JSON Schema mais um endpoint no seu códigoum processo ou serviço falando um protocolo
O que o modelo fazlê, sempre, quando decide que a descrição correspondechama, e espera seu resultadochama, pelo host, um cliente por servidor
O que custaseu comprimento total, todo turno, para semprecerca de 50 tokens por turno; o corpo uma vez, se usadaseu schema, todo turno; execução quando chamadatodo schema mais o instructions do servidor, todo turno
O que pode garantirnada — é conselhonada — é conselho que o modelo pode pulartudo que seu código impõe antes de agirtudo que o servidor impõe
Quem escrevevocêvocê, um colega ou um fornecedorvocêoutra pessoa, para muitos hosts
Capítulo15este1826 e 27

As duas linhas em negrito são a distinção inteira. Uma skill é lida; uma ferramenta é invocada. Uma skill é prosa que chega à context window e compete por attention com todo o resto ali; o modelo pode segui-la, interpretá-la errado ou ignorá-la, e nada no sistema percebe. Uma ferramenta é uma chamada que sai completamente das mãos do modelo: seu código recebe argumentos, valida, verifica permissões e decide. O Capítulo 18 colocou isso como o modelo propondo e seu código dispondo, e essa divisão é exatamente o que uma skill não tem.

Então, seis casos reais, resolvidos:

“Responda no idioma do usuário. Nunca informe um preço que não foi fornecido.”

Link para a seção: “Responda no idioma do usuário. Nunca informe um preço que não foi fornecido.”

System prompt. Aplica-se em todo turno, é uma restrição em vez de um procedimento, e tem duas frases. Algo que sempre se aplica não tem nada a revelar progressivamente, e pagar por uma linha de descoberta em todo turno para evitar pagar por duas frases em todo turno não é economia.

“Como escrevemos notas de versão aqui.”

Link para a seção: “Como escrevemos notas de versão aqui.”

Skill. Procedimental, necessária talvez em um turno de quarenta, decomponível em voz, taxonomia e exemplos, e é prosa que uma pessoa vai editar. Esse é o formato para o qual o padrão foi desenhado, e a medição acima é o que ele economiza.

“Procure um pedido pelo identificador dele no banco de dados do armazém.”

Link para a seção: “Procure um pedido pelo identificador dele no banco de dados do armazém.”

Ferramenta. Há uma função determinística por trás e o modelo não deve improvisar a consulta. Escrever isso como uma skill — um documento explicando como consultar o armazém — entrega o schema ao modelo e espera. Um schema mais um endpoint entrega uma resposta.

“Leia e escreva issues no nosso tracker, a partir de todo produto de agent que a empresa usa.”

Link para a seção: “Leia e escreva issues no nosso tracker, a partir de todo produto de agent que a empresa usa.”

Servidor MCP. A capacidade não é sua, vários hosts precisam dela, e ela tem uma história de autenticação. Esse é o problema N×MN \times M com que o Capítulo 26 começou, um protocolo é a resposta para ele, e o Capítulo 27 entrega um duas vezes. Uma skill não pode ser descoberta por um host que nunca viu seu sistema de arquivos — exatamente a lacuna que o trabalho de padronização no fim deste capítulo está fechando.

“O manual de marca de quatrocentas páginas.”

Link para a seção: “O manual de marca de quatrocentas páginas.”

Nenhum dos quatro. É conhecimento a consultar, não um procedimento a seguir, e pertence a um índice que o agent pesquisa: Capítulo 19. Empacotá-lo como nível 3 é permitido, tentador e errado, porque o modelo precisaria adivinhar qual dos quarenta arquivos contém a resposta apenas pelos nomes. O que é uma boa skill é o procedimento de duas páginas que diz ao agent quando pesquisar esse índice, o que uma pontuação baixa de similaridade significa e como citar o que encontrar.

“Nunca reembolse mais de duzentos euros sem um humano.”

Link para a seção: “Nunca reembolse mais de duzentos euros sem um humano.”

Uma ferramenta com um gate de aprovação, e nunca uma skill. Este é o caso que importa. Escrita em um SKILL.md, o limite é uma frase que o modelo lê e geralmente respeita; escrita na ferramenta de reembolso, é uma ramificação que roda antes de qualquer dinheiro se mover. Um limite que constrangeria você se fosse ultrapassado não é documentação. A regra, digna de memorizar: se a consequência de ignorar a instrução é pior do que uma resposta mal formatada, a instrução não pertence a um documento.

Do jargão interno a um padrão, com os números

Link para a seção: Do jargão interno a um padrão, com os números

A história é curta, excepcionalmente bem datada, e é a parte que quase ninguém conta.

Agent Skills foram publicadas em 16 de outubro de 2025 como recurso de um fornecedor, definidas naquele anúncio como “organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks”, com os três níveis descritos por uma analogia que vale guardar: “like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix”.4

Em 18 de dezembro de 2025, a mesma página foi atualizada para anunciar o formato como um padrão aberto, com especificação própria em agentskills.io, governança aberta a contribuições e um validador de referência.3 Lido em 7 de setembro de 2026, o showcase de clientes do padrão lista quarenta e seis produtos — editores, terminais, plataformas cloud e runtimes mobile, incluindo os coding agents first-party da Anthropic, OpenAI, Google e Mistral — cada um linkando sua própria documentação de configuração.1

A convergência com MCP está sendo feita em aberto, com números que você pode verificar:

O que éAbertoEstado em 7 set. 2026
SEP-2076Agent Skills as a First-Class MCP Primitive: novos métodos skills/list e skills/get, uma capability skills, uma notificação list_changed13 de janeiro de 2026fechado, 24 de fevereiro de 2026
Skills Over MCP working groupdefine como skills são “discovered, distributed, and consumed through MCP”; reúne-se semanalmente; dezessete membros listados, dois deles líderesinterest group em 1º de fevereiro de 2026; working group em 16 de abril de 2026ativo
SEP-2640Skills Extension, Extensions Track: uma convenção de recurso skill://, identificador de extensão io.modelcontextprotocol/skills, descoberta por skills/list e conteúdo por resources/read23 de abril de 2026em revisão

A parte interessante é o fechamento, não as propostas. A SEP-2076 pedia uma quarta primitiva ao lado de tools, resources e prompts. O working group que se formou a partir dela decidiu que a resposta era não: skills pegam carona na primitiva de recursos que já existe, como uma extensão opt-in.5 O Capítulo 26 mediu o mesmo instinto no changelog do próprio protocolo, onde sampling, roots e logging foram depreciados em vez de mantidos. Um órgão de padrões que remove uma proposta que ele mesmo criou está se comportando bem, e o motivo para contar esta história com os números à frente é que os resumos que você vai ler em outros lugares ainda descrevem skills como uma primitiva MCP.

Agora você consegue escrever um SKILL.md, dividi-lo em três níveis que se pagam, ler o frontmatter da skill de outra pessoa e saber quais campos não vão sobreviver ao upload em outro lugar, e responder à pergunta em torno da qual o capítulo inteiro foi construído — system prompt, skill, ferramenta ou servidor — com uma razão em vez de um hábito.

O que você não consegue fazer é dizer se a sua funciona.

Toda afirmação importante neste capítulo foi uma medição, e a que mais importou foi uma acurácia: 18 de 24 contra 10 de 24, com um intervalo em cada uma e um teste pareado entre elas, porque dois agregados que se sobrepõem não decidem nada. Esse instrumento foi emprestado. A descrição de uma skill é uma chave de roteamento, seu corpo é um procedimento que o modelo pode ou não seguir, e ambas são propriedades que você só consegue descobrir rodando a coisa muitas vezes e pontuando o que voltou — ou seja, um conjunto golden, um avaliador que você escreveu antes da execução, e a métrica que pergunta se funcionou todas as vezes, não pelo menos uma vez.

O Capítulo 29 é isso, e começa com o número de que o método deste capítulo depende: um agent que acerta sete em dez parece 70%, e seu pass^10 — a chance de acertar todos os dez — é zero. Ele também mede três avaliadores nos mesmos duzentos transcripts e obtém 0%, 13% e 26% sem regenerar um único token. Antes de confiar na frase que você acabou de escrever em um description, você precisa do instrumento que consegue dizer que ela é pior do que a que você substituiu.


Toda contagem de tokens neste capítulo foi produzida localmente com tiktoken 0.14.0 e a encoding o200k_base, em 7 de setembro de 2026: sobre as cinco skills de terceiros listadas no início deste capítulo, e sobre a skill release-notes escrita para este capítulo, cujo texto completo é reproduzido acima em parte. O nível 1 é medido como a linha única - name: description que um host renderiza no system prompt; o nível 2 é o corpo de SKILL.md após o frontmatter; o nível 3 é todo outro arquivo na pasta. Os custos usam as tarifas medidas do Capítulo 16 para gpt-5.6-terra, $2,00 por milhão de input tokens e $0,20 por milhão de input tokens em cache, aplicadas a essas contagens — são aritmética sobre tokens medidos, não observações de uma fatura real. Nenhuma API paga foi chamada para escrever este capítulo.

O experimento de ativação rodou Qwen/Qwen2.5-0.5B-Instruct em half precision em uma GPU de consumidor, greedy decoding, 24 solicitações sobre seis skills, duas vezes — uma com descrições que declaram o que a skill faz e quando se aplica, outra com as descrições reduzidas a um assunto cru no estilo do “poor example” da própria especificação. Os intervalos são Wilson a 95%; a comparação pareada é um teste exato de sinais bicaudal sobre os dez casos discordantes; o intervalo de Wilson é do Capítulo 4 e o teste exato pareado de sinais é do Capítulo 15, ambos reutilizados sem alteração. Leia as magnitudes como propriedade de um modelo muito pequeno e o método como transferível.

As cinco skills medidas aqui são pacotes de terceiros, não escritos para este capítulo: next-best-practices e next-cache-components de vercel-labs/next-skills, e vercel-composition-patterns, vercel-react-best-practices e vercel-react-native-skills de vercel-labs/agent-skills. Suas contagens internas — 70 arquivos de regras, AGENTS.md com 26.362 tokens, metadata.json datado de janeiro de 2026 e afirmando “40+ rules” — foram lidas dos arquivos no disco em 7 de setembro de 2026 e são propriedades dessa versão publicada, não críticas a seus autores: cada uma delas é o tipo de drift que aparece em qualquer árvore de documentação editada com mais frequência do que é contada.

  1. Agent Skills Specification e Overview, agentskills.io/specification e agentskills.io, lidos em 7 de setembro de 2026. Fonte do layout de diretório; da tabela de frontmatter reproduzida acima com todas as restrições (name 1–64 caracteres e correspondência com o diretório, description 1–1024 caracteres, compatibility até 500, allowed-tools marcado como experimental); dos bons e maus exemplos de description; da descrição de progressive disclosure em três estágios com seu orçamento de tokens (metadados cerca de 100 tokens, instruções abaixo de 5.000 recomendadas, recursos conforme necessário) e do conselho para manter SKILL.md abaixo de 500 linhas; da nota de que “the agent will load this entire file once it's decided to activate a skill”; das convenções scripts/, references/ e assets/; do comando skills-ref validate; da declaração de que o formato “was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products”; e do showcase de clientes, que listava quarenta e seis produtos na data da leitura. 2 3 4

  2. Skills na documentação do Claude Code, code.claude.com/docs/en/skills, lido em 7 de setembro de 2026. Fonte da tabela completa de campos usada na seção “campos que a implementação de referência adiciona” — when_to_use, argument-hint, arguments, disable-model-invocation, user-invocable, allowed-tools, disallowed-tools, model, effort, context, agent, background, hooks, paths, shell, metadata, license, compatibility — da descrição de injeção dinâmica de context com !`command` rodando antes de o corpo ser enviado, da regra de que uma concessão allowed-tools é limpa na próxima mensagem, e da nota de conformidade de que fora do Claude Code apenas os seis campos especificados são aceitos e qualquer outro causa um erro fatal no upload ou empacotamento. 2 3

  3. Visão geral de Agent Skills, platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, lida em 7 de setembro de 2026. Fonte da tabela de níveis com suas quatro colunas (metadados de nível 1, sempre, cerca de 100 tokens por skill; instruções de nível 2, quando acionadas, abaixo de 5k tokens; recursos de nível 3+, conforme necessário, nenhum até ser acessado); da frase citada na íntegra sobre conteúdo empacotado não carregar penalidade de context; de “until a Skill is triggered, only its name and description occupy context”; da declaração de que o código de um script nunca entra na context window e apenas sua saída entra; e da seção de segurança, que orienta usar skills apenas de fontes confiáveis e alerta que uma skill maliciosa “can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose” — assunto do Capítulo 30, chegando por um documento em vez de por uma descrição de ferramenta. 2 3

  4. Anthropic, Equipping agents for the real world with Agent Skills, 16 de outubro de 2025, anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, lido em 7 de setembro de 2026. Fonte da definição citada acima, da analogia de sumário/capítulos/apêndice, dos três níveis como originalmente descritos e do enquadramento de que agents precisam de “more composable, scalable, and portable ways” para receber expertise de domínio. O anúncio de produto complementar em claude.com/blog/skills traz a data de publicação de 16 de outubro de 2025 e a atualização de 18 de dezembro de 2025 que introduziu gestão em toda a organização e o padrão aberto.

  5. Skills Over MCP Charter, modelcontextprotocol.io/community/working-groups/skills-over-mcp, lido em 7 de setembro de 2026. Fonte da declaração de missão citada acima, das datas do changelog (interest group formado em 1º de fevereiro de 2026, charter inicial em 14 de abril de 2026, convertido em working group em 16 de abril de 2026, SEP-2640 vinculada em 25 de abril de 2026), da liderança e dos dezessete membros listados, da cadência semanal de reuniões, e do critério de sucesso que nomeia o rascunho Skills Extension como “a formal extension using existing Resources primitives”. SEP-2076, Agent Skills as a First-Class MCP Primitive, github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, foi aberta em 13 de janeiro de 2026 e fechada em 24 de fevereiro de 2026; propôs skills/list, skills/get, uma capability de servidor skills e uma notificação skills/list_changed, e definiu uma skill como “a named bundle of instructions plus references to tools, prompts, and resources that together teach an agent how to perform a domain-specific workflow”. SEP-2640, Skills Extension, .../pull/2640, foi aberta em 23 de abril de 2026 na Extensions Track e traz a convenção de recurso skill:// e o identificador de extensão io.modelcontextprotocol/skills. O Capítulo 26 lista o mesmo working group entre as extensões opcionais do protocolo.

Pronto para deixar a LIA escolher por você?

Crie com todos os modelos de IA em um só lugar — comece grátis hoje.