MÓDULO 1.2

📝 Anatomia do SKILL.md

Desvende cada parte do arquivo SKILL.md — frontmatter YAML, campo name, description como gatilho e o corpo em Markdown que o Claude executa passo a passo.

6
Tópicos
~20
Minutos
Básico
Nível
Teoria
Tipo
SKILL.md FRONTMATTER · NAME · DESCRIPTION · BODY --- name: video-explicativo description: Cria vídeos em PT-BR... Use quando pedir --- # Corpo Markdown Passos, regras, exemplos... ① Frontmatter Delimitado por ---/--- ② name kebab-case, igual à pasta ③ description ⭐ Gatilho — Claude lê aqui ④ Corpo Markdown que Claude executa
1

📑 Frontmatter YAML

O frontmatter é o bloco de metadados que fica no topo do SKILL.md. Ele é delimitado por duas linhas de três hifens (---) e contém pares chave-valor em formato YAML. Sem esse bloco, o Claude Code não reconhece o arquivo como um skill válido.

Conceito Principal

O frontmatter YAML são exatamente as linhas entre o primeiro --- e o segundo ---. Tudo o que vem depois do segundo --- é o corpo do skill em Markdown puro.

É a primeira coisa que o harness do Claude Code lê — se o YAML estiver malformado, o skill não carrega.

Exemplo real — frontmatter do skill video-explicativo
SKILL.md frontmatter
---
name: video-explicativo
description: Cria vídeos explicativos completos em PT-BR (HTML→MP4 via
  HyperFrames) a partir de um assunto — roteiro, narração TTS local,
  cenas animadas dark premium, captions e CTA do INEMA.CLUB, nos
  formatos 16:9 (YouTube) e 9:16 (Shorts/Reels). Use quando o usuário
  pedir para "fazer um vídeo", "vídeo explicativo", "vídeo sobre X",
  "vídeo pra Shorts/Reels", "mini tutorial em vídeo", "vídeo do
  INEMA", ou quando der um assunto e quiser um vídeo narrado pronto.
---
💡
O YAML precisa de apenas 2 campos

O frontmatter mínimo válido contém somente name e description. Campos extras são ignorados pelo harness atual.

Conceitos-chave
📄
SKILL.md
Arquivo raiz
---
Delimitador
Abre e fecha
🔑
Chave: valor
Sintaxe YAML
Leitura rápida
Harness primeiro
2

🏷️ name = identidade do skill

O campo name é o identificador único do skill. Ele deve ser idêntico ao nome da pasta onde o SKILL.md está guardado, e seguir rigorosamente o formato kebab-case (tudo minúsculo, palavras separadas por hífen).

Como o name percorre o sistema
1
Pasta no filesystem

O harness procura skills em ~/.claude/skills/<name>/SKILL.md. O nome da pasta deve bater com o campo name.

2
Listagem de skills disponíveis

O sistema-reminder lista todos os skills pelo campo name. É o nome que aparece no menu de skills do Claude.

3
Invocação via Skill tool

Quando o Claude decide usar o skill, ele chama Skill(skill: "video-explicativo") — o valor é exatamente o name.

4
Slash command /name

O usuário pode invocar manualmente com /video-explicativo. O harness mapeia diretamente do slash para o name.

✓ Nomes corretos
  • video-explicativo
  • formato-curso
  • n8n-workflow-patterns
  • Todas minúsculas, hifens, sem espaços
✗ Nomes problemáticos
  • VideoExplicativo — camelCase não permitido
  • video explicativo — espaço quebra o lookup
  • video_explicativo — underscore não é padrão
  • Nome diferente da pasta = skill não carrega
Conceitos-chave
🐍
kebab-case
Padrão obrigatório
📁
= pasta
Deve ser idêntico
/
Slash command
/nome-do-skill
🔎
Lookup direto
Harness usa o name
3

🎣 description = gatilho de ativação

A description é a parte mais importante do SKILL.md. É o único campo que o Claude lê para decidir, em tempo real, se deve ou não invocar o skill. Pense nela como o rótulo da embalagem: se o rótulo não descrever o que está dentro, o Claude pega a embalagem errada.

Como o Claude usa a description
🧠
Leitura no system-reminder

Cada turn, o Claude recebe todos os nomes + descriptions dos skills disponíveis no contexto.

⚖️
Match semântico

Claude compara a mensagem do usuário com as descriptions e decide qual skill tem maior sobreposição semântica.

🚀
Invocação automática

Quando há match, Claude chama a Skill tool antes de qualquer outra resposta — a description é lei.

A description decide tudo

O corpo do SKILL.md pode ser perfeito, mas se a description for vaga o skill nunca será acionado. Invista o dobro do tempo nesse campo.

Conceitos-chave
🎣
Gatilho
Dispara o skill
🔍
Match semântico
Claude compara
Antes de tudo
Invocação obrigatória
4

✨ Escrever boas descriptions

Uma boa description tem duas partes: uma frase-resumo do que o skill faz, seguida de frases-gatilho concretas com as variações de pedido que o usuário poderia fazer. Quanto mais sinônimos e variações, maior a cobertura semântica.

Anatomia da description do video-explicativo
Parte 1 — O que o skill faz

Cria vídeos explicativos completos em PT-BR (HTML→MP4 via HyperFrames) a partir de um assunto — roteiro, narração TTS local, cenas animadas dark premium, captions e CTA do INEMA.CLUB, nos formatos 16:9 (YouTube) e 9:16 (Shorts/Reels).

Especifica o output (vídeos em PT-BR), o mecanismo (HTML→MP4) e os sub-produtos (roteiro, TTS, captions, CTA).

Parte 2 — Frases-gatilho (a parte mais importante)

Use quando o usuário pedir para "fazer um vídeo", "vídeo explicativo", "vídeo sobre X", "vídeo pra Shorts/Reels", "mini tutorial em vídeo", "vídeo do INEMA", ou quando der um assunto e quiser um vídeo narrado pronto.

São citações literais de como o usuário pediria — com aspas, variações de linguagem e casos de uso distintos.

✓ Description eficaz
  • Inclui frases que o usuário literalmente digita
  • Tem sinônimos: "vídeo", "tutorial em vídeo", "mini-vídeo"
  • Cobre variações de canal: YouTube, Shorts, Reels
  • Menciona o output concreto: MP4, narração, captions
  • Usa "Use quando o usuário pedir X, Y, Z"
✗ Description fraca
  • "Cria vídeos." — vago demais, sem gatilhos
  • Só explica o "como", não o "quando usar"
  • Usa jargão técnico que o usuário nunca digitaria
  • Não lista as variações de pedido possíveis
  • Uma linha só — cobertura semântica mínima
🎯
Teste mental: "o usuário diria isso?"

Para cada frase-gatilho que você escreve, pergunte: "Um usuário real, sem saber que esse skill existe, digitaria essa frase?" Se a resposta for sim, é um bom gatilho. Palavras técnicas internas ao sistema são péssimos gatilhos.

Conceitos-chave
📢
Frase-gatilho
O que o user diz
🔄
Sinônimos
Aumenta cobertura
📌
Casos de uso
Cenários concretos
🚫
Sem jargão
Linguagem do user
5

📄 Corpo em Markdown

Tudo o que vem depois do segundo --- é o corpo do skill. É um documento Markdown comum que descreve, passo a passo, o que o Claude deve fazer quando o skill for ativado. O Claude lê e executa literalmente.

Conceito Principal

O corpo do SKILL.md é o script de execução do Claude. Se a description é o gatilho, o corpo é a instrução de operação. O Claude segue o corpo como um checklist: lê, entende e executa cada etapa em ordem.

Estrutura típica de um corpo de skill
SKILL.md — corpo (após o segundo ---) estrutura
# Vídeo Explicativo (HyperFrames)

## Pré-requisitos (já instalados nesta máquina)
- Node.js ≥ 18, npx hyperframes, FFmpeg, Kokoro TTS
- Voz: pf_dora · `--speed 0.98` · sem espeak-ng

## Fluxo (sempre nesta ordem)

1. **Roteiro** — escreva `SCRIPT.md`: 6–9 cenas, do primeiro
   princípio ao avançado, com exemplo real.
2. **Projeto** — `npx hyperframes init <nome> --example blank`
3. **Fontes** — `node fetch-fonts.mjs`
4. **Narração** — gere WAVs com Kokoro, voz `pf_dora`
5. **Composição** — adapte `composition-template.mjs`
6. **Validar** — `npx hyperframes lint`
7. **Render** — `--quality high`

## Regras de ouro (não-negociáveis)
- Animar `.scene-inner`, nunca o wrapper `.clip`
- Fontes locais via `@font-face` (não CDN)
- Timing vem de AUDIO[] — fonte única de verdade
O que você pode colocar no corpo
Listas numeradas de passos (o mais comum)
Blocos de código com comandos exatos
Regras de negócio em Markdown bold
Links para arquivos de referência
Seções H2 para organizar subtarefas
Exemplos de output esperado
Conceitos-chave
📋
Checklist
Claude executa
#
H2 por seção
Organização clara
💻
Comandos reais
Exatos, copiáveis
🔗
Referências
Links para arquivos
6

⚠️ Erros comuns no SKILL.md

Pequenos descuidos no SKILL.md causam falhas silenciosas: o skill não carrega, não é acionado ou é acionado na hora errada. Conheça os erros mais frequentes e como evitá-los antes de publicar seu skill.

🚨
Skill não aparece no menu?

A causa mais comum é o frontmatter malformado. Verifique sempre: o arquivo começa com --- na primeira linha (sem espaço antes) e há um segundo --- de fechamento.

ERR 01 --- faltando ou mal posicionado
✗ Errado
name: meu-skill
description: Faz coisas...

# Corpo aqui

Sem os delimitadores ---, o harness ignora o frontmatter.

✓ Correto
---
name: meu-skill
description: Faz coisas...
---

# Corpo aqui

Ambos os --- obrigatórios, cada um em sua própria linha.

ERR 02 Indentação errada no YAML multiline
✗ Errado
---
name: meu-skill
description: Texto longo
que continua aqui
sem indentação
---

Linha sem indentação quebra o YAML multiline — o parser vê um campo novo.

✓ Correto
---
name: meu-skill
description: Texto longo
  que continua aqui
  com 2 espaços de indentação
---

Linhas de continuação devem ter pelo menos 2 espaços de recuo.

ERR 03 Description vaga — skill nunca ativado
✗ Errado
---
name: video-explicativo
description: Cria vídeos.
---

Sem frases-gatilho concretas, o Claude raramente faz o match semântico correto.

✓ Correto
---
name: video-explicativo
description: Cria vídeos em PT-BR.
  Use quando o usuário pedir
  "fazer um vídeo", "vídeo
  sobre X", "tutorial em vídeo".
---

Frases-gatilho com aspas aumentam drasticamente o match.

🛠️
Checklist antes de publicar
  • Arquivo começa com --- na linha 1 (sem BOM, sem espaço)
  • Segundo --- presente após os campos YAML
  • name igual ao nome da pasta (kebab-case)
  • description tem pelo menos 3 frases-gatilho concretas
  • Linhas de continuação da description indentadas com 2 espaços
Conceitos-chave
---
Delimitadores
Obrigatórios
⎵⎵
2 espaços
Multiline YAML
🎯
Gatilhos
Mínimo 3 frases
📁
name = pasta
Identidade única

✅ Resumo do Módulo 1.2

O que você aprendeu neste módulo

O frontmatter YAML é delimitado pelos dois --- e contém name + description
O campo name deve estar em kebab-case e ser idêntico ao nome da pasta do skill
A description é o gatilho de ativação — o Claude lê esse campo para decidir quando invocar o skill
Boas descriptions contêm frases-gatilho concretas com variações do que o usuário digitaria
O corpo em Markdown (após o segundo ---) é o script de execução que o Claude segue passo a passo
Erros comuns: --- faltando, indentação YAML errada, description vaga sem frases-gatilho
Próximo módulo:
1.3
🧠 Divulgação Progressiva

Aprenda como estruturar o corpo do SKILL.md em camadas de profundidade — do uso básico aos casos avançados — para que o Claude execute o skill com precisão em qualquer contexto.