Uma skill grande ou várias pequenas: o que funciona melhor no Claude Code?

Uma skill grande ou várias pequenas? Depende do recorte do seu fluxo, não do seu gosto por organização. O Claude Code escolhe a skill pela description e só carrega o corpo do SKILL.md quando a tarefa casa, então skill longa custa contexto e skill demais atrapalha a seleção. Fluxo linear, curto e sempre usado junto cabe numa skill só. Etapas com contextos mutuamente exclusivos, graus de liberdade diferentes ou efeito colateral (commit, deploy) pedem skills separadas. A recomendação oficial é começar estreito e consolidar só com evidência de avaliação.
Fala aí, beleza? Você montou sua primeira skill, ela funcionou, e agora bateu aquela dúvida chata: engorda o mesmo SKILL.md ou cria uma pasta nova pra próxima etapa?
Parece decisão de arrumação de arquivo
Não é
Essa escolha muda o que o agente enxerga, QUANDO ele enxerga e quanto do seu contexto some só pra ele lembrar das regras. Uma skill grande ou várias pequenas é, no fundo, uma decisão sobre atenção do modelo
Bora destrinchar isso com o que a documentação realmente diz, e não no achismo 🙂
Como o Claude Code decide qual skill usar
Antes de discutir tamanho, tem que entender o mecanismo de carregamento. Porque é ele que explica tudo o que vem depois
Uma skill no Claude Code é uma pasta com um arquivo SKILL.md dentro. O nome da pasta vira um comando que você digita, e a skill pode ser chamada por você com /nome ou carregada automaticamente pelo Claude quando ele julga que é relevante
Onde essa pasta mora muda o alcance:
~/.claude/skills/guarda as skills pessoais, que valem em todos os projetos.claude/skills/(dentro do repositório) guarda as skills daquele projeto
Além do SKILL.md, que é obrigatório, a estrutura aceita pastas opcionais pra código executável, documentação de referência e ativos como templates e dados:
.claude/skills/
└── revisar-pr/
├── SKILL.md
├── scripts/
├── references/
└── assets/
Divulgação progressiva em 3 estágios:
Aqui mora o pulo do gato. O carregamento não é tudo de uma vez, ele acontece em estágios:
- Descoberta: no começo o agente vê só o
namee adescriptionde cada skill - Ativação: o corpo do
SKILL.mdentra no contexto quando a tarefa casa com aquela descrição - Execução: os arquivos de apoio (scripts, referências) só são lidos na hora que forem usados
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
Se você conhece lazy loading, é a mesma ideia: carrega o mínimo pra decidir, e o resto só sob demanda
E repara numa consequência direta: a escolha da skill é feita pela description, não pelo conteúdo. Claude compara a tarefa com as descrições disponíveis. Se as descrições são vagas ou se sobrepõem, ele pode carregar a skill errada ou deixar passar uma que ajudaria
Por isso a description tem regras próprias: até 1024 caracteres, escrita em terceira pessoa, dizendo o que a skill faz E quando usar, com termos concretos de acionamento. O name aceita até 64 caracteres, só minúsculas, números e hífens
---
name: revisar-pr
description: Revisa pull requests checando testes, lint e mudanças de schema. Usar quando o usuário pedir revisão de PR, análise de diff ou checagem de branch antes do merge.
---
As propriedades permitidas no frontmatter do SKILL.md são allowed-tools, compatibility, description, license, metadata e name
Uma curiosidade que ajuda a entender o desenho: no Claude Code, um arquivo em .claude/commands/deploy.md e uma skill em .claude/skills/deploy/SKILL.md criam o mesmo /deploy e funcionam do mesmo jeito. Os arquivos que você já tem em .claude/commands/ continuam funcionando, então não precisa sair migrando nada às pressas
Skill grande vs. várias skills pequenas: comparativo
Colocando os dois desenhos lado a lado nos critérios que realmente doem no dia a dia:
| Critério | Uma skill grande | Várias skills pequenas |
|---|---|---|
| Clareza de acionamento | Uma description só, ampla, tende a casar com tarefas demais | Descriptions específicas, com termos concretos, casam melhor com a tarefa certa |
| Consumo de tokens quando ativa | Corpo inteiro entra no contexto, mesmo a parte que não serve pra tarefa | Só o caminho relevante é carregado, o resto nem aparece |
| Risco de sobreposição | Baixo, porque não tem com quem se sobrepor | Alto se você escrever duas descriptions parecidas |
| Esforço de manutenção | Um arquivo só, mas que cresce e vira um monstro | Mais pastas pra cuidar, porém cada uma pequena e legível |
| Facilidade de testar | Difícil isolar qual trecho causou o comportamento | Dá pra rodar e avaliar etapa por etapa |
| Reuso entre projetos | Leva junto o que não interessa naquele repo | Dá pra promover só a etapa útil pra ~/.claude/skills/ |
| Controle de efeito colateral | Tudo ou nada na mesma invocação | Dá pra restringir só a etapa perigosa |
Nenhuma coluna ganha em tudo, e é exatamente por isso que essa discussão existe 😀
Quando uma skill grande faz sentido
Concentrar compensa em três situações bem específicas
Fluxo único e linear. Se as etapas sempre rodam na mesma ordem e ninguém nunca pede só o pedaço do meio, separar não traz ganho nenhum. Você só cria duas descriptions parecidas competindo pela mesma tarefa, que é justamente o cenário em que o modelo erra a escolha
Conteúdo que cabe confortavelmente no arquivo. A documentação de autoria recomenda manter o corpo do SKILL.md abaixo de 500 linhas. Se o seu fluxo inteiro cabe folgado nisso, tá tudo certo, não precisa inventar arquitetura
Passos que quase sempre são usados juntos. Aqui a lógica é a mesma do ponto anterior, mas por outro ângulo: se o contexto da etapa A quase sempre também é necessário pra etapa B, dividir não economiza token, só adiciona uma decisão a mais pro modelo tomar
O ponto é esse: skill grande não é pecado. Skill grande MAL RECORTADA é que dói
Quando fatiar em skills menores é melhor
Agora o outro lado. Tem sinais bem objetivos de que chegou a hora de quebrar
Contextos mutuamente exclusivos. Quando dois caminhos raramente são usados juntos, manter eles separados reduz o uso de tokens. Simples assim. Não faz sentido carregar 200 linhas sobre migração de banco quando o pedido era ajustar um componente de UI
Graus de liberdade diferentes por etapa. A orientação oficial é casar a especificidade com a fragilidade da tarefa:
- liberdade alta: instruções em prosa, quando vários caminhos servem
- liberdade média: pseudocódigo ou script com parâmetros, quando existe um padrão preferido
- liberdade baixa: script específico, com poucos ou nenhum parâmetro, pra operações frágeis
Se uma etapa do seu fluxo é "explore como quiser" e a outra é "rode EXATAMENTE este script", empurrar as duas no mesmo arquivo é pedir pro modelo misturar os tons. Essa é a hora clássica de dividir as skills por etapa em vez de continuar engordando o mesmo arquivo
Etapas com efeito colateral. No Claude Code, dois campos do frontmatter restringem a invocação, e disable-model-invocation: true faz com que só você possa chamar aquela skill. É perfeito pra fluxo que commita, faz deploy ou dispara mensagem
---
name: deploy-prod
description: Executa o deploy da branch main em produção. Usar somente quando o usuário pedir deploy explicitamente.
disable-model-invocation: true
---
Repara que isso só existe como opção se a etapa perigosa estiver ISOLADA numa skill própria. Se ela mora dentro da skill gigante, ou você trava o fluxo inteiro ou não trava nada
E tem um detalhe bonito do modelo: skills são compostas. O Claude identifica quais são necessárias e coordena o uso delas, em vez de exigir um agente customizado por caso de uso. Ou seja, fatiar não te obriga a orquestrar tudo na mão
Os três problemas mais comuns de cada escolha
Sintoma: a skill nunca é acionada sozinha
Você criou, ela tá lá, mas o Claude só usa quando você digita /nome na marra
Causa: a seleção é feita pela description. Descrição vaga ("ajuda com o projeto") ou sobreposta com outra skill leva à escolha errada ou à omissão
Solução: reescreve a description em terceira pessoa, com "o que faz" mais "quando usar", e termos concretos que apareceriam no pedido real do usuário. Você tem até 1024 caracteres, então dá pra ser específico sem apertar
Prevenção: antes de salvar, lê as descriptions de todas as suas skills em sequência. Se duas soam parecidas pra VOCÊ, vão soar parecidas pro modelo também
Sintoma: a skill come contexto demais
A conversa começa a esquecer coisa que você falou lá atrás, logo depois que a skill entra
Causa: depois que o Claude carrega o SKILL.md, cada token dele compete com o histórico da conversa e com o resto do contexto. Corpo longo é corpo caro
Solução: empurra o conteúdo pra arquivos separados e instrui o Claude a ler o arquivo apropriado conforme a tarefa. Arquivos adicionais só são lidos quando necessários, então isso devolve contexto pra conversa
Prevenção: usa a régua das 500 linhas como alarme. Passou disso, divide
Sintoma: o agente escolhe a skill errada entre muitas
Você instalou um monte de coisa, achou lindo, e agora ele erra o alvo
Causa: o metadado (name e description) de CADA skill disputa atenção no system prompt. Com skills demais ativas, o modelo pode não selecionar a correta ou ignorar uma relevante
Solução: limita quantas skills ficam carregadas ao mesmo tempo e mede o recall com uma suíte de avaliação. Quando o desempenho cai, para de adicionar
Prevenção: cuidado especial ao instalar coleções de terceiros. Dá pra adicionar um marketplace com /plugin marketplace add <owner>/<repo> e depois rodar /plugin install <nome>, e um plugin pode trazer skills, agentes, hooks e servidores MCP de uma vez só. É a hora de pensar se a skill mais popular serve pro SEU fluxo, ou se ela só vai ocupar espaço competindo com as suas
Detalhe pra não confundir: nas requisições da API do Claude o limite é de 20 skills por requisição. Isso é limite da API, não do Claude Code, então não saia por aí tratando 20 como número mágico do seu terminal
Como decidir na prática: um roteiro em 5 passos
Bora ver na prática? Esse roteiro funciona tanto pra skill nova quanto pra refatorar uma que já tá inchada
- Mapeia as etapas do fluxo em uma linha cada. Escreve literalmente "etapa 1 faz X", "etapa 2 faz Y". Se uma etapa precisa de um parágrafo pra ser descrita, ela provavelmente são duas
Erro comum deste passo: mapear pelo arquivo que você já escreveu, em vez de mapear pelo que o usuário realmente pede. O recorte tem que nascer do pedido, porque é o pedido que vai ser comparado com a description
- Escreve PRIMEIRO as descriptions, antes do corpo. Uma por etapa candidata, em terceira pessoa, com "o que faz" e "quando usar". Depois lê as duas juntas e pergunta: dá pra confundir?
Erro comum deste passo: escrever description genérica pra "cobrir mais caso". Description ampla não te dá mais acionamento, te dá acionamento errado
- Define o grau de liberdade de cada etapa. Prosa quando vários caminhos servem, pseudocódigo ou script com parâmetros quando existe um padrão preferido, script exato pras operações frágeis
Erro comum deste passo: escrever tudo em prosa porque é mais rápido. Aí a etapa frágil vira improviso do modelo, e você descobre no pior momento possível
- Confere o tamanho do corpo. Passou de 500 linhas? Move o excesso pra arquivos separados e aponta no
SKILL.mdqual arquivo ler pra qual tarefa
Erro comum deste passo: quebrar em arquivos e esquecer de dizer QUANDO ler cada um. Arquivo de apoio sem instrução de leitura é arquivo que nunca vai ser aberto
- Mede antes de consolidar. A recomendação corporativa é começar com skills estreitas e específicas de fluxo, e só consolidar em pacotes por papel quando as avaliações confirmarem desempenho equivalente ao das skills individuais que a versão consolidada substitui
Erro comum deste passo: consolidar "porque tá bagunçado". Organização visual não é métrica, beleza? Consolidação sem avaliação é troca de precisão por estética de pasta
O que aconteceu quando usei skills num projeto real
No vídeo abaixo eu monto um app de finanças combinando pesquisa e geração de código, e o recorte das skills foi justamente o ponto que mais mexeu no resultado
A pesquisa veio do NotebookLM, com 10 fontes reunidas sobre o tema antes de qualquer linha de código. Só depois disso as skills entraram em cena
E aqui vem a parte que interessa pro nosso dilema: eu testei usar uma ÚNICA skill full stack pra gerar back-end e front-end juntos, numa leva só, em vez de rodar dois prompts separados pra cada parte
Dava pra fazer separado, eu deixei isso claro no vídeo. Eu optei por me apoiar na skill ampla justamente pra fechar as duas pontas de uma vez
Depois que a aplicação inteira já estava de pé, eu apliquei uma segunda skill, essa focadinha só em design de interface, como camada extra de refinamento
Ou seja: na prática eu não escolhi um lado. Usei uma skill ampla pra base e uma skill pequena e específica pro acabamento
Um detalhe operacional que virou hábito meu: eu conferi se a skill tinha sido usada DE VERDADE checando se a ferramenta acessou o arquivo de instruções da skill. Pra mim esse é o sinal honesto de acionamento, não o "parece que funcionou"
E já aviso: leia o conteúdo de uma skill antes de jogar ela no seu projeto. Sempre. Você tá entregando instrução operacional pro agente, então saber o que tá escrito ali não é paranoia, é higiene básica
A motivação de colocar skills no fluxo foi melhorar a qualidade do código entregue e gastar menos prompt e menos cota. Num workflow anterior, sem skills, a ferramenta errava mais e entregava menos, por causa da complexidade do projeto somada ao limite de uso do plano gratuito
O que eu mudaria hoje no desenho? Eu escreveria a description da skill ampla com mais cuidado, porque "full stack" é exatamente o tipo de termo que casa com tarefa demais. E manteria a de design separada do jeito que estava, já que ela roda em outro momento e com outro objetivo
Veredito: qual desenho escolher para o seu fluxo
Vamos ao que interessa
Fluxo pequeno, linear e sempre usado inteiro: pode viver numa skill só. Mantém o corpo abaixo de 500 linhas, escreve uma description específica e segue a vida. Dividir aqui só cria duas descrições brigando pela mesma tarefa
Fluxo com etapas distintas, contextos que não se cruzam ou riscos diferentes: fatia. Principalmente se tiver etapa com efeito colateral, porque só assim dá pra isolar ela com disable-model-invocation: true
Na dúvida: começa estreito. A recomendação oficial é essa, e ela tem um motivo prático forte, que é ser MUITO mais fácil juntar duas skills pequenas depois do que dissecar um SKILL.md de mil linhas
E guarda essa: quantidade de skills ativas tem custo de precisão. Cada metadado disputa atenção no system prompt, então encher o ambiente de skill "por via das dúvidas" degrada a seleção. Consolidar só se justifica com evidência de avaliação, nunca com a sensação de que tá organizado
Conclusão
A pergunta "uma skill grande ou várias pequenas" não tem resposta única, mas tem um critério: a divisão certa é a que faz o modelo acertar a escolha e carregar só o contexto necessário
O próximo passo prático é bem direto
Abre suas skills atuais e lê APENAS as descriptions, uma atrás da outra. Duas parecidas? Já achou seu problema
Depois roda uma tarefa real e observa qual skill foi carregada. Esse teste de 5 minutos revela mais que qualquer teoria sobre arquitetura de pasta
E se quiser uma referência de recorte estreito bem feito, olha as skills que já vêm embutidas no Claude Code: /doctor, /code-review, /batch, /debug, /loop e /claude-api. Cada uma faz UMA coisa e o nome já entrega quando usar. É exatamente esse nível de clareza que a sua description precisa ter
Bora testar? 😀
Até o próximo post!
Perguntas frequentes
Quantas skills o Claude Code consegue carregar ao mesmo tempo?
Não existe número mágico pra tratar como teto no seu terminal. A recomendação é limitar quantas skills ficam carregadas ao mesmo tempo, porque o metadado (name e description) de cada uma disputa atenção no system prompt. Com skills demais ativas, o modelo pode não selecionar a correta ou ignorar uma relevante, então vale acompanhar a qualidade da seleção e parar de adicionar quando ela começar a cair
Como saber se duas skills estão competindo pela mesma tarefa?
O sintoma é o Claude escolher a skill errada ou ignorar uma que ajudaria, porque a seleção é feita comparando a tarefa com a description de cada skill. Isso acontece quando as descriptions são vagas ou se sobrepõem. Escrever a description em terceira pessoa, com o que a skill faz e quando usar, com termos concretos de acionamento, reduz esse risco.
Vale a pena consolidar várias skills pequenas em uma só depois de um tempo?
Sim, mas só com evidência. A recomendação é começar estreito, com skills específicas de fluxo, e só consolidar quando ficar comprovado que a versão consolidada entrega o mesmo desempenho das skills individuais que ela substitui. Consolidar por achismo, sem medir, é o caminho pra criar aquela skill grande mal recortada
Dá pra impedir que o Claude chame uma skill sozinho?
Dá. O campo disable-model-invocation: true no frontmatter faz com que só você possa chamar a skill, via /nome. Isso é útil pra fluxos com efeito colateral, como commit, deploy ou envio de mensagem, onde você não quer que o modelo dispare a ação sem confirmação.
Skill pessoal e skill de projeto podem ter o mesmo nome?
A skill pessoal fica em ~/.claude/skills/ e vale em todos os projetos; a skill de projeto fica em .claude/skills/, dentro do repositório, e vale só ali. Como o nome da pasta é o que vira o /nome que você digita, usar nomes distintos pra cada uma deixa muito mais claro o que você tá chamando
Preciso reescrever minhas skills antigas em .claude/commands para o novo formato?
Não precisa. Um arquivo em .claude/commands/deploy.md e uma skill em .claude/skills/deploy/SKILL.md criam o mesmo /deploy e funcionam do mesmo jeito, com compatibilidade retroativa garantida. Ou seja, dá pra ir migrando aos poucos, sem pressa nenhuma.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Bateu o limite de uso do Claude Code? Como retomar a tarefa sem refazer tudo
Bateu o limite de uso do Claude Code? Veja como retomar a tarefa de onde parou com /usage, CLAUDE.md e --continue, sem refazer nada.
Como pagar o Claude Code no Brasil: cartão, dólar, IOF e quanto fica em reais
Claude Code preço Brasil na prática: câmbio, IOF de 3,5% e quanto fica na fatura. Planos Pro e Max convertidos em reais e como pagar com cartão.
Remotion com Claude Code: como transformar uma ideia em vídeo?
Remotion com Claude Code: transforme uma ideia em vídeo React com Agent Skills oficiais, do npx create-video ao render. Veja o fluxo completo.
