SKILL.md com instruções, e Claude o adiciona ao seu kit de ferramentas. Claude usa skills quando relevante, ou você pode invocar uma diretamente com /skill-name.
Para comandos integrados como
/help e /compact, consulte a referência de comandos integrados.Comandos personalizados foram mesclados em skills. Um arquivo em .claude/commands/deploy.md e uma skill em .claude/skills/deploy/SKILL.md ambos criam /deploy e funcionam da mesma forma. Seus arquivos .claude/commands/ existentes continuam funcionando. Skills adicionam recursos opcionais: um diretório para arquivos de suporte, frontmatter para controlar se você ou Claude invoca eles, e a capacidade de Claude carregá-los automaticamente quando relevante.Skills agrupadas
Skills agrupadas são fornecidas com Claude Code e estão disponíveis em cada sessão. Diferentemente dos comandos integrados, que executam lógica fixa diretamente, skills agrupadas são baseadas em prompt: elas dão ao Claude um manual detalhado e deixam que ele orquestre o trabalho usando suas ferramentas. Isso significa que skills agrupadas podem gerar agentes paralelos, ler arquivos e se adaptar ao seu codebase. Você invoca skills agrupadas da mesma forma que qualquer outra skill: digite/ seguido do nome da skill. Na tabela abaixo, <arg> indica um argumento obrigatório e [arg] indica um opcional.
| Skill | Propósito |
|---|---|
/batch <instruction> | Orquestre mudanças em larga escala em um codebase em paralelo. Pesquisa o codebase, decompõe o trabalho em 5 a 30 unidades independentes e apresenta um plano. Uma vez aprovado, gera um agente de fundo por unidade em um git worktree isolado. Cada agente implementa sua unidade, executa testes e abre um pull request. Requer um repositório git. Exemplo: /batch migrate src/ from Solid to React |
/claude-api | Carregue material de referência da API Claude para a linguagem do seu projeto (Python, TypeScript, Java, Go, Ruby, C#, PHP, ou cURL) e referência do Agent SDK para Python e TypeScript. Cobre uso de ferramentas, streaming, batches, saídas estruturadas e armadilhas comuns. Também ativa automaticamente quando seu código importa anthropic, @anthropic-ai/sdk, ou claude_agent_sdk |
/debug [description] | Habilite o log de debug para a sessão atual e solucione problemas lendo o log de debug da sessão. O log de debug está desativado por padrão a menos que você tenha iniciado com claude --debug, então executar /debug no meio da sessão começa a capturar logs a partir desse ponto em diante. Opcionalmente descreva o problema para focar a análise |
/loop [interval] <prompt> | Execute um prompt repetidamente em um intervalo enquanto a sessão permanece aberta. Útil para pesquisar uma implantação, cuidar de um PR, ou executar periodicamente outra skill. Exemplo: /loop 5m check if the deploy finished. Consulte Executar prompts em um cronograma |
/simplify [focus] | Revise seus arquivos recentemente alterados para reutilização de código, qualidade e problemas de eficiência, depois corrija-os. Gera três agentes de revisão em paralelo, agrega suas descobertas e aplica correções. Passe texto para focar em preocupações específicas: /simplify focus on memory efficiency |
Começando
Crie sua primeira skill
Este exemplo cria uma skill que ensina Claude a explicar código usando diagramas visuais e analogias. Como usa frontmatter padrão, Claude pode carregá-la automaticamente quando você pergunta como algo funciona, ou você pode invocá-la diretamente com/explain-code.
Crie o diretório da skill
Crie um diretório para a skill em sua pasta de skills pessoais. Skills pessoais estão disponíveis em todos os seus projetos.
Escreva SKILL.md
Cada skill precisa de um arquivo
SKILL.md com duas partes: frontmatter YAML (entre marcadores ---) que diz ao Claude quando usar a skill, e conteúdo markdown com instruções que Claude segue quando a skill é invocada. O campo name se torna o /slash-command, e a description ajuda Claude a decidir quando carregá-la automaticamente.Crie ~/.claude/skills/explain-code/SKILL.md:Onde as skills vivem
Onde você armazena uma skill determina quem pode usá-la:| Localização | Caminho | Aplica-se a |
|---|---|---|
| Enterprise | Consulte configurações gerenciadas | Todos os usuários em sua organização |
| Pessoal | ~/.claude/skills/<skill-name>/SKILL.md | Todos os seus projetos |
| Projeto | .claude/skills/<skill-name>/SKILL.md | Apenas este projeto |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md | Onde o plugin está habilitado |
plugin-name:skill-name, então não podem conflitar com outros níveis. Se você tem arquivos em .claude/commands/, eles funcionam da mesma forma, mas se uma skill e um comando compartilham o mesmo nome, a skill tem precedência.
Descoberta automática de diretórios aninhados
Quando você trabalha com arquivos em subdiretórios, Claude Code descobre automaticamente skills de diretórios.claude/skills/ aninhados. Por exemplo, se você está editando um arquivo em packages/frontend/, Claude Code também procura por skills em packages/frontend/.claude/skills/. Isso suporta configurações de monorepo onde pacotes têm suas próprias skills.
Cada skill é um diretório com SKILL.md como ponto de entrada:
SKILL.md contém as instruções principais e é obrigatório. Outros arquivos são opcionais e permitem que você construa skills mais poderosas: templates para Claude preencher, exemplos de saída mostrando o formato esperado, scripts que Claude pode executar, ou documentação de referência detalhada. Referencie esses arquivos de seu SKILL.md para que Claude saiba o que cada arquivo contém e quando carregá-lo. Consulte Adicione arquivos de suporte para mais detalhes.
Arquivos em
.claude/commands/ ainda funcionam e suportam o mesmo frontmatter. Skills são recomendadas já que suportam recursos adicionais como arquivos de suporte.Skills de diretórios adicionais
Skills definidas em.claude/skills/ dentro de diretórios adicionados via --add-dir são carregadas automaticamente e detectadas por detecção de mudança ao vivo, então você pode editá-las durante uma sessão sem reiniciar.
Arquivos CLAUDE.md de diretórios
--add-dir não são carregados por padrão. Para carregá-los, defina CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1. Consulte Carregar de diretórios adicionais.Configure skills
Skills são configuradas através de frontmatter YAML no topo deSKILL.md e o conteúdo markdown que segue.
Tipos de conteúdo de skill
Arquivos de skill podem conter qualquer instrução, mas pensar em como você quer invocá-los ajuda a guiar o que incluir: Conteúdo de referência adiciona conhecimento que Claude aplica ao seu trabalho atual. Convenções, padrões, guias de estilo, conhecimento de domínio. Este conteúdo é executado inline para que Claude possa usá-lo junto com seu contexto de conversa./skill-name em vez de deixar Claude decidir quando executá-las. Adicione disable-model-invocation: true para evitar que Claude a dispare automaticamente.
SKILL.md pode conter qualquer coisa, mas pensar em como você quer que a skill seja invocada (por você, por Claude, ou ambos) e onde você quer que seja executada (inline ou em um subagent) ajuda a guiar o que incluir. Para skills complexas, você também pode adicionar arquivos de suporte para manter a skill principal focada.
Referência de frontmatter
Além do conteúdo markdown, você pode configurar o comportamento da skill usando campos de frontmatter YAML entre marcadores--- no topo de seu arquivo SKILL.md:
description é recomendado para que Claude saiba quando usar a skill.
| Campo | Obrigatório | Descrição |
|---|---|---|
name | Não | Nome de exibição para a skill. Se omitido, usa o nome do diretório. Apenas letras minúsculas, números e hífens (máximo 64 caracteres). |
description | Recomendado | O que a skill faz e quando usá-la. Claude usa isso para decidir quando aplicar a skill. Se omitido, usa o primeiro parágrafo do conteúdo markdown. |
argument-hint | Não | Dica mostrada durante autocomplete para indicar argumentos esperados. Exemplo: [issue-number] ou [filename] [format]. |
disable-model-invocation | Não | Defina como true para evitar que Claude carregue automaticamente esta skill. Use para fluxos de trabalho que você quer disparar manualmente com /name. Padrão: false. |
user-invocable | Não | Defina como false para ocultar do menu /. Use para conhecimento de fundo que usuários não devem invocar diretamente. Padrão: true. |
allowed-tools | Não | Ferramentas que Claude pode usar sem pedir permissão quando esta skill está ativa. |
model | Não | Modelo a usar quando esta skill está ativa. |
effort | Não | Nível de esforço quando esta skill está ativa. Sobrescreve o nível de esforço da sessão. Padrão: herda da sessão. Opções: low, medium, high, max (apenas Opus 4.6). |
context | Não | Defina como fork para executar em um contexto de subagent bifurcado. |
agent | Não | Qual tipo de subagent usar quando context: fork está definido. |
hooks | Não | Hooks com escopo para o ciclo de vida desta skill. Consulte Hooks em skills e agents para formato de configuração. |
Substituições de string disponíveis
Skills suportam substituição de string para valores dinâmicos no conteúdo da skill:| Variável | Descrição |
|---|---|
$ARGUMENTS | Todos os argumentos passados ao invocar a skill. Se $ARGUMENTS não estiver presente no conteúdo, argumentos são anexados como ARGUMENTS: <value>. |
$ARGUMENTS[N] | Acesse um argumento específico por índice baseado em 0, como $ARGUMENTS[0] para o primeiro argumento. |
$N | Abreviação para $ARGUMENTS[N], como $0 para o primeiro argumento ou $1 para o segundo. |
${CLAUDE_SESSION_ID} | O ID da sessão atual. Útil para logging, criação de arquivos específicos da sessão, ou correlação de saída de skill com sessões. |
${CLAUDE_SKILL_DIR} | O diretório contendo o arquivo SKILL.md da skill. Para skills de plugin, este é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use isso em comandos de injeção bash para referenciar scripts ou arquivos agrupados com a skill, independentemente do diretório de trabalho atual. |
Adicione arquivos de suporte
Skills podem incluir múltiplos arquivos em seu diretório. Isso mantémSKILL.md focado no essencial enquanto deixa Claude acessar material de referência detalhado apenas quando necessário. Documentos de referência grandes, especificações de API, ou coleções de exemplos não precisam carregar em contexto toda vez que a skill é executada.
SKILL.md para que Claude saiba o que cada arquivo contém e quando carregá-lo:
Controle quem invoca uma skill
Por padrão, tanto você quanto Claude podem invocar qualquer skill. Você pode digitar/skill-name para invocá-la diretamente, e Claude pode carregá-la automaticamente quando relevante para sua conversa. Dois campos de frontmatter permitem que você restrinja isso:
-
disable-model-invocation: true: Apenas você pode invocar a skill. Use isso para fluxos de trabalho com efeitos colaterais ou que você quer controlar o tempo, como/commit,/deploy, ou/send-slack-message. Você não quer que Claude decida fazer deploy porque seu código parece pronto. -
user-invocable: false: Apenas Claude pode invocar a skill. Use isso para conhecimento de fundo que não é acionável como um comando. Uma skilllegacy-system-contextexplica como um sistema antigo funciona. Claude deve saber disso quando relevante, mas/legacy-system-contextnão é uma ação significativa para usuários tomarem.
disable-model-invocation: true evita que Claude a execute automaticamente:
| Frontmatter | Você pode invocar | Claude pode invocar | Quando carregado em contexto |
|---|---|---|---|
| (padrão) | Sim | Sim | Descrição sempre em contexto, skill completa carrega quando invocada |
disable-model-invocation: true | Sim | Não | Descrição não em contexto, skill completa carrega quando você invoca |
user-invocable: false | Não | Sim | Descrição sempre em contexto, skill completa carrega quando invocada |
Em uma sessão regular, descrições de skills são carregadas em contexto para que Claude saiba o que está disponível, mas conteúdo completo de skill apenas carrega quando invocado. Subagents com skills pré-carregadas funcionam diferentemente: o conteúdo completo da skill é injetado na inicialização.
Restrinja acesso a ferramentas
Use o campoallowed-tools para limitar quais ferramentas Claude pode usar quando uma skill está ativa. Esta skill cria um modo somente leitura onde Claude pode explorar arquivos mas não modificá-los:
Passe argumentos para skills
Tanto você quanto Claude podem passar argumentos ao invocar uma skill. Argumentos estão disponíveis via placeholder$ARGUMENTS.
Esta skill corrige um problema do GitHub por número. O placeholder $ARGUMENTS é substituído por qualquer coisa que siga o nome da skill:
/fix-issue 123, Claude recebe “Fix GitHub issue 123 following our coding standards…”
Se você invocar uma skill com argumentos mas a skill não incluir $ARGUMENTS, Claude Code anexa ARGUMENTS: <your input> ao final do conteúdo da skill para que Claude ainda veja o que você digitou.
Para acessar argumentos individuais por posição, use $ARGUMENTS[N] ou a forma mais curta $N:
/migrate-component SearchBar React Vue substitui $ARGUMENTS[0] com SearchBar, $ARGUMENTS[1] com React, e $ARGUMENTS[2] com Vue. A mesma skill usando a abreviação $N:
Padrões avançados
Injete contexto dinâmico
A sintaxe!`<command>` executa comandos shell antes do conteúdo da skill ser enviado para Claude. A saída do comando substitui o placeholder, para que Claude receba dados reais, não o comando em si.
Esta skill resume um pull request buscando dados de PR ao vivo com o GitHub CLI. Os comandos !`gh pr diff` e outros são executados primeiro, e sua saída é inserida no prompt:
- Cada
!`<command>`é executado imediatamente (antes de Claude ver qualquer coisa) - A saída substitui o placeholder no conteúdo da skill
- Claude recebe o prompt totalmente renderizado com dados reais de PR
Execute skills em um subagent
Adicionecontext: fork ao seu frontmatter quando você quer que uma skill seja executada em isolamento. O conteúdo da skill se torna o prompt que dirige o subagent. Ele não terá acesso ao seu histórico de conversa.
Skills e subagents trabalham juntos em duas direções:
| Abordagem | Prompt do sistema | Tarefa | Também carrega |
|---|---|---|---|
Skill com context: fork | Do tipo de agent (Explore, Plan, etc.) | Conteúdo de SKILL.md | CLAUDE.md |
Subagent com campo skills | Corpo markdown do subagent | Mensagem de delegação do Claude | Skills pré-carregadas + CLAUDE.md |
context: fork, você escreve a tarefa em sua skill e escolhe um tipo de agent para executá-la. Para o inverso (definir um subagent personalizado que usa skills como material de referência), consulte Subagents.
Exemplo: Skill de pesquisa usando agent Explore
Esta skill executa pesquisa em um agent Explore bifurcado. O conteúdo da skill se torna a tarefa, e o agent fornece ferramentas somente leitura otimizadas para exploração de codebase:- Um novo contexto isolado é criado
- O subagent recebe o conteúdo da skill como seu prompt (“Research $ARGUMENTS thoroughly…”)
- O campo
agentdetermina o ambiente de execução (modelo, ferramentas e permissões) - Resultados são resumidos e retornados para sua conversa principal
agent especifica qual configuração de subagent usar. As opções incluem agents integrados (Explore, Plan, general-purpose) ou qualquer subagent personalizado de .claude/agents/. Se omitido, usa general-purpose.
Restrinja acesso de skill do Claude
Por padrão, Claude pode invocar qualquer skill que não tenhadisable-model-invocation: true definido. Skills que definem allowed-tools concedem a Claude acesso a essas ferramentas sem aprovação por uso quando a skill está ativa. Suas configurações de permissão ainda governam comportamento de aprovação de linha de base para todas as outras ferramentas. Comandos integrados como /compact e /init não estão disponíveis através da ferramenta Skill.
Três formas de controlar quais skills Claude pode invocar:
Desabilite todas as skills negando a ferramenta Skill em /permissions:
Skill(name) para correspondência exata, Skill(name *) para correspondência de prefixo com qualquer argumento.
Oculte skills individuais adicionando disable-model-invocation: true ao seu frontmatter. Isso remove a skill do contexto do Claude inteiramente.
O campo
user-invocable apenas controla visibilidade de menu, não acesso à ferramenta Skill. Use disable-model-invocation: true para bloquear invocação programática.Compartilhe skills
Skills podem ser distribuídas em diferentes escopos dependendo do seu público:- Skills de projeto: Faça commit de
.claude/skills/para controle de versão - Plugins: Crie um diretório
skills/em seu plugin - Gerenciado: Implante em toda a organização através de configurações gerenciadas
Gere saída visual
Skills podem agrupar e executar scripts em qualquer linguagem, dando ao Claude capacidades além do que é possível em um único prompt. Um padrão poderoso é gerar saída visual: arquivos HTML interativos que abrem em seu navegador para explorar dados, depurar ou criar relatórios. Este exemplo cria um explorador de codebase: uma visualização de árvore interativa onde você pode expandir e recolher diretórios, ver tamanhos de arquivo em um relance, e identificar tipos de arquivo por cor. Crie o diretório da Skill:~/.claude/skills/codebase-visualizer/SKILL.md. A descrição diz ao Claude quando ativar esta Skill, e as instruções dizem ao Claude para executar o script agrupado:
~/.claude/skills/codebase-visualizer/scripts/visualize.py. Este script varre uma árvore de diretório e gera um arquivo HTML auto-contido com:
- Uma barra lateral de resumo mostrando contagem de arquivos, contagem de diretórios, tamanho total e número de tipos de arquivo
- Um gráfico de barras dividindo o codebase por tipo de arquivo (top 8 por tamanho)
- Uma árvore recolhível onde você pode expandir e recolher diretórios, com indicadores de tipo de arquivo codificados por cor
codebase-map.html, e abre em seu navegador.
Este padrão funciona para qualquer saída visual: gráficos de dependência, relatórios de cobertura de testes, documentação de API, ou visualizações de esquema de banco de dados. O script agrupado faz o trabalho pesado enquanto Claude lida com orquestração.
Solução de problemas
Skill não dispara
Se Claude não usa sua skill quando esperado:- Verifique se a descrição inclui palavras-chave que usuários naturalmente diriam
- Verifique se a skill aparece em
What skills are available? - Tente reformular sua solicitação para corresponder mais de perto à descrição
- Invoque-a diretamente com
/skill-namese a skill é invocável pelo usuário
Skill dispara muito frequentemente
Se Claude usa sua skill quando você não quer:- Torne a descrição mais específica
- Adicione
disable-model-invocation: truese você quer apenas invocação manual
Claude não vê todas as minhas skills
Descrições de skills são carregadas em contexto para que Claude saiba o que está disponível. Se você tem muitas skills, elas podem exceder o orçamento de caracteres. O orçamento escala dinamicamente em 2% da janela de contexto, com fallback de 16.000 caracteres. Execute/context para verificar um aviso sobre skills excluídas.
Para sobrescrever o limite, defina a variável de ambiente SLASH_COMMAND_TOOL_CHAR_BUDGET.
Recursos relacionados
- Subagents: delegue tarefas para agents especializados
- Plugins: empacote e distribua skills com outras extensões
- Hooks: automatize fluxos de trabalho em torno de eventos de ferramentas
- Memory: gerencie arquivos CLAUDE.md para contexto persistente
- Comandos integrados: referência para comandos
/integrados - Permissões: controle acesso a ferramentas e skills