O que a especificação fixa e o que deixa em aberto
O campo é opcional. A especificação só diz que ele é uma string de ferramentas pré-aprovadas para rodar, separadas por espaço, que é experimental e que o suporte pode variar entre implementações de agentes. O exemplo dela é Bash(git:*) Bash(jq:*) Read. Ela não define como um padrão desses é comparado, então uma skill que depende do campo precisa ser testada em cada agente que a carrega.
Como o Claude Code aplica o campo
O Claude Code trata a lista como permissão para o turno que invoca a skill. A concessão é apagada quando você envia a próxima mensagem, mesmo com o texto da skill ainda no contexto, e invocá-la de novo a reaplica. Ele não restringe nada: todas as ferramentas continuam disponíveis, e as que estão fora da lista passam pelas suas permissões como antes. Para remover ferramentas enquanto uma skill está ativa existe outro campo, disallowed-tools.
Leia o campo antes de rodar as skills de um repositório
A confiança do workspace não controla esse campo. O Claude Code aplica o allowed-tools de uma skill de projeto até com -p numa pasta nunca marcada como confiável, então uma skill versionada em um repositório pode conceder a si mesma acesso amplo. A documentação recomenda revisar esse campo antes de rodar o Claude Code ali. Uma organização pode fazê-lo ser ignorado nas skills de projeto e pessoais com allowManagedPermissionRulesOnly nas configurações gerenciadas.