Como criar sua própria skill no Claude Code passo a passo

Criar skill Claude Code é mais simples do que parece: uma skill é uma pasta com um arquivo SKILL.md dentro, sem upload por API, é tudo no filesystem. O SKILL.md tem duas partes, o frontmatter YAML (entre —) com os campos name e description, e o corpo em Markdown com as instruções que o Claude segue. Skill pessoal fica em ~/.claude/skills/ e vale em todo projeto, skill de projeto fica em .claude/skills/ e vale só ali. Neste passo a passo tu monta a tua do zero e testa digitando / no prompt
Toda vez que tu repete a mesma tarefa chata num projeto, tem uma skill esperando pra nascer ali
A ideia é essa: em vez de explicar a mesma coisa pro Claude Code toda santa sessão, tu empacota aquilo numa skill própria e ele passa a saber sozinho quando usar
E o melhor, uma skill não é bicho de sete cabeças
É literalmente uma pasta com um arquivo SKILL.md dentro, mais uns arquivos de apoio opcionais (templates, scripts, documentos de referência) quando o caso pede. Nada de API, nada de upload, é tudo no seu sistema de arquivos
No fim deste post tu sai sabendo montar a tua do zero, entender cada campo e testar na prática
O que você precisa antes de começar
Antes de sair criando pasta, três coisas na cabeça
1) Claude Code instalado e rodando no seu terminal, porque é ele quem vai enxergar e carregar a skill
2) Saber onde a skill mora, e isso muda tudo. Tem dois lugares:
~/.claude/skills/é a skill pessoal, fica disponível em TODOS os seus projetos.claude/skills/(dentro do repositório) é a skill de projeto, vale só naquele projeto
Domine o Claude Code do básico ao avançado
Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!
A regra prática é simples: se é algo do seu jeito de trabalhar, vai na pessoal. Se é regra específica daquele repo (a stack, os padrões do time), vai na de projeto e sobe junto no Git
3) Uma noção básica de Markdown e YAML, nada avançado. Se tu já escreveu um README, tu já sabe Markdown. E o YAML aqui é só um cabecerinho com dois ou três campos, tu vai ver que é tranquilo
Se tu quiser entender melhor a diferença entre skills e os antigos comandos de barra antes de pôr a mão na massa, dá uma olhada em como migrar slash commands para skills, ajuda a situar
Passo a passo para criar sua skill personalizada
Bora montar uma skill do zero. Vou usar como fio condutor uma skill que resume mudanças do projeto, mas o esqueleto serve pra qualquer coisa
- Escolha o escopo e crie a pasta
Primeiro tu decide: pessoal ou de projeto? Depois cria a pasta. O nome da pasta importa MUITO, guarda isso
mkdir -p ~/.claude/skills/summarize-changes
O exemplo oficial da documentação segue exatamente esse caminho: ~/.claude/skills/summarize-changes/SKILL.md
O erro comum deste passo: achar que o nome da pasta é só organização. Não é. Numa skill pessoal ou de projeto, o comando que tu vai invocar vem do NOME DA PASTA, então escolhe um nome curto e que faça sentido de digitar
- Crie o SKILL.md com frontmatter e corpo
Dentro da pasta, cria o arquivo SKILL.md. Ele tem duas partes bem separadas: o frontmatter YAML, que fica entre os marcadores ---, e o corpo em Markdown logo abaixo, com as instruções que o Claude vai seguir quando a skill rodar
---
name: Resumir mudanças
description: Use quando o usuário quiser um resumo das alterações recentes do projeto, do diff ou do que mudou desde o último commit
---
# Resumir mudanças
Quando esta skill rodar:
1. Verifique o estado do repositório e o diff atual
2. Agrupe as mudanças por área (o que mexeu e por quê)
3. Entregue um resumo curto, em tópicos, sem enrolação
O erro comum deste passo: esquecer um dos --- ou grudar o frontmatter no corpo. Os dois marcadores têm que existir, um abrindo e um fechando, senão o cabeçalho não é lido como YAML
- Preencha name e description direito
Esses dois campos fazem trabalhos diferentes
O name é só o rótulo exibido na listagem de skills. Repetindo pra não esquecer: ele NÃO é o comando, o comando vem da pasta
Já a description é a peça mais importante do arquivo. É ela que informa ao Claude QUANDO usar a skill, é o que ele lê pra decidir se puxa aquilo ou não. Quanto mais clara a description sobre o gatilho, melhor o carregamento automático funciona
O erro comum deste passo: description vaga tipo "ajuda com o projeto". Assim o Claude não sabe quando acionar e a skill nunca entra sozinha. Descreve a SITUAÇÃO que dispara a skill, com as palavras que o usuário usaria
- Opcional: restrinja com disable-model-invocation e allowed-tools
O frontmatter aceita mais dois campos além de name e description
O allowed-tools limita quais ferramentas a skill pode usar. Se a tua skill só lê arquivos e roda um comando, tu trava ali e pronto:
---
name: Resumir mudanças
description: Use quando o usuário quiser um resumo das alterações recentes do projeto
allowed-tools: Bash, Read, Edit
---
Tem também o disable-model-invocation, pra quando tu NÃO quer que o Claude decida sozinho puxar a skill, deixando ela só pra invocação manual
O erro comum deste passo: apertar demais o allowed-tools e a skill não conseguir fazer o que precisa. Se ela vai editar arquivo, Edit tem que estar na lista
- Adicione arquivos de apoio (se precisar)
A skill não vive só do SKILL.md. Tu pode jogar na mesma pasta templates, scripts e documentos de referência que o corpo do Markdown manda usar. É aqui que uma skill vira algo sob medida pro teu projeto, com os padrões que só ele tem
O erro comum deste passo: encher a pasta de arquivo e não referenciar no SKILL.md. Arquivo de apoio que o corpo não menciona é peso morto, o Claude não adivinha que ele existe
- Teste a skill
Com o arquivo salvo, volta pro Claude Code. Digitando / no prompt tu vê o menu de skills disponíveis e seleciona a tua na mão pra conferir se roda
O outro jeito é deixar o carregamento automático agir: as skills são puxadas sob demanda, o modelo decide o momento com base na description. Descreve a situação que dispara a skill e vê se ele aciona sozinho quando tu pede algo do tipo
O erro comum deste passo: a skill não aparecer no menu por causa de pasta no lugar errado. Confere se ela está em ~/.claude/skills/ (pessoal) ou em .claude/skills/ do projeto certo
Na prática: por que vale montar suas próprias skills
Eu uso skills em TODOS os meus projetos com Claude Code, e é aí que a coisa fica interessante
No vídeo abaixo eu mostro esse fluxo rodando de ponta a ponta: uma skill pra fazer brainstorm e planejar, outra pra virar aquilo num plano de implementação, a execução com subagentes e TDD, e no fim uma skill de frontend redesenhando a interface
Numa dessas execuções, uma tarefa ficou rodando quase 10 minutos na minha máquina, sozinha, e o plano de implementação fechou com 14 tarefas concluídas. Ou seja, tu monta o trilho e vira as costas
Agora, o pulo do gato pra mim são as skills customizadas. Baixar skill pronta de repositório é ótimo pra começar, mas cada projeto varia de tecnologia, então eu prefiro criar skills sob medida pro que aquele projeto precisa
Um exemplo que eu curto: uma skill de segurança, que junta vários requisitos e faz uma análise detalhada adaptada àquele código específico, e não uma checagem genérica que serve pra todo mundo e pra ninguém
E tem um atalho preguiçoso (do bom): dá pra pedir pro próprio Claude Code criar a skill pra ti. Tu descreve o que quer que ela faça e ele monta o SKILL.md
Ideias de skills para automatizar seu projeto
Se tu ficou sem saber por onde começar, aqui vão pautas de skill que valem o esforço
- Resumir mudanças no estilo
summarize-changes, pra ela varrer o diff e te devolver um resumo do que mexeu antes de tu commitar - Padronizar tarefas repetitivas do repo, aquele passo a passo que tu explica toda vez (como nomear branch, como estruturar um módulo novo, o padrão de teste do time)
- Análise de segurança sob medida, com os requisitos que importam pra AQUELA stack, não uma lista genérica
- Rotina de release ou de commit, empacotando a sequência que tu sempre faz na mão
Pra essa última, aliás, vale cruzar com o jeito de usar o Claude Code junto com o Git, porque muita tarefa repetitiva do projeto acaba passando por commit, PR e histórico
O segredo é olhar pro teu próprio fluxo e perguntar: o que eu explico pro Claude toda semana? Aquilo ali é a tua próxima skill
Conclusão
Criar skill Claude Code é basicamente isso: uma pasta, um SKILL.md com frontmatter e corpo, e um teste rápido digitando / no prompt
O resto é escolher bem o escopo (pessoal em ~/.claude/skills/ ou de projeto em .claude/skills/) e caprichar na description, que é o que faz o Claude saber a hora de usar
Quando quiser acelerar, tem dois caminhos oficiais que ajudam. O plugin Skill Creator, que traz modos de criar, avaliar, melhorar e testar skills, instalável com:
/plugin install skill-creator@claude-plugins-official
E o repositório público anthropics/skills da Anthropic, ótimo pra abrir uns exemplos reais e ver como as skills são escritas por dentro
Agora escolhe uma tarefa chata do teu projeto e transforma ela na tua primeira skill… até o próximo post!
Perguntas frequentes
Dá pra compartilhar minha skill de projeto com o time inteiro pelo Git?
Dá sim! Skill de projeto mora em .claude/skills/ dentro do repositório, então ela sobe junto com o código quando tu faz push. Qualquer pessoa do time que clonar ou fizer pull já recebe a skill sem precisar configurar nada na máquina dela
Existe algum repositório com skills prontas pra eu não precisar criar do zero?
Existe! A Anthropic mantém o repositório público anthropics/skills no GitHub, com skills que tu pode usar ou adaptar. E se quiser ainda mais ajuda na criação, tem o plugin oficial Skill Creator, instalável com /plugin install skill-creator@claude-plugins-official, que traz os modos Create, Eval, Improve e Benchmark pra te guiar no processo
Quando faz sentido usar o campo disable-model-invocation na minha skill?
Quando tu NÃO quer que o Claude decida sozinho quando puxar aquela skill. Com esse campo ativo, ela só roda se for invocada manualmente, sem carregamento automático. É útil pra skills muito específicas onde o gatilho automático pode entrar na hora errada
A skill no Claude Code precisa de internet ou de alguma API pra funcionar?
Não precisa. Skills são baseadas em sistema de arquivos e não exigem upload via API nem nenhuma conexão externa. Tu cria a pasta, escreve o SKILL.md e pronto, tudo roda local
Como decido quais ferramentas colocar no campo allowed-tools da minha skill?
Pensa no que a skill vai fazer de fato. Se ela lê arquivos, precisa de Read. Se roda comandos no terminal, precisa de Bash. Se edita arquivos, Edit entra na lista. A dica prática: coloca só o que a skill usa de verdade e testa pra ver se nada quebra por falta de permissão
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
