Pular para o conteúdo
MÓDULO 3.1 · MODO ENSINO

🧬 Anatomia de uma skill

Você já sabe o que é uma skill (um procedimento que você dá pro agente). Agora a gente abre a skill por dentro: do que ela é feita, e a distinção que muda tudo — procedures × abilities, as "duas portas" pelas quais uma skill é acionada. Cada palavra nova é explicada na hora.

6
Tópicos
~40
Minutos
T1+T2
Pré-requisito
Prática
Tipo
Progresso: 0% 0 de 6

📖 Glossário vivo (leia antes — volte sempre que precisar)

A Trilha 1 já fixou o vocabulário base (modelo, prompt, agente, harness). Aqui valem os termos novos desta trilha de skills — fixe estes:

Skill — um pacote de instruções salvo (em geral um arquivo SKILL.md) que ensina o agente a fazer algo do seu jeito, sempre igual. É o "procedimento reutilizável" da Trilha 1, agora aberto por dentro.
Frontmatter — o cabeçalho da skill, no topo do arquivo, entre --- e ---. Traz name e description. É o "rótulo da lata".
Procedure — tipo de skill que você invoca de propósito (ex.: digitando o nome dela). Faz o modelo se comportar de um jeito que você decidiu.
Ability — tipo de skill que o modelo invoca sozinho, quando "acha" que precisa (ex.: puxa os padrões de código ao escrever React).
Invocar — "acionar/chamar" a skill. A pergunta-chave do módulo é: quem aperta o gatilho — você ou o modelo?
disable model invocation — um ajuste que impede o modelo de chamar a skill sozinho (e esconde a descrição dele). Vira uma porta só-sua. Detalhe no módulo 3.2.
1

🧩 O que é uma skill

🧠 Imagine assim: imagine que você tem um funcionário novo muito esperto, mas que nunca trabalhou na sua empresa. Toda vez que ele faz uma tarefa, você precisa explicar de novo o jeito da casa. Uma skill é o "cartão de procedimento" plastificado que você cola na parede: ele lê uma vez e já faz do seu jeito — sempre igual.

Uma skill é, na prática, um arquivo de texto com instruções que você dá ao agente pra ele realizar uma tarefa sempre do mesmo jeito. O formato mais comum é um arquivo chamado SKILL.md (texto simples, em Markdown). Ele tem duas partes: um cabeçalho curto (o frontmatter) e o corpo, que são as instruções de verdade. Vamos abrir cada parte no tópico 2.

Por que isso importa tanto nesta trilha? Porque a skill é onde você codifica a sua maneira de trabalhar e devolve isso pro harness — sem precisar repetir tudo a cada conversa. Matt Pocock trata as skills como o coração do harness moderno: elas funcionam em vários agentes (Claude Code, Codex e outros) e se instalam com npx skills latest add. O erro comum de iniciante é confundir skill com "prompt longo que eu colo toda vez". Não: a skill fica salva, é versionável, dá pra distribuir pro time e — o ponto central deste módulo — ela pode ser acionada por você ou pela própria IA. Quem aperta o gatilho muda tudo.

SKILL.md — instruções salvas cabeçalho (frontmatter): name + description corpo: o passo a passo / as regras "faça assim, nessa ordem, com esses cuidados…" você aciona (procedure) o modelo aciona (ability)

A mesma skill, dois gatilhos possíveis: você ou o modelo. Essa escolha é o tema do módulo.

Ilustração conceitual: um arquivo de skill brilhante guardado numa prateleira futurista do harness

⚠️ Erro comum de iniciante

Tratar skill como "prompt que colo toda vez". Skill é arquivo salvo, reutilizável e distribuível — e o quem-aciona dela (você ou a IA) é uma decisão sua, não um detalhe.

Em 1 frase: uma skill é um arquivo de instruções salvo (cabeçalho + corpo) que pode ser acionado por você ou pelo próprio modelo.

Indo mais fundo (opcional): por que o formato é só Markdown?

Markdown é texto puro — o mesmo "idioma" em que o modelo já pensa. Por isso uma skill não precisa de compilador nem de código: é instrução em linguagem natural, com um cabeçalho mínimo pra o agente saber quando ela serve. Isso é o que deixa a mesma skill rodar em Claude Code, Codex e companhia: todos leem o mesmo arquivo de texto.

2

🏷️ Frontmatter e corpo

🧠 Imagine assim: pense numa lata de comida. O rótulo diz o nome e pra que serve ("molho de tomate · pra massas"). O conteúdo é o molho de verdade. Numa skill, o frontmatter é o rótulo; o corpo é o molho.

Toda skill tem duas partes bem separadas. A primeira é o frontmatter: um bloquinho no topo, entre --- e ---, com dois campos essenciais — name (o nome curto) e description (uma frase dizendo o que a skill faz e quando usá-la). A segunda parte é o corpo: tudo depois do cabeçalho, em texto livre. É lá que mora o passo a passo, as regras, os exemplos.

A diferença prática entre as duas é crucial e volta no resto do módulo: o corpo só é lido quando a skill é acionada; já a description do frontmatter pode ficar "à vista" do modelo o tempo todo, pra ele decidir sozinho se chama a skill. Nas palavras de Pocock, "toda skill vaza a sua description na janela de contexto". Ou seja: o rótulo custa contexto mesmo quando a skill não é usada; o corpo, não. Guarde isso — é a semente do módulo 3.2 ("custo de contexto da skill"). O erro comum aqui é escrever uma description gigante "pra garantir": ela vira peso morto no contexto. Boa description é curta e diz exatamente o gatilho.

SKILL.md
---
name: commit-conventional
description: Cria a mensagem de commit no padrao Conventional Commits
  a partir das mudancas em stage. Use quando o usuario pedir "commita",
  "faz o commit" ou "gera a mensagem de commit".
---

# Commit Conventional

Quando acionada, faca nesta ordem:

1. Rode `git diff --staged` e leia o que mudou.
2. Escolha o tipo: feat | fix | docs | refactor | test | chore.
3. Escreva o titulo: `tipo(escopo): resumo no imperativo` (ate 72 chars).
4. No corpo, explique o PORQUE da mudanca em 1-3 linhas (nao o "o que").
5. Se houver breaking change, adicione `BREAKING CHANGE:` no rodape.
6. Mostre a mensagem final e PERGUNTE antes de rodar `git commit`.

Regras:
- Nunca invente arquivos que nao estao no diff.
- Portugues, voz imperativa, sem emoji no titulo.

Exemplo real de SKILL.md: entre os --- está o frontmatter (rótulo); abaixo, o corpo (o procedimento).

FRONTMATTER (o rótulo) name · description — fica À VISTA do modelo CORPO (o conteúdo) passo a passo + regras — só lido AO ACIONAR não pesa no contexto enquanto a skill dorme custo: o rótulo VAZA sempre(mesmo sem usar a skill) custo: o corpo NÃO vaza(carrega só na hora)

Em 1 frase: frontmatter = rótulo curto que fica à vista (e custa contexto); corpo = o procedimento, lido só quando a skill é acionada.

3

🕹️ Procedures (você invoca)

🧠 Imagine assim: uma procedure é como o botão de "modo turbo" do seu carro: ela só liga quando você aperta. O carro nunca decide ligar o turbo sozinho — quem manda é o motorista.

O primeiro dos dois tipos de skill é a procedure. A regra de ouro: quem aciona é você. Você invoca a skill de propósito — digitando o nome dela, escolhendo no menu, rodando um comando — e ela faz o modelo "se comportar de um jeito" que você definiu. Nas palavras de Pocock, procedures são skills que "fazem o modelo se comportar de um jeito" e que você dispara. Exemplos do dia a dia dele: a skill grill-me (que vira o modelo num entrevistador), a two-PRD e a to-issues — ele encadeia as três na ordem que ele quer.

Por que isso importa? Porque com procedures você fica no volante. Você decide qual procedimento entra, quando entra e em que sequência. Não há surpresa: o modelo não puxa nada por conta própria. Pocock é explícito sobre preferir esse modo: "I know my skills, I don't want to delegate my thinking" — eu conheço minhas skills, não quero delegar meu pensamento. O erro comum é achar que isso é "trabalho a mais". Na verdade é controle: você troca um pouco de automação por previsibilidade total, e ainda evita que descrições fiquem vazando no contexto (tema do 3.2).

VOCÊ aperta o gatilho PROCEDURE a skill (você invoca) MODELO se comporta do seu jeito O gatilho é humano. Sem surpresa: o modelo não chama nada sozinho.
Ilustração: uma mão humana acionando uma alavanca brilhante que dispara um procedimento

Em 1 frase: procedure = a skill que você aciona de propósito pra fazer o modelo se comportar do jeito que você decidiu.

4

🤖 Abilities (o modelo invoca)

🧠 Imagine assim: uma ability é como o freio ABS do carro: você não aperta nada — o carro sente a situação (derrapagem) e aciona sozinho. A ability é a skill que a IA puxa por conta própria quando "percebe" que precisa.

O segundo tipo é a ability. Aqui a regra de ouro vira do avesso: quem aciona é o modelo. Ele lê a description das skills disponíveis e, quando "acha" que uma se encaixa na tarefa, a puxa sozinho — sem você pedir. O exemplo que Pocock dá é uma skill de coding standards (padrões de código): o modelo a invoca automaticamente quando vai escrever React, porque a descrição diz algo como "use ao escrever componentes React". A skill então lembra o modelo de regras como "não deve usar useEffect, deve usar outra coisa".

A vantagem é a automação: a regra certa entra na hora certa, sem você lembrar de invocar. A desvantagem — e é por isso que Pocock pesa a mão — é que o modelo decide, e cada ability precisa manter sua description à vista pra ser "encontrável". Como vimos, isso vaza contexto: 100 skills viram 100 descrições penduradas na janela. Outra escola, a Superpowers (do projeto Obra), abraça justamente esse modo — modelo no controle. Pocock prefere o oposto. O erro comum é encher o setup de abilities "porque é automático" e descobrir tarde que o contexto ficou poluído e o comportamento, imprevisível.

MODELO lê as descrições e DECIDE ABILITY a skill (o modelo invoca) tarefa feita regra aplicada na hora Sem humano no gatilho. Automático — mas a description fica vazando no contexto.

🔬 Exemplo resolvido: mesma regra, dois caminhos

Cenário: você quer que, ao escrever React, o agente nunca use useEffect sem necessidade. Mesma regra, embalada de dois jeitos:

Como ABILITY

description: "Padrões de React. Use ao escrever componentes." → o modelo lê isso, percebe que vai escrever React e puxa a skill sozinho. Automático, mas a descrição vaza no contexto sempre.

Como PROCEDURE

Mesma skill com disable model invocation: true. → o modelo não a vê; você digita /react-standards quando quer. Previsível e não polui o contexto — o jeito que Pocock prefere.

Conclusão: o conteúdo da skill pode ser idêntico. O que muda é quem aperta o gatilho — e esse é o ajuste de design que você controla.

Em 1 frase: ability = a skill que o modelo aciona sozinho ao ler a description — cômodo, mas ele decide e o rótulo fica vazando.

5

🚪 As duas portas

🧠 Imagine assim: a mesma sala (a skill) tem duas portas. A porta da esquerda só abre com a sua chave (procedure). A porta da direita o modelo pode abrir sozinho (ability). Você decide quais portas deixar destrancadas.

Agora junte tudo. Procedure e ability não são duas coisas diferentes — são duas portas de entrada pra mesma skill. O conteúdo (o corpo) pode ser idêntico; o que muda é quem tem a chave. Por isso Pocock fala em "dois tipos de skill" mas, no fundo, é uma decisão de design por skill: deixo o modelo invocar (ability) ou tranco essa porta e só eu invoco (procedure)? O ajuste técnico que tranca a porta do modelo é o disable model invocation — você o vê em detalhe no módulo 3.2.

A consequência prática é grande. Toda porta de modelo aberta tem um custo: a description daquela skill fica pendurada no contexto pra o modelo poder encontrá-la. Trancar a porta (procedure pura) zera esse custo e te devolve previsibilidade. Pocock, por preferir estar "no volante", deixa a maioria das portas-do-modelo trancadas e mantém o conhecimento com o humano — ele cita a skill engineering zoom out como uma das que ele esconde do modelo. Não é regra universal: é o estilo dele. O erro comum é nem perceber que existe essa escolha — a pessoa instala 50 skills, todas como ability, e o contexto vira uma feira.

A SKILL mesmo corpo · duas portas 🚪 porta do HUMANOprocedure · você invoca 🚪 porta do MODELOability · pode trancar trancar = disable modelinvocation (não vaza)

Recuperação rápida: numa ability, quem aciona a skill?

Em 1 frase: procedure e ability são duas portas da mesma skill — a diferença é quem tem a chave (você ou o modelo).

6

🎯 Qual usar quando

🧠 Imagine assim: piloto automático × volante. No piloto automático (ability) o carro decide; no volante (procedure) você decide. Estradas conhecidas e críticas pedem volante; tarefas repetitivas e seguras toleram piloto automático.

Fechando: a escolha não é "qual é melhor", é "quem deve decidir nesta skill". Use ability quando a regra é genérica, sempre desejável e barata de errar (ex.: padrões de estilo que sempre valem) — vale a comodidade de o modelo puxar sozinho. Use procedure quando você quer estar no volante: tarefas de raciocínio, encadeamento de etapas, ou qualquer coisa onde a previsibilidade importa mais que a automação. Pocock encadeia grill-me → two-PRD → to-issues como procedures justamente por isso. E lembre do custo: cada ability mantém sua description vazando no contexto, então trancar portas (procedure) também é higiene. Use o guia abaixo quando for criar ou auditar uma skill:

procedure-ou-ability.txt
Pra cada skill, pergunte: QUEM deve apertar o gatilho?

ESCOLHA ABILITY (modelo invoca) se:
[ ] a regra vale quase sempre que o tema aparece (ex.: padroes de React)
[ ] errar o momento e barato
[ ] voce QUER automacao, nao controle fino

ESCOLHA PROCEDURE (voce invoca) se:
[ ] e raciocinio / planejamento / etapas encadeadas
[ ] previsibilidade > automacao ("quero estar no volante")
[ ] a description ocupando contexto te incomoda -> disable model invocation: true

Regra de bolso (estilo Pocock): na duvida, PROCEDURE.
"I know my skills, I don't want to delegate my thinking."
Ilustração: uma encruzilhada com duas placas, volante e piloto automático, escolha de design

Recuperação rápida: por que Pocock, na dúvida, prefere procedure?

Em 1 frase: ability pra regras genéricas e baratas de errar; procedure (na dúvida, esta) pra raciocínio e controle.

🧾 Resumo do Módulo

Skill = arquivo de instruções salvo — um SKILL.md com frontmatter (rótulo) + corpo (procedimento).
Frontmatter vaza, corpo não — a description fica à vista (custa contexto); o corpo só carrega ao acionar.
Procedure = você invoca · Ability = o modelo invoca — duas portas pra mesma skill; muda quem tem a chave.
Na dúvida, procedure — Pocock prefere estar no volante e não poluir o contexto.

Próximo módulo:

3.2 — Custo de contexto da skill: por que cada description "vaza", o que são 100 skills no contexto, e como usar disable model invocation.