PTENES
Saltar al contenido
MÓDULO 3.1 · MODO ENSEÑANZA

🧬 Anatomía de una skill

Ya sabes qué es una skill (un procedimiento que le das al agente). Ahora abrimos la skill por dentro: de qué está hecha y la distinción que lo cambia todo: procedimientos × habilidades, las «dos puertas» por las que se activa una skill. Cada palabra nueva se explica en el momento.

6
Temas
~40
Minutos
T1+T2
Prerequisito
Práctica
Tipo
Progreso: 0% 0 de 6

📖 Glosario vivo (lee antes — vuelve siempre que lo necesites)

La Trilha 1 ya estableció el vocabulario básico (modelo, prompt, agente, harness). Aquí aplican los términos nuevos de esta ruta de skills —fija estos:

Skill — un paquete de instrucciones guardado (por lo general, un archivo SKILL.md) que enseña al agente a hacer algo a tu manera, siempre igual. Es el "procedimiento reutilizable" de la Ruta 1, ahora abierto por dentro.
Frontmatter — el encabezado de la skill, en la parte superior del archivo, entre --- e ---. Trae name e description. Es la «etiqueta de la lata».
Procedure — tipo de skill que tú invoca a propósito (p. ej., escribiendo su nombre). Hace que el modelo se comporte de una manera que tú decidiste.
Ability — tipo de skill que el modelo invoca por sí sola, cuando «cree» que la necesita (p. ej., trae los patrones de código al escribir React).
Invocar — "activar/llamar" la skill. La pregunta clave del módulo es: quién ¿aprietas el gatillo tú o el modelo?
disable model invocation — un ajuste que impide el modelo de invocar la skill por sí solo (y oculta su descripción). Se convierte en una puerta solo para ti. Más detalles en el módulo 3.2.
1

🧩 Qué es una skill

🧠 Imagínalo así: imagina que tienes un empleado nuevo muy listo, pero que nunca ha trabajado en la tu empresa. Cada vez que hace una tarea, tienes que volver a explicarle cómo se hacen las cosas en la casa. Un skill es la «tarjeta de procedimiento» plastificada que pegas en la pared: la lee una vez y ya lo hace a tu manera, siempre igual.

Una skill es, en la práctica, un archivo de texto con instrucciones que le das al agente para que realice una tarea siempre de la misma manera. El formato más común es un archivo llamado SKILL.md (texto simple, en Markdown). Tiene dos partes: un encabezado breve (el frontmatter) y el cuerpo, que contienen las instrucciones reales. Vamos a abrir cada parte en el tema 2.

¿Por qué esto importa tanto en esta ruta? Porque la skill es donde codifica tu manera de trabajar y devuelve eso al harness, sin tener que repetirlo en cada conversación. Matt Pocock considera que las skills son el corazón del harness moderno: funcionan en varios agentes (Claude Code, Codex y otros) y se instalan con npx skills latest add. O error común de principiante es confundir una skill con un «prompt largo que pego cada vez». No: la skill queda guarda, se puede versionar, distribuir al equipo y —el punto central de este módulo— tú puedes activarla o por la propia IA. Quién aprieta el gatillo lo cambia todo.

SKILL.md — instrucciones guardadas encabezado (frontmatter): name + description cuerpo: los pasos / las reglas "hazlo así, en este orden y con estas precauciones…" tú activas (procedure) el modelo activa (ability)

La misma skill, dos activadores posibles: tú o el modelo. Esa elección es el tema del módulo.

Ilustración conceptual: un archivo de skill luminoso guardado en un estante futurista del harness

⚠️ Error común de principiante

Tratar una skill como «un prompt que pego cada vez». Una skill es un archivo guardado, reutilizable y distribuible, y quién la activa (tú o la IA) es decisión tuya, no un detalle.

En 1 frase: una skill es un archivo de instrucciones guardado (encabezado + cuerpo) que tú o el propio modelo pueden activar.

Profundiza (opcional): ¿por qué el formato es solo Markdown?

Markdown es texto plano: el mismo «idioma» en el que el modelo ya piensa. Por eso una skill no necesita compilador ni código: es una instrucción en lenguaje natural, con un encabezado mínimo para que el agente sepa cuando ella sirve. Eso es lo que permite que la misma skill funcione en Claude Code, Codex y compañía: todos leen el mismo archivo de texto.

2

🏷️ Frontmatter y cuerpo

🧠 Imagínalo así: piensa en una lata de comida. El etiqueta dice el nombre y para qué sirve ("salsa de tomate · para pastas"). El contenido es la salsa de verdad. En una skill, el frontmatter es la etiqueta; el cuerpo es la salsa.

Toda skill tiene dos partes bien diferenciadas. La primera es el frontmatter: un pequeño bloque en la parte superior, entre --- e ---, con dos campos esenciales — name (el nombre corto) y description (una frase que dice qué hace la skill y cuando usarla). La segunda parte es el cuerpo: todo lo que viene después del encabezado, en texto libre. Ahí es donde están el paso a paso, las reglas y los ejemplos.

La diferencia práctica entre las dos es crucial y vuelve a aparecer en el resto del módulo: la el cuerpo solo se lee cuando se activa la skill; en cambio, la description del frontmatter puede quedar "a la vista" del modelo todo el tiempo, para que decida por sí solo si invoca la skill. En palabras de Pocock, "toda skill filtra su description en la ventana de contexto". Es decir: la etiqueta consume contexto incluso cuando no se usa la skill; el cuerpo, no. Guarda esto: es la semilla del módulo 3.2 ("costo de contexto de la skill"). El error común aquí es escribir una description gigante «por si acaso»: se convierte en peso muerto en el contexto. Bien description es breve y describe exactamente el disparador.

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.

Ejemplo real de SKILL.md: entre los --- está el frontmatter (etiqueta); abajo, el cuerpo (el procedimiento).

FRONTMATTER (la etiqueta) name · description — queda A LA VISTA del modelo CUERPO (el contenido) paso a paso + reglas — solo se lee AL ACTIVAR no ocupa espacio en el contexto mientras la skill está inactiva costo: la etiqueta SIEMPRE se filtra(incluso sin usar la skill) costo: el cuerpo NO se filtra(se carga solo cuando hace falta)

En 1 frase: frontmatter = etiqueta breve que queda a la vista (y consume contexto); cuerpo = el procedimiento, que se lee solo cuando se activa la skill.

3

🕹️ Procedimientos (tú invocas)

🧠 Imagínalo así: una procedure es como el botón de «modo turbo» de tu auto: solo se activa cuando tú aprieta. El auto nunca decide activar el turbo por sí solo — quien manda es el conductor.

El primero de los dos tipos de skill es la procedure. La regla de oro: quien lo activa eres tú. Invocas la skill a propósito —escribiendo su nombre, seleccionándola en el menú o ejecutando un comando— y hace que el modelo «se comporte de una manera» que tú defines. En palabras de Pocock, los procedimientos son skills que «hacen que el modelo se comporte de una manera» y que tú lanza. Ejemplos de su día a día: la skill grill-me (que convierte al modelo en un entrevistador), la two-PRD e a to-issues — él encadena las tres en el orden que quiere.

¿Por qué esto importa? Porque con procedures tú te quedas al volante. Tú decides qué procedimiento se incluye, cuándo se incluye y en qué secuencia. No hay sorpresas: el modelo no activa nada por su cuenta. Pocock es explícito al preferir este modo: "I know my skills, I don't want to delegate my thinking" — conozco mis skills, no quiero delegar mi pensamiento. El error común es pensar que esto es «trabajo extra». En realidad, es control: cambias un poco de automatización por previsibilidad total y además evitas que las descripciones se filtren al contexto (tema del 3.2).

TÚ aprieta el gatillo PROCEDURE la skill (tú la invocas) MODELO se comporta a tu manera El disparador es humano. No hay sorpresas: el modelo no llama nada por sí solo.
Ilustración: una mano humana que acciona una palanca brillante que activa un procedimiento

En 1 frase: procedure = la skill que tú se activa a propósito para que el modelo se comporte como decidiste.

4

🤖 Abilities (el modelo invoca)

🧠 Imagínalo así: una ability es como los frenos ABS del auto: no presionas nada; el auto siente la situación (derrape) y actúa por su cuenta. La ability es la skill que la IA invoca por su cuenta cuando "se da cuenta" de que la necesita.

El segundo tipo es la ability. Aquí la regla de oro se da vuelta: quien lo activa es el modelo. Lee la description de las skills disponibles y, cuando «cree» que una encaja con la tarea, la usa por su cuenta, sin que se lo pidas. El ejemplo que da Pocock es una skill de coding standards (patrones de código): el modelo la invoca automáticamente cuando va a escribir React, porque la descripción dice algo como «úsala al escribir componentes React». La skill entonces le recuerda al modelo reglas como «no debe usar useEffect, debería usar otra cosa».

La ventaja es la automatización: la regla adecuada entra en el momento adecuado, sin que tengas que recordar invocarla. La desventaja —y por eso Pocock insiste tanto— es que el modelo decide, y cada ability debe mantener su description a la vista para que sea «encontrable». Como vimos, eso se filtra contexto: 100 skills se convierten en 100 descripciones colgadas de la ventana. Otra escuela, la Superpowers (del proyecto Obra), adopta precisamente este modo — el modelo al mando. Pocock prefiere lo opuesto. El error común es llenar la configuración de abilities «porque es automático» y descubrir tarde que el contexto quedó contaminado y el comportamiento, impredecible.

MODELO lee las descripciones y DECIDE ABILITY la skill (el modelo la invoca) tarea hecha regla aplicada de inmediato Sin un humano en el gatillo. Automático, pero la description sigue filtrándose en el contexto.

🔬 Ejemplo resuelto: misma regla, dos caminos

Escenario: quieres que, al escribir React, el agente nunca use useEffect sin necesidad. La misma regla, presentada de dos maneras:

Como ABILITY

description: "Padrões de React. Use ao escrever componentes." → el modelo lee esto, se da cuenta de que va a escribir React y trae la skill por sí solo. Automático, pero la descripción siempre se filtra al contexto.

Como PROCEDURE

La misma skill con disable model invocation: true. → el modelo no la ve; tú escribes /react-standards cuando quieras. Es predecible y no contamina el contexto: la forma que prefiere Pocock.

Conclusión: el contenido de la skill puede ser idéntica. Lo que cambia es quien aprieta el gatillo — y este es el ajuste de diseño que puedes controlar.

En 1 frase: ability = la skill que el modelo se activa por sí solo al leer la description: es cómodo, pero decide por ti y la etiqueta se filtra.

5

🚪 Las dos puertas

🧠 Imagínalo así: la misma sala (la skill) tiene dos puertas. La puerta de la izquierda solo se abre con tu llave (procedure). La puerta de la derecha el modelo puede abrirla por sí solo (ability). Tú decides qué puertas dejar sin llave.

Ahora júntalo todo. Procedure y ability no son dos cosas diferentes — son dos puntos de entrada para la misma skill. El contenido (el cuerpo) puede ser idéntico; lo que cambia es quien tiene la llave. Por eso Pocock habla de «dos tipos de skill», pero en el fondo es una decisión de diseño para cada skill: ¿dejo que el modelo la invoque (ability) o cierro esa puerta y solo la invoco yo (procedure)? El ajuste técnico que le cierra esa puerta al modelo es el disable model invocation — lo ves en detalle en el módulo 3.2.

La consecuencia práctica es grande. Toda puerta de modelo abierta tiene un costo: la description de esa skill queda en el contexto para que el modelo pueda encontrarla. Cerrar la puerta (procedure pura) elimina ese costo y te da previsibilidad. Como prefiere estar «al volante», Pocock deja cerradas la mayoría de las puertas del modelo y mantiene el conocimiento con el humano; menciona la skill engineering zoom out como una de las que le oculta al modelo. No es una regla universal: es su estilo. El error común es ni siquiera darse cuenta de que existe esta opción: la persona instala 50 skills, todas como ability, y el contexto se convierte en un mercado.

LA SKILL el mismo cuerpo · dos puertas 🚪 puerta del HUMANOprocedimiento · tú invocas 🚪 puerta del MODELOability · puede bloquear bloquear = disable modelinvocación (no se filtra)

Recuperación rápida: en una ability, ¿quién activa la skill?

En 1 frase: procedure y ability son dos puertas de la misma skill: la diferencia es quién tiene la llave (tú o el modelo).

6

🎯 Cuál usar y cuándo

🧠 Imagínalo así: piloto automático × volante. En piloto automático (ability), el auto decide; al volante (procedure), tú decides. Las rutas conocidas y críticas requieren volante; las tareas repetitivas y seguras toleran el piloto automático.

Para cerrar: la elección no es «cuál es mejor», sino «quién debe decidir esta skill". Usa ability cuando la regla es genérica, siempre deseable y barata de aplicar mal (p. ej., patrones de estilo que siempre son válidos): conviene que el modelo la detecte por sí solo. Usa procedure cuando quieres estar al volante: tareas de razonamiento, encadenamiento de etapas o cualquier cosa en la que la previsibilidad importe más que la automatización. Pocock encadena grill-me → two-PRD → to-issues como procedimientos justamente por eso. Y recuerda el costo: cada ability mantiene su description se filtra en el contexto, así que cerrar puertas (procedure) también es higiene. Usa la guía de abajo para crear o auditar una 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."
Ilustración: una encrucijada con dos señales, volante y piloto automático; una elección de diseño

Recuperación rápida: ¿por qué Pocock, en caso de duda, prefiere procedure?

En 1 frase: ability para reglas genéricas que es fácil incumplir; procedure (ante la duda, esta) para razonamiento y control.

🧾 Resumen del módulo

✓
Skill = archivo de instrucciones guardado — un SKILL.md con frontmatter (etiqueta) + cuerpo (procedimiento).
✓
El frontmatter se filtra, el cuerpo no — la descripción queda a la vista (consume contexto); el cuerpo solo se carga al activarla.
✓
Procedure = tú invocas · Ability = el modelo invoca — dos puertas para la misma skill; cambia quién tiene la llave.
✓
En caso de duda, procedure — Pocock prefiere estar al volante y no saturar el contexto.

Próximo módulo:

3.2 — Costo de contexto de la skill: por qué cada description "se filtra", qué son 100 skills en el contexto y cómo usarlas disable model invocation.