Apostila · Skills de IA, volume II de VI

O mesmo
ficheiro,
sítios diferentes

O SKILL.md é idêntico em toda a parte. O que muda — e muda mais do que se espera — é a pasta onde se põe, o símbolo com que se chama, a ordem de precedência quando há conflitos, e a dúzia de campos que cada ferramenta acrescenta por cima da norma. Este volume percorre Claude Code, Codex, Cursor, Gemini CLI, claude.ai e a API, verificados nas fontes de cada fornecedor.

12 capítulosdas pastas ao governo em equipa
1 demo ao vivoda mesma skill em quatro ferramentas
5 fontesem ficha padronizada e datada

↓ role para começar

Capítulo 01 Fundamento

O mesmo ficheiro, sítios diferentes

O SKILL.md é o mesmo em toda a parte. O que muda — e muda mais do que se espera — é onde se põe, como se chama e o que cada ferramenta acrescenta por cima.

1.1 O mapa das pastas

FerramentaProjetoPessoalOutros
Claude Code.claude/skills/~/.claude/skills/Empresa (definições geridas), plugins
Codex / ChatGPT.agents/skills/
(na pasta actual e na raiz do repositório)
~/.agents/skills//etc/codex/skills (administração), embutidas
Cursor.agents/skills/
.cursor/skills/
~/.agents/skills/
~/.cursor/skills/
Lê também as do Claude e do Codex
Gemini CLI.gemini/skills/
.agents/skills/
~/.gemini/skills/
~/.agents/skills/
Embutidas, extensões
A observação que vale por todo o capítulo

Olhe para a coluna do projeto. .agents/skills/ aparece no Codex, no Cursor e no Gemini CLI — três fornecedores concorrentes a convergir na mesma pasta neutra, sem marca de ninguém.

O Claude Code usa .claude/skills/. Não é um problema — o Cursor lê as duas, e nada impede que um repositório tenha ambas. Mas é a decisão prática número um deste volume, e é tratada no capítulo 7.

1.2 Como se chama uma skill, em cada uma

FerramentaExplícitoAutomáticoGerir
Claude Code/nome-da-skill, com argumentos, e várias encadeadasSim, pela description/skills, /skill-doctor
ChatGPT@nome na conversaSimInterface
Codex CLI$nomeSim$skill-creator, $skill-installer
Cursor/ no chat do agenteSimModo personalizado (Option+Enter)
Gemini CLI/skills activate <nome>Sim, com pedido de consentimento/skills list, gemini skills install

Três símbolos diferentes para a mesma acção — /, @ e $. É trivial e é a primeira coisa que confunde quem alterna entre ferramentas.

1.3 Uma diferença que morde: a ordem de precedência

Duas ferramentas, ordens opostas

Quando duas skills têm o mesmo nome em níveis diferentes, qual ganha?

No Claude Code: empresa > pessoal > projeto. A sua skill pessoal sobrepõe-se à do projeto.

No Gemini CLI: embutidas < extensões < utilizador < espaço de trabalho. A do projeto sobrepõe-se à pessoal — exactamente o contrário.

No Codex: não funde nada — ambas aparecem no selector e quem escolhe é quem pede.

Nenhuma das três está errada; são decisões defensáveis diferentes. Mas significa que a mesma configuração produz comportamentos opostos conforme a ferramenta, e é uma origem de confusão que não se descobre a ler documentação de uma só.

1.4 O que este volume é

Delimitação e validade

Volume II de seis. Trata de onde e como, por ferramenta, e do uso por quem não programa (capítulo 5). O volume I trata do formato e de como se escreve uma skill que funcione — e é pressuposto aqui.

É o volume mais volátil da série, e assume-o: tudo o que se segue foi verificado nas fontes primárias de cada fornecedor em setembro de 2026, e as ligações estão no capítulo 12. O método — como se descobre onde uma ferramenta põe as skills, como se testa a portabilidade, como se diagnostica — dura mais que qualquer caminho de pasta.

Exercício 1.1 — Onde estão as suas

Na ferramenta que usa, liste as skills disponíveis com o comando da tabela 1.2 e descubra de que pasta vem cada uma. Se usa duas ferramentas, faça em ambas e compare. É frequente descobrir que uma delas não está a ver metade.

Capítulo 02 Ferramenta

Claude Code: a implementação mais completa

É a que mais estende o formato — o que a torna a mais poderosa e a que mais facilmente produz skills que só funcionam ali.

2.1 Onde põe, e o que descobre

ÂmbitoCaminhoVale para
Empresa.claude/skills/<nome>/SKILL.md nas definições geridasTodos os utilizadores da organização
Pessoal~/.claude/skills/<nome>/SKILL.mdTodos os seus projetos
Projeto.claude/skills/<nome>/SKILL.mdSó este projeto
Plugin<plugin>/skills/<nome>/SKILL.mdOnde o plugin estiver activo

Descobre também em pastas acima, até à raiz do repositório, e em pastas aninhadas abaixo — o que resolve bem o caso do monorepo: uma skill em apps/web/.claude/skills/ carrega quando o agente trabalha nessa subpasta, e fica disponível como apps/web:nome.

Uma comodidade que muda o ritmo de trabalho

O Claude Code vigia as pastas de skills e apanha alterações na sessão em curso, sem reiniciar. Editar o SKILL.md e testar imediatamente torna o ciclo de escrita e avaliação do volume I, cap. 8 muito mais rápido — e é a razão pela qual compensa desenvolver skills aqui mesmo que o destino seja outra ferramenta.

2.2 Invocar

# directa
/nome-da-skill

# com argumentos
/nome-da-skill argumento1 argumento2

# várias encadeadas, com argumentos no fim
/skill-1 /skill-2 argumentos

E automaticamente, pela description, a menos que a skill declare disable-model-invocation: true.

2.3 Os dois comandos que valem a pena conhecer

2.4 Os campos que só existem aqui

O Claude Code acrescenta uma dúzia de campos que não fazem parte da especificação:

CampoFaz
disable-model-invocationSó a pessoa pode invocar; o agente não
user-invocable: falseO inverso: só o agente
pathsLimita a skill a ficheiros que correspondam ao padrão
context: forkCorre num subagente isolado, sem sujar o contexto principal
backgroundEspera ou não pelo resultado
arguments, argument-hintArgumentos nomeados, para substituição no corpo
model, effortEscolhe o modelo e o esforço para esta skill
hooks, shell, agentIntegração com o resto do sistema
O que isto custa

São genuinamente úteis — context: fork e paths resolvem problemas reais. E cada um que usar torna a skill menos portável. Ao enviar para o claude.ai ou para a API, só os campos da especificação funcionam: name, description, license, compatibility e allowed-tools.

Não é uma razão para não os usar. É uma razão para decidir de antemão se aquela skill é portável ou é de casa, que é o assunto do capítulo 7.

2.5 Controlar o que aparece

// .claude/settings.local.json
{
  "skillOverrides": {
    "deploy": "off",                    // esconder por completo
    "legacy": "name-only",              // listar só o nome, sem descrição
    "review": "user-invocable-only"     // esconder do agente; a pessoa pode invocar
  },
  "disableBundledSkills": true,
  "skillListingBudgetFraction": 0.02,   // fatia do contexto para a listagem
  "skillListingMaxDescChars": 1536
}

O skillListingBudgetFraction é a resposta directa ao problema do volume I: há um orçamento de contexto para as descrições, e quando é ultrapassado as descrições são encurtadas — o que degrada a activação sem avisar. /skill-doctor mostra quando isso está a acontecer.

Exercício 2.1 — Corra o diagnóstico

Corra /skill-doctor e olhe para duas colunas: quais nunca foram usadas, e quanto custam em tokens. Desligue com skillOverrides as que não usa há um mês — não as apague, para poder voltar atrás — e volte a correr passada uma semana.

Capítulo 03 Ferramenta

Codex e ChatGPT: a mesma norma, outra casa

A implementação da OpenAI usa a pasta neutra, tem um instalador próprio, e é a única que dá acesso a skills a quem nunca abriu um terminal.

3.1 Onde põe

ÂmbitoCaminhoPara
Repositório (pasta actual)$CWD/.agents/skillsSkills específicas daquela pasta
Repositório (raiz)$REPO_ROOT/.agents/skillsSkills de toda a organização do repositório
Utilizador$HOME/.agents/skillsPessoais, entre repositórios
Administração/etc/codex/skillsPredefinições do sistema
SistemaEmbutidas no Codexskill-creator e outras
A diferença de filosofia, num detalhe

Repare no nome da pasta: .agents/, não .codex/. É uma escolha deliberada de neutralidade — a mesma pasta serve qualquer agente que respeite a norma, e é a razão pela qual o Cursor e o Gemini CLI também a leem.

E note a segunda diferença: quando duas skills partilham nome, o Codex não funde nem escolhe — mostra as duas no selector e deixa a decisão a quem pede. É mais transparente que a precedência silenciosa do capítulo 1.3, e obriga a escolher todas as vezes.

3.2 Invocar

3.3 As duas skills embutidas que interessam

SkillFaz
$skill-creatorConstrói uma skill nova, interactivamente — o equivalente ao do repositório oficial da Anthropic
$skill-installerDescarrega skills curadas a partir de repositórios. Não tem equivalente directo nas outras ferramentas

O instalador é conveniente e é exactamente onde o capítulo 11 do volume I se aplica com mais força: instalar com um comando não dispensa ler o que se instalou.

3.4 O ficheiro de configuração extra

Para além do SKILL.md, o Codex admite um agents/openai.yaml opcional com:

É a mesma decisão de desenho do Claude Code — estender o formato — resolvida ao contrário: as extensões ficam num ficheiro à parte em vez de no cabeçalho. Tem uma vantagem concreta de portabilidade: o SKILL.md mantém-se limpo e válido em qualquer ferramenta; outra simplesmente ignora o ficheiro extra.

3.5 O limite de listagem

Um número explícito, e o que acontece ao ultrapassá-lo

O Codex reserva para a lista inicial de skills no máximo 2% da janela de contexto, ou 8000 caracteres quando a janela é desconhecida. Com muitas skills instaladas, omite algumas e mostra um aviso.

É o mesmo problema do skillListingBudgetFraction do Claude Code, resolvido de forma diferente: aqui algumas skills desaparecem da lista; ali as descrições são encurtadas. Nos dois casos, o sintoma é o mesmo — uma skill que funcionava deixa de disparar quando se instalam mais, e ninguém liga uma coisa à outra.

3.6 Desligar

# ~/.codex/config.toml
[[skills.config]]
# entradas para desactivar skills concretas
Exercício 3.1 — A mesma skill nas duas pastas

Copie uma skill sua para .agents/skills/ e para .claude/skills/ no mesmo repositório. Abra as duas ferramentas e confirme que ambas a veem. Depois altere só uma das cópias e repare no que acontece — é o problema do capítulo 7.

Capítulo 04 Ferramenta

Cursor, Gemini CLI, e os outros quarenta

Duas implementações com decisões próprias interessantes, e a constatação de que a lista de ferramentas compatíveis já é grande demais para caber num capítulo.

4.1 Cursor: lê as pastas de toda a gente

ÂmbitoCaminhos
Projeto.agents/skills/ e .cursor/skills/
Utilizador~/.agents/skills/ e ~/.cursor/skills/

E, por compatibilidade, carrega também as pastas do Claude e do Codex — é a implementação mais tolerante das quatro. Descobre recursivamente qualquer subpasta que contenha um SKILL.md, o que permite organizar por temas sem configuração.

Duas coisas próprias do Cursor

Modo personalizado. Com Option+Enter (ou Alt+Enter), uma skill fica activa durante toda a sessão em vez de por pedido. É um modelo de uso diferente dos outros — a skill deixa de ser algo que dispara e passa a ser um modo de trabalho. Os campos icon e color servem para distinguir esses modos visualmente.

E uma limitação a ter presente: o Cursor não copia ~/.agents/skills/ nem skills locais não sincronizadas para agentes na nuvem. Uma skill que funciona na sua máquina pode não existir num agente remoto — é a versão desta ferramenta do problema do capítulo 6.

4.2 Gemini CLI: consentimento explícito

Precedência, do menor para o maior: embutidas < extensões < utilizador (~/.gemini/skills/ ou ~/.agents/skills/) < espaço de trabalho (.gemini/skills/ ou .agents/skills/).

# na sessão
/skills list [all] [nodesc]
/skills activate <nome>
/skills disable <nome>   /skills enable <nome>
/skills reload

# no terminal
gemini skills list --all
gemini skills install <url-do-repositório> --consent
gemini skills uninstall <nome> --scope workspace
A decisão de desenho mais interessante das quatro

Quando o Gemini identifica uma tarefa que corresponde a uma skill, chama uma ferramenta activate_skill e mostra-lhe um pedido de consentimento — com o propósito da skill e o acesso a pastas que exige — antes de a injectar no contexto.

É uma resposta directa ao risco do volume I, cap. 11: a activação deixa de ser silenciosa. O custo é fricção em cada uso; o ganho é que uma skill maliciosa tem de passar por si antes de agir. Repare também no --consent obrigatório na instalação — a mesma filosofia, no outro extremo.

4.3 E os outros

À data desta apostila, o registo oficial da norma lista cerca de meia centena de produtos compatíveis. Alguns que interessam a públicos diferentes:

ProdutoContexto
GitHub Copilot e VS CodeDentro do editor mais usado; documentação própria para skills de agente
JetBrains JuniePara quem trabalha em IntelliJ, PyCharm e afins
Goose, OpenCode, OpenHands, Roo CodeAgentes de código abertos, agnósticos quanto ao modelo
Amp, Factory, Kiro, OnaPlataformas de desenvolvimento com agentes
Laravel BoostSkills específicas de uma framework — um padrão que vai crescer
Databricks, Snowflake Cortex, Pulumi NeoAgentes dentro de plataformas de dados e de infraestrutura
Spring AI, fast-agent, LettaPara quem constrói agentes e quer suportar a norma
Como verificar, em vez de acreditar nesta tabela

Esta lista vai estar desactualizada. O registo oficial de clientes da norma (agentskills.io/clients) mantém a lista viva, com ligação à documentação de cada produto — e é sempre a fonte a consultar antes de assumir que uma ferramenta suporta ou não suporta.

O padrão que se observa e que provavelmente dura: a maioria adopta .agents/skills/, lê também as pastas dos concorrentes, e acrescenta os seus próprios campos por cima. É a forma normal de uma norma se consolidar.

Exercício 4.1 — Verifique a sua ferramenta

Vá ao registo de clientes e procure a ferramenta que usa. Se lá estiver, abra a documentação dela e responda a três perguntas: que pastas lê, como se invoca, e que campos acrescenta. São as três que este volume faz a cada uma.

Capítulo 05 Ferramenta

claude.ai e a API: sem terminal, e em escala

Metade das pessoas que beneficiam de skills nunca vai abrir um terminal. Esta é a parte do assunto que raramente é explicada.

5.1 claude.ai — para quem não programa

Como se instala uma skill sem linha de comandos

Comprime-se a pasta da skill num ficheiro .zip e envia-se em Definições → Funcionalidades. É tudo.

Requisitos: plano Pro, Max, Team ou Enterprise, com execução de código activada. As skills pré-construídas de documentos — PowerPoint, Excel, Word e PDF — já estão activas e não exigem instalação nenhuma.

Isto muda quem pode escrever skills. Uma pessoa de marketing, de recursos humanos ou de contabilidade pode escrever um SKILL.md num editor de texto, comprimir a pasta e ter as convenções da sua área aplicadas automaticamente. Não é preciso perceber de programação — é preciso saber escrever instruções claras, que é o volume I.

5.2 Duas limitações do claude.ai que decidem a estratégia de equipa

É individual, e não há administração central

As skills enviadas para o claude.ai são de cada utilizador. Não são partilhadas com a organização e não podem ser geridas centralmente por um administrador. Se dez pessoas da equipa precisam da mesma skill, as dez têm de a enviar.

Consequência prática, e é o oposto do que a maioria assume: para distribuir uma convenção a uma equipa, o claude.ai não é o caminho. O caminho é a API (partilha por espaço de trabalho) ou um repositório com .claude/skills/ versionado (capítulo 10).

Organizações Enterprise podem ligar análise de conteúdo às skills enviadas no claude.ai — que não cobre as enviadas pela API.

5.3 A API — para quem constrói produtos

O contentor da API é fechado — e isso muda o que se pode escrever

Sem acesso à rede e sem instalação de pacotes em execução: só o que já está pré-instalado.

Uma skill cujos scripts descarreguem algo, chamem uma API externa ou instalem uma biblioteca funciona no Claude Code e falha na API. É a diferença de ambiente mais consequente de todo este volume, e não dá erro na escrita — dá erro na execução, em produção.

5.4 As três superfícies, lado a lado

claude.aiAPIClaude Code
Como se instalaZip nas definições/v1/skillsFicheiros em pasta
PartilhaIndividualEspaço de trabalhoPessoal, projeto ou plugin
RedeVariável, conforme definiçõesNenhumaTotal
Instalar pacotesVariávelNãoSim (só localmente)
Documentos pré-construídosSimSimNão
Campos extraSó os da normaSó os da normaUma dúzia a mais

5.5 Duas restrições de nome que só existem aqui

Palavras reservadas

Na API e no claude.ai, o campo name não pode conter «anthropic» nem «claude», e nem name nem description podem conter etiquetas XML.

É mais restritivo que a especificação-base. Uma skill chamada claude-helper é válida segundo a norma e é rejeitada ao enviar — vale a pena saber antes de a ter distribuída pela equipa.

Exercício 5.1 — A skill de quem não programa

Escreva um SKILL.md para uma tarefa não técnica da sua organização — o formato de uma acta, as regras de um orçamento, o tom de uma resposta a cliente — comprima a pasta e envie-a no claude.ai. É o exercício que mostra que este assunto não é só para programadores.

Capítulo 06 Crítica

A armadilha central: nada sincroniza

É a coisa que mais tempo faz perder a quem começa, é contraintuitiva, e está dita numa linha da documentação que ninguém lê.

6.1 O facto

As skills não atravessam superfícies

Uma skill enviada para o claude.ai não fica disponível na API. Uma skill enviada pela API não aparece no claude.ai. As do Claude Code são ficheiros e são independentes das duas.

Não há sincronização automática entre superfícies do mesmo fornecedor — quanto mais entre fornecedores diferentes. Cada superfície onde quiser usar a skill exige um envio próprio.

É contraintuitivo porque tudo o resto na experiência sugere continuidade: é a mesma conta, o mesmo modelo, a mesma marca. E é exactamente por isso que se perde tempo — a suposição por omissão é que sincroniza, e não há erro nenhum a corrigi-la: a skill simplesmente não está lá.

6.2 Onde isto morde, caso a caso

SituaçãoO que acontece
Escreveu no Claude Code, espera usar no claude.aiTem de comprimir a pasta e enviar à mão
Enviou no claude.ai, construiu um produto na APITem de enviar outra vez, pelos endpoints
A equipa toda precisa da mesmaNo claude.ai, cada pessoa envia a sua (cap. 5.2)
Usa Claude Code e CodexDuas pastas: .claude/skills/ e .agents/skills/
Trabalha local e em agentes na nuvemNo Cursor, as pessoais não são copiadas para a nuvem (cap. 4.1)
A skill usa campos do Claude CodeAo enviar para a API, esses campos são ignorados (cap. 2.4)

6.3 As três estratégias

1 · Uma fonte, cópias derivadas

A skill vive num sítio só — o repositório — e um script copia-a para as outras pastas e gera o zip. É a que recomendo: uma única versão a editar, e a duplicação é mecânica e verificável.

2 · Ligações simbólicas

ln -s de .agents/skills/x para .claude/skills/x. Elegante e instantâneo. Não sobrevive a zips, a envios pela API nem a máquinas Windows.

3 · Assumir a divergência

Versões diferentes por superfície, deliberadamente — a do Claude Code usa os campos extra, a da API é a versão portável. Legítimo, desde que esteja escrito qual é qual e porquê.

O que não fazer

Copiar à mão e esquecer. É o que acontece por omissão, e produz três versões divergentes da mesma skill sem que ninguém saiba qual é a boa.

6.4 O script de sincronização, em oito linhas

#!/usr/bin/env bash
# fonte única: skills/ na raiz do repositório
set -euo pipefail
for d in skills/*/; do
  n=$(basename "$d")
  rsync -a --delete "$d" ".claude/skills/$n/"   # Claude Code
  rsync -a --delete "$d" ".agents/skills/$n/"   # Codex, Cursor, Gemini
  (cd skills && zip -qr "../dist/$n.zip" "$n")  # para enviar no claude.ai
done

Correr isto num hook de commit ou na integração contínua resolve o problema de vez, e torna a divergência impossível em vez de improvável — que é a diferença que interessa.

Exercício 6.1 — Conte as cópias

Procure no seu sistema por ficheiros chamados SKILL.md e agrupe-os por nome de skill. Cada nome que apareça em mais de um sítio é uma divergência à espera de acontecer — compare o conteúdo das cópias e veja se já divergiram.

Capítulo 07 Prática

Escrever uma skill portável

É possível escrever uma skill que funciona em todas as ferramentas. Custa desistir de algumas comodidades — e é uma decisão consciente, não uma omissão.

7.1 O núcleo comum

O que funciona em toda a parte

Cabeçalho:name, description, license, compatibility e allowed-tools. Mais nada.

Estrutura: SKILL.md na raiz, e scripts/, references/, assets/ conforme necessário.

Nome: minúsculas, dígitos e hífenes; igual ao nome da pasta; e sem as palavras «claude» ou «anthropic», para poder ser enviada para a API (cap. 5.5).

Ambiente: se quiser que corra na API, sem acesso à rede e sem instalar pacotes (cap. 5.3). Esta é a restrição mais dura, e a que mais vezes é descoberta tarde.

7.2 A pergunta que decide, no início

esta skill vai ser usada... │ ├── só por mim, só no Claude Code? │ → use tudo. paths, context: fork, arguments. │ a portabilidade não é um objectivo. │ ├── pela equipa, no repositório? │ → núcleo comum + .agents/ e .claude/ │ sincronizadas por script (cap. 6.4) │ └── num produto, pela API, ou por quem não programa? → SÓ o núcleo comum sem rede, sem instalar pacotes, sem palavras reservadas no nome

Decidir isto no início custa um minuto; descobri-lo no fim custa reescrever. É a mesma disciplina de declarar o objectivo antes de construir, de Estatística III, cap. 2.

7.3 Como degradar com elegância

Quando quer usar um campo específico e manter a portabilidade, o padrão é não depender dele:

Em vez deEscreva
Depender de paths para a skill só actuar em *.pyPôr na descrição «use ao trabalhar em ficheiros Python» e manter o paths. Onde existir, filtra; onde não existir, a descrição faz o trabalho
Depender de arguments para receber parâmetrosEscrever no corpo «se não for indicado o ambiente, pergunte antes de continuar»
Depender de context: fork para não sujar o contextoEscrever a skill para produzir saída curta, o que é bom em qualquer ferramenta
Depender de um script que descarrega dadosIncluir os dados em assets/, se forem estáveis

O princípio é sempre o mesmo: o campo específico é uma optimização, não a fundação. Se a skill não funciona sem ele, não é portável — e isso pode ser aceitável, desde que esteja declarado.

7.4 Declare a compatibilidade

O campo compatibility existe precisamente para isto, faz parte da norma, e é ignorado por quase toda a gente:

compatibility: Desenhada para Claude Code. Usa os campos paths e context,
  que outras ferramentas ignoram. Requer acesso à rede — não corre na API.

Quem instalar sabe o que esperar antes de descobrir por tentativa. Custa uma linha e é a diferença entre uma skill que decepciona e uma que avisa.

7.5 Testar a portabilidade

1 · Valide com skills-ref validate — apanha desvios da norma.

2 · Corra numa segunda ferramenta. Não é preciso testar em oito; duas chegam para expor as suposições. Claude Code e Cursor é o par mais fácil, porque o Cursor lê as duas pastas.

3 · Comprima e envie para o claude.ai. Se for rejeitada, é o nome (cap. 5.5).

4 · Se for para a API, teste no contentor sem rede. É onde as dependências escondidas aparecem.

5 · Confirme os cinco pedidos negativos em cada ferramenta. A activação varia entre implementações, e uma descrição que delimita bem num sítio pode disparar a mais noutro.

Exercício 7.1 — Torne uma portável

Pegue numa skill que use campos específicos e reescreva-a para o núcleo comum, aplicando 7.3. Depois corra as duas versões lado a lado e veja o que se perdeu de facto — costuma ser menos do que se temia.

Capítulo 08 Crítica

O que cada ferramenta acrescenta, e o que isso custa

Todas estendem a norma. Perceber o padrão das extensões diz mais sobre o futuro do formato do que a lista de campos.

8.1 As extensões, comparadas

NecessidadeClaude CodeCursorCodexNa norma?
Impedir activação automáticadisable-model-invocationdisable-model-invocationallow_implicit_invocation (YAML à parte)Não
Limitar a certos ficheirospathspathsNão
Aparência na interfaceicon, colorinterface (YAML à parte)Não
Metadados livresmetadatametadataSim
Ferramentas pré-aprovadasallowed-toolsdependenciesSim (experimental)
Isolamento de contextocontext: forkNão

8.2 O padrão que as duas primeiras linhas revelam

Convergência espontânea

Repare que disable-model-invocation e paths aparecem com o mesmo nome em duas implementações independentes, e que a terceira resolve a primeira com outro nome mas a mesma semântica.

Isso não é coincidência: são necessidades reais que a especificação-base não cobriu, e várias equipas chegaram à mesma solução. Historicamente, é assim que uma norma cresce — os implementadores convergem primeiro, o comité formaliza depois. É uma aposta razoável que estes dois campos acabem na norma, e uma aposta pior que os mais específicos lá cheguem.

8.3 As duas filosofias de extensão

Tudo no cabeçalho

Claude Code, Cursor. Os campos extra vivem no mesmo SKILL.md.

A favor: um ficheiro só; tudo visível de uma vez.
Contra: o ficheiro deixa de ser estritamente conforme, e outra ferramenta vê campos que não entende.

Ficheiro à parte

Codex, com agents/openai.yaml.

A favor: o SKILL.md mantém-se limpo e portável; quem não conhece o ficheiro extra ignora-o.
Contra: dois sítios para manter, e é fácil esquecer um deles.

A segunda é melhor para portabilidade e a primeira é mais cómoda no dia a dia. Se escrever para distribuir, o padrão do Codex é o que menos surpresas dá a quem instalar.

8.4 O orçamento de listagem, comparado

Claude CodeCodex
LimiteskillListingBudgetFraction, configurável2% da janela, ou 8000 caracteres
Ao ultrapassarEncurta as descriçõesOmite skills, com aviso
SintomaActivação piora sem razão aparenteUma skill deixa de existir
A consequência que ninguém liga à causa

Nos dois casos, instalar mais skills degrada as que já lá estavam — e o sintoma aparece longe da causa. Quem instalou dez skills na semana passada não liga isso ao facto de uma skill antiga ter deixado de disparar.

Regra prática: trate o número de skills instaladas como um recurso limitado. O /skill-doctor do Claude Code existe exactamente para isto, e o equivalente noutras ferramentas é olhar para a lista e perguntar quais não usa há um mês.

Exercício 8.1 — O inventário de campos

Percorra as suas skills e liste todos os campos de cabeçalho que usa. Marque os que não estão na norma (secção 8.1). Para cada um, decida: é essencial, ou é comodidade? As de comodidade são as que pode largar quando precisar de portabilidade.

Capítulo 09 Método aplicado · Demo

A mesma skill em quatro ferramentas

Role devagar. Uma skill que funciona no Claude Code, levada às outras três — e os quatro pontos em que se parte.

Ponto 0 — o ponto de partida

Uma skill boa, com quatro decisões que a prendem

Não tem nada de errado: usa paths para não disparar fora do sítio, context: fork para não sujar o contexto, arguments para receber o número do PR, e um script que vai buscar o diff. São quatro boas decisões de engenharia — e cada uma é uma amarra.

Ponto 1 — a pasta

Duas das quatro ferramentas nem a encontram

O Codex procura em .agents/skills/, o Gemini em .gemini/ ou .agents/. Nenhum olha para .claude/. Só o Cursor, que lê as pastas de todos, a encontra (cap. 1.1).

E o sintoma é o pior possível: não há erro. A skill simplesmente não existe para aquelas ferramentas. Resolve-se com o script de sincronização do capítulo 6.4 — uma fonte, cópias derivadas.

Ponto 2 — o nome

«claude» é palavra reservada

O nome claude-rever-pr é perfeitamente válido segundo a especificação, e é rejeitado ao enviar para o claude.ai ou para a API, que proíbem «claude» e «anthropic» no campo name (cap. 5.5).

É a falha mais irónica das cinco: a skill é rejeitada pela própria plataforma cujo nome tem. E a correção obriga a renomear também a pasta, porque os dois têm de coincidir.

Ponto 3 — os campos

Degradar em silêncio é pior do que falhar

Nas ferramentas que não conhecem paths, context e arguments, a skill não dá erro — comporta-se pior: dispara onde não devia, enche o contexto principal, e não recebe o parâmetro.

É a diferença que interessa entre falhar e degradar: uma falha avisa; uma degradação acumula-se durante semanas e é atribuída ao modelo, à ferramenta ou ao acaso — nunca à skill (cap. 8.1).

Ponto 4 — o ambiente

O contentor da API não tem rede, e isto só se vê a correr

O script faz um pedido HTTP. Funciona no Claude Code e no Cursor, que têm acesso total à rede; é variável no claude.ai; e falha sempre na API, cujo contentor não tem rede nem permite instalar pacotes (cap. 5.3).

É o ponto mais caro dos cinco, porque é o único que não se detecta a ler: a skill parece perfeita, valida sem erros, e falha em execução — no ambiente de produção, que é onde custa.

A versão portável

O que mudou, e o que se perdeu

Nome sem palavra reservada; nenhum campo fora da norma; a filtragem por ficheiros passou para a descrição, onde funciona em toda a parte; e o script deixou de ser obrigatório — há um caminho alternativo quando não há rede, e o campo compatibility declara-o.

Perdeu-se o isolamento de contexto e a passagem de argumentos. São perdas reais, e estão escritas — que é a diferença entre uma skill que decepciona e uma que avisa (cap. 7.4).

A lição da demo inteira é a decisão do capítulo 7.2, e é uma pergunta de um minuto no início: esta skill é de casa, ou é para distribuir? As duas respostas são legítimas. O que não é legítimo é não escolher — e depois descobrir, cinco pontos depois, que a skill só funcionava onde foi escrita.

Exercício 9.1 — Os cinco pontos, na sua

Passe uma skill sua pelos cinco pontos: a pasta, o nome, os campos, o ambiente e a declaração de compatibilidade. Conte em quantos ela se parte. É raro passar nos cinco à primeira — e o ponto 4 é o que quase toda a gente falha.

Capítulo 10 Operação

Instalar, organizar e governar em equipa

Skills numa pessoa é uma comodidade. Skills numa equipa é uma decisão de governo — e tem as mesmas exigências de qualquer dependência partilhada.

10.1 Onde pôr, conforme quem precisa

Quem precisaOndePorquê
Só vocêPasta pessoal da ferramentaPreferências e experiências. Não polui o repositório
Quem trabalha neste projetoVersionada no repositórioÉ a que rende mais. Quem clona recebe; alterações passam por revisão
Toda a organização, em códigoPlugin, ou repositório de skills partilhadoDistribuição com versão e controlo
Toda a organização, na APIEnvio pela APIPartilha por espaço de trabalho, automática
Quem não programaZip no claude.ai, por pessoaNão há alternativa — não há gestão central (cap. 5.2)
A recomendação, em uma linha

Versione as skills no repositório do projeto e sincronize as pastas por script. Resolve distribuição, revisão, histórico e portabilidade de uma vez, e não depende de nenhuma funcionalidade de nenhum fornecedor.

10.2 A estrutura que funciona num repositório

skills/                       # fonte única, versionada
├── rever-pr/
│   ├── SKILL.md
│   ├── scripts/
│   └── testes/CASOS.md        # os 10 pedidos do volume I, cap. 8
├── relatorio-mensal/
└── README.md                  # o que existe, quem é dono, como se sincroniza

.claude/skills/  →  gerado    # em .gitignore
.agents/skills/  →  gerado    # em .gitignore
dist/*.zip       →  gerado    # para o claude.ai

Os testes ao lado da skill são o detalhe que a mantém viva: quem a alterar tem por onde verificar que não a partiu, o que transforma «não mexer que isso funciona» em «alterar com confiança».

10.3 As regras de governo

10.4 Skills como onboarding

O uso que compensa mais e é o menos óbvio

Uma pasta skills/ bem escrita é a documentação de convenções da equipa, num formato que tanto as pessoas como os agentes leem. Não é um efeito secundário: é a melhor razão para as versionar.

Quem entra na equipa lê os SKILL.md e percebe como se trabalha ali — e o agente aplica-as sem que ninguém tenha de as lembrar. É a única documentação interna que tem um utilizador que nunca se esquece de a ler.

Exercício 10.1 — O README de skills

Crie skills/README.md com uma tabela: nome, o que faz, dono, data da última revisão. É o documento que faz a diferença entre uma pasta de ficheiros e um activo mantido — e demora dez minutos.

Capítulo 11 Prática

Quando não funciona nesta ferramenta

A escada de diagnóstico específica da portabilidade: seis degraus, do mais barato ao mais caro, e cada um elimina metade das hipóteses.

11.1 A escada

1 · A ferramenta vê a skill? Liste as disponíveis com o comando desta ferramenta (cap. 1.2). Se não estiver na lista, é pasta — e resolve-se antes de olhar para o conteúdo.

2 · A pasta está no sítio certo para esta ferramenta? Confira a tabela 1.1. É a causa número um, e a mais rápida de excluir.

3 · O name coincide com a pasta? Falha silenciosa em todas as implementações (volume I, cap. 10.2). Corra o validador.

4 · Está a ser omitida por orçamento? Com muitas instaladas, algumas desaparecem ou perdem a descrição (cap. 8.4). Desligue metade e volte a testar.

5 · Force a activação pelo comando explícito. Se resultar, o problema é a descrição; se não resultar, é o corpo ou o ambiente. Este passo divide o problema ao meio.

6 · Depende de um campo ou de um recurso que esta ferramenta não tem? Campos extra (cap. 8.1), rede, pacotes (cap. 5.3). É aqui que estão as falhas que só aparecem a correr.

11.2 A tabela de sintomas

SintomaCausa mais provável
Não aparece na listaPasta errada para esta ferramenta, ou name ≠ pasta
Aparece e nunca disparaDescrição, ou competição com outra mais específica
Funcionava e deixou de dispararInstalaram-se mais skills e o orçamento estourou
Dispara e comporta-se pior que noutra ferramentaDepende de campos extra que esta ignora
Dispara e o script falhaRede ou pacotes indisponíveis neste ambiente
Rejeitada ao enviarPalavra reservada no nome, ou etiqueta XML (cap. 5.5)
Funciona local e não na nuvemSkill pessoal não copiada para o ambiente remoto (cap. 4.1)

11.3 A terceira linha é a que engana

A causa está longe do sintoma

«Funcionava e deixou de funcionar» leva quase toda a gente a procurar o que mudou na skill — e a resposta é que não mudou nada nela. Mudou o contexto à volta: instalaram-se mais skills, e a listagem foi truncada.

É a razão pela qual vale a pena registar quantas skills estavam instaladas quando cada uma foi validada. Uma linha no README.md da pasta chega, e poupa a tarde em que se procura um erro que não existe.

11.4 O teste mínimo antes de distribuir

Três verificações, dez minutos, e cobrem a maior parte do que corre mal:

  1. Validar com skills-ref validate.
  2. Correr numa segunda ferramenta — expõe as suposições de pasta e de campos.
  3. Correr com a pasta de skills quase vazia e quase cheia — expõe o problema do orçamento antes de ele aparecer a outra pessoa.
Exercício 11.1 — Provoque o problema do orçamento

Instale skills até a sua ferramenta avisar ou truncar as descrições. Registe o número. Depois volte atrás. Saber onde está o seu tecto é a única forma de reconhecer o sintoma da terceira linha quando ele aparecer a sério.

Capítulo 12 Ofício · Catálogo

O que fica, e as cinco fontes por ferramenta

As regras que sobrevivem a qualquer produto, e o catálogo de documentação deste volume — em ficha padronizada e datada.

12.1 As sete regras

1 · Decida cedo o alcance

De casa ou para distribuir. Custa um minuto no início e evita reescrever no fim.

2 · Uma fonte, cópias derivadas

Nunca edite duas cópias da mesma skill. Sincronize por script.

3 · .agents/skills/ é o terreno comum

Codex, Cursor e Gemini leem-no. Só o Claude Code exige a sua pasta.

4 · Nada sincroniza

Entre superfícies do mesmo fornecedor também não. Cada uma exige o seu envio.

5 · Campos extra são optimização

Nunca fundação. Se a skill não funciona sem eles, não é portável — e isso deve estar escrito.

6 · O ambiente decide

Rede e pacotes variam por superfície. É a falha que só aparece a correr.

7 · O número de skills é um recurso

Instalar mais degrada as que já lá estão. Reveja e desligue.

E uma oitava

Verifique na fonte. Este volume caduca; a documentação de cada produto, não.

12.2 Catálogo: a documentação de cada ferramenta

Porque este catálogo é de documentação e não de skills

Os volumes temáticos que se seguem catalogam skills. Este cataloga as fontes onde se verifica cada ferramenta — porque é isso que este volume ensina a fazer, e porque é a única parte que não caduca: os caminhos de pastas mudam, a documentação que os publica não.

Registo de clientes da norma Comunidade Agent Skills

A lista viva dos produtos que suportam o formato — à data desta apostila, cerca de meia centena — com ligação à documentação de skills de cada um.

Porque importa: É a única resposta factual à pergunta «isto funciona na minha ferramenta?», e é onde se vai buscar o caminho de pastas de qualquer produto que não esteja neste volume.

A favor
  • Mantida a par da norma, não por um fornecedor
  • Cada entrada liga à documentação própria, que é sempre mais actual que qualquer apostila
  • Cobre desde CLIs abertos a plataformas de dados e agentes de saúde
Contra
  • Cresce depressa — qualquer contagem fica desactualizada em semanas
  • Suportar a norma não garante suportá-la toda: a profundidade varia muito entre produtos

É a fonte a consultar antes deste volume. Se divergirem, manda a documentação do produto.

https://agentskills.io/clients ·licença Apache-2.0·verificado em setembro de 2026

Documentação de skills do Claude Code Anthropic

Caminhos por âmbito, ordem de precedência, invocação com argumentos, os comandos /skills e /skill-doctor, todas as definições de skillOverrides, e a lista explícita dos campos que são extensões e não fazem parte da norma.

Porque importa: É a implementação mais completa, e a documentação que melhor separa o que é norma do que é extensão — informação que quase nenhum produto publica com esta clareza.

A favor
  • Distingue explicitamente campos da norma de campos próprios
  • /skill-doctor não tem equivalente noutras ferramentas: mostra custo e uso real
  • Detecção de alterações em sessão acelera muito o ciclo de escrita
Contra
  • A quantidade de campos extra convida a escrever skills não portáveis sem dar por isso
  • A precedência (pessoal sobrepõe-se a projeto) é o inverso de outras ferramentas e surpreende
  • As skills de documentos pré-construídas não estão disponíveis aqui

https://code.claude.com/docs/en/skills ·licença Documentação do produto·verificado em setembro de 2026

Documentação de skills do Codex e ChatGPT OpenAI

Os cinco âmbitos de procura em .agents/skills, invocação por @ no ChatGPT e $ no CLI, as skills embutidas skill-creator e skill-installer, e o ficheiro opcional agents/openai.yaml.

Porque importa: É a prova de que o formato é mesmo cross-fornecedor — e a implementação que mais aposta na pasta neutra, que é o padrão que os outros estão a seguir.

A favor
  • Usa .agents/skills, o caminho que Cursor e Gemini CLI também leem
  • As extensões ficam num ficheiro à parte, mantendo o SKILL.md portável
  • Não funde nomes iguais: mostra as duas e deixa escolher
  • $skill-installer não tem equivalente directo nas outras
Contra
  • O limite de listagem é rígido: com muitas skills, algumas são omitidas
  • A instalação por comando facilita saltar a auditoria do volume I, cap. 11

Para quem alterna entre ferramentas: escrever para .agents/skills/ maximiza a compatibilidade — só o Claude Code exige a sua própria pasta.

https://developers.openai.com/codex/skills/ ·licença Documentação do produto·verificado em setembro de 2026

Agent Skills no claude.ai e na API Anthropic

As três superfícies lado a lado, os requisitos de plano e de execução de código, os limites do contentor da API (sem rede, sem instalar pacotes), as palavras reservadas no nome e a advertência explícita de que as skills não sincronizam entre superfícies.

Porque importa: É a única fonte que diz claramente as duas coisas que mais tempo fazem perder: que nada sincroniza, e que no claude.ai as skills são individuais e não há gestão central.

A favor
  • Documenta o caminho para quem não programa: zip nas definições
  • Explica os limites do contentor da API, que decidem o que se pode escrever
  • Tem a arquitectura de divulgação progressiva explicada em detalhe
Contra
  • A ausência de gestão central no claude.ai é uma limitação séria para equipas, e é fácil de não ver
  • Ler três modelos de partilha diferentes (individual, espaço de trabalho, ficheiros) exige atenção

Leia a secção de limitações antes de escrever qualquer skill destinada à API. É onde estão as restrições que não se descobrem a testar localmente.

https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview ·licença Documentação do produto·verificado em setembro de 2026

Documentação de skills do Cursor e do Gemini CLI Cursor · Google

Duas implementações com decisões próprias: o Cursor lê as pastas de todos os concorrentes e tem o modo personalizado que mantém uma skill activa toda a sessão; o Gemini CLI pede consentimento explícito antes de injectar uma skill e exige --consent ao instalar.

Porque importa: São os dois melhores exemplos de que a mesma norma admite filosofias diferentes — máxima tolerância num caso, máxima cautela no outro.

A favor
  • Cursor: lê .claude/, .agents/ e .cursor/ — o mais fácil para testar portabilidade
  • Cursor: o modo personalizado é um padrão de uso que as outras não têm
  • Gemini CLI: o consentimento antes da activação responde directamente ao risco de skills de terceiros
Contra
  • Cursor: skills pessoais não são copiadas para agentes na nuvem — falha silenciosa em ambientes remotos
  • Gemini CLI: o consentimento acrescenta fricção em cada uso
  • Precedências opostas entre as duas, o que confunde quem alterna

Documentação do Gemini CLI: geminicli.com/docs/cli/skills/

https://cursor.com/docs/context/skills ·licença Documentação do produto·verificado em setembro de 2026

12.3 O que vem a seguir

Os quatro volumes temáticos, cada um com o seu catálogo de skills em ficha padronizada: III — Produto digital (sites, aplicações, software, MCP), IV — Marca e identidade, V — Pensar e VI — Jogos e 3D.

12.4 Leituras a par

Exercício 12.1 — A matriz da sua equipa

Faça uma tabela com as ferramentas que a sua equipa usa e, para cada uma, as pastas que lê e os campos que suporta. Depois decida uma estratégia de sincronização e escreva-a no README.md da pasta de skills. É a decisão que impede as três versões divergentes.