La palabra «skill» dentro del mundo de la Inteligencia Artificial está en boca de todos. Dentro del entorno de desarrollo de software seguro que, de alguna forma u otra, has visto que se usan en Claude o ChatGPT, alguien lo ha comentado en un hilo de LinkedIn o puede que incluso estés usándolas (puede que incluso más de las que te imaginas) pero… ¿sabes realmente qué es? ¿les estás sacando el mejor partido? O mejor aún… ¿sabes cómo diseñar una desde cero? En este post vamos a aprender qué son, cómo funcionan en diferentes agentes y, por supuesto, montaremos una skill desde cero.
Qué vas as ver en esta entrada
¿Qué es una skill?
Empecemos por el principio. Una skill es literalmente una carpeta con instrucciones (el famoso fichero SKILL.md), scripts y recursos que los modelos de Inteligencia Artificial cargan de forma dinámica cuando el sistema lo requiere. Y esta es la parte más importante. Ahora donde el tamaño del contexto y el número de tokens consumidos importan y mucho, una skill no está precargada por defecto en el contexto. Una skill tiene la información suficiente para que el agente infiera por sí solo si necesita o no usar esa capacidad.
A este comportamiento lo llamamos divulgación progresiva (progressive disclosure), el agente sólo carga el detalle al completo si realmente cree que lo necesita para su objetivo, no saturando así la ventana de contexto.
Un poco de historia
Fue Anthropic (empresa creadora de Claude) quien lanzó Skills en octubre de 2025 como una evolución del formato que ya usaba internamente para sus propias skills. El formato SKILL.md se abrió como estándar abierto en diciembre de 2025, cuando Anthropic publicó la especificación oficial de Agent Skills en agentskills.io.
De manera prácticamente inmediata (literalmente en un plazo de 48 horas), OpenAI implementó la compatibilidad con SKILL.md. Al principio lo integró discretamente en ChatGPT y en Codex. En febrero de 2026, migraron oficialmente al nuevo formato, retirando sus formatos personalizados. Y no fue hasta Julio de ese mismo año, cuando estas habilidades pasaron a estar activadas por defecto.
GitHub y Microsoft no se quedaron atrás y, en Abril de 2026, se lanzó el soporte oficial de Agent Skills para GitHub Copilot.
Como dato interesante, el repositorio oficial de skills (que puedes encontrar en aquí), hoy, 20 de Septiembre, tiene 177,3k estrellas y 21,0k forks. Impresionante.
Mi primera skill de IA: cómo montarla paso a paso
En este apartado vamos a aprender cómo montar una skill desde cero, siguiendo estructura y formato estándar. Para esta ocasión vamos a implementar una skill que, aun siendo simple, en mi caso particular me ayuda a eficientar mi tiempo. Veamos como implementarla paso a paso. Para este ejemplo, vamos a hacerlo con Claude Code, luego veremos cómo podemos migrarla a otros agentes.
Paso 0) Definir el caso de uso y resultado esperado
Como Engineering Manager, estoy involucrado en el día a día de muchos equipos y sus correspondientes productos. Esto hace que en ocasiones (al trabajar en remoto), surja un chat por un incidente importante en Producción al que, cuando llego, hay cientos de mensajes. Quiero diseñar una skill que, indicándole el chat de la conversación, procese toda la información y me genere un resumen ejecutivo de qué ha ocurrido, impacto, si se ha remediado ya o no, causa raíz y acciones con responsables que se hayan generado. En caso de que se me nombrase o se infiera que una acción es para mí, recalcarlo en el resumen. Esto me permitirá conocer el estado del problema mucho más rápido que si tengo que leerme toda la conversación entera
Paso 1) Crear la carpeta y el archivo SKILL.md
Empecemos por el principio. He creado un proyecto al que llamaré «my-first-skill». Dentro de esta carpeta creamos a su vez otra carpeta que es donde Claude Code leerá todo tipo de información, incluida nuestra skill. Esta carpeta se llama «.claude» (importante el punto, es un estándar de la industria para carpetas donde tenemos metadatos o configuraciones, como .github, .vscode, etc.).
Una vez creada esta carpeta, dentro creamos la carpeta «skills» que agrupará todas las skills que Claude Code podrá acceder al tenerlas cargadas en la sesión. Para terminar, dentro de esta carpeta, creamos otra con el nombre de nuestra skill. Algún consejo a la hora de elegirlo:
Sobre el formato:
- Formato kebab-case: minúsculas, palabras separadas por guiones. Nada de espacios, mayúsculas ni guiones bajos.
- Sin caracteres especiales fuera de a-z0-9-
- Límite de longitud razonable (unos 64 caracteres); cuanto más corto y descriptivo, mejor.
Sobre el estilo:
- Descriptivo y específico sobre la acción o dominio, no genérico. No uses nombres como «help» o «util» (esto, si eres desarrollador o desarrolladora, seguro que te suena).
- Sigue el patrón de Anthropic: {categoría}-{tema} o verbo/gerundio + objeto (analyzing-spreadsheets, processing-pdfs).
- Esta es nuestra primera skill, pero cuando tengas mucho, huye de las ambigüedades con otras skills.
- No incluir palabras como «claude» en el nombre.
Pues siguiendo nuestras mismas recomendaciones, vamos a bautizar a nuestra skill como «summarizing-incident-threads». Creamos una carpeta con este nombre y, en su interior, el fichero más importante, el fichero «SKILL.md» donde volcaremos información para indicar cuando y qué debe hacer el agente que ejecute esta skill. Este fichero es obligatorio.
Extra: de forma opcional, y sólo y exclusivamente si nos hiciera falta, se recomienda crear estas carpetas según necesidad, al nivel de SKILL.md
- scripts: código ejecutable (por ejemplo, scripts de python)
- references: contexto que se carga bajo demanda (por ejemplo, documentación)
- assets: plantillas/archivos usados en el output, nunca en contexto
Podemos ver una captura de cómo queda nuestro proyecto a continuación, con la estructura completa a modo de ejemplo:
Paso 2) Escribir la descripción
Esta parte es muy importante porque es la que el agente precargará en su contexto por defecto y le ayudará a inferir si la skill le ayuda a conseguir su objetivo. Es el trigger de la skill. Antes de entrar de lleno en cómo escribir una buena descripción, vamos a repasar la estructura del fichero SKILL.md. Tiene dos partes:
- Frontmatter YAML (obligatorio), donde indicaremos nombre y descripción.
- Cuerpo Markdown: son las instrucciones a seguir
A la hora de escribir la descripción tendremos en cuenta estos puntos:
- Hay que incluir el «qué» y el «cuándo» de forma explícita: nombra frases, contextos o situaciones concretas en las que debería saltar
- Insistir para evitar el infra-triggering: la tendencia de un agente es a no usar un skill cuando podría ser útil. Insiste para que lo use incluso cuando no use palabras explícitas que consideremos evidentes.
- Cubrir variaciones del fraseo, no solo el caso obvio: imaginar cómo un usuario en un chat comunicaría la necesidad
- Ajusta el nivel de detalle al valor de la tarea: Claude intentará siempre usar herramientas básicas antes de lanzar un skill. Por ello indica el valor de la tarea o si tiene diferentes pasos.
Para nuestro skill, el frontmatter quedará así:
Paso 3) Escribir las instrucciones
Una vez que el agente decide apostar por la skill para conseguir su objetivo, cargará y ejecutará las instrucciones del skill. Para que el agente razone mejor a la hora de ejecutarlo, os dejo 4 consejos:
- Usar el modo imperativo: instrucciones directas, no descripciones pasivas. Reduce la ambigüedad todo lo que puedas.
- Explicar el porqué, no sólo el qué: los modelos actuales razonan mejor con contexto que con reglas rígidas tipo SIEMPRE/NUNCA.
- Definir el formato de salida con una plantilla: de forma explícita indicarle cómo queremos el resultado, es una guía de razonamiento
- Mantener un tamaño máximo de 500 líneas. Si necesitas más, seguramente tengas que desacoplar en la carpeta references/ e indicar en SKILL.md qué instrucciones usar en qué paso
Para nuestro caso, una primera versión de nuestra skill quedaría así:
Paso 4) Probar la skill
Como toda buena implementación, toca probar nuestra skill. He generado un posible escenario de un hilo de Teams al que cuando me conecto hay, nada más y nada menos que, ¡94 mensajes de 7 personas diferentes! Necesitamos saber rápidamente qué ha pasado. Vamos a ejecutar nuestra skill y que nos haga un resumen. Os dejo las capturas de la conversación (nota: lo ideal sería que se conectara a Teams directamente, pero para este post, vamos a pasarle una copia de la conversación):
Podemos ver que no uso ninguna de las frases del description pero sí que infiere el uso de nuestra skill (podría haberla invocado directamente mediante el uso de /summarizing-incident-threads). Ahora, importante, revisemos el output y mejoremos nuestra skill.
Paso 5) Iterar para mejorar
Este paso es como yo, personalmente, suelo mejorar mis skills. Una vez que hago una ejecución y veo algo que no me cuadra o es mejorable, hago que el propio Claude mejore la skill, revisando por supuesto yo mismo el cambio (otra alternativa es modificarlo manualmente por supuesto).
Más allá de que no sabe mi rol, y el warning es correcto, veo una clara mejora en la sección de qué ha ocurrido. Con el formato actual me cuesta ubicar rápido los sucesos en el tiempo. Lo ideal sería un formato de timeline basado en bullet points. Vamos a pedírselo y que realice la mejora:
Acepto el cambio y, en una nueva sesión, ejecuto de nuevo la skill. ¡Voilá! Ya tenemos nuestro timeline

Buenas prácticas
Hemos ido mencionando buenas prácticas en nuestro caso de uso, bajando al detalle. En este apartado quiero comentarte 5 buenas prácticas generales que yo siempre intento aplicar cuando creo o modifico skills:
- No explicar conceptos que el modelo ya conoce: aporta conocimiento sobre tu caso, tu organización, tus herramientas, etc. El modelo ya sabe todo lo demás.
- Delegar a scripts tareas deterministas: recuerda que un LLM es un modelo no determinista, por ello, cuando necesites el resultado de un proceso determinista (ejemplo: el resultado de una consulta a base de datos) usa scripts. El modelo se encargará de invocarlo y procesar el output.
- Asegurar la procedencia: ojo con las skills que ejecutas, como hemos visto en el punto anterior, pueden llevar scripts que impliquen comportamientos maliciosos. Vigila la procedencia.
- Composabilidad: no hay que olvidar que nuestra skill no es la única que tiene el agente cargado en contexto, hay que tenerlo siempre en cuenta.
- Una skill está viva: para mí lo más importante. Una skill nace, mejora y aprende. Conforme más lo uses, mejor podrás «curar» tu skill.
Comparación entre diferentes agentes
Es hora de jugar. Ya que el formato de Anthropic es el estándar, vamos a implementar esta skill en ChatGPT y en Gemini para ver cómo importar nuestro trabajo y poder comparar las salidas de cada agente. La salida de Claude Code ya la tenemos, así que vamos con los otros dos.
Nuestra skill en ChatGPT
Actualmente para importar de forma persistente nuestra skill en ChatGPT desde su interfaz web necesitamos una versión de pago. En ese caso nos aparecerá la sección «Skills» o (Habilidades) y deberemos seguir los siguientes pasos:
- Click en Habilidades («Skills»)
- Pulsa Crear → «Subir desde tu ordenador».
- Selecciona la carpeta/archivo de nuestra skill
- ChatGPT analiza el contenido antes de activarla
- La skill queda activada
Para nuestro ejemplo, con ChatGPT gratuito, podemos hacer que aprenda la skill para una única sesión de chat y haremos el mismo ejercicio:
Solicitamos literalmente que aprenda la habilidad para la sesión en curso:
Una vez cargado, usamos el mismo prompt simple y el mismo fichero de la conversación:
Y aquí tenemos nuestro resultado, con nuestro nuevo timeline incluido. Misma skill, en chatGPT, casi de inmediato:
¿Y en Gemini?
En el caso de Gemini, ocurre lo mismo que con ChatGPT. Son los planes de pago los que permiten importar skills de forma persistente. Así pues, haremos el ejercicio de aprender la skill solo para la sesión en curso. Usaremos los mismos prompts.
Solicitamos que aprenda la habilidad para nuestra sesión, en este caso nos cuesta 2 prompts:
Una vez creado, solicitamos que nos diga qué ha pasado con el mismo fichero. ¡Éxito! Tenemos ya nuestra skill funcionando en Gemini:
Un dato curioso: Gemini no ha indicado de forma explícita el warning que sí detectaron Claude y ChatGPT.
Conclusión
Espero que este post os valga para entender mejor qué son las skills, la base de cómo construirla y, sobre todo, cómo mejorarlas, independientemente del agente y modelo que uséis posteriormente.
¡Por cierto! recuerda repasar siempre la documentación oficial actualizada de Anthropic para la implementación de skills, ya sabes que esto cambia muy rápido.