Saltar al contenido
> tutoriales / crea-tu-propia-skill
intermedio 5 min de lectura · código

Crea tu propia skill desde cero

Una skill no es magia ni un plugin gigante: es una carpeta con un archivo de texto que le enseña a tu agente a hacer algo bien, una y otra vez. Y lo curioso es que la parte que decide si sirve o no cabe en una sola línea. Aquí te muestro cómo armar la tuya y por qué esa línea es la que manda.

[ QUÉ ES UNA SKILL, DE VERDAD ]

Una skill es una carpeta con un archivo llamado SKILL.md escrito en Markdown. Ese archivo tiene dos partes: arriba un encabezado (el frontmatter) con dos campos, name y description; y debajo, las instrucciones que quieres que el agente siga cuando use la skill. Eso es todo. El resto es opcional.

dato¿Y por qué tener veinte skills no le satura el contexto al agente? Porque no carga las instrucciones completas de una. Primero lee solo la descripción de cada skill. Cuando una encaja con lo que pediste, ahí sí abre el cuerpo del SKILL.md y los archivos que traiga. A eso se le llama revelación progresiva: mira por encima y solo baja al detalle cuando de verdad lo necesita.

[ LA DESCRIPCIÓN MANDA ]

Aquí está el corazón del asunto. Tú no le dices al agente "usa la skill X". El agente decide solo cuándo usarla, y lo decide leyendo la descripción. Por eso la descripción no es un adorno: es el interruptor. Tiene que decir en qué casos usar la skill y, sobre todo, con las palabras que un usuario diría de verdad. A esas palabras se les llama triggers (disparadores).

Vaga (nunca se activa)

description: Ayuda con documentos.

Con triggers (se dispara sola)

description: Usar cuando el usuario quiera resumir un PDF o un documento largo. Dispara con "resume este PDF", "sácame lo importante", "hazme un resumen del documento".

Si la descripción es vaga, la skill queda muerta. Puede estar perfecta por dentro, con instrucciones bellísimas, pero si el agente no la relaciona con lo que pediste, nunca la abre. La mayoría de skills que "no funcionan" en realidad tienen una descripción floja. Guárdate esto: cuando algo falle, revisa la descripción primero.

[ ANATOMÍA DE UN SKILL.md ]

Esto es un SKILL.md completo y funcional. Fíjate en los tres guiones que abren y cierran el encabezado.

---
name: resume-pdf
description: Usar cuando el usuario quiera resumir un PDF o documento largo. Dispara con "resume este PDF", "sácame lo importante", "hazme un resumen del documento".
---

# Resume PDF

1. Extrae el texto del PDF con la herramienta de lectura.
2. Devuelve las ideas principales en viñetas, máximo 8.
3. Si el documento pasa de 20 páginas, resume por secciones.

Responde siempre en español y sin relleno.
dato¿Ves que las instrucciones son cortas y directas? No es un ensayo. El agente ya sabe leer y escribir; tú solo le das el criterio y los límites de esta tarea. Instrucciones largas confunden y gastan contexto. Menos es más.

¿Y qué más puede llevar la carpeta, además del SKILL.md?

[ DOS CAMINOS PARA CREARLA ]

Camino fácil: usa skill-creator (viene dentro de opencode-skills)

Si es tu primera vez, deja que una skill te haga la skill. skill-creator te entrevista: le dices qué quieres, te hace un par de preguntas para afinar, y arma la carpeta, valida el SKILL.md y hasta te lo empaqueta. Ideal para agarrar la lógica sin pelear con la estructura.

skill-creator en acción
$ quiero una skill que me resuma PDFs  De una. ¿La salida la prefieres en viñetas, en párrafo o las dos?$ viñetas, máximo 8  Listo. ¿Te la creo, la valido y te la dejo empaquetada?# arma la carpeta y revisa que la descripción tenga triggers por ti

Camino a mano: cuando ya le agarraste el gusto

01
Crea la carpeta

Ponle el nombre de tu skill, en minúsculas y con guiones: resume-pdf. Ese mismo nombre va después en el campo name.

02
Escribe el SKILL.md

Frontmatter con name y description (aquí es donde vives o mueres: mete los triggers reales). Debajo, las instrucciones: concretas, cortas, en el orden en que quieres que pasen las cosas.

03
Suma lo que haga falta

¿Necesita una plantilla o un script? Agrégalo a la carpeta y menciónalo en las instrucciones. ¿No lo necesita? Perfecto, déjalo con solo el SKILL.md.

04
Pruébala e itera

Pídele al agente algo que debería disparar la skill. ¿No se activó? Casi siempre es la descripción, no las instrucciones. Ajusta los triggers y vuelve a probar.

[ LA PRUEBA DE FUEGO ]

La forma correcta de probar no es decir "usa la skill". Eso hace trampa. Pídele la tarea como se la pedirías cualquier día, y mira si la skill se enciende sola. Si arranca sin que la nombres, tu descripción quedó bien hecha.

Probando de verdad
# nada de "usa la skill resume-pdf". Pídelo natural:$ resume este PDF y sácame lo importante  Leyendo el documento… listo, aquí van 8 puntos clave:# si la cargó sola, los triggers hicieron su trabajo
tipUna skill = una tarea. No intentes meter "resume, traduce y corrige" en la misma. Skills chiquitas y enfocadas se disparan mejor y son más fáciles de arreglar. Si tu skill hace tres cosas, casi seguro son tres skills.
// para llevarte
  • Una skill es una carpeta con un SKILL.md: frontmatter (name + description) arriba, instrucciones abajo.
  • La descripción manda: es lo que el agente lee para decidir cuándo usar la skill. Métele los triggers que la gente diría de verdad.
  • Descripción vaga = skill que nunca se activa, por muy buenas que sean las instrucciones.
  • El agente carga el detalle solo cuando lo necesita (revelación progresiva). Por eso no gastas contexto de más.
  • Instrucciones cortas y concretas, no un ensayo. Una skill, una tarea.
  • Empieza con skill-creator si es tu primera; hazla a mano cuando ya la tengas clara. Y siempre: prueba con casos reales e itera.
¿Ya te salió tu primera skill? Compártela en la comunidad y la sumamos a la colección para que otros la usen. Y si todavía no la tienes, empieza por aquí: skill-creator viene adentro. Ver opencode-skills // la herramienta de este tutorial opencode-skills Colección de skills en español para opencode, lista para clonar. > siguiente_tutorial: humaniza un texto de ia con humanizer-mit

¿TE SIRVIÓ?_

Cae al grupo, comparte lo que hagas y pregunta lo que sea en el próximo live.