MÓDULO 1.1

🧬 Anatomia de uma Skill

Uma skill não é mágica nem um plugin compilado. É um arquivo de texto — o SKILL.md — que o Claude lê, decide carregar e passa a seguir. Neste módulo você abre esse arquivo e entende cada parte: o frontmatter, o corpo e a mecânica de descoberta e disparo.

6
Tópicos
40
Minutos
Básico
Nível
Teoria
Tipo

Conteúdo detalhado

--- frontmatter (YAML) --- name: travel-itinerary description: faz X · use quando Y… ↑ é só isto que o Claude vê no início # Corpo de instruções (Markdown) workflow · regras duras · formato de saída carregado só quando a skill dispara Claude decide e executa
1

📄 O que é, afinal, um SKILL.md

Uma Agent Skill é, na essência, um arquivo de texto Markdown chamado SKILL.md. Nada de binário compilado, nada de instalação complexa: é um documento que você consegue abrir num editor de texto e ler de cima a baixo. O que o torna especial não é a tecnologia, e sim o contrato que ele estabelece — ele ensina o Claude a executar uma tarefa específica, e diz quando essa tarefa se aplica.

🧬 As duas zonas do arquivo

Todo SKILL.md se divide em duas zonas com papéis bem diferentes:

  • Frontmatter (YAML): o cartão de visita — name e description. É o que o Claude lê para decidir usar a skill.
  • Corpo (Markdown): as instruções de verdade — o "como fazer". Só é carregado depois que a skill é escolhida.
SKILL.md — exemplo mínimo Markdown
---
name: travel-itinerary
description: Generates an interactive HTML travel itinerary.
  Use when the user wants to "plan a trip", "create an itinerary",
  or types /travel.
---

# TravelWings — AI Travel Itinerary Generator

## Setup Flow
Before generating anything, ask the user the trip basics...

## Output Format
Generate a single self-contained HTML file...

💡 Dica prática

Se você sabe escrever um bom README, você já sabe 80% de escrever um SKILL.md. A diferença está nos dois campos do topo — eles não são documentação, são o gatilho que faz o Claude usar a skill sozinho.

Texto
Markdown puro, sem build
Versionável
Vive no git como código
Portável
Copia de máquina em máquina
Legível
Você e o Claude leem igual
2

🏷️ O campo name: a identidade

O name é o identificador da skill. Parece o campo mais bobo do arquivo, mas ele é a chave estável pela qual a skill é referenciada — em comandos, em outras skills, em logs. Um bom name é curto, em kebab-case, e diz o que a skill é num relance.

✓ Nomes que funcionam

  • travel-itinerary — diz exatamente o que produz
  • vibe-coding — termo memorável e específico
  • n8n-workflow-reviewer — domínio + ação claros

✗ Nomes que atrapalham

  • helper — genérico demais, ajuda no quê?
  • my_skill_v2_final — ruído, sem significado
  • SkillDeViagem — fora da convenção kebab-case

📐 Convenções que valem a pena

  • kebab-case: tudo minúsculo, palavras separadas por hífen.
  • Estável: mudar o name pode quebrar referências e comandos — escolha bem e mantenha.
  • Único: dois name iguais criam ambiguidade sobre qual carregar.
Curto
2-4 palavras
Descritivo
Diz o que faz
Estável
Não muda à toa
kebab-case
A convenção
3

🎯 O campo description: o gatilho

Se o name é a identidade, a description é o cérebro da descoberta. É a única parte da skill que o Claude lê quando decide se deve ou não usá-la. Por isso, ela não pode ser uma simples definição — precisa dizer o que a skill faz E quando ela deve ser usada. Esse módulo só apresenta a ideia; o Módulo 1.3 inteiro é dedicado a escrever descriptions afiadas.

⚖️ A fórmula "Faz + Quando"

Compare a mesma skill descrita de duas formas:

SÓ O "FAZ" — fraca

"Generates travel itineraries."

"FAZ + QUANDO" — forte

"Generates an interactive HTML travel itinerary. Use when the user wants to plan a trip, create an itinerary, or types /travel."

💡 Dica prática

Releia a sua description fingindo que você é o Claude vendo só essa linha, sem o resto do arquivo. Se você não conseguir decidir "essa skill se aplica a este pedido?", o Claude também não conseguirá.

Faz
O que produz
Quando
Gatilhos de uso
Concreta
Frases reais
Decisória
Permite escolher
4

📝 O corpo: o "como fazer"

Abaixo do frontmatter vem o corpo da skill — Markdown livre onde você escreve o passo a passo da execução. É aqui que a qualidade do resultado é decidida. Um corpo bem estruturado costuma ter quatro blocos recorrentes, como vemos nas skills reais que o curso disseca.

1

Setup / descoberta

"O que perguntar antes de produzir"

O gerador de itinerários, por exemplo, define um Setup Flow obrigatório: antes de gerar qualquer HTML, o Claude coleta destino, datas, origem e integrações. É o que torna a saída útil em vez de genérica.

2

Workflow / passos

"A sequência de execução"

A ordem das ações. A skill de correção de frontend, por exemplo, define passos com portões: confirmar o workspace, criar um branch, testar ao vivo, só então editar o código.

3

Regras duras / limites

"O que nunca fazer"

Restrições inegociáveis — geralmente em maiúsculas ou com avisos. São o que impede o Claude de pular etapas críticas ou tomar ações destrutivas.

4

Formato de saída

"Como o resultado deve sair"

A definição precisa do entregável: um único arquivo HTML autocontido, um relatório com seções fixas, um JSON. Sem isso, cada execução produz um formato diferente.

📊 O que distingue um corpo bom

  • Específico > genérico: "gere um HTML autocontido" vence "gere uma boa saída".
  • Princípios no fim: boas skills fecham com uma lista de princípios que resumem a filosofia ("dados reais > placeholder").
  • Exemplos embutidos: trechos de entrada/saída ancoram o comportamento melhor que prosa abstrata.
Setup
O que perguntar
Workflow
A sequência
Regras
Os limites
Saída
O formato final
5

🔍 Como o Claude descobre a skill

Aqui mora o detalhe que muda tudo: o Claude não lê o corpo de todas as skills o tempo todo. Imagine 50 skills instaladas, cada uma com centenas de linhas — carregar tudo a cada mensagem seria impraticável. Em vez disso, ele mantém um índice leve: só o name + a description de cada skill. É contra esse índice que o pedido do usuário é comparado.

🗂️ O índice de descrições

Pense num catálogo de biblioteca: você não lê todos os livros para achar um — você lê as fichas. A description é a ficha da skill.

  • O pedido do usuário é confrontado com as descriptions disponíveis.
  • A skill cuja descrição melhor casa com a intenção é a candidata.
  • Só então o corpo completo daquela skill entra em contexto.
o índice que o Claude consulta (ilustrativo) índice leve
travel-itinerary    → "plan a trip, create an itinerary, /travel"
vibe-coding         → "fix CSS/layout live in the browser before editing"
n8n-reviewer        → "review an n8n automation as a senior engineer"
rag-architect       → "design the right RAG before writing code"
...                 → (só name + description, nunca o corpo inteiro)

💡 Dica prática

Essa mecânica explica uma frustração comum: "criei a skill perfeita e o Claude nunca usa". Quase sempre o corpo está ótimo — mas a description não diz quando disparar. O Claude nunca chega a ler o corpo brilhante porque a ficha não o convenceu.

Índice leve
name + description
Matching
Pedido × descrição
Sob demanda
Corpo só depois
Escala
Muitas skills, leve
6

⚡ Como o Claude dispara a skill

Descobrir é reconhecer que a skill se aplica; disparar é efetivamente carregar o corpo e passar a seguir suas instruções. Há dois caminhos para isso acontecer, e entender a diferença evita muita confusão.

✓ Disparo automático

O Claude lê o pedido, vê que casa com uma description e usa a skill sozinho.

  • Disparado pela intenção: "planeja minha viagem a Tóquio"
  • O ideal: o usuário nem precisa saber que a skill existe
  • Depende 100% de uma boa description

↳ Invocação explícita

O usuário chama a skill pelo nome ou por um comando de barra.

  • Disparado pelo comando: /travel
  • Útil quando o usuário sabe exatamente o que quer
  • Funciona mesmo com description fraca

⚠️ O erro a evitar

Depender só da invocação explícita é desperdiçar metade do poder das skills. Se a skill nunca dispara sozinha, ela vira um comando manual — e o usuário tem que lembrar dela. O objetivo de uma skill bem feita é desaparecer: ativar na hora certa sem ninguém pedir.

💡 Dica prática

Teste sempre os dois caminhos. Peça a tarefa em linguagem natural (sem citar a skill) e veja se ela dispara. Depois invoque pelo nome. Se só o segundo funciona, sua description precisa de trabalho — e é exatamente isso que o Módulo 1.3 ensina a consertar.

Automático
Por intenção
Explícito
Por comando
Contexto
Pesa na decisão
Sumir
O ideal: invisível

🧰 Prompts copiáveis

Use estes prompts com o Claude para fixar o conteúdo do módulo na prática.

Prompt — explicar a anatomia
Abra um SKILL.md qualquer que você tenha acesso e me explique,
linha a linha: qual é o frontmatter, o que cada campo (name,
description) faz, e onde começa o corpo de instruções.
Prompt — auditar o gatilho
Aqui está a description da minha skill: "<cole aqui>".
Lendo SÓ essa linha, sem o corpo, você saberia em quais pedidos
de usuário disparar esta skill? Liste 3 pedidos que disparariam
e 3 que NÃO disparariam.
Prompt — separar identidade de instrução
Vou descrever uma tarefa que faço sempre. Me ajude a separar:
(1) qual seria o name e a description (o gatilho), e
(2) o que vai no corpo (workflow, regras, formato de saída).
A tarefa é: <descreva>.

📤 Exemplo de saída

Um SKILL.md mínimo, mas completo e válido — exatamente o esqueleto que você vai expandir nos próximos módulos.

changelog-writer/SKILL.md rodável
---
name: changelog-writer
description: Writes a clean CHANGELOG entry from a list of git
  commits. Use when the user asks to "write a changelog",
  "summarize these commits", or "prep release notes".
---

# Changelog Writer

## Workflow
1. Ask for the version number and the commit list (or read it).
2. Group commits into: Added, Changed, Fixed, Removed.
3. Rewrite each line in plain, user-facing language.

## Rules
- Never invent changes that aren't in the commits.
- Keep each entry to a single line.

## Output Format
Markdown under a `## [version] - YYYY-MM-DD` header,
one section per group, bullets per change.

✏️ Exercícios práticos

1. Disseque um SKILL.md

Pegue qualquer skill que você conheça e marque, com um marcador de cor, onde termina o frontmatter e começa o corpo. Identifique os quatro blocos do corpo (setup, workflow, regras, saída) — anote qual está ausente.

2. Reescreva uma description fraca

Pegue a description "Generates reports." e reescreva no padrão "Faz + Quando", adicionando ao menos dois gatilhos concretos que um usuário diria.

3. Crie um SKILL.md rodável ⭐

Escreva, do zero, um SKILL.md completo para uma tarefa repetitiva sua (ex.: "resumir reuniões", "padronizar nomes de commit"). Ele deve ter: frontmatter com name + description no padrão "Faz + Quando", e um corpo com workflow, ao menos uma regra dura e um formato de saída. Depois peça ao Claude para executá-lo com uma entrada de teste e observe se o resultado sai no formato definido.

🧬 Resumo do módulo

Skill = SKILL.md — um arquivo Markdown, texto puro, versionável e portável.
Frontmatter mandaname (identidade) e description (gatilho) decidem o disparo.
O corpo é o "como" — setup, workflow, regras e formato de saída moldam a qualidade.
Descoberta ≠ disparo — o Claude indexa só as descriptions e carrega o corpo sob demanda.

Próximo módulo:

1.2 — Progressive disclosure & estrutura