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".