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