Perguntas

As skills funcionam do mesmo jeito no claude.ai, na API e no Claude Code?

O formato SKILL.md é comum, mas cada produto instala skills do seu jeito. O claude.ai recebe um zip para um único usuário, a API do Claude recebe envios para um workspace inteiro e o Claude Code lê pastas do disco. Uma skill enviada ao claude.ai não fica disponível na API, nem o contrário.

Onde cada produto guarda as skills

O claude.ai recebe skills personalizadas como arquivos zip em Settings > Features, nos planos Pro, Max, Team e Enterprise com a execução de código ativada, e cada envio fica restrito a um usuário. A API as recebe pelos endpoints /v1/skills, roda-as com a ferramenta de execução de código e as compartilha com todo o workspace. O Claude Code dispensa envio: ele lê ~/.claude/skills/ e o .claude/skills/ do projeto.

O ambiente de execução também muda

Na API, uma skill roda em um contêiner sem acesso à rede e só com os pacotes já instalados. No claude.ai esse acesso pode ser total, parcial ou inexistente, conforme as configurações do usuário e do administrador. No Claude Code ele é o mesmo de qualquer outro programa do computador. Assim, uma skill que chama um serviço externo pode funcionar no Claude Code e falhar na API; diga isso no campo compatibility.

Um frontmatter que sobrevive ao envio

O Claude Code aceita campos que a especificação não define, como disable-model-invocation. Envios ao claude.ai e à Skills API, e o empacotamento com package_skill.py do anthropics/skills, aceitam só os seis campos da especificação: name, description, license, compatibility, metadata e allowed-tools. Qualquer outro gera erro em vez de ser ignorado. A documentação da plataforma da Anthropic ainda proíbe em name tags XML e as palavras "anthropic" e "claude".