192 192
193Claude Code carrega skills de projeto de `.claude/skills/` no diretório onde você o inicia e em todos os diretórios pai até a raiz do repositório, então iniciar em `packages/frontend/` ainda pega skills definidas na raiz. Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code adiciona as skills de projeto do novo diretório.193Claude Code carrega skills de projeto de `.claude/skills/` no diretório onde você o inicia e em todos os diretórios pai até a raiz do repositório, então iniciar em `packages/frontend/` ainda pega skills definidas na raiz. Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code adiciona as skills de projeto do novo diretório.
194 194
195Em uma sessão executada em um [git worktree](/docs/pt/worktrees) vinculado, Claude Code pesquisa diretórios pai apenas até a raiz do worktree. Na Claude Code v2.1.277 ou posterior, quando o checkout do worktree não tem um diretório `.claude/skills` em sua raiz, Claude Code carrega as skills de projeto do checkout principal. Veja [O que worktrees compartilham com o checkout principal](/docs/pt/worktrees#what-worktrees-share-with-the-main-checkout).195Em uma sessão executada em um [git worktree](/docs/pt/worktrees) vinculado que você criou com `--worktree` ou `git worktree add`, Claude Code pesquisa diretórios pai apenas até a raiz do worktree. Na Claude Code v2.1.277 ou posterior, quando o checkout do worktree não tem um diretório `.claude/skills` em sua raiz, Claude Code carrega as skills de projeto do checkout principal. Veja [O que worktrees compartilham com o checkout principal](/docs/pt/worktrees#what-worktrees-share-with-the-main-checkout).
196 196
197Skills em um diretório `.claude/skills/` abaixo de onde você iniciou não carregam na inicialização. Elas carregam na primeira vez que Claude lê ou edita um arquivo naquele subdiretório e permanecem disponíveis pelo resto da sessão. Até então, elas não aparecem no menu `/` e você não pode invocá-las por nome. Para carregá-las mais cedo, execute `/add-dir` com o caminho do subdiretório, o que requer Claude Code v2.1.257 ou posterior.197Skills em um diretório `.claude/skills/` abaixo de onde você iniciou não carregam na inicialização. Elas carregam na primeira vez que Claude lê ou edita um arquivo naquele subdiretório e permanecem disponíveis pelo resto da sessão. Até então, elas não aparecem no menu `/` e você não pode invocá-las por nome. Para carregá-las mais cedo, execute `/add-dir` com o caminho do subdiretório, o que requer Claude Code v2.1.257 ou posterior. Para uma sessão de worktree que você inicia a partir do aplicativo desktop, veja [O que worktrees compartilham com o checkout principal](/docs/pt/worktrees#what-worktrees-share-with-the-main-checkout).
198 198
199Quando o nome do diretório de uma skill aninhada corresponde ao nome de outra skill, ambas permanecem disponíveis. Com uma skill `deploy` na raiz do repositório e outra em `apps/web/.claude/skills/`:199Quando o nome do diretório de uma skill aninhada corresponde ao nome de outra skill, ambas permanecem disponíveis. Com uma skill `deploy` na raiz do repositório e outra em `apps/web/.claude/skills/`:
200 200
235 235
236Se uma skill existe apenas em `~/.claude/skills/` em sua máquina, Claude Code relata que a skill não foi encontrada quando uma [rotina](/docs/pt/routines) a invoca, porque cada execução de rotina começa como uma sessão cloud nova. Para disponibilizar uma skill pessoal nessas sessões:236Se uma skill existe apenas em `~/.claude/skills/` em sua máquina, Claude Code relata que a skill não foi encontrada quando uma [rotina](/docs/pt/routines) a invoca, porque cada execução de rotina começa como uma sessão cloud nova. Para disponibilizar uma skill pessoal nessas sessões:
237 237
238* Para sessões Cowork e cloud, habilite a skill para sua conta claude.ai.238* Para sessões Cowork e na nuvem, habilite a skill para sua conta claude.ai. [Algumas sessões em um ambiente auto-hospedado](/docs/pt/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) não carregam as skills da sua conta.
239* Para sessões cloud, você pode em vez disso confirmar a skill no `.claude/skills/` do repositório. Plugins declarados no `.claude/settings.json` do repositório e plugins habilitados apenas em suas configurações de usuário [não carregam em sessões cloud](/docs/pt/cloud-environments#what-carries-over-from-your-setup).239* Para sessões cloud, você pode em vez disso confirmar a skill no `.claude/skills/` do repositório. Plugins declarados no `.claude/settings.json` do repositório e plugins habilitados apenas em suas configurações de usuário [não carregam em sessões cloud](/docs/pt/cloud-environments#what-carries-over-from-your-setup).
240 240
241[Tarefas agendadas do Desktop](/docs/pt/desktop-scheduled-tasks) executam localmente em sua máquina, então elas carregam `~/.claude/skills/`.241[Tarefas agendadas do Desktop](/docs/pt/desktop-scheduled-tasks) executam localmente em sua máquina, então elas carregam `~/.claude/skills/`.
364 Configurar skills364 Configurar skills
365</h2>365</h2>
366 366
367As skills são configuradas por meio do frontmatter YAML no topo do `SKILL.md` e do conteúdo markdown que vem em seguida.367As skills são configuradas por meio do frontmatter YAML no topo do `SKILL.md` e do conteúdo markdown que vem a seguir.
368 368
369<h3 id="types-of-skill-content">369<h3 id="types-of-skill-content">
370 Tipos de conteúdo de skill370 Tipos de conteúdo de skill
372 372
373Os arquivos de skill podem conter quaisquer instruções, mas pensar em como você deseja invocá-las ajuda a orientar o que incluir:373Os arquivos de skill podem conter quaisquer instruções, mas pensar em como você deseja invocá-las ajuda a orientar o que incluir:
374 374
375**Conteúdo de referência** adiciona conhecimento que o Claude aplica ao seu trabalho atual. Convenções, padrões, guias de estilo, conhecimento de domínio. Esse conteúdo é executado inline para que o Claude possa usá-lo junto com o contexto da sua conversa.375**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. Esse conteúdo é executado inline para que Claude possa usá-lo junto com o contexto da sua conversa.
376 376
377```yaml theme={null}377```yaml theme={null}
378---378---
386- Include request validation386- Include request validation
387```387```
388 388
389**Conteúdo de tarefa** fornece ao Claude instruções passo a passo para uma ação específica, como implantações, commits ou geração de código. Geralmente são ações que você deseja invocar diretamente com `/skill-name` em vez de deixar o Claude decidir quando executá-las. Adicione `disable-model-invocation: true` para impedir que o Claude a acione automaticamente. O exemplo abaixo adiciona `context: fork`, que executa a skill em seu próprio contexto de subagente; consulte [Executar skills em um subagente](#run-skills-in-a-subagent).389**Conteúdo de tarefa** fornece a Claude instruções passo a passo para uma ação específica, como deploys, commits ou geração de código. Geralmente são ações que você deseja invocar diretamente com `/skill-name` em vez de deixar Claude decidir quando executá-las. Adicione `disable-model-invocation: true` para impedir que Claude a acione automaticamente. O exemplo abaixo adiciona `context: fork`, que executa a skill em seu próprio contexto de subagente; consulte [Executar skills em um subagente](#run-skills-in-a-subagent).
390 390
391```yaml theme={null}391```yaml theme={null}
392---392---
408 Referência do frontmatter408 Referência do frontmatter
409</h3>409</h3>
410 410
411Configure uma skill com o [frontmatter](/docs/pt/glossary#frontmatter) YAML entre marcadores `---` no topo do `SKILL.md` e escreva as instruções da skill em Markdown após o `---` de fechamento. Os nomes dos campos usam palavras em minúsculas separadas por hífens, exceto `when_to_use`. Um [arquivo de comando](#where-skills-live) em `.claude/commands/` aceita os mesmos campos, exceto `name` e `paths`. Este exemplo define quatro campos:411Configure uma skill com o [frontmatter](/docs/pt/glossary#frontmatter) YAML entre marcadores `---` no topo do `SKILL.md` e escreva as instruções da skill em Markdown após o `---` de fechamento. Os nomes dos campos usam palavras em minúsculas separadas por hifens, exceto `when_to_use`. Um [arquivo de comando](#where-skills-live) em `.claude/commands/` aceita os mesmos campos, exceto `name` e `paths`. Este exemplo define quatro campos:
412 412
413```yaml theme={null}413```yaml theme={null}
414---414---
421Your skill instructions here...421Your skill instructions here...
422```422```
423 423
424Todos os campos são opcionais. Apenas `description` é recomendado, para que o Claude saiba quando usar a skill. O nome de um campo deve corresponder exatamente à tabela, incluindo os hífens: o Claude Code ignora um campo que não reconhece sem relatar um erro.424Todos os campos são opcionais. Apenas `description` é recomendado para que Claude saiba quando usar a skill. O nome de um campo deve corresponder exatamente à tabela, incluindo os hifens: o Claude Code ignora um campo que não reconhece sem relatar um erro.
425 425
426O Claude Code lê o frontmatter somente quando o `---` de abertura é a primeira linha do arquivo. Caso contrário, ele trata o arquivo inteiro, incluindo os marcadores `---`, como conteúdo da skill. Se o YAML entre os marcadores não puder ser analisado, a skill ainda é carregada sem nenhum campo definido; consulte [Skill não é acionada](#skill-not-triggering) para encontrar e corrigir o erro.426O Claude Code lê o frontmatter apenas quando o `---` de abertura é a primeira linha do arquivo. Caso contrário, ele trata o arquivo inteiro, incluindo os marcadores `---`, como conteúdo da skill. Se o YAML entre os marcadores não puder ser analisado, a skill ainda será carregada sem nenhum campo definido; consulte [Skill não é acionada](#skill-not-triggering) para encontrar e corrigir o erro.
427 427
428Campos booleanos aceitam `yes`, `no`, `on`, `off`, `1` e `0` em qualquer combinação de maiúsculas e minúsculas, além de `true` e `false`. Antes da v2.1.218, o Claude Code reconhecia apenas `true` e `false`.428Os campos booleanos aceitam `yes`, `no`, `on`, `off`, `1` e `0` em qualquer combinação de maiúsculas e minúsculas, além de `true` e `false`. Antes da v2.1.218, o Claude Code reconhecia apenas `true` e `false`.
429 429
430| Campo | Obrigatório | Descrição |430| Campo | Obrigatório | Descrição |
431| :- | :- | :- |431| :- | :- | :- |
432| `name` | Não | Nome do comando exibido no menu `/`. O padrão é o nome do diretório. Consulte [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name) para saber como o campo interage com o nome que você digita para invocar a skill. |432| `name` | Não | Nome do comando exibido no menu `/`. O padrão é o nome do diretório. Consulte [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name) para saber como o campo interage com o nome que você digita para invocar a skill. |
433| `description` | Recomendado | O que a skill faz e quando usá-la. O Claude usa isso para decidir quando aplicar a skill. Se omitido, usa a primeira linha não vazia do conteúdo markdown. Coloque o caso de uso principal primeiro: o texto combinado de `description` e `when_to_use` é truncado em 1.536 caracteres na listagem de skills para reduzir o uso de contexto. |433| `description` | Recomendado | O que a skill faz e quando usá-la. Claude usa isso para decidir quando aplicar a skill. Se omitido, usa a primeira linha não vazia do conteúdo markdown. Coloque o caso de uso principal primeiro: o texto combinado de `description` e `when_to_use` é truncado em 1.536 caracteres na listagem de skills para reduzir o uso de contexto. |
434| `when_to_use` | Não | Contexto adicional sobre quando o Claude deve invocar a skill, como frases de acionamento ou exemplos de solicitações. É anexado a `description` na listagem de skills e conta para o limite de 1.536 caracteres. |434| `when_to_use` | Não | Contexto adicional sobre quando Claude deve invocar a skill, como frases de acionamento ou exemplos de solicitações. É anexado a `description` na listagem de skills e conta para o limite de 1.536 caracteres. |
435| `argument-hint` | Não | Dica exibida durante o preenchimento automático para indicar os argumentos esperados. Exemplo: `[issue-number]` ou `[filename] [format]`. |435| `argument-hint` | Não | Dica exibida durante o preenchimento automático para indicar os argumentos esperados. Exemplo: `[issue-number]` ou `[filename] [format]`. |
436| `arguments` | Não | Argumentos posicionais nomeados para [substituição de `$name`](#available-string-substitutions) no conteúdo da skill. Aceita uma string separada por espaços ou uma lista YAML. Os nomes são mapeados para as posições dos argumentos em ordem. |436| `arguments` | Não | Argumentos posicionais nomeados para [substituição de `$name`](#available-string-substitutions) no conteúdo da skill. Aceita uma string separada por espaços ou uma lista YAML. Os nomes são mapeados para as posições dos argumentos em ordem. |
437| `disable-model-invocation` | Não | Defina como `true` para impedir que o Claude carregue esta skill automaticamente. Use para fluxos de trabalho que você deseja acionar manualmente com `/name`. Também impede que a skill seja [pré-carregada em subagentes](/docs/pt/sub-agents#preload-skills-into-subagents). A partir da v2.1.196, também impede que a skill seja executada quando uma [tarefa agendada](/docs/pt/scheduled-tasks) dispara com a skill como seu prompt. Padrão: `false`. |437| `disable-model-invocation` | Não | Defina como `true` para impedir que Claude carregue esta skill automaticamente. Use para fluxos de trabalho que você deseja acionar manualmente com `/name`. Também impede que a skill seja [pré-carregada em subagentes](/docs/pt/sub-agents#preload-skills-into-subagents) e que seja executada quando uma [tarefa agendada](/docs/pt/scheduled-tasks) é disparada com a skill como seu prompt. Padrão: `false`. |
438| `user-invocable` | Não | Defina como `false` quando apenas o Claude deve invocar a skill: o Claude Code a oculta do menu `/` e não a executa quando você digita `/name`. Use para conhecimento de fundo que os usuários não devem invocar diretamente. Padrão: `true`. |438| `user-invocable` | Não | Defina como `false` quando apenas Claude deve invocar a skill: o Claude Code a oculta do menu `/` e não a executa quando você digita `/name`. Use para conhecimento de fundo que os usuários não devem invocar diretamente. Padrão: `true`. |
439| `allowed-tools` | Não | Ferramentas que o Claude pode usar sem pedir permissão durante o turno que invoca esta skill. A concessão é removida quando você envia sua próxima mensagem. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. Consulte [Pré-aprovar ferramentas para uma skill](#pre-approve-tools-for-a-skill). |439| `allowed-tools` | Não | Ferramentas que Claude pode usar sem pedir permissão durante o turno que invoca esta skill. A concessão é removida quando você envia sua próxima mensagem. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. Consulte [Pré-aprovar ferramentas para uma skill](#pre-approve-tools-for-a-skill). |
440| `disallowed-tools` | Não | Ferramentas removidas do conjunto disponível do Claude enquanto esta skill está ativa. Use para skills autônomas que nunca devem chamar certas ferramentas, como `AskUserQuestion` para um loop em segundo plano. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. A restrição é removida quando você envia sua próxima mensagem. Assim como as regras de deny, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. |440| `disallowed-tools` | Não | Ferramentas removidas do conjunto disponível para Claude enquanto esta skill está ativa. Use para skills autônomas que nunca devem chamar certas ferramentas, como `AskUserQuestion` em um loop em segundo plano. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. A restrição é removida quando você envia sua próxima mensagem. Assim como as regras deny, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. |
441| `model` | Não | Modelo a ser usado quando esta skill está ativa. A substituição se aplica ao restante do turno atual e não é salva nas configurações. O modelo da sessão é retomado quando você envia seu próximo prompt. Aceita os mesmos valores que [`/model`](/docs/pt/model-config), ou `inherit` para manter o modelo ativo. Um valor excluído pela allowlist [`availableModels`](/docs/pt/model-config#restrict-model-selection) da sua organização não é usado, e a sessão mantém seu modelo atual. No [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e no [modo de planejamento enquanto o classificador revisa comandos](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um modelo que o modo auto não suporta também não é usado, e a sessão mantém seu modelo atual. Com `context: fork`, o valor define o [modelo do subagente bifurcado](#run-skills-in-a-subagent) em vez disso, e um valor excluído segue as [mesmas regras que uma substituição de modelo de subagente](/docs/pt/model-config#restrict-model-selection). |441| `model` | Não | Modelo a ser usado quando esta skill está ativa. A substituição se aplica ao restante do turno atual e não é salva nas configurações. O modelo da sessão é retomado quando você envia seu próximo prompt. Aceita os mesmos valores que [`/model`](/docs/pt/model-config), ou `inherit` para manter o modelo ativo. Um valor excluído pela allowlist [`availableModels`](/docs/pt/model-config#restrict-model-selection) da sua organização não é usado, e a sessão mantém seu modelo atual. No [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e no [modo de planejamento enquanto o classificador revisa comandos](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um modelo que o modo auto não suporta também não é usado, e a sessão mantém seu modelo atual. Com `context: fork`, o valor define o [modelo do subagente bifurcado](#run-skills-in-a-subagent), e um valor excluído segue as [mesmas regras de uma substituição de modelo de subagente](/docs/pt/model-config#restrict-model-selection). |
442| `effort` | Não | [Nível de esforço](/docs/pt/model-config#adjust-effort-level) quando esta skill está ativa. Sobrescreve o nível de esforço da sessão. Quando você o omite, o nível vem da [ordem de resolução de esforço](/docs/pt/model-config#adjust-effort-level). Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo. |442| `effort` | Não | [Nível de esforço](/docs/pt/model-config#adjust-effort-level) quando esta skill está ativa. Sobrescreve o nível de esforço da sessão. Quando você o omite, o nível vem da [ordem de resolução de esforço](/docs/pt/model-config#adjust-effort-level). Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo. |
443| `context` | Não | Defina como `fork` para executar em um contexto de subagente bifurcado. Consulte [Executar skills em um subagente](#run-skills-in-a-subagent). |443| `context` | Não | Defina como `fork` para executar em um contexto de subagente bifurcado. Consulte [Executar skills em um subagente](#run-skills-in-a-subagent). |
444| `agent` | Não | Qual tipo de subagente usar quando `context: fork` está definido. |444| `agent` | Não | Qual tipo de subagente usar quando `context: fork` está definido. |
445| `background` | Não | Aplica-se apenas com `context: fork`. Defina como `false` para aguardar o resultado do subagente bifurcado no turno que invocou a skill, em vez de [executá-lo em segundo plano](#run-skills-in-a-subagent). Padrão: `true`. Requer o Claude Code v2.1.218 ou posterior. |445| `background` | Não | Aplica-se apenas com `context: fork`. Defina como `false` para aguardar o resultado do subagente bifurcado no turno que invocou a skill, em vez de [executá-lo em segundo plano](#run-skills-in-a-subagent). Padrão: `true`. Requer o Claude Code v2.1.218 ou posterior. |
446| `hooks` | Não | Hooks que o Claude Code registra quando a skill é invocada e mantém em execução pelo restante da sessão. Consulte [Hooks em skills e agentes](/docs/pt/hooks#hooks-in-skills-and-agents) para o formato de configuração e a opção `once`. |446| `hooks` | Não | Hooks que o Claude Code registra quando a skill é invocada e mantém em execução pelo restante da sessão. Consulte [Hooks em skills e agentes](/docs/pt/hooks#hooks-in-skills-and-agents) para o formato de configuração e a opção `once`. |
447| `paths` | Não | Padrões glob que limitam quando esta skill é ativada. Aceita uma string separada por vírgulas ou uma lista YAML. Quando definido, o Claude carrega a skill automaticamente apenas ao trabalhar com arquivos que correspondem aos padrões. Usa o mesmo formato que as [regras específicas de caminho](/docs/pt/memory#path-specific-rules). |447| `paths` | Não | Padrões glob que limitam quando esta skill é ativada. Aceita uma string separada por vírgulas ou uma lista YAML. Quando definido, Claude carrega a skill automaticamente apenas ao trabalhar com arquivos que correspondem aos padrões. Usa o mesmo formato das [regras específicas de caminho](/docs/pt/memory#path-specific-rules). |
448| `shell` | Não | Shell a ser usado para blocos `` !`command` `` e ` ```! ` nesta skill. Aceita `bash` (padrão) ou `powershell`. Definir `powershell` executa comandos de shell inline via PowerShell quando a [ferramenta PowerShell](/pt/tools-reference#powershell-tool) está habilitada: ela está ativada por padrão no Windows sem Git Bash, ativada por padrão com Git Bash para contas claude.ai e Console, e requer `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` em sessões do Amazon Bedrock, do Agent Platform do Google Cloud e do Microsoft Foundry, e no macOS, Linux e WSL. Defina-a como `0` para desativar a ferramenta. |448| `shell` | Não | Shell a ser usado para blocos `` !`command` `` e ` ```! ` nesta skill. Aceita `bash` (padrão) ou `powershell`. Definir `powershell` executa comandos de shell inline via PowerShell quando a [ferramenta PowerShell](/pt/tools-reference#powershell-tool) está habilitada: ela fica ativada por padrão no Windows sem Git Bash, ativada por padrão com Git Bash para contas claude.ai e Console, e requer `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` em sessões do Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e no macOS, Linux e WSL. Defina como `0` para desativar a ferramenta. |
449| `metadata` | Não | Mapa YAML de formato livre para seus próprios dados de chave-valor, como campos de direitos de uso ou de catálogo, lidos por suas próprias ferramentas a partir do `SKILL.md`. O Claude Code não age sobre seu conteúdo e descarta um valor que não seja um mapa. Não reutilize nomes de campos do frontmatter, como `paths`, como chaves. |449| `metadata` | Não | Mapa YAML de formato livre para seus próprios dados de chave-valor, como campos de direitos ou catálogo, lidos pelas suas próprias ferramentas a partir do `SKILL.md`. O Claude Code não age sobre seu conteúdo e descarta um valor que não seja um mapa. Não reutilize nomes de campos do frontmatter, como `paths`, como chaves. |
450| `license` | Não | Licença que cobre a skill. Faz parte da especificação [Agent Skills](https://agentskills.io); consulte [Usar o frontmatter de skills fora do Claude Code](#using-skill-frontmatter-outside-claude-code). O Claude Code aceita o campo, mas não age sobre ele. |450| `license` | Não | Licença que abrange a skill. Faz parte da especificação [Agent Skills](https://agentskills.io); consulte [Usar o frontmatter de skills fora do Claude Code](#using-skill-frontmatter-outside-claude-code). O Claude Code aceita o campo, mas não age sobre ele. |
451| `compatibility` | Não | Requisitos de ambiente para a skill, como produtos pretendidos ou pré-requisitos de sistema, conforme definido pela especificação [Agent Skills](https://agentskills.io); consulte [Usar o frontmatter de skills fora do Claude Code](#using-skill-frontmatter-outside-claude-code). Aceita uma string de até 500 caracteres. O Claude Code aceita o campo, mas não age sobre ele. |451| `compatibility` | Não | Requisitos de ambiente para a skill, como produtos pretendidos ou pré-requisitos de sistema, conforme definido pela especificação [Agent Skills](https://agentskills.io); consulte [Usar o frontmatter de skills fora do Claude Code](#using-skill-frontmatter-outside-claude-code). Aceita uma string de até 500 caracteres. O Claude Code aceita o campo, mas não age sobre ele. |
452 452
453<h4 id="using-skill-frontmatter-outside-claude-code">453<h4 id="using-skill-frontmatter-outside-claude-code">
461| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins/overview) | Todos os campos da tabela acima |461| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins/overview) | Todos os campos da tabela acima |
462| Uploads de skills no claude.ai, a Skills API e o empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |462| Uploads de skills no claude.ai, a Skills API e o empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |
463 463
464Quando você habilita uma skill pessoal para sua conta do claude.ai, por exemplo para usá-la no [Cowork e em sessões na nuvem](#skills-in-cowork-and-cloud-sessions) e em rotinas, você a envia para o claude.ai, então as mesmas regras se aplicam.464Quando você habilita uma skill pessoal para sua conta claude.ai, por exemplo para usá-la no [Cowork e em sessões na nuvem](#skills-in-cowork-and-cloud-sessions) e em rotinas, você a envia para o claude.ai, então as mesmas regras se aplicam.
465 465
466Se você incluir qualquer campo que a especificação não permite, o empacotamento ou o upload falha com um erro fatal em vez de ignorar o campo:466Se você incluir qualquer campo que a especificação não permite, o empacotamento ou o upload falha com um erro definitivo em vez de ignorar o campo:
467 467
468```468```
469Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name469Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name
470```470```
471 471
472Restringir o frontmatter aos seis campos da especificação evita o erro de chave inesperada acima. A [especificação Agent Skills](https://agentskills.io) e os [requisitos da Skills API](https://docs.claude.com/en/api/skills-guide) definem todo o resto que esses caminhos validam. Recursos de corpo exclusivos do Claude Code, como a [injeção de contexto dinâmico](#inject-dynamic-context), não funcionam no chat do claude.ai nem pela API. O Claude Code aceita todos os seis campos, então um frontmatter que segue a especificação é carregado no Claude Code sem alterações.472Restringir o frontmatter aos seis campos da especificação evita o erro de chave inesperada acima. A [especificação Agent Skills](https://agentskills.io) e os [requisitos da Skills API](https://docs.claude.com/en/api/skills-guide) definem todo o resto que esses caminhos validam. Recursos do corpo exclusivos do Claude Code, como a [injeção de contexto dinâmico](#inject-dynamic-context), não funcionam no chat do claude.ai nem por meio da API. O Claude Code aceita todos os seis campos, então um frontmatter que segue a especificação é carregado no Claude Code sem alterações.
473 473
474<h4 id="how-a-skill-gets-its-command-name">474<h4 id="how-a-skill-gets-its-command-name">
475 Como uma skill obtém seu nome de comando475 Como uma skill obtém seu nome de comando
476</h4>476</h4>
477 477
478O comando que você digita para invocar uma skill vem do local onde o arquivo da skill está e, para diretórios de skills e skills de plugin, do campo `name` do frontmatter. Em um diretório de skills pessoal ou de projeto, `name` define o comando que o menu `/` exibe e que você digita, a menos que outro comando já use esse nome. O nome do diretório também invoca a skill. Em uma skill de plugin, `name` define o último segmento do comando, e o prefixo do plugin permanece.478O comando que você digita para invocar uma skill vem de onde o arquivo da skill está localizado e, para diretórios de skills e skills de plugin, do campo `name` do frontmatter. Em um diretório de skills pessoal ou de projeto, `name` define o comando que o menu `/` exibe e que você digita, a menos que outro comando já use esse nome. O nome do diretório também invoca a skill. Em uma skill de plugin, `name` define o último segmento do comando e o prefixo do plugin permanece.
479 479
480A tabela abaixo mostra de onde vem o nome do comando para cada estrutura:480A tabela abaixo mostra de onde vem o nome do comando para cada estrutura:
481 481
482| Local da skill | Origem do nome do comando | Exemplo |482| Localização da skill | Origem do nome do comando | Exemplo |
483| :- | :- | :- |483| :- | :- | :- |
484| Diretório de skill em `~/.claude/skills/` ou `.claude/skills/` | `name` do frontmatter ou o nome do diretório | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`, ou `/deploy` com `name: deploy` |484| Diretório de skill em `~/.claude/skills/` ou `.claude/skills/` | `name` do frontmatter ou o nome do diretório | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`, ou `/deploy` com `name: deploy` |
485| Diretório `.claude/skills/` [aninhado](#where-skills-live), quando o nome do diretório conflita com outra skill | Caminho do subdiretório relativo ao diretório de trabalho, seguido do nome do diretório da skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |485| Diretório `.claude/skills/` [aninhado](#where-skills-live), quando o nome do diretório conflita com outra skill | Caminho do subdiretório relativo ao diretório de trabalho, seguido do nome do diretório da skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |
486| Arquivo em `.claude/commands/` | Nome do arquivo sem extensão | `.claude/commands/deploy.md` → `/deploy` |486| Arquivo em `.claude/commands/` | Nome do arquivo sem extensão | `.claude/commands/deploy.md` → `/deploy` |
487| Arquivo em um subdiretório de `.claude/commands/` | Caminho do subdiretório relativo a `commands/` com cada `/` substituída por `:`, seguido do nome do arquivo sem extensão | `.claude/commands/frontend/component.md` → `/frontend:component` |487| Arquivo em um subdiretório de `.claude/commands/` | Caminho do subdiretório relativo a `commands/` com cada `/` substituído por `:`, seguido do nome do arquivo sem extensão | `.claude/commands/frontend/component.md` → `/frontend:component` |
488| Subdiretório `skills/` do plugin | `name` do frontmatter ou o nome do diretório, com namespace do plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, ou `/my-plugin:fancy` com `name: fancy` |488| Subdiretório `skills/` do plugin | `name` do frontmatter ou o nome do diretório, com namespace do plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, ou `/my-plugin:fancy` com `name: fancy` |
489| `SKILL.md` na raiz do plugin | `name` do frontmatter, com o nome do diretório do plugin como fallback | `my-plugin/SKILL.md` com `name: review` → `/my-plugin:review`. Consulte [uma única skill na raiz do plugin](/docs/pt/plugins/components#skills) |489| `SKILL.md` na raiz do plugin | `name` do frontmatter, com o nome do diretório do plugin como fallback | `my-plugin/SKILL.md` com `name: review` → `/my-plugin:review`. Consulte [uma única skill na raiz do plugin](/docs/pt/plugins/components#skills) |
490| Skill [sincronizada do claude.ai](#how-synced-skills-behave) | O nome da skill na sua conta do claude.ai, prefixado com `anthropic-skills:` | Skill da conta `deploy` → `/anthropic-skills:deploy`, ou `/deploy` enquanto nenhum outro comando usar esse nome |490| Skill [sincronizada do claude.ai](#how-synced-skills-behave) | O nome da skill na sua conta claude.ai, prefixado com `anthropic-skills:` | Skill da conta `deploy` → `/anthropic-skills:deploy`, ou `/deploy` enquanto nenhum outro comando usar esse nome |
491 491
492Em uma skill de plugin, o `name` do frontmatter substitui o nome do diretório no último segmento do comando, então `my-plugin/skills/review/SKILL.md` com `name: fancy` se torna `/my-plugin:fancy`. O `/fancy` sem prefixo também invoca a skill, a menos que outro comando já use esse nome. Se o `name` que você escrever já começar com o prefixo do próprio plugin, o Claude Code não adiciona o prefixo novamente na v2.1.246 ou posterior. Por exemplo, `name: my-plugin:fancy` ainda se torna `/my-plugin:fancy`. Da v2.1.216 até a v2.1.245, o Claude Code duplicava o prefixo quando o `name` já o continha.492Em uma skill de plugin, o `name` do frontmatter substitui o nome do diretório no último segmento do comando, então `my-plugin/skills/review/SKILL.md` com `name: fancy` se torna `/my-plugin:fancy`. O `/fancy` simples também invoca a skill, a menos que outro comando já use esse nome. Se o `name` que você escrever já começar com o próprio prefixo do plugin, o Claude Code não adiciona o prefixo novamente na v2.1.246 ou posterior. Por exemplo, `name: my-plugin:fancy` ainda se torna `/my-plugin:fancy`. Da v2.1.216 até a v2.1.245, o Claude Code duplicava o prefixo quando o `name` já o continha.
493 493
494Em [sessões não interativas](/docs/pt/headless), os nomes `help` e `feedback` não são reservados para seus comandos integrados exclusivos do terminal, então uma skill de plugin com um desses nomes mantém seu comando sem prefixo ali. O nome de todos os outros comandos integrados exclusivos do terminal, como `/login`, permanece reservado, mesmo que o comando não possa ser executado nessas sessões.494Em [sessões não interativas](/docs/pt/headless), os nomes `help` e `feedback` não são reservados para seus comandos integrados exclusivos do terminal, então uma skill de plugin com um desses nomes mantém seu comando simples ali. O nome de todos os outros comandos integrados exclusivos do terminal, como `/login`, permanece reservado, mesmo que o comando não possa ser executado nessas sessões.
495 495
496Para um `SKILL.md` na raiz do plugin, não há diretório de skill de onde obter o nome, então `name` fornece todo o segmento final. Sem um campo `name`, o Claude Code recorre ao nome do diretório do plugin.496Para um `SKILL.md` na raiz do plugin, não há diretório de skill de onde obter o nome, então `name` fornece todo o segmento final. Sem um campo `name`, o Claude Code recorre ao nome do diretório do plugin.
497 497
505| :- | :- |505| :- | :- |
506| `$ARGUMENTS` | Todos os argumentos passados ao invocar a skill. Quando nenhum placeholder recebe um argumento, o Claude Code os anexa como `ARGUMENTS: <value>`. Consulte [Passar argumentos para skills](#pass-arguments-to-skills). |506| `$ARGUMENTS` | Todos os argumentos passados ao invocar a skill. Quando nenhum placeholder recebe um argumento, o Claude Code os anexa como `ARGUMENTS: <value>`. Consulte [Passar argumentos para skills](#pass-arguments-to-skills). |
507| `$ARGUMENTS[N]` | Acessa um argumento específico pelo índice baseado em 0, como `$ARGUMENTS[0]` para o primeiro argumento. |507| `$ARGUMENTS[N]` | Acessa um argumento específico pelo índice baseado em 0, como `$ARGUMENTS[0]` para o primeiro argumento. |
508| `$N` | Forma abreviada de `$ARGUMENTS[N]`, como `$0` para o primeiro argumento ou `$1` para o segundo. |508| `$N` | Abreviação de `$ARGUMENTS[N]`, como `$0` para o primeiro argumento ou `$1` para o segundo. |
509| `$name` | Argumento nomeado declarado na lista [`arguments`](#frontmatter-reference) do frontmatter. Os nomes são mapeados para as posições em ordem, então com `arguments: [issue, branch]` o placeholder `$issue` se expande para o primeiro argumento e `$branch` para o segundo. |509| `$name` | Argumento nomeado declarado na lista [`arguments`](#frontmatter-reference) do frontmatter. Os nomes são mapeados para posições em ordem, então com `arguments: [issue, branch]` o placeholder `$issue` se expande para o primeiro argumento e `$branch` para o segundo. |
510| `${CLAUDE_SESSION_ID}` | O ID da sessão atual. Útil para logs, para criar arquivos específicos da sessão ou para correlacionar a saída da skill com sessões. |510| `${CLAUDE_SESSION_ID}` | O ID da sessão atual. Útil para log, criação de arquivos específicos da sessão ou correlação da saída da skill com sessões. |
511| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh` ou `max`. Use isso para adaptar as instruções da skill à configuração de esforço ativa. |511| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh` ou `max`. Use isso para adaptar as instruções da skill à configuração de esforço ativa. |
512| `${CLAUDE_SKILL_DIR}` | O diretório que contém o arquivo `SKILL.md` da skill. Para skills de plugin, é 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 incluídos com a skill, independentemente do diretório de trabalho atual. |512| `${CLAUDE_SKILL_DIR}` | O diretório que contém 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 incluídos com a skill, independentemente do diretório de trabalho atual. |
513| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. É o mesmo caminho que os [hooks](/docs/pt/hooks#reference-scripts-by-path) e os servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use isso para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill está instalada. |513| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. Este é o mesmo caminho que [hooks](/docs/pt/hooks#reference-scripts-by-path) e servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use isso para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill está instalada. |
514| `${CLAUDE_PLUGIN_ROOT}` | O diretório de instalação do plugin. Substituído apenas em skills de plugin. Use isso para referenciar scripts ou arquivos incluídos em qualquer lugar do plugin, incluindo recursos compartilhados entre as skills do plugin. Consulte [variáveis de ambiente de plugins](/docs/pt/plugins/manifest-reference#environment-variables). |514| `${CLAUDE_PLUGIN_ROOT}` | O diretório de instalação do plugin. Substituído apenas em skills de plugin. Use isso para referenciar scripts ou arquivos incluídos em qualquer lugar do plugin, incluindo recursos compartilhados entre as skills do plugin. Consulte [variáveis de ambiente de plugin](/docs/pt/plugins/manifest-reference#environment-variables). |
515| `${CLAUDE_PLUGIN_DATA}` | O [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) do plugin, que sobrevive às atualizações do plugin. Substituído apenas em skills de plugin. Use isso para referenciar dependências instaladas, arquivos gerados ou caches que precisam sobreviver a uma atualização. |515| `${CLAUDE_PLUGIN_DATA}` | O [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) do plugin, que sobrevive às atualizações do plugin. Substituído apenas em skills de plugin. Use isso para referenciar dependências instaladas, arquivos gerados ou caches que devem sobreviver a uma atualização. |
516 516
517O Claude Code substitui `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` em dois lugares: no conteúdo markdown da skill e nas regras de Bash do frontmatter [`allowed-tools`](#frontmatter-reference). Em uma skill de plugin, o Claude Code substitui `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` nos mesmos dois lugares. Usar a mesma variável em ambos os lugares permite que uma skill execute um script incluído sem um prompt de permissão. A skill a seguir mostra o padrão:517O Claude Code substitui `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` em dois lugares: no conteúdo markdown da skill e nas regras de Bash no frontmatter [`allowed-tools`](#frontmatter-reference). Em uma skill de plugin, o Claude Code substitui `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` nos mesmos dois lugares. Usar a mesma variável em ambos os lugares permite que uma skill execute um script incluído sem um prompt de permissão. A skill a seguir mostra o padrão:
518 518
519```yaml theme={null}519```yaml theme={null}
520---520---
526Run `${CLAUDE_SKILL_DIR}/scripts/render.sh <csv-file>` to render the chart.526Run `${CLAUDE_SKILL_DIR}/scripts/render.sh <csv-file>` to render the chart.
527```527```
528 528
529Se essa skill estiver instalada em `~/.claude/skills/render-chart/`, ambas as ocorrências de `${CLAUDE_SKILL_DIR}` se expandem para esse diretório. A regra de `allowed-tools` então corresponde exatamente ao comando que o corpo da skill instrui o Claude a executar, então o script é executado sem solicitar confirmação.529Se esta skill estiver instalada em `~/.claude/skills/render-chart/`, ambas as ocorrências de `${CLAUDE_SKILL_DIR}` se expandem para esse diretório. A regra `allowed-tools` então corresponde exatamente ao comando que o corpo da skill instrui Claude a executar, então o script é executado sem pedir confirmação.
530 530
531A substituição de `${CLAUDE_PROJECT_DIR}` requer o Claude Code v2.1.196 ou posterior.531Os argumentos indexados usam aspas no estilo do shell, então coloque valores com várias palavras entre aspas para passá-los como um único argumento. Por exemplo, `/my-skill "hello world" second` faz `$0` se expandir para `hello world` e `$1` para `second`. O placeholder `$ARGUMENTS` sempre se expande para a string completa de argumentos conforme digitada.
532
533Os argumentos indexados usam aspas no estilo do shell, então coloque valores com várias palavras entre aspas para passá-los como um único argumento. Por exemplo, `/my-skill "hello world" second` faz `$0` se expandir para `hello world` e `$1` para `second`. O placeholder `$ARGUMENTS` sempre se expande para a string completa de argumentos como foi digitada.
534 532
535Um placeholder indexado sem argumento correspondente, como `$2` quando apenas um argumento foi passado, permanece inalterado no conteúdo. Um placeholder nomeado do frontmatter [`arguments`](#frontmatter-reference) sem argumento correspondente se expande para uma string vazia.533Um placeholder indexado sem argumento correspondente, como `$2` quando apenas um argumento foi passado, permanece inalterado no conteúdo. Um placeholder nomeado do frontmatter [`arguments`](#frontmatter-reference) sem argumento correspondente se expande para uma string vazia.
536 534
537Se você passar um valor de argumento que contenha texto como `$1` ou `$ARGUMENTS`, o Claude Code o insere como texto literal e não o expande. Por exemplo, se o corpo de uma skill contém `Summarize $0` e você executa `/summarize "$ARGUMENTS from yesterday"`, o Claude recebe `Summarize $ARGUMENTS from yesterday`. O Claude Code ainda substitui variáveis `${CLAUDE_*}`, como `${CLAUDE_SKILL_DIR}`, depois de inserir os argumentos.535Se você passar um valor de argumento que contenha texto como `$1` ou `$ARGUMENTS`, o Claude Code o insere como texto literal e não o expande. Por exemplo, se o corpo de uma skill contiver `Summarize $0` e você executar `/summarize "$ARGUMENTS from yesterday"`, Claude recebe `Summarize $ARGUMENTS from yesterday`. O Claude Code ainda substitui variáveis `${CLAUDE_*}`, como `${CLAUDE_SKILL_DIR}`, depois de inserir os argumentos.
538 536
539Para incluir um `$` literal antes de um dígito, de `ARGUMENTS` ou de um nome de argumento declarado, como `$1.00` em texto corrido, escape-o com uma barra invertida: `\$1.00`. Uma barra invertida antes de qualquer outro `$` permanece inalterada. Apenas uma única barra invertida imediatamente antes do token o escapa. Uma barra invertida duplicada, como `\\$1`, mantém ambas as barras invertidas, e `$1` ainda se expande para o valor do argumento. O escape com barra invertida abrange apenas esses placeholders de argumentos. Uma barra invertida não impede a substituição de uma variável `${CLAUDE_*}` onde a variável se aplica.537Para incluir um `$` literal antes de um dígito, de `ARGUMENTS` ou de um nome de argumento declarado, como `$1.00` em prosa, escape-o com uma barra invertida: `\$1.00`. Uma barra invertida antes de qualquer outro `$` permanece inalterada. Apenas uma única barra invertida diretamente antes do token o escapa. Uma barra invertida dupla, como `\\$1`, mantém ambas as barras invertidas no lugar, e `$1` ainda se expande para o valor do argumento. O escape com barra invertida abrange apenas esses placeholders de argumentos. Uma barra invertida não impede a substituição de uma variável `${CLAUDE_*}` onde a variável se aplica.
540 538
541**Exemplo usando substituições:**539**Exemplo usando substituições:**
542 540
555 Adicionar arquivos de suporte553 Adicionar arquivos de suporte
556</h3>554</h3>
557 555
558As skills podem incluir vários arquivos em seu diretório. Isso mantém o `SKILL.md` focado no essencial, ao mesmo tempo que permite ao 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 ser carregados no contexto toda vez que a skill é executada.556As skills podem incluir vários arquivos em seu diretório. Isso mantém o `SKILL.md` focado no essencial, permitindo que Claude acesse 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 ser carregados no contexto toda vez que a skill é executada.
559 557
560```text theme={null}558```text theme={null}
561my-skill/559my-skill/
566 └── helper.py (utility script - executed, not loaded)564 └── helper.py (utility script - executed, not loaded)
567```565```
568 566
569Referencie os arquivos de suporte a partir do `SKILL.md` para que o Claude saiba o que cada arquivo contém e quando carregá-lo:567Referencie os arquivos de suporte a partir do `SKILL.md` para que Claude saiba o que cada arquivo contém e quando carregá-lo:
570 568
571```markdown theme={null}569```markdown theme={null}
572## Additional resources570## Additional resources
575- For usage examples, see [examples.md](examples.md)573- For usage examples, see [examples.md](examples.md)
576```574```
577 575
578<Tip>Mantenha o `SKILL.md` com menos de 500 linhas. Mova o material de referência detalhado para arquivos separados.</Tip>576<Tip>Mantenha o `SKILL.md` com menos de 500 linhas. Mova material de referência detalhado para arquivos separados.</Tip>
579 577
580<h3 id="control-who-invokes-a-skill">578<h3 id="control-who-invokes-a-skill">
581 Controlar quem invoca uma skill579 Controlar quem invoca uma skill
582</h3>580</h3>
583 581
584Por padrão, tanto você quanto o Claude podem invocar qualquer skill. Você pode digitar `/skill-name` para invocá-la diretamente, e o Claude pode carregá-la automaticamente quando for relevante para sua conversa. Dois campos do frontmatter permitem restringir isso:582Por 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 for relevante para sua conversa. Dois campos do frontmatter permitem restringir isso:
585 583
586* **`disable-model-invocation: true`**: o Claude não pode invocar a skill por conta própria. Use isso para fluxos de trabalho com efeitos colaterais ou cujo momento você deseja controlar, como `/commit`, `/deploy` ou `/send-slack-message`. Você não quer que o Claude decida fazer deploy porque seu código parece pronto.584* **`disable-model-invocation: true`**: Claude não pode invocar a skill por conta própria. Use isso para fluxos de trabalho com efeitos colaterais ou cujo momento você deseja controlar, como `/commit`, `/deploy` ou `/send-slack-message`. Você não quer que Claude decida fazer deploy porque seu código parece pronto.
587 585
588* **`user-invocable: false`**: apenas o Claude pode invocar a skill. Use isso para conhecimento de fundo que não é acionável como comando. Uma skill `legacy-system-context` explica como um sistema antigo funciona. O Claude deve saber disso quando for relevante, mas `/legacy-system-context` não é uma ação significativa para os usuários executarem.586* **`user-invocable: false`**: Apenas Claude pode invocar a skill. Use isso para conhecimento de fundo que não é acionável como comando. Uma skill `legacy-system-context` explica como um sistema antigo funciona. Claude deve saber disso quando relevante, mas `/legacy-system-context` não é uma ação significativa para os usuários executarem.
589 587
590Este exemplo cria uma skill de deploy. Se você definir `disable-model-invocation: true`, o Claude não poderá executar a skill automaticamente:588Este exemplo cria uma skill de deploy. Se você definir `disable-model-invocation: true`, Claude não pode executar a skill automaticamente:
591 589
592```yaml theme={null}590```yaml theme={null}
593---591---
6044. Verify the deployment succeeded6024. Verify the deployment succeeded
605```603```
606 604
607Se o Claude tentar mesmo assim, o Claude Code bloqueia a chamada e o instrui a não reproduzir as etapas de deploy de outra forma, então espere que o Claude sugira que você mesmo execute `/deploy`.605Se Claude tentar mesmo assim, o Claude Code bloqueia a chamada e o instrui a não reproduzir as etapas de deploy de outra forma, então espere que Claude sugira que você mesmo execute `/deploy`.
608 606
609Veja como os dois campos afetam a invocação e o carregamento no contexto:607Veja como os dois campos afetam a invocação e o carregamento no contexto:
610 608
611| Frontmatter | Você pode invocar | O Claude pode invocar | Quando é carregado no contexto |609| Frontmatter | Você pode invocar | Claude pode invocar | Quando é carregada no contexto |
612| :- | :- | :- | :- |610| :- | :- | :- | :- |
613| (padrão) | Sim | Sim | Descrição sempre no contexto, skill completa carregada quando invocada |611| (padrão) | Sim | Sim | Descrição sempre no contexto, skill completa é carregada quando invocada |
614| `disable-model-invocation: true` | Sim | Não por conta própria | Descrição não está no contexto, skill completa carregada quando invocada |612| `disable-model-invocation: true` | Sim | Não por conta própria | Descrição não está no contexto, skill completa é carregada quando invocada |
615| `user-invocable: false` | Não | Sim | Descrição sempre no contexto, skill completa carregada quando invocada |613| `user-invocable: false` | Não | Sim | Descrição sempre no contexto, skill completa é carregada quando invocada |
616 614
617<Note>615<Note>
618 Em uma sessão normal, as descrições das skills são carregadas no contexto para que o Claude saiba o que está disponível, mas o conteúdo completo da skill só é carregado quando invocado. [Subagentes com skills pré-carregadas](/docs/pt/sub-agents#preload-skills-into-subagents) funcionam de forma diferente: o conteúdo completo da skill é injetado na inicialização.616 Em uma sessão normal, as descrições das skills são carregadas no contexto para que Claude saiba o que está disponível, mas o conteúdo completo da skill só é carregado quando invocada. [Subagentes com skills pré-carregadas](/docs/pt/sub-agents#preload-skills-into-subagents) funcionam de forma diferente: o conteúdo completo da skill é injetado na inicialização.
619</Note>617</Note>
620 618
621<h4 id="where-you-write-the-skill’s-name">619<h4 id="where-you-write-the-skill’s-name">
622 Onde você escreve o nome da skill620 Onde você escreve o nome da skill
623</h4>621</h4>
624 622
625Para executar uma skill diretamente, coloque seu nome no início da mensagem. Após texto simples, o nome dá ao Claude permissão para executar a skill, mas não a executa:623Para executar uma skill diretamente, coloque o nome dela no início da sua mensagem. Após texto simples, o nome dá a Claude permissão para executar a skill, mas não a executa:
626 624
627| Onde | Exemplo | O que acontece |625| Onde | Exemplo | O que acontece |
628| :- | :- | :- |626| :- | :- | :- |
629| No início da sua mensagem | `/deploy staging` | O Claude Code executa a skill diretamente |627| No início da sua mensagem | `/deploy staging` | O Claude Code executa a skill diretamente |
630| Após texto simples, como uma palavra separada sem pontuação anexada | `go ahead and /deploy to staging` | Nada é executado diretamente. O nome conta como sua permissão para aquela mensagem: o Claude pode executar a skill enquanto responde e avalia pela sua redação se você pediu isso |628| Após texto simples, como uma palavra separada sem pontuação anexada | `go ahead and /deploy to staging` | Nada é executado diretamente. O nome conta como sua permissão para aquela mensagem: Claude pode executar a skill enquanto responde e julga, pelas suas palavras, se você pediu isso |
631 629
632Para escrever sobre a skill sem permitir uma execução, omita a barra.630Para escrever sobre a skill sem permitir uma execução, omita a barra.
633 631
635 Ciclo de vida do conteúdo da skill633 Ciclo de vida do conteúdo da skill
636</h3>634</h3>
637 635
638Quando você ou o Claude invocam uma skill, o conteúdo renderizado do `SKILL.md` entra na conversa como uma única mensagem e permanece ali nos turnos seguintes. Essa persistência se aplica às instruções da skill, não às suas permissões: uma concessão de [`allowed-tools`](#pre-approve-tools-for-a-skill) é removida quando você envia sua próxima mensagem. O Claude Code não relê o arquivo da skill em turnos posteriores, então escreva as orientações que devem valer durante toda uma tarefa como instruções permanentes, e não como etapas únicas.636Quando você ou Claude invocam uma skill, o conteúdo renderizado do `SKILL.md` entra na conversa como uma única mensagem e permanece ali nos turnos seguintes. Essa persistência se aplica às instruções da skill, não às suas permissões: uma concessão de [`allowed-tools`](#pre-approve-tools-for-a-skill) é removida quando você envia sua próxima mensagem. O Claude Code não relê o arquivo da skill nos turnos seguintes, então escreva orientações que devem valer durante toda uma tarefa como instruções permanentes, e não como etapas únicas.
639 637
640Quando o Claude reinvoca uma skill cujo conteúdo renderizado é idêntico à cópia já presente no contexto, o Claude Code adiciona uma breve nota de que a skill já está carregada, em vez de uma segunda cópia do conteúdo. Quando o conteúdo renderizado é diferente, porque os argumentos mudaram ou um comando de [contexto dinâmico](#inject-dynamic-context) produziu uma nova saída, o Claude Code anexa o conteúdo completo novamente.638Quando Claude invoca novamente uma skill cujo conteúdo renderizado é idêntico à cópia já presente no contexto, o Claude Code adiciona uma breve nota de que a skill já está carregada, em vez de uma segunda cópia do conteúdo. Quando o conteúdo renderizado é diferente, porque os argumentos mudaram ou um comando de [contexto dinâmico](#inject-dynamic-context) produziu uma nova saída, o Claude Code anexa o conteúdo completo novamente.
641 639
642A [compactação automática](/docs/pt/how-claude-code-works#when-context-fills-up) mantém as skills invocadas dentro de um orçamento de tokens. Quando a conversa é resumida para liberar contexto, o Claude Code reanexa a invocação mais recente de cada skill após o resumo, mantendo os primeiros 5.000 tokens de cada uma. As skills reanexadas compartilham um orçamento combinado de 25.000 tokens. O Claude Code preenche esse orçamento começando pela skill invocada mais recentemente, então skills mais antigas podem ser descartadas por completo após a compactação se você tiver invocado muitas em uma sessão.640A [compactação automática](/docs/pt/how-claude-code-works#when-context-fills-up) mantém as skills invocadas dentro de um orçamento de tokens. Quando a conversa é resumida para liberar contexto, o Claude Code anexa novamente a invocação mais recente de cada skill após o resumo, mantendo os primeiros 5.000 tokens de cada uma. As skills anexadas novamente compartilham um orçamento combinado de 25.000 tokens. O Claude Code preenche esse orçamento a partir da skill invocada mais recentemente, então skills mais antigas podem ser descartadas por completo após a compactação se você tiver invocado muitas em uma sessão.
643 641
644Se o Claude parar de seguir uma skill no meio de uma sessão, consulte [O Claude para de seguir uma skill](#claude-stops-following-a-skill).642Se Claude parar de seguir uma skill no meio de uma sessão, consulte [Claude para de seguir uma skill](#claude-stops-following-a-skill).
645 643
646<h3 id="pre-approve-tools-for-a-skill">644<h3 id="pre-approve-tools-for-a-skill">
647 Pré-aprovar ferramentas para uma skill645 Pré-aprovar ferramentas para uma skill
648</h3>646</h3>
649 647
650O campo `allowed-tools` concede permissão para as ferramentas listadas durante o turno que invoca a skill, para que o Claude possa usá-las sem solicitar sua aprovação. A concessão é removida quando você envia sua próxima mensagem, mesmo que o conteúdo da skill [permaneça no contexto](#skill-content-lifecycle); invocar a skill novamente a reaplica para aquele turno. Ele não restringe quais ferramentas estão disponíveis: todas as ferramentas continuam podendo ser chamadas, e suas [configurações de permissão](/docs/pt/permissions) ainda regem as ferramentas que não estão listadas. Para pré-aprovar ferramentas para a sessão inteira em vez de um único turno, adicione regras de allow a essas configurações de permissão.648O campo `allowed-tools` concede permissão para as ferramentas listadas durante o turno que invoca a skill, para que Claude possa usá-las sem solicitar sua aprovação. A concessão é removida quando você envia sua próxima mensagem, mesmo que o conteúdo da skill [permaneça no contexto](#skill-content-lifecycle); invocar a skill novamente a reaplica para aquele turno. Ele não restringe quais ferramentas estão disponíveis: todas as ferramentas continuam podendo ser chamadas, e suas [configurações de permissão](/docs/pt/permissions) ainda regem as ferramentas que não estão listadas. Para pré-aprovar ferramentas para a sessão inteira em vez de um único turno, adicione regras allow a essas configurações de permissão.
651 649
652A confiança no workspace não restringe este campo. O Claude Code aplica o `allowed-tools` de uma skill de projeto mesmo em uma execução com `-p` em uma pasta na qual você nunca confiou. Uma skill pode conceder a si mesma amplo acesso a ferramentas, então revise o `allowed-tools` das skills incluídas em um repositório antes de executar o Claude Code nele. Para desconsiderar o campo em skills de repositório em toda a sua organização, consulte [Quando apenas regras de permissão gerenciadas se aplicam](#when-only-managed-permission-rules-apply).650A confiança do workspace não restringe este campo. O Claude Code aplica o `allowed-tools` de uma skill de projeto mesmo em uma execução `-p` em uma pasta na qual você nunca confiou. Uma skill pode conceder a si mesma amplo acesso a ferramentas, então revise o `allowed-tools` das skills incluídas em um repositório antes de executar o Claude Code ali. Para desconsiderar o campo em skills de repositório em toda a sua organização, consulte [Quando apenas regras de permissão gerenciadas se aplicam](#when-only-managed-permission-rules-apply).
653 651
654Esta skill permite que o Claude execute comandos git sem aprovação a cada uso sempre que você a invocar:652Esta skill permite que Claude execute comandos git sem aprovação a cada uso sempre que você a invoca:
655 653
656```yaml theme={null}654```yaml theme={null}
657---655---
662---660---
663```661```
664 662
665Para remover ferramentas do conjunto disponível do Claude enquanto uma skill está ativa, liste-as em `disallowed-tools` no frontmatter da skill. A restrição é removida quando você envia sua próxima mensagem. Assim como as regras de deny, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. Para bloquear ferramentas em todas as skills e prompts, adicione regras de deny nas suas [configurações de permissão](/docs/pt/permissions).663Para remover ferramentas do conjunto disponível para Claude enquanto uma skill está ativa, liste-as em `disallowed-tools` no frontmatter da skill. A restrição é removida quando você envia sua próxima mensagem. Assim como as regras deny, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. Para bloquear ferramentas em todas as skills e prompts, adicione regras deny nas suas [configurações de permissão](/docs/pt/permissions).
666 664
667<h4 id="when-only-managed-permission-rules-apply">665<h4 id="when-only-managed-permission-rules-apply">
668 Quando apenas regras de permissão gerenciadas se aplicam666 Quando apenas regras de permissão gerenciadas se aplicam
670 668
671Quando sua organização define `allowManagedPermissionRulesOnly` nas configurações gerenciadas, o Claude Code ignora `allowed-tools` em skills de projeto e pessoais e nas [outras origens listadas na entrada da configuração](/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Isso requer o Claude Code v2.1.282 ou posterior.669Quando sua organização define `allowManagedPermissionRulesOnly` nas configurações gerenciadas, o Claude Code ignora `allowed-tools` em skills de projeto e pessoais e nas [outras origens listadas na entrada da configuração](/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Isso requer o Claude Code v2.1.282 ou posterior.
672 670
673As ferramentas que uma skill afetada lista passam, em vez disso, pelas regras gerenciadas da sua organização e pelo prompt de permissão normal. Execute `/status` para listar cada skill cujo `allowed-tools` o Claude Code ignorou até o momento na sessão. Um comando injetado na skill que nenhuma regra gerenciada permite segue as [Verificações de permissão em comandos injetados](#permission-checks-on-injected-commands).671As ferramentas que uma skill afetada lista passam pelas regras gerenciadas da sua organização e pelo prompt de permissão normal. Execute `/status` para listar cada skill cujo `allowed-tools` o Claude Code ignorou até o momento na sessão. Um comando injetado na skill que nenhuma regra gerenciada permite segue as [Verificações de permissão em comandos injetados](#permission-checks-on-injected-commands).
674 672
675<h3 id="pass-arguments-to-skills">673<h3 id="pass-arguments-to-skills">
676 Passar argumentos para skills674 Passar argumentos para skills
677</h3>675</h3>
678 676
679Tanto você quanto o Claude podem passar argumentos ao invocar uma skill. Os argumentos ficam disponíveis por meio do placeholder `$ARGUMENTS`.677Tanto você quanto Claude podem passar argumentos ao invocar uma skill. Os argumentos ficam disponíveis por meio do placeholder `$ARGUMENTS`.
680 678
681Esta skill corrige uma issue do GitHub pelo número. O placeholder `$ARGUMENTS` é substituído pelo que vier após o nome da skill:679Esta skill corrige uma issue do GitHub pelo número. O placeholder `$ARGUMENTS` é substituído pelo que vier após o nome da skill:
682 680
6965. Create a commit6945. Create a commit
697```695```
698 696
699Quando você executa `/fix-issue 123`, o Claude recebe "Fix GitHub issue 123 following our coding standards..."697Quando você executa `/fix-issue 123`, Claude recebe "Fix GitHub issue 123 following our coding standards..."
700 698
701Se você invocar uma skill com argumentos, mas nenhum placeholder no conteúdo da skill receber um, o Claude Code anexa `ARGUMENTS: <your input>` ao final do conteúdo da skill para que o Claude ainda veja o que você digitou. Um placeholder é `$ARGUMENTS`, uma forma indexada como `$1` ou um argumento nomeado. Um placeholder indexado sem argumento na sua posição permanece como texto literal e não conta como tendo recebido um. Um placeholder nomeado conta mesmo quando sua posição não tem argumento, porque ele se expande para uma string vazia.699Se você invocar uma skill com argumentos, mas nenhum placeholder no conteúdo da skill receber um, o Claude Code anexa `ARGUMENTS: <your input>` ao final do conteúdo da skill para que Claude ainda veja o que você digitou. Um placeholder é `$ARGUMENTS`, uma forma indexada como `$1` ou um argumento nomeado. Um placeholder indexado sem argumento em sua posição permanece como texto literal e não conta como tendo recebido um. Um placeholder nomeado conta mesmo quando sua posição não tem argumento, porque ele se expande para uma string vazia.
702 700
703Você também pode empilhar várias skills no início de uma mensagem. Digitar `/write-tests /fix-issue 123` carrega ambas as skills e passa o texto final `123` como `$ARGUMENTS` para cada uma delas.701Você também pode empilhar várias skills no início de uma mensagem. Digitar `/write-tests /fix-issue 123` carrega ambas as skills e passa o texto final `123` como `$ARGUMENTS` para cada uma delas.
704 702
705O Claude Code expande a primeira skill mais até cinco outras empilhadas depois dela. A expansão para no primeiro token que não seja uma skill inline invocável pelo usuário, então uma skill que é executada como um [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/pt/code-review#review-a-diff-locally), ou uma cujos argumentos podem começar com um comando de barra, como `/loop`, também encerra a sequência ali. Esse token e tudo o que vem depois dele se tornam o texto de argumentos para todas as skills expandidas. `/code-review` é executado como um subagente bifurcado a partir da v2.1.218; em versões anteriores, ele era executado inline e empilhado.703O Claude Code expande a primeira skill mais até cinco outras empilhadas depois dela. A expansão para no primeiro token que não seja uma skill inline invocável pelo usuário, então uma skill que é executada como um [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/pt/code-review#review-a-diff-locally), ou uma cujos argumentos possam começar com um comando de barra, como `/loop`, também encerra a sequência ali. Esse token e tudo o que vem depois dele se tornam o texto de argumento para cada skill expandida. `/code-review` é executada como um subagente bifurcado a partir da v2.1.218; em versões anteriores, ela era executada inline e empilhada.
706 704
707Para acessar argumentos individuais pela posição, use `$ARGUMENTS[N]` ou a forma mais curta `$N`:705Para acessar argumentos individuais por posição, use `$ARGUMENTS[N]` ou a forma mais curta `$N`:
708 706
709```yaml theme={null}707```yaml theme={null}
710---708---
716Preserve all existing behavior and tests.714Preserve all existing behavior and tests.
717```715```
718 716
719Executar `/migrate-component SearchBar JavaScript TypeScript` substitui `$ARGUMENTS[0]` por `SearchBar`, `$ARGUMENTS[1]` por `JavaScript` e `$ARGUMENTS[2]` por `TypeScript`. A mesma skill usando a forma abreviada `$N`:717Executar `/migrate-component SearchBar JavaScript TypeScript` substitui `$ARGUMENTS[0]` por `SearchBar`, `$ARGUMENTS[1]` por `JavaScript` e `$ARGUMENTS[2]` por `TypeScript`. A mesma skill usando a abreviação `$N`:
720 718
721```yaml theme={null}719```yaml theme={null}
722---720---
843* Quando você invoca uma skill bifurcada enquanto uma invocação anterior da mesma skill ainda está em execução841* Quando você invoca uma skill bifurcada enquanto uma invocação anterior da mesma skill ainda está em execução
844* Quando uma [scheduled task](/docs/pt/scheduled-tasks) dispara com a skill como seu prompt842* Quando uma [scheduled task](/docs/pt/scheduled-tasks) dispara com a skill como seu prompt
845 843
844Quando um agente em um [fluxo de trabalho dinâmico](/docs/pt/workflows) invoca uma skill bifurcada, esse agente espera e recebe o resultado, mesmo quando a skill não define `background: false`. Antes da v2.1.295, Claude Code não esperava nesse caso, e quando a skill era executada em segundo plano, seu resultado chegava à sua conversa principal em vez de chegar a esse agente.
845
846Um fork em background também é executado com o [conjunto de ferramentas mais estreito que se aplica a subagentes em background](/docs/pt/sub-agents#run-subagents-in-foreground-or-background): o subagente da skill é um tipo de agente regular, então a isenção para subagentes que bifurcam a conversa não o cobre. Se as etapas de sua skill dependem de uma ferramenta fora desse conjunto, defina `background: false` para manter o conjunto completo de ferramentas.846Um fork em background também é executado com o [conjunto de ferramentas mais estreito que se aplica a subagentes em background](/docs/pt/sub-agents#run-subagents-in-foreground-or-background): o subagente da skill é um tipo de agente regular, então a isenção para subagentes que bifurcam a conversa não o cobre. Se as etapas de sua skill dependem de uma ferramenta fora desse conjunto, defina `background: false` para manter o conjunto completo de ferramentas.
847 847
848Uma skill bifurcada que é executada em background aplica suas edições fora dos [checkpoints](/docs/pt/checkpointing) de sua sessão, então `/rewind` não as desfaz; use git para revertê-las.848Uma skill bifurcada que é executada em background aplica suas edições fora dos [checkpoints](/docs/pt/checkpointing) de sua sessão, então `/rewind` não as desfaz; use git para revertê-las.